diff --git a/.all-contributorsrc b/.all-contributorsrc index 8ae6daf62cf6..3d356bbc9759 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -642,6 +642,24 @@ "contributions": [ "code" ] + }, + { + "login": "LogicalLlama", + "name": "LogicalLlama", + "avatar_url": "https://avatars.githubusercontent.com/u/248230900?v=4", + "profile": "https://github.com/LogicalLlama", + "contributions": [ + "bug" + ] + }, + { + "login": "KnightGallade", + "name": "KnightGallade", + "avatar_url": "https://avatars.githubusercontent.com/u/189022270?v=4", + "profile": "https://github.com/KnightGallade", + "contributions": [ + "bug" + ] } ], "contributorsPerLine": 7, diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index 03c9151c06d2..c7ee0fea5af1 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -43,18 +43,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using? options: - - 1.14.3 (Latest release) + - 1.15.0 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.14.4 + - 1.14.3 - 1.14.2 - 1.14.1 - 1.14.0 - - 1.13.4 - - 1.13.3 - - 1.13.2 - - 1.13.1 - - 1.13.0 - - pre-1.13.0 + - pre-1.14.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index 395f0d590c4e..feb5a1e0795b 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -43,18 +43,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using? options: - - 1.14.3 (Latest release) + - 1.15.0 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.14.4 + - 1.14.3 - 1.14.2 - 1.14.1 - 1.14.0 - - 1.13.4 - - 1.13.3 - - 1.13.2 - - 1.13.1 - - 1.13.0 - - pre-1.13.0 + - pre-1.14.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index 732281edcaad..728aa1711da9 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -43,18 +43,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using? options: - - 1.14.3 (Latest release) + - 1.15.0 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.14.4 + - 1.14.3 - 1.14.2 - 1.14.1 - 1.14.0 - - 1.13.4 - - 1.13.3 - - 1.13.2 - - 1.13.1 - - 1.13.0 - - pre-1.13.0 + - pre-1.14.0 validations: required: true - type: input diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bb069cf6c04a..32dfac0c4f1c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,11 +12,11 @@ jobs: if: github.actor != 'allcontributors[bot]' runs-on: ubuntu-latest env: - GAME_VERSION: EMERALD GAME_REVISION: 0 GAME_LANGUAGE: ENGLISH COMPARE: 0 UNUSED_ERROR: 1 + DEPRECATED_ERROR: 1 steps: - name: Checkout uses: actions/checkout@v2 @@ -27,12 +27,15 @@ jobs: sudo apt install -y binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi libpng-dev python3 # build-essential and git are already installed - - name: ROM + - name: ROM (Emerald) env: COMPARE: 0 + GAME_VERSION: EMERALD run: make -j${nproc} -O all - name: Release + env: + GAME_VERSION: EMERALD run: | make tidy make -j${nproc} release @@ -40,10 +43,24 @@ jobs: - name: Test env: + GAME_VERSION: EMERALD TEST: 1 run: | make -j${nproc} check + - name: ROM (Firered) + env: + COMPARE: 0 + run: | + make clean + make firered -j${nproc} -O + + - name: ROM (Leafgreen) + env: + COMPARE: 0 + run: | + make leafgreen -j${nproc} -O + docs_validate: if: github.actor != 'allcontributors[bot]' runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 66cf272e5fcd..6acae9231f75 100644 --- a/.gitignore +++ b/.gitignore @@ -42,13 +42,18 @@ prefabs.json *.sym *.js /pokeemerald-*.png +/pokefirered-*.png +/pokeleafgreen-*.png src/data/map_group_count.h include/constants/heal_locations.h include/constants/script_commands.h tools/trainerproc/trainerproc src/data/battle_partners.h +src/data/pokemon/teachable_learnsets.h src/data/trainers.h +src/data/trainers_frlg.h src/data/debug_trainers.h +src/data/tutor_moves.h test/battle/trainer_control.h tools/compresSmol/compresSmol tools/compresSmol/compresSmolTilemap diff --git a/CREDITS.md b/CREDITS.md index 7d9e48d70ec8..133208fa95a0 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -92,6 +92,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d SabataLunar
SabataLunar

🎨 PacFire
PacFire

🎨 ChrispyChris27
ChrispyChris27

💻 + LogicalLlama
LogicalLlama

🐛 + KnightGallade
KnightGallade

🐛 diff --git a/Makefile b/Makefile index 8160f6e1e14d..41335f273cb1 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,8 @@ TEST ?= 0 ANALYZE ?= 0 # Count unused warnings as errors. Used by RH-Hideout's repo UNUSED_ERROR ?= 0 +# Count deprecated warnings as errors. Used by RH-Hideout's repo +DEPRECATED_ERROR ?= 0 # Adds -Og and -g flags, which optimize the build for debugging and include debug info respectively DEBUG ?= 0 # Adds -flto flag, which increases link time but results in a more efficient binary (especially in audio processing) @@ -183,6 +185,13 @@ ifeq ($(UNUSED_ERROR),0) override CFLAGS += -Wno-error=unused-variable -Wno-error=unused-const-variable -Wno-error=unused-parameter -Wno-error=unused-function -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=unused-local-typedefs endif endif + +ifeq ($(DEPRECATED_ERROR),0) + ifneq ($(GITHUB_REPOSITORY_OWNER),rh-hideout) + override CFLAGS += -Wno-error=deprecated-declarations + endif +endif + LIBPATH := -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libc.a))" LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall # Enable debug info if set @@ -231,7 +240,9 @@ endif LEARNSET_HELPERS_DIR := $(TOOLS_DIR)/learnset_helpers LEARNSET_HELPERS_DATA_DIR := $(LEARNSET_HELPERS_DIR)/porymoves_files LEARNSET_HELPERS_BUILD_DIR := $(LEARNSET_HELPERS_DIR)/build -ALL_LEARNABLES_JSON := $(LEARNSET_HELPERS_BUILD_DIR)/all_learnables.json +ALL_LEARNABLES_JSON := $(DATA_SRC_SUBDIR)/pokemon/all_learnables.json +ALL_TUTORS_JSON := $(LEARNSET_HELPERS_BUILD_DIR)/all_tutors.json +ALL_TEACHING_TYPES_JSON := $(LEARNSET_HELPERS_BUILD_DIR)/all_teaching_types.json # wild_encounters.h is generated by a Python script WILD_ENCOUNTERS_TOOL_DIR := $(TOOLS_DIR)/wild_encounters @@ -246,10 +257,6 @@ $(DATA_SRC_SUBDIR)/wild_encounters.h: $(DATA_SRC_SUBDIR)/wild_encounters.json $( $(INCLUDE_DIRS)/constants/script_commands.h: $(MISC_TOOL_DIR)/make_scr_cmd_constants.py $(DATA_ASM_SUBDIR)/script_cmd_table.inc python3 $(MISC_TOOL_DIR)/make_scr_cmd_constants.py -$(C_BUILDDIR)/wild_encounter.o: c_dep += $(DATA_SRC_SUBDIR)/wild_encounters.h -$(C_BUILDDIR)/trainer_see.o: c_dep += $(INCLUDE_DIRS)/constants/script_commands.h -$(C_BUILDDIR)/vs_seeker.o: c_dep += $(INCLUDE_DIRS)/constants/script_commands.h - PERL := perl SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c @@ -262,7 +269,7 @@ MAKEFLAGS += --no-print-directory # Delete files that weren't built properly .DELETE_ON_ERROR: -RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck tidyrelease generated clean-generated +RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck tidyrelease generated clean-generated clean-teachables clean-teachables_intermediates .PHONY: all rom agbcc modern compare check debug release .PHONY: $(RULES_NO_SCAN) @@ -386,7 +393,7 @@ clean-assets: tidy: tidymodern tidycheck tidydebug tidyrelease tidymodern: - rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME) + rm -f poke*.gba poke*.elf poke*.map rm -rf $(OBJ_DIR_NAME) tidycheck: @@ -434,11 +441,19 @@ generated: $(AUTO_GEN_TARGETS) %.smol: % ; $(SMOL) -w $< $@ %.rl: % ; $(GFX) $< $@ -clean-generated: +clean-teachables_intermediates: + rm -f $(DATA_SRC_SUBDIR)/tutor_moves.h + rm -f $(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h + @rm -Rf $(LEARNSET_HELPERS_BUILD_DIR) + @echo "rm -Rf " + +clean-generated: clean-teachables_intermediates @rm -f $(AUTO_GEN_TARGETS) @echo "rm -f " - @rm -f $(ALL_LEARNABLES_JSON) - @echo "rm -f " + +clean-teachables: clean-teachables_intermediates + rm -f $(ALL_LEARNABLES_JSON) + @touch $(C_SUBDIR)/pokemon.c $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast $(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member @@ -454,6 +469,8 @@ $(TEST_BUILDDIR)/%.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mt # Dependency rules (for the *.c & *.s sources to .o files) # Have to be explicit or else missing files won't be reported. +$(C_BUILDDIR)/move_relearner.o: $(C_SUBDIR)/move_relearner.c $(DATA_SRC_SUBDIR)/tutor_moves.h +$(C_BUILDDIR)/pokemon.o: $(C_SUBDIR)/pokemon.c $(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h # As a side effect, they're evaluated immediately instead of when the rule is invoked. # It doesn't look like $(shell) can be deferred so there might not be a better way (Icedude_907: there is soon). @@ -473,6 +490,7 @@ $(C_BUILDDIR)/%.d: $(C_SUBDIR)/%.c $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $< ifneq ($(NODEP),1) +-include $(ALL_TUTORS_JSON), $(ALL_TEACHING_TYPES_JSON), -include $(addprefix $(OBJ_DIR)/,$(C_SRCS:.c=.d)) endif @@ -528,16 +546,25 @@ $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt $(RAMSCRGEN) ewram_data $< ENGLISH > $@ -TEACHABLE_DEPS := $(ALL_LEARNABLES_JSON) $(shell find data/ -type f -name '*.inc') $(INCLUDE_DIRS)/constants/tms_hms.h $(INCLUDE_DIRS)/config/pokemon.h $(C_SUBDIR)/pokemon.c +TEACHABLE_DEPS := $(ALL_LEARNABLES_JSON) $(INCLUDE_DIRS)/constants/tms_hms.h $(INCLUDE_DIRS)/config/pokemon.h $(DATA_SRC_SUBDIR)/pokemon/special_movesets.json $(INCLUDE_DIRS)/config/pokedex_plus_hgss.h $(LEARNSET_HELPERS_DIR)/make_teachables.py $(LEARNSET_HELPERS_BUILD_DIR): @mkdir -p $@ -$(ALL_LEARNABLES_JSON): $(wildcard $(LEARNSET_HELPERS_DATA_DIR)/*.json) | $(LEARNSET_HELPERS_BUILD_DIR) +$(ALL_LEARNABLES_JSON): | $(wildcard $(LEARNSET_HELPERS_DATA_DIR)/*.json) python3 $(LEARNSET_HELPERS_DIR)/make_learnables.py $(LEARNSET_HELPERS_DATA_DIR) $@ -$(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(TEACHABLE_DEPS) - python3 $(LEARNSET_HELPERS_DIR)/make_teachables.py $< +$(ALL_TUTORS_JSON): $(shell find data/ -type f -name '*.inc') $(LEARNSET_HELPERS_DIR)/make_tutors.py | $(LEARNSET_HELPERS_BUILD_DIR) + python3 $(LEARNSET_HELPERS_DIR)/make_tutors.py $@ + +$(ALL_TEACHING_TYPES_JSON): $(wildcard $(DATA_SRC_SUBDIR)/pokemon/species_info/*_families.h) $(LEARNSET_HELPERS_DIR)/make_teaching_types.py | $(LEARNSET_HELPERS_BUILD_DIR) + python3 $(LEARNSET_HELPERS_DIR)/make_teaching_types.py $@ + +$(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(TEACHABLE_DEPS) | $(ALL_TUTORS_JSON) $(ALL_TEACHING_TYPES_JSON) + python3 $(LEARNSET_HELPERS_DIR)/make_teachables.py $(LEARNSET_HELPERS_BUILD_DIR) + +$(DATA_SRC_SUBDIR)/tutor_moves.h: $(DATA_SRC_SUBDIR)/pokemon/special_movesets.json | $(ALL_TUTORS_JSON) + python3 $(LEARNSET_HELPERS_DIR)/make_teachables.py --tutors $(LEARNSET_HELPERS_BUILD_DIR) # Linker script LD_SCRIPT := ld_script_modern.ld diff --git a/README.md b/README.md index 11666a16a53a..856488d749fc 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,28 @@ +# Pokémon Emerald Game Corner Expansion + +Hello! This is a tweaked version of Chris Piche's Game Corner Expansion feature branch made by me, AGSMGMaster64. +Currently, this adds a new config file that uses some flags by default but can be configured to other flags if necessary. +Some new music and changes to the Mauville Corner have been made as well, so keep that in mind if you plan to merge this into your +existing project. Credits to AsparagusEduardo for the basis of this merge here, I just mainly tweaked things around to help +out any developers who may want to use this as well. + +Updated to pokeemerald-expansion v1.12.0 + +To pull from this branch here, just simply use these commands here: +``` +git remote add AGSMG https://github.com/agsmgmaster64/worldlinkdeluxe-ame/ +git pull AGSMG gacha-expansion +``` + + +Below is the rest of the original description from Chris Piche himself: + +More specifically, this adds 4 pinball mini-games, Flappy Bird, Block Stacker, Snake, Blackjack, Voltorb Flip, Plinko, Mauville Derby, and Gacha Machines into the Game Corner. + +Big thank you to huderlem (Pokemon Pinball to Emerald), and Pokeabbie (Voltorb Flip from Emerald Rogue). All I really did for these was some graphics, music, and code to work with coins. They deserve the real credits here. +Also thank you to Viperio, who made an initial Snake for Pokemon Emerald that I based my code on. + +... # About `pokeemerald-expansion` ![Gif that shows debugging functionality that is unique to pokeemerald-expansion such as rerolling Trainer ID, Cheat Start, PC from Debug Menu, Debug PC Fill, Pokémon Sprite Visualizer, Debug Warp to Map, and Battle Debug Menu](https://github.com/user-attachments/assets/cf9dfbee-4c6b-4bca-8e0a-07f116ef891c) ![Gif that shows overworld functionality that is unique to pokeemerald-expansion such as indoor running, BW2 style map popups, overworld followers, DNA Splicers, Gen 1 style fishing, OW Item descriptions, Quick Run from Battle, Use Last Ball, Wild Double Battles, and Catch from EXP](https://github.com/user-attachments/assets/383af243-0904-4d41-bced-721492fbc48e) ![Gif that shows off a number of modern Pokémon battle mechanics happening in the pokeemerald-expansion engine: 2 vs 1 battles, modern Pokémon, items, moves, abilities, fully customizable opponents and partners, Trainer Slides, and generational gimmicks](https://github.com/user-attachments/assets/50c576bc-415e-4d66-a38f-ad712f3316be) @@ -17,7 +42,7 @@ If you use **`pokeemerald-expansion`**, please credit **RHH (Rom Hacking Hideout)**. Optionally, include the version number for clarity. ``` -Based off RHH's pokeemerald-expansion 1.14.3 https://github.com/rh-hideout/pokeemerald-expansion/ +Based off RHH's pokeemerald-expansion 1.15.0 https://github.com/rh-hideout/pokeemerald-expansion/ ``` Please consider [crediting all contributors](CREDITS.md) involved in the project! diff --git a/asm/macros.inc b/asm/macros.inc index 95bb4e31b040..90ea1ea9ab68 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -4,6 +4,7 @@ .include "asm/macros/map.inc" .include "asm/macros/field_effect_script.inc" .include "asm/macros/trainer_hill.inc" + .include "asm/macros/trainer_tower.inc" .include "asm/macros/battle_tent.inc" .include "asm/macros/battle_frontier/apprentice.inc" .include "asm/macros/battle_frontier/battle_arena.inc" diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index c24a6b82535f..17d0ca3e7f2a 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -648,3 +648,7 @@ .macro shake_battle_platforms priority=2, x_offset:req, y_offset:req, shakes:req, delay:req createvisualtask AnimTask_ShakeBattlePlatforms, \priority, \x_offset, \y_offset, \shakes, \delay .endm + + .macro create_surf_wave priority=2, palette:req + createvisualtask AnimTask_CreateSurfWave, \priority, \palette + .endm diff --git a/asm/macros/battle_frontier/battle_tower.inc b/asm/macros/battle_frontier/battle_tower.inc index 6c9e606dde22..f3abc0cfd47d 100644 --- a/asm/macros/battle_frontier/battle_tower.inc +++ b/asm/macros/battle_frontier/battle_tower.inc @@ -98,14 +98,13 @@ waitstate .endm - .macro multi_do type:req, partnerId:req + .macro multi_do type:req special ReducePlayerPartyToSelectedMons setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA setvar VAR_0x8005, FRONTIER_DATA_SELECTED_MON_ORDER special CallFrontierUtilFunc @ saves the mon order, so the non-selected mons get restored afterwards setvar VAR_0x8004, SPECIAL_BATTLE_MULTI setvar VAR_0x8005, \type | MULTI_BATTLE_CHOOSE_MONS - setvar VAR_0x8006, \partnerId special DoSpecialTrainerBattle waitstate setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY @@ -115,26 +114,26 @@ .macro multi_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req special SavePlayerParty - trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, \trainer2Id, NULL, \trainer2LoseText, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE - multi_do MULTI_BATTLE_2_VS_2, \partnerId + setmultitrainerbattle \trainer1Id, \trainer1LoseText, \trainer2Id, \trainer2LoseText, \partnerId + multi_do MULTI_BATTLE_2_VS_2 .endm .macro multi_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req special SavePlayerParty - trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, TRAINER_NONE, NULL, NULL, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE - multi_do MULTI_BATTLE_2_VS_1, \partnerId + setmultitrainerbattle \trainer1Id, \trainer1LoseText, TRAINER_NONE, NULL, \partnerId + multi_do MULTI_BATTLE_2_VS_1 .endm @ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out. .macro multi_wild partnerId:req special SavePlayerParty - multi_do MULTI_BATTLE_2_VS_WILD, \partnerId + setmultitrainerbattle TRAINER_NONE, NULL, TRAINER_NONE, NULL, \partnerId + multi_do MULTI_BATTLE_2_VS_WILD .endm - .macro multi_do_fixed type:req, partnerId:req + .macro multi_do_fixed type:req setvar VAR_0x8004, SPECIAL_BATTLE_MULTI setvar VAR_0x8005, \type - setvar VAR_0x8006, \partnerId special DoSpecialTrainerBattle waitstate setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY @@ -144,18 +143,19 @@ .macro multi_fixed_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req special SavePlayerParty - trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, \trainer2Id, NULL, \trainer2LoseText, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE - multi_do_fixed MULTI_BATTLE_2_VS_2, \partnerId + setmultitrainerbattle \trainer1Id, \trainer1LoseText, \trainer2Id, \trainer2LoseText, \partnerId + multi_do_fixed MULTI_BATTLE_2_VS_2 .endm .macro multi_fixed_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req special SavePlayerParty - trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, TRAINER_NONE, NULL, NULL, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE - multi_do_fixed MULTI_BATTLE_2_VS_1, \partnerId + setmultitrainerbattle \trainer1Id, \trainer1LoseText, TRAINER_NONE, NULL, \partnerId + multi_do_fixed MULTI_BATTLE_2_VS_1 .endm @ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out. .macro multi_fixed_wild partnerId:req special SavePlayerParty - multi_do_fixed MULTI_BATTLE_2_VS_WILD, \partnerId + setmultitrainerbattle TRAINER_NONE, NULL, TRAINER_NONE, NULL, \partnerId + multi_do_fixed MULTI_BATTLE_2_VS_WILD .endm diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index d8a8be7612f9..8b16680f67e2 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -3,21 +3,22 @@ .byte B_SCR_OP_ATTACKCANCELER .endm - .macro accuracycheck failInstr:req, move:req + .macro accuracycheck failInstr:req .byte B_SCR_OP_ACCURACYCHECK .4byte \failInstr - .2byte \move .endm .macro printattackstring .byte B_SCR_OP_PRINTATTACKSTRING .endm - .macro unused_0x3 - .byte B_SCR_OP_UNUSED_0x3 + .macro printselectionstringfromtable ptr:req + .byte B_SCR_OP_PRINTSELECTIONSTRINGFROMTABLE + .4byte \ptr .endm .macro critcalc + .warning "critcalc macro has been deprecated, please remove from scripts" .byte B_SCR_OP_CRITCALC .endm @@ -29,10 +30,6 @@ .byte B_SCR_OP_TYPECALC .endm - .macro adjustdamage - .byte B_SCR_OP_ADJUSTDAMAGE - .endm - .macro multihitresultmessage .byte B_SCR_OP_MULTIHITRESULTMESSAGE .endm @@ -42,31 +39,31 @@ .endm .macro waitanimation - .byte 0xa + .byte B_SCR_OP_WAITANIMATION .endm .macro healthbarupdate battler:req updateState:req - .byte 0xb + .byte B_SCR_OP_HEALTHBARUPDATE .byte \battler .byte \updateState .endm .macro datahpupdate battler:req updateState:req - .byte 0xc + .byte B_SCR_OP_DATAHPUPDATE .byte \battler .byte \updateState .endm .macro critmessage - .byte 0xd + .byte B_SCR_OP_CRITMESSAGE .endm .macro effectivenesssound - .byte 0xe + .byte B_SCR_OP_EFFECTIVENESSSOUND .endm .macro resultmessage - .byte 0xf + .byte B_SCR_OP_RESULTMESSAGE .endm .macro printstring id:req @@ -93,15 +90,12 @@ .4byte \ptr .endm - .macro printselectionstringfromtable ptr:req - .byte B_SCR_OP_PRINTSELECTIONSTRINGFROMTABLE - .4byte \ptr + .macro setpreattackadditionaleffect + .byte B_SCR_OP_SETPREATTACKADDITIONALEFFECT .endm .macro setadditionaleffects - 1: .byte B_SCR_OP_SETADDITIONALEFFECTS - jumpifhalfword CMP_EQUAL, sMOVE_EFFECT, MOVE_EFFECT_CONTINUE, 1b .endm .macro seteffectprimary battler:req, effectBattler:req, moveEffect=0 @@ -143,38 +137,38 @@ .endm .macro dofaintanimation battler:req - .byte 0x1a + .byte B_SCR_OP_DOFAINTANIMATION .byte \battler .endm .macro cleareffectsonfaint battler:req - .byte 0x1b + .byte B_SCR_OP_CLEAREFFECTSONFAINT .byte \battler .endm .macro jumpifstatus battler:req, flags:req, jumpInstr:req - .byte 0x1c + .byte B_SCR_OP_JUMPIFSTATUS .byte \battler .4byte \flags .4byte \jumpInstr .endm .macro jumpifvolatile battler:req, volatile:req, jumpInstr:req - .byte 0x1d + .byte B_SCR_OP_JUMPIFVOLATILE .byte \battler .byte \volatile .4byte \jumpInstr .endm .macro jumpifability battler:req, ability:req, jumpInstr:req - .byte 0x1e + .byte B_SCR_OP_JUMPIFABILITY .byte \battler .2byte \ability .4byte \jumpInstr .endm .macro jumpifsideaffecting battler:req, flags:req, jumpInstr:req - .byte 0x1f + .byte B_SCR_OP_JUMPIFSIDEAFFECTING .byte \battler .4byte \flags .4byte \jumpInstr @@ -252,7 +246,7 @@ .endm .macro jumpifhalfword comparison:req, halfwordPtr:req, value:req, jumpInstr:req - .byte 0x2a + .byte B_SCR_OP_JUMPIFHALFWORD .byte \comparison .4byte \halfwordPtr .2byte \value @@ -260,7 +254,7 @@ .endm .macro jumpifword comparison:req, wordPtr:req, value:req, jumpInstr:req - .byte 0x2b + .byte B_SCR_OP_JUMPIFWORD .byte \comparison .4byte \wordPtr .4byte \value @@ -268,7 +262,7 @@ .endm .macro jumpifarrayequal array1:req, array2:req, size:req, jumpInstr:req - .byte 0x2c + .byte B_SCR_OP_JUMPIFARRAYEQUAL .4byte \array1 .4byte \array2 .byte \size @@ -276,7 +270,7 @@ .endm .macro jumpifarraynotequal array1:req, array2:req, size:req, jumpInstr:req - .byte 0x2d + .byte B_SCR_OP_JUMPIFARRAYNOTEQUAL .4byte \array1 .4byte \array2 .byte \size @@ -284,13 +278,13 @@ .endm .macro setbyte bytePtr:req, value:req - .byte 0x2e + .byte B_SCR_OP_SETBYTE .4byte \bytePtr .byte \value .endm .macro addbyte bytePtr:req, value:req - .byte 0x2f + .byte B_SCR_OP_ADDBYTE .4byte \bytePtr .byte \value .endm @@ -362,27 +356,27 @@ .endm .macro waitstate - .byte 0x3a + .byte B_SCR_OP_WAITSTATE .endm - .macro isdmgblockedbydisguise - .byte 0x3b + .macro tryselfconfusiondmgformchange + .byte B_SCR_OP_TRYSELFCONFUSIONDMGFORMCHANGE .endm .macro return - .byte 0x3c + .byte B_SCR_OP_RETURN .endm .macro end - .byte 0x3d + .byte B_SCR_OP_END .endm .macro end2 - .byte 0x3e + .byte B_SCR_OP_END2 .endm .macro end3 - .byte 0x3f + .byte B_SCR_OP_END3 .endm .macro call instr:req @@ -425,8 +419,9 @@ .4byte \jumpInstr .endm - .macro unused_0x48 - .byte B_SCR_OP_UNUSED_0x48 + .macro trainerslidein position:req + .byte B_SCR_OP_TRAINERSLIDEIN + .byte \position .endm .macro moveend endMode:req, endState:req @@ -468,33 +463,33 @@ .endm .macro sethealblock failInstr:req - .byte 0x4a + .byte B_SCR_OP_SETHEALBLOCK .4byte \failInstr .endm .macro returnatktoball - .byte 0x4b + .byte B_SCR_OP_RETURNATKTOBALL .endm .macro getswitchedmondata battler:req - .byte 0x4c + .byte B_SCR_OP_GETSWITCHEDMONDATA .byte \battler .endm .macro switchindataupdate battler:req - .byte 0x4d + .byte B_SCR_OP_SWITCHINDATAUPDATE .byte \battler .endm .macro switchinanim battler:req, dontClearTransform:req, dontClearSubstitute:req - .byte 0x4e + .byte B_SCR_OP_SWITCHINANIM .byte \battler .byte \dontClearTransform .byte \dontClearSubstitute .endm .macro jumpifcantswitch battler:req, jumpInstr:req - .byte 0x4f + .byte B_SCR_OP_JUMPIFCANTSWITCH .byte \battler .4byte \jumpInstr .endm @@ -516,9 +511,8 @@ .byte \battler .endm - .macro trainerslidein position:req - .byte B_SCR_OP_TRAINERSLIDEIN - .byte \position + .macro switchinevents + .byte B_SCR_OP_SWITCHINEVENTS .endm .macro playse song:req @@ -554,31 +548,31 @@ .endm .macro yesnoboxlearnmove forgotMoveInstr:req - .byte 0x5a + .byte B_SCR_OP_YESNOBOXLEARNMOVE .4byte \forgotMoveInstr .endm .macro yesnoboxstoplearningmove noInstr:req - .byte 0x5b + .byte B_SCR_OP_YESNOBOXSTOPLEARNINGMOVE .4byte \noInstr .endm .macro hitanimation battler:req - .byte 0x5c + .byte B_SCR_OP_HITANIMATION .byte \battler .endm .macro getmoneyreward - .byte 0x5d + .byte B_SCR_OP_GETMONEYREWARD .endm .macro updatebattlermoves battler:req - .byte 0x5e + .byte B_SCR_OP_UPDATEBATTLERMOVES .byte \battler .endm .macro swapattackerwithtarget - .byte 0x5f + .byte B_SCR_OP_SWAPATTACKERWITHTARGET .endm .macro incrementgamestat stat:req @@ -612,6 +606,16 @@ statusanimation \battler, \volatile, TRUE .endm + .macro futuresighttargetfailure failInstr:req + .byte B_SCR_OP_FUTURESIGHTTARGETFAILURE + .4byte \failInstr + .endm + + .macro getpossiblenexttarget jumpInstr:req + .byte B_SCR_OP_GETPOSSIBLENEXTTARGET + .4byte \jumpInstr + .endm + .macro yesnobox .byte B_SCR_OP_YESNOBOX .endm @@ -626,28 +630,28 @@ .endm .macro removeitem battler:req - .byte 0x6a + .byte B_SCR_OP_REMOVEITEM .byte \battler .endm .macro atknameinbuff1 - .byte 0x6b + .byte B_SCR_OP_ATKNAMEINBUFF1 .endm .macro drawlvlupbox - .byte 0x6c + .byte B_SCR_OP_DRAWLVLUPBOX .endm .macro resetsentmonsvalue - .byte 0x6d + .byte B_SCR_OP_RESETSENTMONSVALUE .endm .macro setatktoplayer0 - .byte 0x6e + .byte B_SCR_OP_SETATKTOPLAYER0 .endm .macro makevisible battler:req - .byte 0x6f + .byte B_SCR_OP_MAKEVISIBLE .byte \battler .endm @@ -679,10 +683,6 @@ .byte B_SCR_OP_USEITEMONOPPONENT .endm - .macro unused_0x78 - .byte B_SCR_OP_UNUSED_0x78 - .endm - .macro setprotectlike .byte B_SCR_OP_SETPROTECTLIKE .endm @@ -696,31 +696,26 @@ .endm .macro jumpifnexttargetvalid jumpInstr:req - .byte 0x7a + .byte B_SCR_OP_JUMPIFNEXTTARGETVALID .4byte \jumpInstr .endm .macro tryhealhalfhealth battler:req, failInstr:req - .byte 0x7b + .byte B_SCR_OP_TRYHEALHALFHEALTH .byte \battler .4byte \failInstr .endm - .macro trymirrormove - .byte 0x7c - .endm - - .macro setfieldweather weather:req - .byte 0x7d - .byte \weather + .macro setfieldweather + .byte B_SCR_OP_SETFIELDWEATHER .endm .macro setreflect - .byte 0x7e + .byte B_SCR_OP_SETREFLECT .endm .macro setseeded - .byte 0x7f + .byte B_SCR_OP_SETSEEDED .endm .macro manipulatedamage mode:req @@ -732,22 +727,13 @@ .byte B_SCR_OP_TRYSETREST .endm - .macro unused_0x82 - .byte B_SCR_OP_UNUSED_0x82 - .endm - - .macro unused_0x83 - .byte B_SCR_OP_UNUSED_0x83 - .endm - .macro jumpifuproarwakes jumpInstr:req .byte B_SCR_OP_JUMPIFUPROARWAKES .4byte \jumpInstr .endm - .macro stockpile id:req + .macro stockpile .byte B_SCR_OP_STOCKPILE - .byte \id .endm .macro stockpiletobasedamage @@ -759,14 +745,6 @@ .4byte \failInstr .endm - .macro removestockpilecounters - callnative BS_RemoveStockpileCounters - .endm - - .macro unused_0x88 - .byte B_SCR_OP_UNUSED_0x88 - .endm - .macro statbuffchange battler:req, flags:req, failInstr:req, stats=0 .byte B_SCR_OP_STATBUFFCHANGE .byte \battler @@ -776,15 +754,15 @@ .endm .macro normalisebuffs - .byte 0x8a + .byte B_SCR_OP_NORMALISEBUFFS .endm .macro setbide - .byte 0x8b + .byte B_SCR_OP_SETBIDE .endm .macro twoturnmoveschargestringandanimation - .byte 0x8c + .byte B_SCR_OP_TWOTURNMOVESCHARGESTRINGANDANIMATION .4byte 1f @animation then attack string @default - attack string then animation printsavedstring @@ -801,15 +779,15 @@ .endm .macro trynonvolatilestatus - .byte 0x8d + .byte B_SCR_OP_TRYNONVOLATILESTATUS .endm .macro initmultihitstring - .byte 0x8e + .byte B_SCR_OP_INITMULTIHITSTRING .endm .macro forcerandomswitch failInstr:req - .byte 0x8f + .byte B_SCR_OP_FORCERANDOMSWITCH .4byte \failInstr .endm @@ -861,205 +839,161 @@ .endm .macro setfocusenergy battler:req - .byte 0x9a + .byte B_SCR_OP_SETFOCUSENERGY .byte \battler .endm .macro transformdataexecution - .byte 0x9b + .byte B_SCR_OP_TRANSFORMDATAEXECUTION .endm .macro setsubstitute - .byte 0x9c + .byte B_SCR_OP_SETSUBSTITUTE .endm .macro mimicattackcopy failInstr:req - .byte 0x9d + .byte B_SCR_OP_MIMICATTACKCOPY .4byte \failInstr .endm .macro setcalledmove - .byte 0x9e - .endm - - .macro unused_0x9f - .byte 0x9f - .endm - - .macro unused_0xA0 - .byte 0xa0 - .endm - - .macro counterdamagecalculator failInstr:req - .byte 0xa1 - .4byte \failInstr - .endm - - .macro mirrorcoatdamagecalculator failInstr:req - .byte 0xa2 - .4byte \failInstr + .byte B_SCR_OP_SETCALLEDMOVE .endm .macro disablelastusedattack failInstr:req - .byte 0xa3 + .byte B_SCR_OP_DISABLELASTUSEDATTACK .4byte \failInstr .endm .macro trysetencore failInstr:req - .byte 0xa4 + .byte B_SCR_OP_TRYSETENCORE .4byte \failInstr .endm .macro painsplitdmgcalc failInstr:req - .byte 0xa5 + .byte B_SCR_OP_PAINSPLITDMGCALC .4byte \failInstr .endm .macro settypetorandomresistance failInstr:req - .byte 0xa6 + .byte B_SCR_OP_SETTYPETORANDOMRESISTANCE .4byte \failInstr .endm .macro setalwayshitflag - .byte 0xa7 + .byte B_SCR_OP_SETALWAYSHITFLAG .endm .macro copymovepermanently failInstr:req - .byte 0xa8 - .4byte \failInstr - .endm - - .macro trychoosesleeptalkmove failInstr:req - .byte 0xa9 + .byte B_SCR_OP_COPYMOVEPERMANENTLY .4byte \failInstr .endm - .macro trysetdestinybond failInstr:req - .byte 0xaa - .4byte \failInstr - .endm - - .macro unused_0xab - .byte 0xab - .endm - .macro settailwind failInstr:req - .byte 0xac + .byte B_SCR_OP_SETTAILWIND .4byte \failInstr .endm .macro tryspiteppreduce failInstr:req - .byte 0xad + .byte B_SCR_OP_TRYSPITEPPREDUCE .4byte \failInstr .endm .macro healpartystatus - .byte 0xae + .byte B_SCR_OP_HEALPARTYSTATUS .endm .macro cursetarget failInstr:req - .byte 0xaf + .byte B_SCR_OP_CURSETARGET .4byte \failInstr .endm .macro trysetspikes failInstr:req - .byte 0xb0 + .byte B_SCR_OP_TRYSETSPIKES .4byte \failInstr .endm .macro setvolatile battler:req, volatile:req, value=TRUE - .byte 0xb1 + .byte B_SCR_OP_SETVOLATILE .byte \battler .byte \volatile .byte \value .endm .macro trysetperishsong failInstr:req - .byte 0xb2 + .byte B_SCR_OP_TRYSETPERISHSONG .4byte \failInstr .endm - .macro handlerollout - .byte 0xb3 - .endm - .macro jumpifconfusedandstatmaxed stat:req, jumpInstr:req - .byte 0xb4 + .byte B_SCR_OP_JUMPIFCONFUSEDANDSTATMAXED .byte \stat .4byte \jumpInstr .endm - .macro handlefurycutter - .byte 0xb5 - .endm - .macro setembargo failInstr:req - .byte 0xb6 + .byte B_SCR_OP_SETEMBARGO .4byte \failInstr .endm .macro presentdamagecalculation - .byte 0xb7 + .byte B_SCR_OP_PRESENTDAMAGECALCULATION .endm .macro setsafeguard - .byte 0xb8 - .endm - - .macro magnitudedamagecalculation - .byte 0xb9 + .byte B_SCR_OP_SETSAFEGUARD .endm .macro jumpifnopursuitswitchdmg jumpInstr:req - .byte 0xba + .byte B_SCR_OP_JUMPIFNOPURSUITSWITCHDMG .4byte \jumpInstr .endm .macro tryactivateitem battler:req, flag:req - .byte 0xbb + .byte B_SCR_OP_TRYACTIVATEITEM .byte \battler .byte \flag .endm .macro halvehp failInstr:req - .byte 0xbc + .byte B_SCR_OP_HALVEHP .4byte \failInstr .endm .macro copyfoestats - .byte 0xbd + .byte B_SCR_OP_COPYFOESTATS .endm .macro rapidspinfree - .byte 0xbe + .byte B_SCR_OP_RAPIDSPINFREE .endm .macro recoverbasedonsunlight failInstr:req - .byte 0xc0 + .byte B_SCR_OP_RECOVERBASEDONSUNLIGHT .4byte \failInstr .endm .macro setstickyweb failInstr:req - .byte 0xc1 + .byte B_SCR_OP_SETSTICKYWEB .4byte \failInstr .endm .macro selectfirstvalidtarget - .byte 0xc2 + .byte B_SCR_OP_SELECTFIRSTVALIDTARGET .endm .macro setfutureattack - .byte 0xc3 + .byte B_SCR_OP_SETFUTUREATTACK .endm .macro trydobeatup endInstr:req, failInstr:req - .byte 0xc4 + .byte B_SCR_OP_TRYDOBEATUP .4byte \endInstr .4byte \failInstr .endm .macro setsemiinvulnerablebit clear=FALSE - .byte 0xc5 + .byte B_SCR_OP_SETSEMIINVULNERABLEBIT .byte \clear .endm @@ -1067,289 +1001,221 @@ setsemiinvulnerablebit TRUE .endm - .macro tryfiretwoturnmovenowbyeffect battler:req, checkChargeTurnEffects:req, jumpInstr:req - .byte 0xc6 - .byte \battler - .byte \checkChargeTurnEffects - .4byte \jumpInstr - .endm - - .macro tryfiretwoturnmovewithoutcharging battler:req, jumpInstr:req - tryfiretwoturnmovenowbyeffect \battler, TRUE, \jumpInstr - .endm - - .macro tryfiretwoturnmoveaftercharging battler:req, jumpInstr:req - tryfiretwoturnmovenowbyeffect \battler, FALSE, \jumpInstr - .endm - - .macro unused_0xC7 - .byte 0xc7 - .endm - - .macro unused_c8 - .byte 0xc8 - .endm - .macro trymemento failInstr:req - .byte 0xc9 + .byte B_SCR_OP_TRYMEMENTO .4byte \failInstr .endm .macro setforcedtarget - .byte 0xca - .endm - - .macro unused_0xcb battler:req - .byte 0xcb - .byte \battler - .endm - - .macro callenvironmentattack - .byte 0xcc + .byte B_SCR_OP_SETFORCEDTARGET .endm .macro curestatuswithmove failInstr:req - .byte 0xcd + .byte B_SCR_OP_CURESTATUSWITHMOVE .4byte \failInstr .endm .macro settorment failInstr:req - .byte 0xce + .byte B_SCR_OP_SETTORMENT .4byte \failInstr .endm - .macro jumpifnodamage jumpInstr:req - .byte 0xcf - .4byte \jumpInstr - .endm - .macro settaunt failInstr:req - .byte 0xd0 + .byte B_SCR_OP_SETTAUNT .4byte \failInstr .endm .macro trysethelpinghand failInstr:req - .byte 0xd1 + .byte B_SCR_OP_TRYSETHELPINGHAND .4byte \failInstr .endm .macro tryswapitems failInstr:req - .byte 0xd2 + .byte B_SCR_OP_TRYSWAPITEMS .4byte \failInstr .endm .macro trycopyability battler:req, failInstr:req - .byte 0xd3 + .byte B_SCR_OP_TRYCOPYABILITY .byte \battler .4byte \failInstr .endm .macro trywish failInstr:req - .byte 0xd4 + .byte B_SCR_OP_TRYWISH .4byte \failInstr .endm .macro settoxicspikes failInstr:req - .byte 0xd5 + .byte B_SCR_OP_SETTOXICSPIKES .4byte \failInstr .endm .macro setgastroacid failInstr:req - .byte 0xd6 + .byte B_SCR_OP_SETGASTROACID .4byte \failInstr .endm .macro setyawn failInstr:req - .byte 0xd7 - .4byte \failInstr - .endm - - .macro setdamagetohealthdifference failInstr:req - .byte 0xd8 + .byte B_SCR_OP_SETYAWN .4byte \failInstr .endm .macro setroom - .byte 0xd9 + .byte B_SCR_OP_SETROOM .endm .macro tryswapabilities failInstr:req - .byte 0xda + .byte B_SCR_OP_TRYSWAPABILITIES .4byte \failInstr .endm .macro tryimprison failInstr:req - .byte 0xdb + .byte B_SCR_OP_TRYIMPRISON .4byte \failInstr .endm .macro setstealthrock failInstr:req - .byte 0xdc + .byte B_SCR_OP_SETSTEALTHROCK .4byte \failInstr .endm .macro trysetvolatile battler:req, _volatile:req, failInstr:req - .byte 0xdd + .byte B_SCR_OP_TRYSETVOLATILE .byte \battler .byte \_volatile .4byte \failInstr .endm - .macro assistattackselect failInstr:req - .byte 0xde - .4byte \failInstr - .endm - .macro trysetmagiccoat failInstr:req - .byte 0xdf + .byte B_SCR_OP_TRYSETMAGICCOAT .4byte \failInstr .endm .macro trysetsnatch failInstr:req - .byte 0xe0 + .byte B_SCR_OP_TRYSETSNATCH .4byte \failInstr .endm - .macro unused2 ptr:req - .byte 0xe1 - .4byte \ptr - .endm - .macro switchoutabilities battler:req - .byte 0xe2 + .byte B_SCR_OP_SWITCHOUTABILITIES .byte \battler .endm .macro jumpifhasnohp battler:req, jumpInstr:req - .byte 0xe3 + .byte B_SCR_OP_JUMPIFHASNOHP .byte \battler .4byte \jumpInstr .endm - .macro unused_0xE4 - .byte 0xe4 - .endm - .macro pickup - .byte 0xe5 - .endm - - .macro unused_0xE6 - .byte 0xe6 - .endm - - .macro unused_0xE7 - .byte 0xe7 + .byte B_SCR_OP_PICKUP .endm .macro settypebasedhalvers failInstr:req - .byte 0xe8 + .byte B_SCR_OP_SETTYPEBASEDHALVERS .4byte \failInstr .endm .macro jumpifsubstituteblocks jumpInstr:req - .byte 0xe9 + .byte B_SCR_OP_JUMPIFSUBSTITUTEBLOCKS .4byte \jumpInstr .endm .macro tryrecycleitem failInstr:req - .byte 0xea + .byte B_SCR_OP_TRYRECYCLEITEM .4byte \failInstr .endm .macro settypetoenvironment failInstr:req - .byte 0xeb + .byte B_SCR_OP_SETTYPETOENVIRONMENT .4byte \failInstr .endm .macro pursuitdoubles failInstr:req - .byte 0xec + .byte B_SCR_OP_PURSUITDOUBLES .4byte \failInstr .endm .macro snatchsetbattlers - .byte 0xed - .endm - - .macro removescreens - .byte 0xee + .byte B_SCR_OP_SNATCHSETBATTLERS .endm .macro handleballthrow - .byte 0xef + .byte B_SCR_OP_HANDLEBALLTHROW .endm .macro givecaughtmon passInstr:req - .byte 0xf0 + .byte B_SCR_OP_GIVECAUGHTMON .4byte \passInstr .endm .macro trysetcaughtmondexflags failInstr:req - .byte 0xf1 + .byte B_SCR_OP_TRYSETCAUGHTMONDEXFLAGS .4byte \failInstr .endm .macro displaydexinfo - .byte 0xf2 + .byte B_SCR_OP_DISPLAYDEXINFO .endm .macro trygivecaughtmonnick - .byte 0xf3 + .byte B_SCR_OP_TRYGIVECAUGHTMONNICK .endm - .macro unused_0xf4 - .byte 0xf4 + .macro sortbattlers + .byte B_SCR_OP_SORTBATTLERS .endm .macro removeattackerstatus1 - .byte 0xf5 + .byte B_SCR_OP_REMOVEATTACKERSTATUS1 .endm .macro finishaction - .byte 0xf6 + .byte B_SCR_OP_FINISHACTION .endm .macro finishturn - .byte 0xf7 + .byte B_SCR_OP_FINISHTURN .endm .macro trainerslideout position:req - .byte 0xf8 + .byte B_SCR_OP_TRAINERSLIDEOUT .byte \position .endm .macro settelekinesis failInstr:req - .byte 0xf9 + .byte B_SCR_OP_SETTELEKINESIS .4byte \failInstr .endm .macro swapstatstages stat:req - .byte 0xfa + .byte B_SCR_OP_SWAPSTATSTAGES .byte \stat .endm .macro averagestats stat:req - .byte 0xfb + .byte B_SCR_OP_AVERAGESTATS .byte \stat .endm .macro jumpifcaptivateaffected jumpInstr:req - .byte 0xfc + .byte B_SCR_OP_JUMPIFCAPTIVATEAFFECTED .4byte \jumpInstr .endm .macro setnonvolatilestatus trigger:req - .byte 0xfd + .byte B_SCR_OP_SETNONVOLATILESTATUS .byte \trigger .endm .macro tryoverwriteability failInstr:req - .byte 0xfe + .byte B_SCR_OP_TRYOVERWRITEABILITY .4byte \failInstr .endm .macro callnative func:req - .byte 0xff + .byte B_SCR_OP_CALLNATIVE .4byte \func .endm @@ -1373,11 +1239,6 @@ callnative BS_JumpIfIntimidateAbilityPrevented .endm - .macro metalburstdamagecalculator failInstr:req - callnative BS_CalcMetalBurstDmg - .4byte \failInstr - .endm - .macro allyswitchswapbattlers callnative BS_AllySwitchSwapBattler .endm @@ -1446,7 +1307,7 @@ @ Used by effects that may proc Symbiosis but do not call removeitem. .macro trysymbiosis battler:req callnative BS_TrySymbiosis - .byte \battler + .byte \battler .endm @ returns B_SIDE_x to gBattleCommunication[0] @@ -1461,43 +1322,17 @@ .4byte \ptr .endm - .macro jumpifcantloseitem battler:req, ptr:req + .macro jumpifcantloseitem ptr:req callnative BS_JumpIfCantLoseItem - .byte \battler .4byte \ptr .endm - .macro handlemegaevo battler:req, case:req - callnative BS_HandleMegaEvolution - .byte \battler - .byte \case - .endm - - .macro handleprimalreversion battler:req, case:req - callnative BS_HandlePrimalReversion - .byte \battler - .byte \case - .endm - - .macro handleultraburst battler:req, case:req - callnative BS_HandleUltraBurst - .byte \battler - .byte \case - .endm - .macro jumpifshelltrap battler:req, jumpInstr:req callnative BS_JumpIfShellTrap .byte \battler .4byte \jumpInstr .endm - .macro jumpifelectricabilityaffected battler:req, ability:req, jumpInstr:req - callnative BS_JumpIfElectricAbilityAffected - .byte \battler - .2byte \ability - .4byte \jumpInstr - .endm - .macro setterrain failInstr:req callnative BS_SetTerrain .4byte \failInstr @@ -1627,14 +1462,6 @@ .4byte \jumpInstr .endm - .macro trygulpmissile - callnative BS_TryGulpMissile - .endm - - .macro tryactivategulpmissile - callnative BS_TryActivateGulpMissile - .endm - .macro tryquash failInstr:req callnative BS_TryQuash .4byte \failInstr @@ -1659,23 +1486,19 @@ .4byte \jumpInstr .endm - .macro ficklebeamdamagecalculation - callnative BS_FickleBeamDamageCalculation - .endm - .macro trytarshot failInstr:req callnative BS_TryTarShot .4byte \failInstr .endm - .macro jumpifteainvulnerable battler:req, jumpInstr:req - callnative BS_TeatimeInvul + .macro jumpifnoberry battler:req, jumpInstr:req + callnative BS_JumpIfNoBerry .byte \battler .4byte \jumpInstr .endm - .macro jumpifteanoberry failInstr:req - callnative BS_TeatimeTargets + .macro checkteatimetargets failInstr:req + callnative BS_CheckTeaTimeTargets .4byte \failInstr .endm @@ -1695,9 +1518,9 @@ .byte \battler .endm - .macro resetterrainabilityflags - callnative BS_ResetTerrainAbilityFlags - .endm + .macro resetterrainabilityflags + callnative BS_ResetTerrainAbilityFlags + .endm @ Stores Healing Wish effect. .macro storehealingwish battler:req @@ -1742,11 +1565,6 @@ callnative BS_RemoveTerrain .endm - .macro tryspectralthiefsteal jumpInstr:req - callnative BS_TrySpectralThiefSteal - .4byte \jumpInstr - .endm - .macro spectralthiefprintstats callnative BS_SpectralThiefPrintStats .endm @@ -1873,10 +1691,6 @@ manipulatedamage DMG_1_8_TARGET_HP .endm - .macro dmgtomaxattackerhp - manipulatedamage DMG_FULL_ATTACKER_HP - .endm - .macro jumpifflowerveil jumpInstr:req jumpifnottype BS_TARGET, TYPE_GRASS, 1f jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpInstr @@ -1900,11 +1714,6 @@ .byte \battler .endm - .macro trysynchronoise jumpInstr:req - callnative BS_TrySynchronoise - .4byte \jumpInstr - .endm - .macro jumpifroarfails jumpInstr:req callnative BS_JumpIfRoarFails .4byte \jumpInstr @@ -1969,11 +1778,6 @@ .byte \battler .endm - .macro setspriteignore0hp ignore0HP:req - callnative BS_SetSpriteIgnore0Hp - .byte \ignore0HP - .endm - .macro updatenick callnative BS_UpdateNick .endm @@ -2119,12 +1923,14 @@ callnative BS_InstantHpDrop .endm - .macro clearstatus + .macro clearstatus battler:req callnative BS_ClearStatus + .byte \battler .endm - .macro restoremovepp + .macro restoremovepp battler:req callnative BS_RestoreMovePp + .byte \battler .endm .macro tryactivatereceiver battler:req @@ -2169,10 +1975,11 @@ .4byte \failInstr .endm - .macro handleformchange battler:req, case_:req + .macro handleformchange battler:req, caseId:req, bufferSpeciesName=TRUE callnative BS_HandleFormChange .byte \battler - .byte \case_ + .byte \caseId + .byte \bufferSpeciesName .endm .macro tryautotomize failInstr:req @@ -2289,20 +2096,6 @@ .4byte \failInstr .endm - .macro jumpifunder200 jumpInstr:req - callnative BS_JumpIfUnder200 - .4byte \jumpInstr - .endm - - .macro setskydrop - callnative BS_SetSkyDrop - .endm - - .macro clearskydrop failInstr:req - callnative BS_ClearSkyDrop - .4byte \failInstr - .endm - .macro skydropyawn callnative BS_SkyDropYawn .endm @@ -2325,11 +2118,6 @@ .4byte \failInstr .endm - .macro jumpifnotrototilleraffected jumpInstr:req - callnative BS_JumpIfNotRototillerAffected - .4byte \jumpInstr - .endm - .macro consumeberry battler:req, fromBattler:req callnative BS_ConsumeBerry .byte \battler @@ -2363,20 +2151,14 @@ .4byte \failInstr .endm - .macro setpoltergeistmessage failInstr:req + .macro setpoltergeistmessage callnative BS_SetPoltergeistMessage - .4byte \failInstr .endm .macro tryresetnegativestatstages callnative BS_TryResetNegativeStatStages .endm - .macro jumpiflastuseditemberry jumpInstr:req - callnative BS_JumpIfLastUsedItemBerry - .4byte \jumpInstr - .endm - .macro savebattleritem callnative BS_SaveBattlerItem .endm @@ -2465,7 +2247,8 @@ .4byte \jumpInstr .endm - @ Absorbs Toxic Spikes when a grounded Poison-type faints to entry hazards. - .macro tryabsorbtoxicspikesonfaint - callnative BS_TryAbsorbToxicSpikesOnFaint + .macro tryactivateabilitywithabilityshield battler:req, switchedItems=FALSE + callnative BS_TryActivateAbilityWithAbilityShield + .byte \battler + .byte \switchedItems .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 8868f83f7dd8..a7f4cbf04994 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -58,6 +58,8 @@ STD_FIND_ITEM = 1 STD_OBTAIN_DECORATION = 7 STD_REGISTER_MATCH_CALL = 8 + STD_PUT_ITEM_AWAY = 11 + STD_RECEIVED_ITEM = 12 @ Calls the script in gStdScripts at index function. .macro callstd function:req @@ -644,6 +646,10 @@ .endif .endm + .macro waitmovementall + callnative Script_waitmovementall, requests_effects=1 + .endm + @ 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. @@ -726,7 +732,7 @@ OBJ_ID_NONE = 0 @ Configures the arguments for a trainer battle, then jumps to the appropriate script in scripts/trainer_battle.inc - .macro trainerbattle type:req localIdA:req, trainer_a:req, intro_text_a:req, lose_text_a:req, event_script_a:req, localIdB:req, trainer_b:req, intro_text_b:req, lose_text_b:req, event_script_b:req, victory_text:req, cannot_battle:req, isDouble:req, playMusicA:req, playMusicB:req, isRematch:req + .macro trainerbattle type:req localIdA:req, trainer_a:req, intro_text_a:req, lose_text_a:req, event_script_a:req, localIdB:req, trainer_b:req, intro_text_b:req, lose_text_b:req, event_script_b:req, victory_text:req, cannot_battle:req, isDouble:req, playMusicA:req, playMusicB:req, isRematch:req, rival_battle_flags=0 .byte SCR_OP_TRAINERBATTLE .set trainerbattle_flags, 0 .ifgt \isDouble; .set trainerbattle_flags, trainerbattle_flags | (1 << 0); .endif @@ -747,6 +753,7 @@ .4byte \event_script_b @ retAddrB .4byte \victory_text @ victoryText .4byte \cannot_battle @ cannotBattle + .byte \rival_battle_flags @ rivalBattleFlags .endm NO_MUSIC = FALSE @@ -796,6 +803,11 @@ trainerbattle TRAINER_BATTLE_TWO_TRAINERS_NO_INTRO, OBJ_ID_NONE, \trainer_a, NULL, \lose_text_a, NULL, OBJ_ID_NONE, \trainer_b, NULL, \lose_text_b, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE .endm + @ Starts a trainer battle with victory text if the player loses. If flags is nonzero, the player will be healed after battle (and its assumed to be the tutorial battle) + .macro trainerbattle_earlyrival trainer:req, flags:req, lose_text:req, victory_text:req + trainerbattle TRAINER_BATTLE_EARLY_RIVAL, OBJ_ID_NONE, \trainer, NULL, \lose_text, NULL, OBJ_ID_NONE, TRAINER_NONE, NULL, NULL, NULL, \victory_text, NULL, FALSE, TRUE, FALSE, FALSE, \flags + .endm + @ 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 @@ -1014,9 +1026,9 @@ .2byte \level .ifnb \item; .set givemon_flags, givemon_flags | (1 << 0); .endif .ifnb \ball; .set givemon_flags, givemon_flags | (1 << 1); .endif - .ifnb \nature; .set givemon_flags, givemon_flags | (1 << 2); .endif + .set givemon_flags, givemon_flags | (1 << 2); .ifnb \abilityNum; .set givemon_flags, givemon_flags | (1 << 3); .endif - .ifnb \gender; .set givemon_flags, givemon_flags | (1 << 4); .endif + .set givemon_flags, givemon_flags | (1 << 4); .ifnb \hpEv; .set givemon_flags, givemon_flags | (1 << 5); .endif .ifnb \atkEv; .set givemon_flags, givemon_flags | (1 << 6); .endif .ifnb \defEv; .set givemon_flags, givemon_flags | (1 << 7); .endif @@ -1040,9 +1052,9 @@ .4byte givemon_flags .ifnb \item; .2byte \item; .endif .ifnb \ball; .2byte \ball; .endif - .ifnb \nature; .2byte \nature; .endif + .ifnb \nature; .2byte \nature; .else; .2byte NATURE_MAY_SYNCHRONIZE; .endif .ifnb \abilityNum; .2byte \abilityNum; .endif - .ifnb \gender; .2byte \gender; .endif + .ifnb \gender; .2byte \gender; .else; .2byte MON_GENDER_MAY_CUTE_CHARM; .endif .ifnb \hpEv; .2byte \hpEv; .endif .ifnb \atkEv; .2byte \atkEv; .endif .ifnb \defEv; .2byte \defEv; .endif @@ -1906,6 +1918,12 @@ .2byte \id .endm + @ Gets the width of the specified message in the Braille font and sets the result to VAR_0x8004. + .macro getbraillestringwidth msg:req + .byte SCR_OP_GETBRAILLESTRINGWIDTH + .4byte \msg + .endm + .macro dynmultistack left:req, top:req, ignoreBPress:req, maxBeforeScroll:req, shouldSort:req, initialSelected:req, callbacks:req _dynmultichoice \left, \top, \ignoreBPress, \maxBeforeScroll, \shouldSort, \initialSelected, \callbacks, NULL .endm @@ -2083,6 +2101,13 @@ callstd STD_FIND_ITEM .endm + @ Prints the message "{PLAYER} put the {ITEM} in the {POCKET}." The item name is pluralized, if applicable. + .macro putitemaway item:req, amount=1 + setorcopyvar VAR_0x8000, \item + setorcopyvar VAR_0x8001, \amount + callstd STD_PUT_ITEM_AWAY + .endm + @ Equivalent to giveitem but for a single decoration. .macro givedecoration decoration:req setorcopyvar VAR_0x8000, \decoration @@ -2125,6 +2150,11 @@ .4byte \func .endm + .macro setdynamicswitchaifunc func:req + callnative ScriptSetDynamicAiSwitchFunc, requests_effects=1 + .4byte \func + .endm + @ Set up a totem boost for the next battle. @ 'battler' is the position of the mon you want to gain a boost. see B_POSITION_xx in include/constants/battle.h. @ The rest of the arguments are the stat change values to each stat. @@ -2274,6 +2304,12 @@ .2byte \slot .endm + @ Sets the hp to 0 for the Pokémon in \slot. + .macro setko slot:req + callnative Script_SetKO, requests_effects=1 + .2byte \slot + .endm + @ Sets VAR_RESULT to the Pokémon in \slot's Tera Type .macro checkteratype slot:req callnative CheckTeraType, requests_effects=1 @@ -2340,7 +2376,7 @@ @ ============================ @ @ FAKE RTC MACROS @ Will only function if OW_USE_FAKE_RTC is true. If it has any additional requirements, it will be listed accordingly. - + @ When OW_USE_FAKE_RTC is true and OW_FLAG_PAUSE_TIME is assigned, this macro will stop the flow of time. .macro pausefakertc callnative Script_PauseFakeRtc, requests_effects=1 @@ -2593,6 +2629,68 @@ cant_see_if 5 .endm + .macro setmultitrainerbattle trainer_a:req, lose_text_a:req, trainer_b:req, lose_text_b:req, partnerId:req + callnative SetMultiTrainerBattle + .2byte \trainer_a + .4byte \lose_text_a + .2byte \trainer_b + .4byte \lose_text_b + .2byte \partnerId + .endm + + @ facility version of `trainerbattle` macro. Used in Battle Pyramid and Trainer Hill + .macro facilitytrainerbattle facility:req + callnative FacilityTrainerBattle + .byte \facility + .endm + + @ immediately starts a battle of the given facility + .macro dofacilitytrainerbattle facility:req + callnative DoFacilityTrainerBattle + .byte \facility + .endm + + .macro ingame_trade tradeId:req wantTradeMsg:req, declineTradeJump:req, wrongMonJump:req, tradeCompleteMsg:req + setvar VAR_0x8005, \tradeId + specialvar VAR_0x8009, GetInGameTradeSpeciesInfo + msgbox \wantTradeMsg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, \declineTradeJump + chooseboxmon SELECT_PC_MON_TRADE + waitstate + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, \declineTradeJump + specialvar VAR_0x800B, GetTradeSpecies + goto_if_ne VAR_0x800B, VAR_0x8009, \wrongMonJump + special CreateInGameTradePokemon + special DoInGameTradeScene + waitstate + msgbox \tradeCompleteMsg, MSGBOX_DEFAULT + .endm + + .macro move_tutor moveId:req, wantTeachingMsg:req, monSelectMsg:req, declinedJmp:req, taughtJmp:req, flagId=0 + .if \flagId + goto_if_set \flagId, \taughtJmp + .endif + msgbox \wantTeachingMsg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, \declinedJmp + .if \flagId + call MoveTutor_EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, \declinedJmp + .endif + msgbox \monSelectMsg, MSGBOX_DEFAULT + setvar VAR_0x8005, \moveId + call MoveTutor_EventScript_OpenBox + goto_if_eq VAR_RESULT, FALSE, \declinedJmp + .if \flagId + setflag \flagId + .endif + goto \taughtJmp + .endm + + .macro chooseboxmon selectionType=SELECT_PC_MON_NORMAL + callnative ChooseBoxMon + .byte \selectionType + .endm + @ Follower NPCs @ Sets an existing NPC up to follow the player. @@ -2617,7 +2715,7 @@ .2byte \battlePartner .4byte \script updatefollowingmon - 1: + 1: .else .error "setfollowernpc unavailable with FNPC_ENABLE_NPC_FOLLOWERS defined as FALSE" .endif @@ -2710,3 +2808,49 @@ callnative ScrCmd_istmrelearneractive, requests_effects=1 .4byte \destination .endm + + @ Sets a starting status for the next battle. Can be stacked. + .macro setstartingstatus status:req + callnative ScrCmd_setstartingstatus + .byte \status + .endm + +@ FRLG + + + @ Prints the provided message after playing the fanfare music (can only be MUS_LEVEL_UP or MUS_RG_OBTAIN_KEY_ITEM). + @ It then prints the message shown by using putitemaway. + .macro msgreceiveditem msg:req, item:req, amount=1, fanfare=MUS_LEVEL_UP + loadword 0, \msg + setorcopyvar VAR_0x8000, \item + setorcopyvar VAR_0x8001, \amount + setorcopyvar VAR_0x8002, \fanfare + callstd STD_RECEIVED_ITEM + .endm + + @ Adds the specified item to the bag, then prints a message with fanfare. See description of msgreceiveditem. + .macro giveitem_msg msg:req, item:req, amount=1, fanfare=MUS_LEVEL_UP + additem \item, \amount + msgreceiveditem \msg, \item, \amount, \fanfare + .endm + + @ Depends on the provided function. With the default argument, unlocks the specified entry in the Fame Checker. + .macro famechecker person:req, index:req, function=SetFlavorTextFlagFromSpecialVars + setvar VAR_0x8004, \person + setvar VAR_0x8005, \index + special \function + .endm + + @ Sets the 'defeated' flag for all trainers in the specified gym. + .macro set_gym_trainers_frlg gym:req + setvar VAR_0x8008, \gym + call Common_EventScript_SetGymTrainers_Frlg + .endm + + @ Prints a braille message, then waits for users input. + .macro braillemessage_wait text:req + setvar VAR_0x8006, 0 + braillemessage \text + getbraillestringwidth \text + call EventScript_BrailleCursorWaitButton + .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 04a749026a7b..204055335566 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -46,12 +46,10 @@ .endm @ Defines an object event template for map data, to be used by a clone object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h - @ NOTE: The handling for this type of event does not exist in Emerald by default; it is exclusive to FRLG. .macro clone_event index:req, gfx:req, x:req, y:req, target_local_id:req, target_map_id:req .byte \index - .byte \gfx + .2byte \gfx .byte OBJ_KIND_CLONE - .space 1 @ Padding .2byte \x, \y .byte \target_local_id .space 3 @ Padding @@ -91,17 +89,12 @@ @ 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 + .macro bg_event x:req, y:req, elevation:req, kind:req, arg6:req .2byte \x, \y .byte \elevation .byte \kind .space 2 @ Padding - .if \kind != BG_EVENT_HIDDEN_ITEM - .4byte \arg6 - .else - .2byte \arg6 - .2byte \arg7 - .endif + .4byte \arg6 inc _num_signs .endm @@ -111,11 +104,17 @@ .endm @ Defines a background hidden item event for map data - .macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req + .macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req, quantity=1, underfoot=FALSE .if \flag < FLAG_HIDDEN_ITEMS_START .error "Hidden Item flag \flag is too small. Must be >= FLAG_HIDDEN_ITEMS_START." .endif - bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START) + .if \item >= (1 << 12) + .error "quantity \quantity too large" + .endif + .if \quantity >= (1 << 7) + .error "quantity \quantity too large" + .endif + bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item | (((\flag) - FLAG_HIDDEN_ITEMS_START) << 11)| (\quantity << 24) | (\underfoot << 31) .endm @ Defines a background secret base event for map data diff --git a/asm/macros/trainer_tower.inc b/asm/macros/trainer_tower.inc new file mode 100644 index 000000000000..94d9efe77565 --- /dev/null +++ b/asm/macros/trainer_tower.inc @@ -0,0 +1,133 @@ + @ Sets NPC gfx and the floor layout depending on current challenge and floor + .macro ttower_initfloor + setvar VAR_0x8004, TRAINER_TOWER_FUNC_INIT_FLOOR + special CallTrainerTowerFunc + .endm + + @ Buffers the opponents battle speech to gStringVar4. speech is any TRAINER_TOWER_TEXT_*. + .macro ttower_getspeech speech:req, trainer=0xFF + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_SPEECH + setvar VAR_0x8005, \speech + .if \trainer >= VARS_START && \trainer != 0xFF + copyvar VAR_0x8006, \trainer + .elseif \trainer != 0xFF + setvar VAR_0x8006, \trainer + .endif + special CallTrainerTowerFunc + .endm + + @ Starts a trainer tower battle. VAR_0x8005 is unused + .macro ttower_dobattle + setvar VAR_0x8004, TRAINER_TOWER_FUNC_DO_BATTLE + setvar VAR_0x8005, 0 + special CallTrainerTowerFunc + .endm + + @ Returns the current challenge type (CHALLENGE_TYPE_*). Mixed challenges use different types for each floor. If VAR_0x8005 is != FALSE, does nothing + .macro ttower_getchallengetype + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_CHALLENGE_TYPE + setvar VAR_0x8005, FALSE + special CallTrainerTowerFunc + .endm + + @ Adds 1 to the number of floors cleared (all trainers on floor defeated) + .macro ttower_clearedfloor + setvar VAR_0x8004, TRAINER_TOWER_FUNC_CLEARED_FLOOR + special CallTrainerTowerFunc + .endm + + @ TRUE if the trainers on this floor were already beaten, FALSE otherwise + .macro ttower_isfloorcleared + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_FLOOR_CLEARED + special CallTrainerTowerFunc + .endm + + @ Initializes the Trainer Tower challenge and starts the timer + .macro ttower_startchallenge + setvar VAR_0x8004, TRAINER_TOWER_FUNC_START_CHALLENGE + special CallTrainerTowerFunc + .endm + + @ 0 if not spoken to yet, 1 if spoken to but not received prize, 2 if received prize + .macro ttower_getownerstate + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_OWNER_STATE + special CallTrainerTowerFunc + .endm + + @ Tries to give prize. 0 if given successfully, 1 if no room for prize, 2 if giving prize should be skipped + .macro ttower_giveprize + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GIVE_PRIZE + special CallTrainerTowerFunc + .endm + + @ Checks the final challenge time. 0 if new record, 1 if not, 2 if time has already been checked + .macro ttower_checkfinaltime + setvar VAR_0x8004, TRAINER_TOWER_FUNC_CHECK_FINAL_TIME + special CallTrainerTowerFunc + .endm + + @ Resumes the challenge timer (or starts, if the timer is 0) + .macro ttower_resumetimer + setvar VAR_0x8004, TRAINER_TOWER_FUNC_RESUME_TIMER + special CallTrainerTowerFunc + .endm + + @ Sets that the player lost the challenge + .macro ttower_setlost + setvar VAR_0x8004, TRAINER_TOWER_FUNC_SET_LOST + special CallTrainerTowerFunc + .endm + + @ Returns the status of the current Trainer Tower challenge (CHALLENGE_STATUS_*) + .macro ttower_getchallengestatus + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_CHALLENGE_STATUS + special CallTrainerTowerFunc + .endm + + @ Buffers the current challenge time (min in gStringVar1, sec in gStringVar2, fraction sec in gStringVar3) + .macro ttower_gettime + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_TIME + special CallTrainerTowerFunc + .endm + + @ Unused. Displays Trainer Tower results. Handled by ShowBattleRecords instead + .macro ttower_showresults + setvar VAR_0x8004, TRAINER_TOWER_FUNC_SHOW_RESULTS + special CallTrainerTowerFunc + .endm + + @ Unused. See above + .macro ttower_closeresults + setvar VAR_0x8004, TRAINER_TOWER_FUNC_CLOSE_RESULTS + special CallTrainerTowerFunc + .endm + + @ Returns the eligibility of the players party for a double battle (using GetMonsStateToDoubles) + .macro ttower_checkdoubles + setvar VAR_0x8004, TRAINER_TOWER_FUNC_CHECK_DOUBLES + special CallTrainerTowerFunc + .endm + + @ For the unused E-Reader challenges, gets the number of floors used. Otherwise returns FALSE (all floors used) + .macro ttower_getnumfloors + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_NUM_FLOORS + special CallTrainerTowerFunc + .endm + + @ Dummied, always returns FALSE + .macro ttower_shouldexit + setvar VAR_0x8004, TRAINER_TOWER_FUNC_SHOULD_WARP_TO_COUNTER + special CallTrainerTowerFunc + .endm + + @ Plays the encounter music for the trainer number in VAR_TEMP_1 + .macro ttower_encountermusic + setvar VAR_0x8004, TRAINER_TOWER_FUNC_ENCOUNTER_MUSIC + special CallTrainerTowerFunc + .endm + + @ TRUE if the player reached the Battle Tower owner, FALSE otherwise + .macro ttower_getbeatchallenge + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_BEAT_CHALLENGE + special CallTrainerTowerFunc + .endm diff --git a/charmap.txt b/charmap.txt index dd2123f8f93b..f7591c29d351 100644 --- a/charmap.txt +++ b/charmap.txt @@ -350,6 +350,7 @@ ARCHIE = FD 0A MAXIE = FD 0B KYOGRE = FD 0C GROUDON = FD 0D +REGION = FD 0E @ battle string placeholders @@ -435,10 +436,10 @@ DYNAMIC = 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 +COLOR = FC 01 @ use a color listed below right after. sets base text color +HIGHLIGHT = FC 02 @ same as fc 01. sets background and accent color +SHADOW = FC 03 @ same as fc 01. sets shadow color +COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 colors PALETTE = FC 05 @ used in credits FONT = FC 06 @ Given a font id, or use font constants below instead RESET_FONT = FC 07 @@ -460,6 +461,9 @@ ENG = FC 16 PAUSE_MUSIC = FC 17 RESUME_MUSIC = FC 18 SPEAKER = FC 19 +ACCENT = FC 1A @ same as FC 01. sets accent color +BACKGROUND = FC 1B @ same as FC 01. sets background color +TEXT_COLORS = FC 1C @ takes 3 colors: text base color, shadow and accent @ Speaker names, the order must be matching with include/constants/speaker_names.h NAME_NONE = 00 @@ -479,6 +483,9 @@ FONT_SMALL_NARROWER = FC 06 0B FONT_SHORT_NARROW = FC 06 0C FONT_SHORT_NARROWER = FC 06 0D +FONT_MALE = FC 06 01 +FONT_FEMALE = FC 06 01 + @ colors TRANSPARENT = 00 diff --git a/constants/constants.inc b/constants/constants.inc index 1f8f1cda2e22..e7561f429342 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -1,3 +1,2 @@ .include "constants/gba_constants.inc" .include "constants/global.inc" - .include "constants/tms_hms.inc" diff --git a/constants/tms_hms.inc b/constants/tms_hms.inc deleted file mode 100644 index 4ce6d903285c..000000000000 --- a/constants/tms_hms.inc +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef GUARD_CONSTANTS_TMS_HMS_INC -#define GUARD_CONSTANTS_TMS_HMS_INC - -#include "constants/tms_hms.h" - -/* Expands to: -* enum_start ITEM_TM01 -* enum ITEM_TM_FOCUS_PUNCH -* ... -* enum_start ITEM_HM01 -* enum ITEM_HM_CUT -* ... */ -#define EQUIV_TM(id) enum ITEM_TM_ ## id; -#define EQUIV_HM(id) enum ITEM_HM_ ## id; - enum_start ITEM_TM01 -FOREACH_TM(EQUIV_TM) - enum_start ITEM_HM01 -FOREACH_HM(EQUIV_HM) -#undef EQUIV_TM -#undef EQUIV_HM - -#endif @ GUARD_CONSTANTS_TMS_HMS_INC diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 78f45c1c6177..e2cdc9b158a3 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -14,6 +14,112 @@ .section script_data, "aw", %progbits +gBattleAnimGeneral_MonScared:: + createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 1 + waitforvisualfinish + loadspritegfx ANIM_TAG_SWEAT_BEAD + simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=2, initial_blend_y=0, target_blend_y=10, color=RGB(0, 23, 25) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 + delay 20 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 + waitforvisualfinish + simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=2, initial_blend_y=10, target_blend_y=0, color=RGB(0, 23, 25) + waitforvisualfinish + end + +gBattleAnimGeneral_GhostGetOut:: + createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 1 + waitforvisualfinish + fadetobg BG_GHOST + waitbgfadeout + monbg_static ANIM_ATTACKER + createvisualtask AnimTask_GhostGetOut, 2 + waitbgfadein + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 + waitforvisualfinish + clearmonbg_static ANIM_ATTACKER + delay 1 + loadspritegfx ANIM_TAG_SWEAT_BEAD + simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=-1, initial_blend_y=0, target_blend_y=6, color=RGB(21, 22, 26) + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 + createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 + waitforvisualfinish + simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=-1, initial_blend_y=6, target_blend_y=0, color=RGB(21, 22, 26) + waitforvisualfinish + restorebg + waitbgfadein + end + +gBattleAnimGeneral_SilphScoped:: + monbg ANIM_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 + createvisualtask AnimTask_TransformMon, 3, SPECIES_GFX_CHANGE_GHOST_UNVEIL + waitsound + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end + +gBattleAnimGeneral_SafariRockThrow:: + createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 0 + waitforvisualfinish + loadspritegfx ANIM_TAG_ROCKS + loadspritegfx ANIM_TAG_IMPACT + delay 0 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 + createsprite sSafariRockSpriteTemplate, ANIM_TARGET, 3, -17, 14, 8, 0 + delay 50 + monbg ANIM_DEF_PARTNER + setalpha 12, 8 + delay 0 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + create_basic_hitsplat_sprite ANIM_TARGET, 2, x=-4, y=-20, relative_to=1, animation=2 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + waitforvisualfinish + end + +gBattleAnimGeneral_SafariReaction:: + createvisualtask AnimTask_SafariGetReaction, 2 + waitforvisualfinish + jumpreteq B_MSG_MON_WATCHING, SafariReaction_WatchingCarefully + jumpreteq B_MSG_MON_ANGRY, SafariReaction_Angry + jumpreteq B_MSG_MON_EATING, SafariReaction_Eating + end + +SafariReaction_WatchingCarefully: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2 + waitforvisualfinish + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2 + end + +SafariReaction_Angry: + loadspritegfx ANIM_TAG_ANGER + createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -20 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET + waitforvisualfinish + delay 12 + createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -20 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET + end + +SafariReaction_Eating: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 + waitforvisualfinish + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 + end + @@@@@@@@@@@@@@@@@@@@@@@ GEN 4 @@@@@@@@@@@@@@@@@@@@@@@ gBattleAnimMove_Roost:: loadspritegfx ANIM_TAG_WHITE_FEATHER @@ -1042,14 +1148,14 @@ gBattleAnimGeneral_AquaRingHeal:: createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, 0 setalpha 8, 8 playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0, FALSE delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0, FALSE delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0, FALSE waitforvisualfinish playsewithpan SE_SHINY, SOUND_PAN_ATTACKER - blend_color_cycle selector=F_PAL_ATK_SIDE, delay=0, num_blends=2, initial_blend_y=0, target_blend_y=10, color=RGB_WHITE + blend_color_cycle selector=F_PAL_ATTACKER, delay=0, num_blends=2, initial_blend_y=0, target_blend_y=10, color=RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -1830,7 +1936,7 @@ SetGigaImpactPlayerBG: fadetobg BG_GIGA_IMPACT_PLAYER goto GigaImpactContinuity SetGigaImpactContestsBG: - fadetobg BG_GIGA_IMPACT_CONTEST + fadetobg BG_GIGA_IMPACT_CONTESTS goto GigaImpactContinuity GigaImpactContinuity: playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER @@ -3585,7 +3691,7 @@ gBattleAnimMove_SpacialRend:: delay 2 createsprite gSpacialRendBladesTemplate, ANIM_ATTACKER, 3, 0, 0, 0x38, 12 waitforvisualfinish - fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT + fadetobgfromset BG_SPACIAL_REND_OPPONENT BG_SPACIAL_REND_PLAYER BG_SPACIAL_REND_OPPONENT waitbgfadein loopsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET, 3, 5 createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, SOUND_PAN_ATTACKER, 0xb0, 0x28 @@ -3678,7 +3784,7 @@ gBattleAnimMove_MagmaStorm:: loopsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET, 5, 8 createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 - blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=11, color=RGB(22, 9, 7) + blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=12, color=RGB(22, 9, 7) call FireSpinEffect call FireSpinEffect call FireSpinEffect @@ -4303,7 +4409,7 @@ FlameBurstSpread: gBattleAnimMove_SludgeWave:: panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 - createvisualtask AnimTask_CreateSurfWave, 2, ANIM_SURF_PAL_SLUDGE_WAVE + create_surf_wave palette=ANIM_SURF_PAL_SLUDGE_WAVE waitforvisualfinish end @@ -11768,20 +11874,9 @@ gBattleAnimMove_PsychicFangs:: monbg ANIM_TARGET call SetPsychicBackground setalpha 12, 8 - choosetwoturnanim PsychicFangsRegular PsychicFangsDestroyWall -PsychicFangsRegular: - playsewithpan SE_M_BITE, SOUND_PAN_TARGET - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0xffe0, animation=0x1, x_velocity=0x333/256, y_velocity=0x333/256, half_duration=0xa - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0x20, animation=0x5, x_velocity=0xfccd/256, y_velocity=0xfccd/256, half_duration=0xa - delay 10 - create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=-8, y=0, relative_to=ANIM_TARGET, animation=1 - createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 - delay 16 - playsewithpan SE_M_BITE, SOUND_PAN_TARGET - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0xffe0, animation=0x7, x_velocity=0xfccd/256, y_velocity=0x333/256, half_duration=0xa - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0x20, animation=0x3, x_velocity=0x333/256, y_velocity=0xfccd/256, half_duration=0xa - delay 10 - create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=8, y=0, relative_to=ANIM_TARGET, animation=1 + choosetwoturnanim PsychicFangsNormal, PsychicFangsShatteredWall +PsychicFangsNormal: + call PsychicFangsCommon createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 PsychicFangsEnd: playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET @@ -11790,28 +11885,28 @@ PsychicFangsEnd: blendoff call UnsetPsychicBg end -PsychicFangsDestroyWall: - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, 0x1, 0x0, 0x0, 0x21, 0xa +PsychicFangsShatteredWall: + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 33, 10 + call PsychicFangsCommon + call BreakScreens + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 + delay 16 + goto PsychicFangsEnd + +PsychicFangsCommon: playsewithpan SE_M_BITE, SOUND_PAN_TARGET - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0xffe0, animation=0x1, x_velocity=0x333/256, y_velocity=0x333/256, half_duration=0xa - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0x20, animation=0x5, x_velocity=0xfccd/256, y_velocity=0xfccd/256, half_duration=0xa + create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=-32, y=-32, animation=1, x_velocity=819/256, y_velocity=819/256, half_duration=10 + create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=32, y=32, animation=5, x_velocity=-819/256, y_velocity=-819/256, half_duration=10 delay 10 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=-8, y=0, relative_to=ANIM_TARGET, animation=1 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 delay 16 playsewithpan SE_M_BITE, SOUND_PAN_TARGET - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0xffe0, animation=0x7, x_velocity=0xfccd/256, y_velocity=0x333/256, half_duration=0xa - create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0x20, animation=0x3, x_velocity=0x333/256, y_velocity=0xfccd/256, half_duration=0xa + create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=32, y=-32, animation=7, x_velocity=-819/256, y_velocity=819/256, half_duration=10 + create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=-32, y=32, animation=3, x_velocity=819/256, y_velocity=-819/256, half_duration=10 delay 10 create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=8, y=0, relative_to=ANIM_TARGET, animation=1 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x0, 0xfff8, 0xfff4 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x1, 0x8, 0xfff4 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x2, 0xfff8, 0xc - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x3, 0x8, 0xc - playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET - createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 - delay 16 - goto PsychicFangsEnd + return gBattleAnimMove_StompingTantrum:: loadspritegfx ANIM_TAG_ROCKS @rock colour @@ -12780,7 +12875,7 @@ gBattleAnimMove_ZippyZap:: gBattleAnimMove_SplishySplash:: loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_CreateSurfWave, 2, ANIM_SURF_PAL_SURF + create_surf_wave palette=ANIM_SURF_PAL_SURF delay 24 panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish @@ -14291,7 +14386,7 @@ gBattleAnimMove_Eternabeam:: createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_HYDRO_PUMP, 0, 12, 12, RGB(31, 4, 10) @Pinkish Red createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ROUND_SHADOW, 0, 13, 13, RGB(31, 4, 10) @Pinkish Red createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_EXPLOSION, 0, 12, 12, RGB(11, 1, 22) - fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT + fadetobgfromset BG_SPACIAL_REND_OPPONENT BG_SPACIAL_REND_PLAYER BG_SPACIAL_REND_OPPONENT playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER invisible ANIM_ATTACKER createsprite gDevastatingDrakeDrakeUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0x04E0, 36, 21, 1, ANIM_ATTACKER @@ -14718,8 +14813,8 @@ gBattleAnimMove_RisingVoltage:: loadspritegfx ANIM_TAG_LIGHTNING monbg ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_GetBattleEnvironment, 0x5, - jumpargeq 0x0, BG_ELECTRIC_TERRAIN, ANIM_RISING_VOLTAGE_STRONGER + createvisualtask AnimTask_GetFieldTerrain, 0x5, + jumpargeq 0, STATUS_FIELD_ELECTRIC_TERRAIN, ANIM_RISING_VOLTAGE_STRONGER ANIM_RISING_VOLTAGE_NORMAL: createvisualtask AnimTask_BlendBattleAnimPal, 2, F_PAL_BG, 1, 0, 4, RGB_BLACK @;To black waitforvisualfinish @@ -17071,33 +17166,13 @@ gBattleAnimMove_RagingBull:: loadspritegfx ANIM_TAG_TORN_METAL choosetwoturnanim RagingBullNormal, RagingBullShatteredWall RagingBullNormal: - monbg ANIM_TARGET - setalpha 12, 8 - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 - loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 - createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28 - delay 20 - createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 - waitforvisualfinish - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 - waitforvisualfinish - playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER + call RagingBullCommon1 call SetImpactBackground createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4 delay 3 waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET - create_basic_hitsplat_sprite ANIM_TARGET, 4, x=-10, y=0, relative_to=ANIM_TARGET, animation=0 - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -32, 0, 0, 3 - waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0 - createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 - waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 - waitforvisualfinish + call RagingBullCommon2 +RagingBullEnd: createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 @@ -17107,6 +17182,17 @@ RagingBullNormal: clearmonbg ANIM_TARGET end RagingBullShatteredWall: + call RagingBullCommon1 + call SetImpactBackground + createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4 + delay 3 + waitforvisualfinish + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + call RagingBullCommon2 + call BreakScreens + goto RagingBullEnd + +RagingBullCommon1: monbg ANIM_TARGET setalpha 12, 8 createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 @@ -17118,11 +17204,9 @@ RagingBullShatteredWall: createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER - call SetImpactBackground - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4 - delay 3 - waitforvisualfinish - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + return + +RagingBullCommon2: playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET create_basic_hitsplat_sprite ANIM_TARGET, 4, x=-10, y=0, relative_to=ANIM_TARGET, animation=0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -32, 0, 0, 3 @@ -17135,19 +17219,7 @@ RagingBullShatteredWall: createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 waitforvisualfinish - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 - playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 - delay 3 - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 - waitforvisualfinish - restorebg - waitbgfadein - clearmonbg ANIM_TARGET - end + return gBattleAnimMove_UpperHand:: loadspritegfx ANIM_TAG_SHADOW_BALL @@ -18335,7 +18407,7 @@ FickleBeamRegular: end FickleBeamIntense: loadspritegfx ANIM_TAG_ORBS - fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT + fadetobgfromset BG_SPACIAL_REND_OPPONENT BG_SPACIAL_REND_PLAYER BG_SPACIAL_REND_OPPONENT waitbgfadein delay 10 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER @@ -22470,11 +22542,11 @@ gBattleAnimMove_Safeguard:: monbg ANIM_ATK_PARTNER setalpha 8, 8 playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, TRUE delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, TRUE delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, TRUE waitforvisualfinish playsewithpan SE_SHINY, SOUND_PAN_ATTACKER blend_color_cycle selector=F_PAL_ATK_SIDE, delay=0, num_blends=2, initial_blend_y=0, target_blend_y=10, color=RGB_WHITE @@ -24376,36 +24448,37 @@ gBattleAnimMove_BrickBreak:: loadspritegfx ANIM_TAG_TORN_METAL choosetwoturnanim BrickBreakNormal, BrickBreakShatteredWall BrickBreakNormal: - monbg ANIM_TARGET - setalpha 12, 8 - createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 - delay 4 - delay 1 - create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=-18, y=-18, relative_to=ANIM_TARGET, animation=1 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - delay 20 - createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 - delay 5 - create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=18, y=18, relative_to=ANIM_TARGET, animation=1 - playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET - delay 20 - createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 - simple_palette_blend selector=F_PAL_BG, delay=2, initial_blend_y=0, target_blend_y=6, color=RGB_BLACK - delay 37 - create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=0, y=0, relative_to=ANIM_TARGET, animation=1 - createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET - waitforvisualfinish + call BrickBreakCommon1 + call BrickBreakCommon2 +BrickBreakEnd: simple_palette_blend selector=F_PAL_BG, delay=2, initial_blend_y=6, target_blend_y=0, color=RGB_BLACK waitforvisualfinish clearmonbg ANIM_TARGET end BrickBreakShatteredWall: + call BrickBreakCommon1 + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + call BrickBreakCommon2 + call BreakScreens + waitforvisualfinish + goto BrickBreakEnd + +BrickBreakCommon1: monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 + return + +BreakScreens: + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET + return + +BrickBreakCommon2: delay 1 create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=-18, y=-18, relative_to=ANIM_TARGET, animation=1 playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET @@ -24422,16 +24495,7 @@ BrickBreakShatteredWall: createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 - playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET - waitforvisualfinish - simple_palette_blend selector=F_PAL_BG, delay=2, initial_blend_y=6, target_blend_y=0, color=RGB_BLACK - waitforvisualfinish - clearmonbg ANIM_TARGET - end + return gBattleAnimMove_Yawn:: loadspritegfx ANIM_TAG_PINK_CLOUD @@ -25680,7 +25744,7 @@ SnoreEffect: playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 - shake_mon_or_platform velocity=6, shake_timer=1, shake_duration=14, type=0, battler_selector=0 + shake_mon_or_platform velocity=6, shake_timer=1, shake_duration=14, type=0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, -42, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 42, -38, 24, 0, 0 @@ -26953,7 +27017,7 @@ gBattleAnimMove_Crabhammer:: end gBattleAnimMove_Surf:: - createvisualtask AnimTask_CreateSurfWave, 2, ANIM_SURF_PAL_SURF + create_surf_wave palette=ANIM_SURF_PAL_SURF delay 24 panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish @@ -27521,7 +27585,7 @@ gBattleAnimMove_RazorLeaf:: end gBattleAnimMove_NaturePower:: - @ No actual animation, uses the animation of a move from gBattleEnvironmentInfo.naturePower instead + @ No actual animation, uses the animation of a move from src/data/battle_environment.h instead gBattleAnimMove_AncientPower:: loadspritegfx ANIM_TAG_ROCKS @@ -28870,8 +28934,9 @@ gBattleAnimMove_SpitUp:: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 192, 12 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 224, 12 delay 5 - jumpifmoveturn 2, SpitUpStrong - jumpifmoveturn 3, SpitUpStrongest + createvisualtask AnimTask_GetStockpileCounter, 2 + jumpreteq 2, SpitUpStrong + jumpreteq 3, SpitUpStrongest SpitUpContinue: delay 5 createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 @@ -29255,7 +29320,7 @@ ArmThrustLeft: gBattleAnimMove_MuddyWater:: panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 - createvisualtask AnimTask_CreateSurfWave, 2, ANIM_SURF_PAL_MUDDY_WATER + create_surf_wave palette=ANIM_SURF_PAL_MUDDY_WATER waitforvisualfinish end @@ -30304,49 +30369,7 @@ gBattleAnimMove_SkyUppercut:: end gBattleAnimMove_SecretPower:: - createvisualtask AnimTask_GetFieldTerrain, 5 - jumpargeq 0, STATUS_FIELD_MISTY_TERRAIN, gBattleAnimMove_FairyWind - jumpargeq 0, STATUS_FIELD_GRASSY_TERRAIN, gBattleAnimMove_NeedleArm - jumpargeq 0, STATUS_FIELD_ELECTRIC_TERRAIN, gBattleAnimMove_ThunderShock - jumpargeq 0, STATUS_FIELD_PSYCHIC_TERRAIN, gBattleAnimMove_Confusion - createvisualtask AnimTask_GetBattleEnvironment, 5 - jumpargeq 0, BATTLE_ENVIRONMENT_GRASS, gBattleAnimMove_NeedleArm - jumpargeq 0, BATTLE_ENVIRONMENT_LONG_GRASS, gBattleAnimMove_MagicalLeaf - jumpargeq 0, BATTLE_ENVIRONMENT_SAND, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_ENVIRONMENT_UNDERWATER, gBattleAnimMove_Waterfall - jumpargeq 0, BATTLE_ENVIRONMENT_WATER, gBattleAnimMove_Surf - jumpargeq 0, BATTLE_ENVIRONMENT_POND, gBattleAnimMove_BubbleBeam - jumpargeq 0, BATTLE_ENVIRONMENT_MOUNTAIN, gBattleAnimMove_RockThrow - jumpargeq 0, BATTLE_ENVIRONMENT_CAVE, gBattleAnimMove_Bite - jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength - jumpargeq 0, BATTLE_ENVIRONMENT_SOARING, gBattleAnimMove_Gust - jumpargeq 0, BATTLE_ENVIRONMENT_SKY_PILLAR, gBattleAnimMove_Gust - jumpargeq 0, BATTLE_ENVIRONMENT_BURIAL_GROUND, gBattleAnimMove_ShadowSneak - jumpargeq 0, BATTLE_ENVIRONMENT_PUDDLE, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_ENVIRONMENT_MARSH, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_ENVIRONMENT_SWAMP, gBattleAnimMove_MudShot - jumpargeq 0, BATTLE_ENVIRONMENT_ICE, gBattleAnimMove_IceShard - jumpargeq 0, BATTLE_ENVIRONMENT_VOLCANO, gBattleAnimMove_Incinerate - jumpargeq 0, BATTLE_ENVIRONMENT_DISTORTION_WORLD, gBattleAnimMove_Pound - jumpargeq 0, BATTLE_ENVIRONMENT_SPACE, gBattleAnimMove_Swift - jumpargeq 0, BATTLE_ENVIRONMENT_ULTRA_SPACE, gBattleAnimMove_Psywave -.if B_SECRET_POWER_ANIMATION >= GEN_7 - jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_IceShard - jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_SpitUp - goto gBattleAnimMove_SpitUp -.elseif B_SECRET_POWER_ANIMATION >= GEN_6 - jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam - goto gBattleAnimMove_BodySlam -.elseif B_SECRET_POWER_ANIMATION >= GEN_4 - jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam - goto gBattleAnimMove_MudSlap -.else - jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche - jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength - goto gBattleAnimMove_Slam -.endif + @ No actual animation, uses the animation of a move from src/data/battle_environment.h instead gBattleAnimMove_Twister:: loadspritegfx ANIM_TAG_LEAF @@ -31114,7 +31137,7 @@ Status_MagmaStorm: loopsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET, 5, 8 createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 - blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=11, color=RGB(22, 9, 7) + blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=12, color=RGB(22, 9, 7) call FireSpinEffect call FireSpinEffect call FireSpinEffect @@ -31459,6 +31482,8 @@ gBattleAnimGeneral_SimpleHeal:: gBattleAnimGeneral_IllusionOff:: monbg ANIM_TARGET + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, SPECIES_GFX_CHANGE_ILLUSION_OFF waitforvisualfinish clearmonbg ANIM_TARGET @@ -31466,11 +31491,27 @@ gBattleAnimGeneral_IllusionOff:: gBattleAnimGeneral_FormChange:: monbg ANIM_ATTACKER + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, SPECIES_GFX_CHANGE_FORM_CHANGE waitforvisualfinish clearmonbg ANIM_ATTACKER end +gBattleAnimGeneral_FormChangeDisguise:: + playsewithpan SE_CONTEST_CONDITION_LOSE, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 + waitforvisualfinish + playsewithpan SE_CONTEST_CURTAIN_FALL, SOUND_PAN_TARGET + goto gBattleAnimGeneral_FormChangeInstant + +gBattleAnimGeneral_FormChangeInstant:: + monbg ANIM_ATTACKER + createvisualtask AnimTask_TransformMon, 2, SPECIES_GFX_CHANGE_FORM_CHANGE_INSTANT + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end + gBattleAnimGeneral_SlideOffScreen:: createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 3 waitforvisualfinish @@ -31783,7 +31824,7 @@ gBattleAnimGeneral_PowerConstruct:: loadspritegfx ANIM_TAG_ZYGARDE_HEXES @hexagon loadspritegfx ANIM_TAG_VERTICAL_HEX @arrow loadspritegfx ANIM_TAG_FLYING_DIRT - createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SNORE_Z, 0, 10, 10, RGB(8, 20, 26) @Green + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SNORE_Z, 0, 10, 10, RGB(8, 14, 1) @Green monbg ANIM_ATTACKER setalpha 12, 8 loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3 @@ -32452,7 +32493,7 @@ FinishAcidDownpour: createsprite gAcidDownpourReversalSpriteTemplate, ANIM_ATTACKER, 2, 0x1a, 0xd2 delay 32 panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 - createvisualtask AnimTask_CreateSurfWave, 0x2, ANIM_SURF_PAL_SLUDGE_WAVE + create_surf_wave priority=0x2, palette=ANIM_SURF_PAL_SLUDGE_WAVE createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, (RGB(28, 3, 22) | RGB_ALPHA) createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 50, 1 call AcidDownpourFlare @@ -33347,7 +33388,7 @@ gBattleAnimMove_HydroVortex:: loadspritegfx ANIM_TAG_WATER_ORB @whirlpool createvisualtask AnimTask_AllBattlersInvisibleExceptAttackerAndTarget, 0xA waitforvisualfinish - createvisualtask AnimTask_CreateSurfWave, 0x2, 0x0 + create_surf_wave priority=0x2, palette=0x0 delay 24 panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 waitforvisualfinish @@ -33883,10 +33924,10 @@ ShatteredPsycheFinish: restorebg createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1 createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x0, 0x0, 0x0 @ -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x1, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x2, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x3, 0x0, 0x0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 0 @ -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 1, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 2, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 3, 0, 0 waitbgfadeout createvisualtask AnimTask_AllBattlersVisible, 0xA waitforvisualfinish @@ -34064,10 +34105,10 @@ SubzeroSlammerFinish: loadspritegfx ANIM_TAG_TORN_METAL playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 3 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x0, 0x0, 0x0 @ -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x1, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x2, 0x0, 0x0 - createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x3, 0x0, 0x0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 0 @ -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 1, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 2, 0, 0 + createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 3, 0, 0 createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 8, 28 call SubzeroSlammerExplosion call SubzeroSlammerExplosion @@ -34401,7 +34442,7 @@ gBattleAnimMove_BlackHoleEclipse:: delay 3 createsprite gBlackHoleEclipseWispSpriteTemplate, ANIM_ATTACKER, 4, 0x0, 0x10, 0x3 waitforvisualfinish - fadetobg BG_BLACKHOLE_ECLIPSE + fadetobg BG_BLACK_HOLE_ECLIPSE playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET loadspritegfx ANIM_TAG_VERTICAL_HEX @red createsprite gBlackHoleEclipseRedRingSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x100, 0x0 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 7abeade1dae4..2000ef4e8498 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -4,6 +4,7 @@ #include "constants/battle.h" #include "constants/pokemon.h" #include "constants/battle_arena.h" +#include "constants/battle_move_resolution.h" #include "constants/battle_script_commands.h" #include "constants/battle_anim.h" #include "constants/battle_string_ids.h" @@ -21,16 +22,17 @@ .section script_data, "aw", %progbits -BattleScript_EffectFickleBeam:: - attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - ficklebeamdamagecalculation - goto BattleScript_HitFromCritCalc -BattleScript_FickleBeamDoubled:: +BattleScript_FickleBeamMessage:: pause B_WAIT_TIME_SHORTEST printstring STRINGID_FICKLEBEAMDOUBLED waitmessage B_WAIT_TIME_LONG - goto BattleScript_HitFromCritCalc + return + +BattleScript_MagnitudeMessage:: + pause B_WAIT_TIME_SHORT + printstring STRINGID_MAGNITUDESTRENGTH + waitmessage B_WAIT_TIME_LONG + return BattleScript_Terastallization:: @ TODO: no string prints in S/V, but right now this helps with clarity @@ -47,14 +49,13 @@ BattleScript_Terastallization:: BattleScript_TeraFormChange:: @ TODO: no string prints in S/V, but right now this helps with clarity printstring STRINGID_PKMNSTORINGENERGY - handleformchange BS_ATTACKER, 0 + handleformchange BS_ATTACKER, 0, FALSE @ Prevent species name from overriting type name handleformchange BS_ATTACKER, 1 playanimation BS_ATTACKER, B_ANIM_TERA_CHARGE waitanimation applyterastallization playanimation BS_ATTACKER, B_ANIM_TERA_ACTIVATE waitanimation - handleformchange BS_ATTACKER, 2 printstring STRINGID_PKMNTERASTALLIZEDINTO waitmessage B_WAIT_TIME_LONG switchinabilities BS_ATTACKER @@ -79,7 +80,7 @@ BattleScript_LowerAtkSpAtkEnd: BattleScript_EffectSpicyExtract:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_SpicyExtract_CheckShouldSkipAttackAnim jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_SpicyExtract_CheckShouldSkipAttackAnim goto BattleScript_ButItFailed @@ -143,6 +144,7 @@ BattleScript_EffectShedTail:: switchinanim BS_ATTACKER, FALSE, TRUE waitstate switchineffects BS_ATTACKER + switchinevents end BattleScript_EffectPsychicNoise:: @@ -204,12 +206,6 @@ BattleScript_EffectDoodleMoveEnd: restoreattacker goto BattleScript_MoveEnd -BattleScript_EffectGlaiveRush:: - call BattleScript_EffectHit_Ret - jumpifmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TryFaintMon - setvolatile BS_ATTACKER, VOLATILE_GLAIVE_RUSH, 2 - goto BattleScript_TryFaintMon - BattleScript_SyrupBombActivates:: printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP waitmessage B_WAIT_TIME_LONG @@ -225,49 +221,6 @@ BattleScript_SyrupBombEndTurn:: BattleScript_SyrupBombTurnDmgEnd: end2 -BattleScript_EffectChillyReception:: - printstring STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE - waitmessage B_WAIT_TIME_LONG - attackcanceler - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalSun - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_EffectChillyReceptionBlockedByStrongWinds - call BattleScript_EffectChillyReceptionPlayAnimation - #if B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_HAIL - setfieldweather BATTLE_WEATHER_HAIL - #else - setfieldweather BATTLE_WEATHER_SNOW - #endif - call BattleScript_MoveWeatherChangeRet - goto BattleScript_MoveSwitch -BattleScript_EffectChillyReceptionPlayAnimation: - attackanimation - waitanimation - return -BattleScript_EffectChillyReceptionBlockedByPrimalSun: - call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed - call BattleScript_ExtremelyHarshSunlightWasNotLessenedRet - goto BattleScript_MoveSwitch -BattleScript_EffectChillyReceptionBlockedByPrimalRain: - call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed - call BattleScript_NoReliefFromHeavyRainRet - goto BattleScript_MoveSwitch -BattleScript_EffectChillyReceptionBlockedByStrongWinds: - call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed - call BattleScript_MysteriousAirCurrentBlowsOnRet - goto BattleScript_MoveSwitch -BattleScript_EffectChillyReceptionTrySwitchWeatherFailed: - jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed - jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed - call BattleScript_EffectChillyReceptionPlayAnimation - return - -BattleScript_CheckPrimalWeather: - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn - return - BattleScript_MoveSwitchPursuitEnd: call BattleScript_MoveSwitchPursuitRet end @@ -280,7 +233,7 @@ BattleScript_MoveSwitchPursuitRet: jumpifnopursuitswitchdmg BattleScript_MoveSwitchOpenPartyScreen return -BattleScript_MoveSwitch: +BattleScript_MoveSwitch:: jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_MoveSwitchEnd jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_MoveSwitchEnd printstring STRINGID_PKMNWENTBACK @@ -290,6 +243,7 @@ BattleScript_MoveSwitchOpenPartyScreen:: switchinanim BS_ATTACKER, FALSE, FALSE waitstate switchineffects BS_ATTACKER + switchinevents BattleScript_MoveSwitchEnd: end @@ -371,7 +325,6 @@ BattleScript_EffectHit_Pledge:: printstring STRINGID_THETWOMOVESBECOMEONE waitmessage B_WAIT_TIME_LONG call BattleScript_EffectHit_RetFromAccCheck - tryfaintmon BS_TARGET return BattleScript_MoveEffectSaltCure:: @@ -392,9 +345,9 @@ BattleScript_SaltCureExtraDamage:: BattleScript_EffectCorrosiveGas:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifsubstituteblocks BattleScript_CorrosiveGasFail - jumpifcantloseitem BS_TARGET, BattleScript_CorrosiveGasFail + jumpifcantloseitem BattleScript_CorrosiveGasFail attackanimation waitanimation jumpifability BS_TARGET, ABILITY_STICKY_HOLD, BattleScript_StickyHoldActivates @@ -440,121 +393,41 @@ BattleScript_EffectRevivalBlessingSendOut: switchinanim BS_SCRIPTING, FALSE, FALSE waitstate switchineffects BS_SCRIPTING + switchinevents goto BattleScript_MoveEnd BattleScript_StealthRockActivates:: - setstealthrock BattleScript_MoveEnd + setstealthrock BattleScript_StealthRockActivatesRet printfromtable gDmgHazardsStringIds waitmessage B_WAIT_TIME_LONG +BattleScript_StealthRockActivatesRet: return BattleScript_SpikesActivates:: - trysetspikes BattleScript_MoveEnd + trysetspikes BattleScript_SpikesActivatesRet printfromtable gDmgHazardsStringIds waitmessage B_WAIT_TIME_LONG +BattleScript_SpikesActivatesRet: return -BattleScript_EffectAttackUpUserAlly:: - jumpifnoally BS_ATTACKER, BattleScript_EffectAttackUp - attackcanceler - jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_EffectAttackUpUserAlly_Works - jumpifstat BS_ATTACKER_PARTNER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_ButItFailed -BattleScript_EffectAttackUpUserAlly_Works: - attackanimation - waitanimation - setstatchanger STAT_ATK, 1, FALSE - statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_TryAlly - printfromtable gStatUpStringIds - waitmessage B_WAIT_TIME_LONG -BattleScript_EffectAttackUpUserAlly_TryAlly: - setallytonexttarget BattleScript_EffectAttackUpUserAlly_TryAlly_ -BattleScript_EffectAttackUpUserAlly_End: - goto BattleScript_MoveEnd -BattleScript_EffectAttackUpUserAlly_TryAlly_: - jumpifblockedbysoundproof BS_ATTACKER_PARTNER, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked - setstatchanger STAT_ATK, 1, FALSE - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_End - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectAttackUpUserAlly_AllyString - pause B_WAIT_TIME_SHORTEST - printstring STRINGID_TARGETSTATWONTGOHIGHER - waitmessage B_WAIT_TIME_LONG - goto BattleScript_EffectAttackUpUserAlly_End -BattleScript_EffectAttackUpUserAlly_AllyString: - printfromtable gStatUpStringIds - waitmessage B_WAIT_TIME_LONG - goto BattleScript_EffectAttackUpUserAlly_End - -BattleScript_EffectAttackUpUserAlly_TryAllyBlocked: - copybyte sBATTLER, gBattlerTarget - call BattleScript_AbilityPopUpTarget - printstring STRINGID_PKMNSXBLOCKSY2 - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd - BattleScript_EffectTeatime:: attackcanceler - jumpifteanoberry BattleScript_ButItFailed -@ at least one battler is affected + checkteatimetargets BattleScript_ButItFailed attackanimation waitanimation - setbyte gBattlerTarget, 0 -BattleScript_TeatimeLoop: - jumpifelectricabilityaffected BS_TARGET, ABILITY_LIGHTNING_ROD, BattleScript_Teatimerod - jumpifelectricabilityaffected BS_TARGET, ABILITY_VOLT_ABSORB, BattleScript_Teatimesorb - jumpifelectricabilityaffected BS_TARGET, ABILITY_MOTOR_DRIVE, BattleScript_Teatimemotor - jumpifteainvulnerable BS_TARGET, BattleScript_Teatimevul @ in semi-invulnerable state OR held item is not a Berry - setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries - consumeberry BS_TARGET, TRUE @ consume the berry, then restore the item from changedItems + movevaluescleanup + goto BattleScript_EffectTeatimeGetTarget +BattleScript_EffectTeatimeNextTarget: + jumpifnoberry BS_TARGET, BattleScript_EffectTeatimeGetTarget + setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries + consumeberry BS_TARGET, TRUE @ consume the berry, then restore the item from changedItems setbyte sBERRY_OVERRIDE, FALSE removeitem BS_TARGET - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_TeatimeLoop - moveendcase MOVEEND_CLEAR_BITS - goto BattleScript_MoveEnd -BattleScript_Teatimevul: - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_TeatimeLoop - moveendcase MOVEEND_CLEAR_BITS - goto BattleScript_MoveEnd -BattleScript_Teatimesorb: - call BattleScript_AbilityPopUpTarget - tryhealquarterhealth BS_TARGET, BattleScript_Teatimesorb_end - healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE - datahpupdate BS_TARGET, PASSIVE_HP_UPDATE - printstring STRINGID_PKMNREGAINEDHEALTH - waitmessage B_WAIT_TIME_LONG -BattleScript_Teatimesorb_end: - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_TeatimeLoop - moveendcase MOVEEND_CLEAR_BITS - goto BattleScript_MoveEnd -BattleScript_Teatimerod: - call BattleScript_AbilityPopUpTarget - setstatchanger STAT_SPATK, 1, FALSE - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TeatimeBuffer - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TeatimeBuffer - printfromtable gStatUpStringIds - waitmessage B_WAIT_TIME_LONG - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_TeatimeLoop - moveendcase MOVEEND_CLEAR_BITS - goto BattleScript_MoveEnd -BattleScript_Teatimemotor: - call BattleScript_AbilityPopUpTarget - setstatchanger STAT_SPEED, 1, FALSE - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_TeatimeBuffer - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TeatimeBuffer - printfromtable gStatUpStringIds - waitmessage B_WAIT_TIME_LONG - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_TeatimeLoop - moveendcase MOVEEND_CLEAR_BITS - goto BattleScript_MoveEnd -BattleScript_TeatimeBuffer: - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_TeatimeLoop - moveendcase MOVEEND_CLEAR_BITS - goto BattleScript_MoveEnd + moveendcase MOVEEND_NEXT_TARGET +BattleScript_EffectTeatimeGetTarget: + getpossiblenexttarget BattleScript_EffectTeatimeNextTarget + moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_2 + end BattleScript_AffectionBasedEndurance:: playanimation BS_TARGET, B_ANIM_AFFECTION_HANGED_ON @@ -589,7 +462,7 @@ BattleScript_AffectionBasedStatus_HealFrostbiteString: printstring STRINGID_ATTACKERHEALEDITSFROSTBITE BattleScript_AffectionBasedStatusHeal_Continue: waitmessage B_WAIT_TIME_LONG - clearstatus + clearstatus BS_ATTACKER waitstate updatestatusicon BS_ATTACKER waitstate @@ -611,7 +484,7 @@ BattleScript_EffectShellTrap:: BattleScript_EffectCourtChange:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause swapsidestatuses attackanimation waitanimation @@ -632,61 +505,13 @@ BattleScript_BeakBlastBurn:: call BattleScript_MoveEffectBurn return -BattleScript_EffectSkyDrop:: - attackcanceler - jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_SkyDropTurn2 - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - jumpifsubstituteblocks BattleScript_ButItFailed - jumpiftargetally BattleScript_ButItFailed - jumpifunder200 BattleScript_SkyDropWork - pause B_WAIT_TIME_SHORT - printstring STRINGID_TARGETTOOHEAVY - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd - -BattleScript_SkyDropWork: - setskydrop - call BattleScript_FirstChargingTurnAfterAttackString - goto BattleScript_MoveEnd -BattleScript_SkyDropTurn2: - call BattleScript_TwoTurnMovesSecondTurnRet - clearskydrop BattleScript_SkyDropChangedTarget - jumpiftype BS_TARGET, TYPE_FLYING, BattleScript_SkyDropFlyingType - goto BattleScript_HitFromCritCalc -BattleScript_SkyDropFlyingType: - makevisible BS_TARGET - printstring STRINGID_ITDOESNTAFFECT - waitmessage B_WAIT_TIME_LONG - makevisible BS_ATTACKER - jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_SkyDropFlyingAlreadyConfused - jumpifvolatile BS_TARGET, VOLATILE_LOCK_CONFUSE, BattleScript_SkyDropFlyingConfuseLock - goto BattleScript_MoveEnd -BattleScript_SkyDropChangedTarget: - pause B_WAIT_TIME_SHORT - setmoveresultflags MOVE_RESULT_FAILED - resultmessage - waitmessage B_WAIT_TIME_LONG - makevisible BS_ATTACKER - goto BattleScript_MoveEnd - -BattleScript_SkyDropFlyingConfuseLock: - seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION -BattleScript_SkyDropFlyingAlreadyConfused: - clearvolatile BS_TARGET, VOLATILE_LOCK_CONFUSE - jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_MoveEnd - setbyte BS_ATTACKER, BS_TARGET - goto BattleScript_ThrashConfuses - BattleScript_EffectFling:: attackcanceler - setlastuseditem BS_ATTACKER - accuracycheck BattleScript_FlingMissed, ACC_CURR_MOVE + accuracycheck BattleScript_FlingMissed pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNFLUNG waitmessage B_WAIT_TIME_SHORT - critcalc damagecalc - adjustdamage removeitem BS_ATTACKER attackanimation waitanimation @@ -699,11 +524,10 @@ BattleScript_EffectFling:: waitmessage B_WAIT_TIME_MED resultmessage waitmessage B_WAIT_TIME_MED - jumpiflastuseditemberry BattleScript_EffectFlingConsumeBerry tryflingholdeffect goto BattleScript_FlingEnd -BattleScript_EffectFlingConsumeBerry: +BattleScript_EffectFlingConsumeBerry:: savebattleritem battleritemtolastuseditem setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries @@ -713,7 +537,6 @@ BattleScript_EffectFlingConsumeBerry: setbyte sBERRY_OVERRIDE, 0 restorebattleritem BattleScript_FlingEnd: - tryfaintmon BS_TARGET trysymbiosis BS_ATTACKER goto BattleScript_MoveEnd @@ -721,6 +544,13 @@ BattleScript_FlingFailConsumeItem:: removeitem BS_ATTACKER goto BattleScript_ButItFailed +BattleScript_TargetAvoidsAttackConsumeFlingItem:: + pause B_WAIT_TIME_SHORT + printfromtable gMissStringIds + waitmessage B_WAIT_TIME_LONG + removeitem BS_ATTACKER + return + BattleScript_FlingBlockedByShieldDust:: printstring STRINGID_ITEMWASUSEDUP waitmessage B_WAIT_TIME_LONG @@ -743,7 +573,7 @@ BattleScript_EffectClangorousSoul:: BattleScript_EffectOctolock:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause trysetoctolock BattleScript_ButItFailed attackanimation waitanimation @@ -766,16 +596,16 @@ BattleScript_OctlockTurnDmgEnd: BattleScript_EffectPoltergeist:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - setpoltergeistmessage BattleScript_ButItFailed + accuracycheck BattleScript_MoveMissedPause + setpoltergeistmessage printstring STRINGID_ABOUTTOUSEPOLTERGEIST waitmessage B_WAIT_TIME_LONG - goto BattleScript_HitFromCritCalc + goto BattleScript_HitFromDamageCalc BattleScript_EffectTarShot:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause cantarshotwork BattleScript_ButItFailed setstatchanger STAT_SPEED, 1, TRUE attackanimation @@ -791,7 +621,7 @@ BattleScript_TryTarShot: BattleScript_EffectNoRetreat:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifvolatile BS_TARGET, VOLATILE_NO_RETREAT, BattleScript_ButItFailed setvolatile BS_TARGET, VOLATILE_NO_RETREAT attackanimation @@ -867,7 +697,7 @@ BattleScript_StuffCheeksEnd: BattleScript_EffectDecorate:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_DecorateBoost jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_DecorateBoost goto BattleScript_ButItFailed @@ -894,7 +724,6 @@ BattleScript_EffectCoaching:: setallytonexttarget EffectCoaching_CheckAllyStats goto BattleScript_ButItFailed EffectCoaching_CheckAllyStats: - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_CoachingWorks jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_DEF, MAX_STAT_STAGE, BattleScript_CoachingWorks goto BattleScript_ButItFailed @ ally at max atk, def @@ -944,38 +773,38 @@ BattleScript_JungleHealingTryRestoreAlly: goto BattleScript_MoveEnd BattleScript_EffectLifeDew:: - attackcanceler - jumpiffullhp BS_ATTACKER, BattleScript_EffectLifeDewCheckPartner - copybyte gBattlerTarget, gBattlerAttacker - attackanimation - waitanimation - call BattleScript_EffectLifeDewHealing - jumpifabsent BS_ATTACKER_PARTNER, BattleScript_EffectLifeDewEnd - jumpiffullhp BS_ATTACKER_PARTNER, BattleScript_EffectLifeDewEnd - setallytonexttarget BattleScript_EffectLifeDewNextTarget + attackcanceler + jumpiffullhp BS_ATTACKER, BattleScript_EffectLifeDewCheckPartner + copybyte gBattlerTarget, gBattlerAttacker + attackanimation + waitanimation + call BattleScript_EffectLifeDewHealing + jumpifabsent BS_ATTACKER_PARTNER, BattleScript_EffectLifeDewEnd + jumpiffullhp BS_ATTACKER_PARTNER, BattleScript_EffectLifeDewEnd + setallytonexttarget BattleScript_EffectLifeDewNextTarget BattleScript_EffectLifeDewNextTarget: - call BattleScript_EffectLifeDewHealing + call BattleScript_EffectLifeDewHealing BattleScript_EffectLifeDewEnd: - goto BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectLifeDewCheckPartner: - jumpifabsent BS_ATTACKER_PARTNER, BattleScript_ButItFailed - jumpiffullhp BS_ATTACKER_PARTNER, BattleScript_ButItFailed - attackanimation - waitanimation - setallytonexttarget BattleScript_EffectLifeDewNextTarget + jumpifabsent BS_ATTACKER_PARTNER, BattleScript_ButItFailed + jumpiffullhp BS_ATTACKER_PARTNER, BattleScript_ButItFailed + attackanimation + waitanimation + setallytonexttarget BattleScript_EffectLifeDewNextTarget BattleScript_EffectLifeDewHealing: - tryhealquarterhealth BS_TARGET, BattleScript_EffectLifeDewEnd - healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE - datahpupdate BS_TARGET, PASSIVE_HP_UPDATE - printstring STRINGID_PKMNREGAINEDHEALTH - waitmessage B_WAIT_TIME_LONG - return + tryhealquarterhealth BS_TARGET, BattleScript_EffectLifeDewEnd + healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE + datahpupdate BS_TARGET, PASSIVE_HP_UPDATE + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage B_WAIT_TIME_LONG + return BattleScript_EffectAllySwitch:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryallyswitch BattleScript_ButItFailed attackanimation waitanimation @@ -987,7 +816,7 @@ BattleScript_EffectAllySwitch:: BattleScript_EffectFairyLock:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause trysetfairylock BattleScript_ButItFailed attackanimation waitanimation @@ -1017,7 +846,6 @@ BattleScript_DefDown_Ret: BattleScript_EffectPurify:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_PurifyWorks goto BattleScript_ButItFailed BattleScript_PurifyWorks: @@ -1034,51 +862,22 @@ BattleScript_EffectStrengthSap:: setstatchanger STAT_ATK, 1, TRUE attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, MIN_STAT_STAGE, BattleScript_StrengthSapTryLower - pause B_WAIT_TIME_SHORT - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd - printfromtable gStatDownStringIds - waitmessage B_WAIT_TIME_LONG - setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary? - goto BattleScript_MoveEnd -BattleScript_StrengthSapTryLower: - getstatvalue STAT_ATK - jumpiffullhp BS_ATTACKER, BattleScript_StrengthSapMustLower -BattleScript_StrengthSapAnimation: + accuracycheck BattleScript_MoveMissedPause + jumpifstatignorecontrary BS_TARGET, CMP_EQUAL, STAT_ATK, MIN_STAT_STAGE, BattleScript_StrengthSapPrintStatMessage attackanimation waitanimation - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_StrengthSapHp - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_StrengthSapHp + getstatvalue STAT_ATK + statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_MoveEnd printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG -@ Drain HP without lowering a stat -BattleScript_StrengthSapHp: - jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_StrengthSapManipulateDmg - jumpifvolatile BS_ATTACKER, VOLATILE_HEAL_BLOCK, BattleScript_MoveEnd - jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd -BattleScript_StrengthSapManipulateDmg: - manipulatedamage DMG_BIG_ROOT - jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_StrengthSapLiquidOoze - healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE - datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE - printstring STRINGID_PKMNENERGYDRAINED - waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_StrengthSapLiquidOoze: - call BattleScript_AbilityPopUpTarget - manipulatedamage DMG_CHANGE_SIGN - setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE - healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE - datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE - printfromtable gAbsorbDrainStringIds +BattleScript_StrengthSapPrintStatMessage: + pause B_WAIT_TIME_SHORT + statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd + printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG - tryfaintmon BS_ATTACKER goto BattleScript_MoveEnd -BattleScript_StrengthSapMustLower: - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_MoveEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_CHANGE_EMPTY, BattleScript_MoveEnd - goto BattleScript_StrengthSapAnimation BattleScript_MoveEffectIncinerate:: printstring STRINGID_INCINERATEBURN @@ -1095,7 +894,7 @@ BattleScript_MoveEffectBugBite:: bicword gHitMarker, HITMARKER_DISABLE_ANIMATION setbyte sBERRY_OVERRIDE, 0 restoretarget - trysymbiosis BS_TARGET + trysymbiosis BS_TARGET return BattleScript_MoveEffectCoreEnforcer:: @@ -1142,38 +941,12 @@ BattleScript_VCreateTrySpeed: BattleScript_VCreateStatLossRet: return -BattleScript_SpectralThiefSteal:: - setbyte sB_ANIM_TURN, 1 - playmoveanimation MOVE_SPECTRAL_THIEF - waitanimation - setbyte sB_ANIM_TURN, 0 - printstring STRINGID_SPECTRALTHIEFSTEAL - waitmessage B_WAIT_TIME_LONG - setbyte sB_ANIM_ARG2, 0 - spectralthiefprintstats - flushtextbox - goto BattleScript_EffectSpectralThiefFromDamage - -BattleScript_EffectSpectralThief:: - attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - typecalc - tryspectralthiefsteal BattleScript_SpectralThiefSteal -BattleScript_EffectSpectralThiefFromDamage: - critcalc - damagecalc - adjustdamage - call BattleScript_Hit_RetFromAtkAnimation - tryfaintmon BS_TARGET - moveendall - end - BattleScript_EffectPartingShot:: attackcanceler jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotTryAtk jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_EffectPartingShotCantLowerMultipleStats BattleScript_EffectPartingShotTryAtk: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause attackanimation waitanimation setbyte sB_ANIM_TARGETS_HIT, 0 @@ -1226,7 +999,6 @@ BattleScript_EffectPartingShotPrintWontDecreaseContrary: BattleScript_EffectPowder:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, NO_ACC_CALC_CHECK_LOCK_ON jumpifvolatile BS_TARGET, VOLATILE_POWDER, BattleScript_ButItFailed setvolatile BS_TARGET, VOLATILE_POWDER attackanimation @@ -1353,7 +1125,7 @@ BattleScript_MoveEffectFeint:: BattleScript_EffectThirdType:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause trythirdtype BattleScript_ButItFailed attackanimation waitanimation @@ -1364,6 +1136,7 @@ BattleScript_EffectThirdType:: BattleScript_EffectFlowerShield:: attackcanceler savetarget + setbyte gBattlerTarget, 0 selectfirstvalidtarget BattleScript_FlowerShieldIsAnyValidTarget: jumpifvolatile BS_TARGET, VOLATILE_SEMI_INVULNERABLE, BattleScript_FlowerShieldCheckNextTarget @@ -1396,7 +1169,7 @@ BattleScript_FlowerShieldMoveTargetEnd: moveendto MOVEEND_NEXT_TARGET jumpifnexttargetvalid BattleScript_FlowerShieldLoop restoretarget - moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_1 + moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_2 end BattleScript_EffectRototiller:: @@ -1405,14 +1178,12 @@ BattleScript_EffectRototiller:: @ at least one battler is affected attackanimation waitanimation - savetarget - setbyte gBattlerTarget, 0 + goto BattleScript_EffectRototillerGetTarget BattleScript_RototillerLoop: - movevaluescleanup jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, MAX_STAT_STAGE, BattleScript_RototillerCheckAffected jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MAX_STAT_STAGE, BattleScript_RototillerCantRaiseMultipleStats BattleScript_RototillerCheckAffected: - jumpifnotrototilleraffected BattleScript_RototillerNoEffect + jumpifmoveresultflags MOVE_RESULT_NO_EFFECT, BattleScript_EffectRototillerGetTarget setstatchanger STAT_ATK, 1, FALSE statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerTrySpAtk, BIT_SPATK jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RototillerTrySpAtk @@ -1420,45 +1191,51 @@ BattleScript_RototillerCheckAffected: waitmessage B_WAIT_TIME_LONG BattleScript_RototillerTrySpAtk:: setstatchanger STAT_SPATK, 1, FALSE - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_RototillerMoveTargetEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_RototillerMoveTargetEnd + statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectRototillerMoves + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectRototillerMoves printfromtable gStatUpStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_RototillerMoveTargetEnd: - moveendto MOVEEND_NEXT_TARGET - addbyte gBattlerTarget, 1 - jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_RototillerLoop - restoretarget +BattleScript_EffectRototillerMoves: + moveendcase MOVEEND_NEXT_TARGET +BattleScript_EffectRototillerGetTarget: + getpossiblenexttarget BattleScript_RototillerLoop + moveendfrom MOVEEND_ITEM_EFFECTS_ATTACKER_2 end BattleScript_RototillerCantRaiseMultipleStats: + saveattacker copybyte gBattlerAttacker, gBattlerTarget printstring STRINGID_STATSWONTINCREASE2 + restoreattacker waitmessage B_WAIT_TIME_LONG - goto BattleScript_RototillerMoveTargetEnd + goto BattleScript_EffectRototillerGetTarget BattleScript_RototillerNoEffect: pause B_WAIT_TIME_SHORT printstring STRINGID_NOEFFECTONTARGET waitmessage B_WAIT_TIME_LONG - goto BattleScript_RototillerMoveTargetEnd + goto BattleScript_EffectRototillerGetTarget BattleScript_EffectBestow:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, NO_ACC_CALC_CHECK_LOCK_ON jumpifsubstituteblocks BattleScript_ButItFailed trybestow BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_BESTOWITEMGIVING waitmessage B_WAIT_TIME_LONG + tryactivateabilitywithabilityshield BS_TARGET, FALSE tryactivateitem BS_TARGET, ACTIVATION_ON_USABLE_AGAIN trysymbiosis BS_ATTACKER goto BattleScript_MoveEnd +BattleScript_ActivateSwitchInAbility:: + switchinabilities BS_SCRIPTING + return + BattleScript_EffectAfterYou:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryafteryou BattleScript_ButItFailed attackanimation waitanimation @@ -1476,7 +1253,7 @@ BattleScript_MoveEffectFlameBurst:: BattleScript_EffectPowerTrick:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause powertrick attackanimation waitanimation @@ -1486,7 +1263,7 @@ BattleScript_EffectPowerTrick:: BattleScript_EffectPsychoShift:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifstatus BS_ATTACKER, STATUS1_ANY, BattleScript_EffectPsychoShiftCanWork goto BattleScript_ButItFailed BattleScript_EffectPsychoShiftCanWork: @@ -1506,13 +1283,6 @@ BattleScript_EffectPsychoShiftCanWork: updatestatusicon BS_ATTACKER goto BattleScript_MoveEnd -BattleScript_EffectSynchronoise:: - attackcanceler - pause B_WAIT_TIME_MED - trysynchronoise BattleScript_MoveEnd - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE - goto BattleScript_HitFromCritCalc - BattleScript_ItDoesntAffectFoe:: savetarget copybyte gBattlerTarget, sBATTLER @@ -1541,7 +1311,7 @@ BattleScript_DefogAfterSubstituteCheck: BattleScript_DefogIfCanClearHazards: trydefog FALSE, BattleScript_ButItFailed BattleScript_DefogWorks: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifgenconfiglowerthan CONFIG_B_DEFOG_EFFECT_CLEARING, GEN_5, BattleScript_DefogWorksAfterSubstituteCheck jumpifsubstituteblocks BattleScript_DefogTryHazardsWithAnim BattleScript_DefogWorksAfterSubstituteCheck: @@ -1632,7 +1402,7 @@ BattleScript_EffectToxicThread:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed checknonvolatiletrigger MOVE_EFFECT_POISON, BattleScript_EffectStatDownFromAccCheck - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause attackanimation waitanimation setstatchanger STAT_SPEED, 1, TRUE @@ -1652,6 +1422,7 @@ BattleScript_ToxicThreadTryPsn:: BattleScript_EffectVenomDrench:: attackcanceler + jumpifsubstituteblocks BattleScript_ButItFailed jumpifstatus BS_TARGET, STATUS1_PSN_ANY, BattleScript_EffectVenomDrenchCanBeUsed goto BattleScript_ButItFailed BattleScript_EffectVenomDrenchCanBeUsed: @@ -1659,7 +1430,7 @@ BattleScript_EffectVenomDrenchCanBeUsed: jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPATK, MIN_STAT_STAGE, BattleScript_VenomDrenchDoMoveAnim jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_VenomDrenchDoMoveAnim:: - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed attackanimation waitanimation setstatchanger STAT_ATK, 1, TRUE @@ -1687,7 +1458,7 @@ BattleScript_EffectNobleRoar:: jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_NobleRoarDoMoveAnim jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_NobleRoarDoMoveAnim:: - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed attackanimation waitanimation setstatchanger STAT_ATK, 1, TRUE @@ -1779,7 +1550,7 @@ BattleScript_GrowthEnd: BattleScript_EffectSoak:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifability BS_TARGET, ABILITY_MULTITYPE, BattleScript_ButItFailed jumpifability BS_TARGET, ABILITY_RKS_SYSTEM, BattleScript_ButItFailed jumpifsubstituteblocks BattleScript_ButItFailed @@ -1792,7 +1563,7 @@ BattleScript_EffectSoak:: BattleScript_EffectReflectType:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryreflecttype BattleScript_ButItFailed attackanimation waitanimation @@ -1802,7 +1573,7 @@ BattleScript_EffectReflectType:: BattleScript_EffectElectrify:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryelectrify BattleScript_ButItFailed attackanimation waitanimation @@ -1978,7 +1749,6 @@ BattleScript_EffectPsychicTerrain:: BattleScript_EffectTopsyTurvy:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_ATK, 6, BattleScript_EffectTopsyTurvyWorks jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_DEF, 6, BattleScript_EffectTopsyTurvyWorks jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_SPATK, 6, BattleScript_EffectTopsyTurvyWorks @@ -1996,7 +1766,7 @@ BattleScript_EffectTopsyTurvyWorks: BattleScript_EffectIonDeluge:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause orword gFieldStatuses, STATUS_FIELD_ION_DELUGE attackanimation waitanimation @@ -2006,7 +1776,7 @@ BattleScript_EffectIonDeluge:: BattleScript_EffectQuash:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryquash BattleScript_ButItFailed attackanimation waitanimation @@ -2018,7 +1788,6 @@ BattleScript_EffectHealPulse:: attackcanceler jumpifvolatile BS_ATTACKER, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff jumpifvolatile BS_TARGET, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifsubstituteblocks BattleScript_ButItFailed tryhealpulse BattleScript_AlreadyAtFullHp attackanimation @@ -2031,7 +1800,7 @@ BattleScript_EffectHealPulse:: BattleScript_EffectEntrainment:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryentrainment BattleScript_ButItFailed attackanimation waitanimation @@ -2053,15 +1822,6 @@ BattleScript_EffectLuckyChant:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectMetalBurst:: - attackcanceler - metalburstdamagecalculator BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - typecalc - clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE - adjustdamage - goto BattleScript_HitFromAtkAnimation - BattleScript_EffectHealingWish:: attackcanceler jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed @@ -2072,11 +1832,10 @@ BattleScript_EffectHealingWish:: tryfaintmon BS_ATTACKER storehealingwish BS_ATTACKER jumpifgenconfiglowerthan CONFIG_B_HEALING_WISH_SWITCH, GEN_5, BattleScript_EffectHealingWishGen4 -BattleScript_EffectHealingWishEnd: - moveendall - end + goto BattleScript_MoveEnd + BattleScript_EffectHealingWishGen4: - openpartyscreen BS_ATTACKER, BattleScript_EffectHealingWishEnd + openpartyscreen BS_ATTACKER, BattleScript_MoveEnd waitstate switchhandleorder BS_ATTACKER, 2 returnatktoball @@ -2092,26 +1851,25 @@ BattleScript_EffectHealingWishGen4: switchinanim BS_ATTACKER, FALSE, TRUE waitstate switchineffects BS_ATTACKER - goto BattleScript_EffectHealingWishEnd + switchinevents + goto BattleScript_MoveEnd BattleScript_HealingWishActivates:: setbyte cMULTISTRING_CHOOSER, 0 goto BattleScript_EffectHealingWishRestore BattleScript_LunarDanceActivates:: setbyte cMULTISTRING_CHOOSER, 1 - restoremovepp + restoremovepp BS_SCRIPTING BattleScript_EffectHealingWishRestore: printfromtable gHealingWishStringIds waitmessage B_WAIT_TIME_LONG - playanimation BS_ATTACKER, B_ANIM_WISH_HEAL + playanimation BS_SCRIPTING, B_ANIM_WISH_HEAL waitanimation - dmgtomaxattackerhp - manipulatedamage DMG_CHANGE_SIGN - healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE - datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE - clearstatus + healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE + datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE + clearstatus BS_SCRIPTING, waitstate - updatestatusicon BS_ATTACKER + updatestatusicon BS_SCRIPTING waitstate printstring STRINGID_HEALINGWISHHEALED waitmessage B_WAIT_TIME_LONG @@ -2119,7 +1877,7 @@ BattleScript_EffectHealingWishRestore: BattleScript_EffectOverwriteAbility:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause tryoverwriteability BattleScript_ButItFailed attackanimation waitanimation @@ -2136,7 +1894,6 @@ BattleScript_EffectOverwriteAbility:: BattleScript_EffectPowerSplit:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON averagestats STAT_ATK averagestats STAT_SPATK attackanimation @@ -2147,7 +1904,6 @@ BattleScript_EffectPowerSplit:: BattleScript_EffectGuardSplit:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON averagestats STAT_DEF averagestats STAT_SPDEF attackanimation @@ -2158,7 +1914,6 @@ BattleScript_EffectGuardSplit:: BattleScript_EffectHeartSwap:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON swapstatstages STAT_ATK swapstatstages STAT_DEF swapstatstages STAT_SPEED @@ -2174,7 +1929,6 @@ BattleScript_EffectHeartSwap:: BattleScript_EffectPowerSwap:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON swapstatstages STAT_ATK swapstatstages STAT_SPATK attackanimation @@ -2185,7 +1939,6 @@ BattleScript_EffectPowerSwap:: BattleScript_EffectGuardSwap:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON swapstatstages STAT_DEF swapstatstages STAT_SPDEF attackanimation @@ -2196,7 +1949,6 @@ BattleScript_EffectGuardSwap:: BattleScript_EffectSpeedSwap:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON swapstats STAT_SPEED attackanimation waitanimation @@ -2206,7 +1958,6 @@ BattleScript_EffectSpeedSwap:: BattleScript_EffectTelekinesis:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, NO_ACC_CALC_CHECK_LOCK_ON settelekinesis BattleScript_ButItFailed attackanimation waitanimation @@ -2234,7 +1985,7 @@ BattleScript_EffectStickyWeb:: BattleScript_EffectGastroAcid:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifvolatile BS_TARGET, VOLATILE_GASTRO_ACID, BattleScript_ButItFailed setgastroacid BattleScript_ButItFailed attackanimation @@ -2312,7 +2063,7 @@ BattleScript_EffectAquaRing:: BattleScript_EffectEmbargo:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause setembargo BattleScript_ButItFailed attackanimation waitanimation @@ -2357,7 +2108,7 @@ BattleScript_TryTailwindAbilitiesLoop_WindPower: BattleScript_EffectMiracleEye:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifgenconfiglowerthan CONFIG_B_MIRACLE_EYE_FAIL, GEN_5, BattleScript_MiracleEyeSet jumpifvolatile BS_TARGET, VOLATILE_MIRACLE_EYE, BattleScript_ButItFailed BattleScript_MiracleEyeSet: @@ -2407,12 +2158,12 @@ BattleScript_EffectCaptivate:: jumpifcaptivateaffected BattleScript_CaptivateCheckAcc goto BattleScript_ButItFailed BattleScript_CaptivateCheckAcc: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause goto BattleScript_EffectStatDownFromStatBuffChange BattleScript_EffectHealBlock:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects sethealblock BattleScript_ButItFailed attackanimation @@ -2438,27 +2189,21 @@ BattleScript_EffectPlaceholder:: BattleScript_EffectHit:: attackcanceler BattleScript_HitFromAccCheck:: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE -BattleScript_HitFromCritCalc:: - critcalc + accuracycheck BattleScript_MoveMissedPause + copybyte gEffectBattler, gBattlerAttacker + setpreattackadditionaleffect +BattleScript_HitFromDamageCalc:: damagecalc - adjustdamage -BattleScript_HitFromAtkAnimation:: call BattleScript_Hit_RetFromAtkAnimation -BattleScript_TryFaintMon:: - tryfaintmon BS_TARGET BattleScript_MoveEnd:: moveendall end -BattleScript_EffectHit_Ret:: - attackcanceler BattleScript_EffectHit_RetFromAccCheck:: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE -BattleScript_EffectHit_RetFromCritCalc:: - critcalc + accuracycheck BattleScript_MoveMissedPause + copybyte gEffectBattler, gBattlerAttacker + setpreattackadditionaleffect damagecalc - adjustdamage BattleScript_Hit_RetFromAtkAnimation:: attackanimation waitanimation @@ -2474,15 +2219,6 @@ BattleScript_Hit_RetFromAtkAnimation:: setadditionaleffects return -BattleScript_EffectNaturalGift:: - attackcanceler - jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed - jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_MAGIC_ROOM, BattleScript_ButItFailed - jumpifability BS_ATTACKER, ABILITY_KLUTZ, BattleScript_ButItFailed - jumpifvolatile BS_ATTACKER, VOLATILE_EMBARGO, BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - call BattleScript_HitFromCritCalc - BattleScript_MakeMoveMissed:: setmoveresultflags MOVE_RESULT_MISSED BattleScript_MoveMissedPause:: @@ -2605,14 +2341,10 @@ BattleScript_EffectAbsorb:: BattleScript_EffectAbsorbRet: return -BattleScript_EffectExplosion:: - attackcanceler +BattleScript_Explosion:: tryexplosion setatkhptozero - waitstate - jumpiffainted BS_TARGET, TRUE, BattleScript_MoveEnd - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - goto BattleScript_HitFromCritCalc + return BattleScript_FaintAttackerForExplosion:: tryfaintmon BS_ATTACKER @@ -2662,7 +2394,7 @@ BattleScript_EffectEvasionUp:: BattleScript_EffectStatUp:: attackcanceler BattleScript_EffectStatUpAfterAtkCanceler:: - statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatUpEnd + statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatUpEnd jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatUpAttackAnim pause B_WAIT_TIME_SHORT setmoveresultflags MOVE_RESULT_MISSED @ TODO: Is this even necessary? @@ -2671,10 +2403,13 @@ BattleScript_StatUpAttackAnim:: attackanimation waitanimation BattleScript_StatUpDoAnim:: - statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpEnd + statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_StatUpEnd BattleScript_StatUpPrintString:: + saveattacker + copybyte gBattlerAttacker, gBattlerTarget printfromtable gStatUpStringIds waitmessage B_WAIT_TIME_LONG + restoreattacker BattleScript_StatUpEnd:: goto BattleScript_MoveEnd @@ -2709,11 +2444,13 @@ BattleScript_EffectSpecialDefenseDown:: BattleScript_EffectEvasionDown:: setstatchanger STAT_EVASION, 1, TRUE + goto BattleScript_EffectStatDown + BattleScript_EffectStatDown: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed BattleScript_EffectStatDownFromAccCheck: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause BattleScript_EffectStatDownFromStatBuffChange: statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_ONLY_CHECKING, BattleScript_StatDownEnd jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_StatDownDoAnim @@ -2794,8 +2531,7 @@ BattleScript_EffectRoar:: jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifvolatile BS_TARGET, VOLATILE_ROOT, BattleScript_PrintMonIsRooted jumpiftargetdynamaxed BattleScript_RoarBlockedByDynamax - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed forcerandomswitch BattleScript_ButItFailed @@ -2894,18 +2630,6 @@ BattleScript_AbilityPreventsRest:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectOHKO:: - attackcanceler - typecalc - jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation - tryKO BattleScript_KOFail - goto BattleScript_HitFromAtkAnimation -BattleScript_KOFail:: - pause B_WAIT_TIME_LONG - printfromtable gKOFailedStringIds - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd - BattleScript_RecoilIfMiss:: printstring STRINGID_PKMNCRASHED waitmessage B_WAIT_TIME_LONG @@ -2942,7 +2666,7 @@ BattleScript_EffectConfuse:: jumpifsubstituteblocks BattleScript_ButItFailed jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_AlreadyConfused jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed jumpifsafeguard BattleScript_SafeguardProtected attackanimation waitanimation @@ -3063,30 +2787,8 @@ BattleScript_AlreadyParalyzed:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_PowerHerbActivation: - playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT - printstring STRINGID_POWERHERB - waitmessage B_WAIT_TIME_LONG - removeitem BS_ATTACKER - return - -BattleScript_EffectTwoTurnsAttack:: - jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn - tryfiretwoturnmovewithoutcharging BS_ATTACKER, BattleScript_EffectHit @ e.g. Solar Beam - call BattleScript_FirstChargingTurn - tryfiretwoturnmoveaftercharging BS_ATTACKER, BattleScript_TwoTurnMovesSecondTurn @ e.g. Electro Shot - jumpifholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_TwoTurnMovesSecondPowerHerbActivates, TRUE - goto BattleScript_MoveEnd - BattleScript_EffectGeomancy:: - jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_GeomancySecondTurn - call BattleScript_FirstChargingTurn - jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_POWER_HERB, BattleScript_MoveEnd - call BattleScript_PowerHerbActivation -BattleScript_GeomancySecondTurn: attackcanceler - setbyte sB_ANIM_TURN, 1 - clearvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_GeomancyDoMoveAnim jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_CantRaiseMultipleStats @@ -3113,28 +2815,22 @@ BattleScript_GeomancyTrySpeed:: BattleScript_GeomancyEnd:: goto BattleScript_MoveEnd -BattleScript_FirstChargingTurn:: - attackcanceler +BattleScript_PowerHerbActivation:: + playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT + printstring STRINGID_POWERHERB + waitmessage B_WAIT_TIME_LONG + removeitem BS_ATTACKER + return + +BattleScript_TwoTurnMoveCharging:: waitmessage B_WAIT_TIME_LONG -BattleScript_FirstChargingTurnAfterAttackString: - setsemiinvulnerablebit @ only for moves with EFFECT_SEMI_INVULNERABLE/EFFECT_SKY_DROP - setchargingturn twoturnmoveschargestringandanimation setadditionaleffects @ only onChargeTurnOnly effects will work here return -BattleScript_TwoTurnMovesSecondPowerHerbActivates: - call BattleScript_PowerHerbActivation - trygulpmissile @ Edge case for Cramorant ability Gulp Missile -BattleScript_FromTwoTurnMovesSecondTurnRet: - call BattleScript_TwoTurnMovesSecondTurnRet - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - goto BattleScript_HitFromCritCalc - -BattleScript_TwoTurnMovesSecondTurn:: - attackcanceler - call BattleScript_TwoTurnMovesSecondTurnRet - goto BattleScript_HitFromAccCheck +BattleScript_SkyDropCharging:: + call BattleScript_TwoTurnMoveCharging + goto BattleScript_MoveEnd BattleScript_TwoTurnMovesSecondTurnRet: setbyte sB_ANIM_TURN, 1 @@ -3143,46 +2839,69 @@ BattleScript_TwoTurnMovesSecondTurnRet: clearsemiinvulnerablebit @ only for moves with EFFECT_SEMI_INVULNERABLE/EFFECT_SKY_DROP return -BattleScript_EffectSubstitute:: - attackcanceler - waitstate - jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute - setsubstitute - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString - attackanimation - waitanimation - healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE - datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE -BattleScript_SubstituteString:: +BattleScript_SkyDropTargetTooHeavy:: pause B_WAIT_TIME_SHORT - printfromtable gSubstituteUsedStringIds - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd -BattleScript_AlreadyHasSubstitute:: - setalreadystatusedmoveattempt - pause B_WAIT_TIME_SHORT - printstring STRINGID_PKMNHASSUBSTITUTE + printstring STRINGID_TARGETTOOHEAVY waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_MoveUsedMustRecharge:: - printstring STRINGID_PKMNMUSTRECHARGE +BattleScript_SkyDropFlyingType:: + makevisible BS_TARGET + printstring STRINGID_ITDOESNTAFFECT + waitmessage B_WAIT_TIME_LONG + makevisible BS_ATTACKER + jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_SkyDropFlyingAlreadyConfused + jumpifvolatile BS_TARGET, VOLATILE_RAMPAGE_TURNS, BattleScript_SkyDropFlyingConfuseLock + return + +BattleScript_SkyDropFlyingConfuseLock: + seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION +BattleScript_SkyDropFlyingAlreadyConfused: + clearvolatile BS_TARGET, VOLATILE_RAMPAGE_TURNS + jumpifvolatile BS_TARGET, VOLATILE_CONFUSION, BattleScript_SkyDropFlyingAlreadyConfusedRet + setbyte BS_ATTACKER, BS_TARGET + call BattleScript_ThrashConfusesRet +BattleScript_SkyDropFlyingAlreadyConfusedRet: + return + +BattleScript_SkyDropNoTarget:: + pause B_WAIT_TIME_SHORT + setmoveresultflags MOVE_RESULT_FAILED + resultmessage waitmessage B_WAIT_TIME_LONG + makevisible BS_ATTACKER goto BattleScript_MoveEnd -BattleScript_EffectRage:: +BattleScript_EffectSubstitute:: attackcanceler - accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE - seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_RAGE - goto BattleScript_HitFromCritCalc -BattleScript_RageMiss:: - clearvolatile BS_ATTACKER, VOLATILE_RAGE - goto BattleScript_MoveMissedPause + waitstate + jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute + setsubstitute + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString + attackanimation + waitanimation + healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE + datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE +BattleScript_SubstituteString:: + pause B_WAIT_TIME_SHORT + printfromtable gSubstituteUsedStringIds + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd +BattleScript_AlreadyHasSubstitute:: + setalreadystatusedmoveattempt + pause B_WAIT_TIME_SHORT + printstring STRINGID_PKMNHASSUBSTITUTE + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + +BattleScript_MoveUsedMustRecharge:: + printstring STRINGID_PKMNMUSTRECHARGE + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd BattleScript_EffectMimic:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON mimicattackcopy BattleScript_ButItFailed attackanimation waitanimation @@ -3194,7 +2913,7 @@ BattleScript_EffectLeechSeed:: attackcanceler pause B_WAIT_TIME_SHORT jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE + accuracycheck BattleScript_DoLeechSeed BattleScript_DoLeechSeed:: setseeded attackanimation @@ -3214,7 +2933,6 @@ BattleScript_EffectDoNothing:: BattleScript_EffectHoldHands:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed attackanimation waitanimation @@ -3238,7 +2956,7 @@ BattleScript_EffectHappyHour:: BattleScript_EffectDisable:: attackcanceler jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed disablelastusedattack BattleScript_ButItFailed attackanimation waitanimation @@ -3246,18 +2964,9 @@ BattleScript_EffectDisable:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectCounter:: - attackcanceler - counterdamagecalculator BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - typecalc - clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE - adjustdamage - goto BattleScript_HitFromAtkAnimation - BattleScript_EffectEncore:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects trysetencore BattleScript_ButItFailed attackanimation @@ -3268,7 +2977,6 @@ BattleScript_EffectEncore:: BattleScript_EffectPainSplit:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON painsplitdmgcalc BattleScript_ButItFailed attackanimation waitanimation @@ -3280,16 +2988,6 @@ BattleScript_EffectPainSplit:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectSnore:: - attackcanceler - jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore - printstring STRINGID_PKMNFASTASLEEP - waitmessage B_WAIT_TIME_LONG - statusanimation BS_ATTACKER -BattleScript_DoSnore:: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - goto BattleScript_HitFromCritCalc - BattleScript_EffectConversion2:: attackcanceler settypetorandomresistance BattleScript_ButItFailed @@ -3302,7 +3000,7 @@ BattleScript_EffectConversion2:: BattleScript_EffectLockOn:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed setalwayshitflag attackanimation waitanimation @@ -3335,7 +3033,7 @@ BattleScript_MoveEffectEerieSpell:: BattleScript_EffectSpite:: attackcanceler - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed tryspiteppreduce BattleScript_ButItFailed attackanimation waitanimation @@ -3360,7 +3058,7 @@ BattleScript_HealBellSoundproof:: waitmessage B_WAIT_TIME_LONG BattleScript_CheckHealBellMon2Unaffected:: jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, B_MSG_BELL_SOUNDPROOF_PARTNER, BattleScript_PartyHealEnd - printstring STRINGID_PKMNSXBLOCKSY2 + printstring STRINGID_PKMNSXBLOCKSY waitmessage B_WAIT_TIME_LONG BattleScript_PartyHealEnd:: updatestatusicon BS_ATTACKER_WITH_PARTNER @@ -3378,7 +3076,6 @@ BattleScript_MoveEffectAromatherapy:: BattleScript_EffectMeanLook:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifvolatile BS_TARGET, VOLATILE_ESCAPE_PREVENTION, BattleScript_ButItFailed jumpifsubstituteblocks BattleScript_ButItFailed jumpifgenconfiglowerthan CONFIG_B_GHOSTS_ESCAPE, GEN_6, BattleScript_EffectMeanLookGen5 @@ -3394,7 +3091,7 @@ BattleScript_EffectMeanLookGen5: BattleScript_EffectNightmare:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifvolatile BS_TARGET, VOLATILE_NIGHTMARE, BattleScript_ButItFailed jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_NightmareWorked @@ -3450,7 +3147,6 @@ BattleScript_GhostCurse:: getmovetarget BattleScript_DoGhostCurse:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON cursetarget BattleScript_ButItFailed setbyte sB_ANIM_TURN, 0 attackanimation @@ -3483,7 +3179,7 @@ BattleScript_EffectSpikes:: BattleScript_EffectForesight:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + accuracycheck BattleScript_ButItFailed jumpifgenconfiglowerthan CONFIG_B_FORESIGHT_FAIL, GEN_3, BattleScript_ForesightFailCheck jumpifgenconfiglowerthan CONFIG_B_FORESIGHT_FAIL, GEN_5, BattleScript_ForesightSet BattleScript_ForesightFailCheck: @@ -3500,52 +3196,16 @@ BattleScript_IdentifiedFoe: BattleScript_EffectPerishSong:: attackcanceler trysetperishsong BattleScript_ButItFailed - savetarget attackanimation waitanimation printstring STRINGID_FAINTINTHREE waitmessage B_WAIT_TIME_LONG - setbyte gBattlerTarget, 0 -BattleScript_PerishSongLoop:: - jumpifblockedbysoundproof BS_TARGET, BattleScript_PerishSongBlocked - jumpifpranksterblocked BattleScript_PerishSongNotAffected -BattleScript_PerishSongLoopIncrement:: - addbyte gBattlerTarget, 1 - jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_PerishSongLoop - restoretarget goto BattleScript_MoveEnd -BattleScript_PerishSongBlocked:: - copybyte sBATTLER, gBattlerTarget - printstring STRINGID_PKMNSXBLOCKSY2 - waitmessage B_WAIT_TIME_LONG - goto BattleScript_PerishSongLoopIncrement - -BattleScript_PerishSongNotAffected: - printstring STRINGID_ITDOESNTAFFECT - waitmessage B_WAIT_TIME_LONG - goto BattleScript_PerishSongLoopIncrement - -BattleScript_EffectSandstorm:: - attackcanceler - call BattleScript_CheckPrimalWeather - setfieldweather BATTLE_WEATHER_SANDSTORM - goto BattleScript_MoveWeatherChange - -BattleScript_EffectRollout:: - attackcanceler - jumpifvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy -BattleScript_RolloutCheckAccuracy:: - accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE -BattleScript_RolloutHit:: - typecalc - handlerollout - goto BattleScript_HitFromCritCalc - BattleScript_EffectSwagger:: attackcanceler jumpifsubstituteblocks BattleScript_MakeMoveMissed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifconfusedandstatmaxed STAT_ATK, BattleScript_ButItFailed attackanimation waitanimation @@ -3560,17 +3220,6 @@ BattleScript_SwaggerTryConfuse: seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_CONFUSION goto BattleScript_MoveEnd -BattleScript_EffectFuryCutter:: - attackcanceler - accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE -BattleScript_FuryCutterHit: - handlefurycutter - critcalc - damagecalc - jumpifmovehadnoeffect BattleScript_FuryCutterHit - adjustdamage - goto BattleScript_HitFromAtkAnimation - BattleScript_TryDestinyKnotTarget: jumpifnoholdeffect BS_ATTACKER, HOLD_EFFECT_DESTINY_KNOT, BattleScript_TryDestinyKnotTargetRet playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT @@ -3603,7 +3252,7 @@ BattleScript_TryDestinyKnotAttacker: BattleScript_EffectAttract:: attackcanceler - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects tryinfatuating BattleScript_ButItFailed attackanimation @@ -3615,7 +3264,7 @@ BattleScript_EffectAttract:: BattleScript_EffectPresent:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause typecalc presentdamagecalculation @@ -3624,15 +3273,6 @@ BattleScript_EffectSafeguard:: setsafeguard goto BattleScript_PrintReflectLightScreenSafeguardString -BattleScript_EffectMagnitude:: - attackcanceler - magnitudedamagecalculation - pause B_WAIT_TIME_SHORT - printstring STRINGID_MAGNITUDESTRENGTH - waitmessage B_WAIT_TIME_LONG - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - goto BattleScript_HitFromCritCalc - BattleScript_EffectBatonPass:: attackcanceler jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed @@ -3653,6 +3293,7 @@ BattleScript_EffectBatonPass:: switchinanim BS_ATTACKER, FALSE, TRUE waitstate switchineffects BS_ATTACKER + switchinevents goto BattleScript_MoveEnd BattleScript_EffectMorningSun:: @@ -3663,94 +3304,67 @@ BattleScript_EffectShoreUp:: recoverbasedonsunlight BattleScript_AlreadyAtFullHp goto BattleScript_PresentHealTarget -BattleScript_EffectRainDance:: +BattleScript_EffectWeather:: attackcanceler - call BattleScript_CheckPrimalWeather - setfieldweather BATTLE_WEATHER_RAIN -BattleScript_MoveWeatherChange:: +BattleScript_EffectWeatherSetWeather: + setfieldweather attackanimation waitanimation call BattleScript_MoveWeatherChangeRet goto BattleScript_MoveEnd -BattleScript_MoveWeatherChangeRet:: - printfromtable gMoveWeatherChangeStringIds +BattleScript_ChillyReceptionMessage:: + printstring STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE waitmessage B_WAIT_TIME_LONG - call BattleScript_ActivateWeatherAbilities return -BattleScript_EffectSunnyDay:: +BattleScript_EffectWeatherAndSwitch:: attackcanceler - call BattleScript_CheckPrimalWeather - setfieldweather BATTLE_WEATHER_SUN - goto BattleScript_MoveWeatherChange + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_EffectWeatherSetWeather + jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_EffectWeatherSetWeather + setfieldweather + clearmoveresultflags MOVE_RESULT_NO_EFFECT + attackanimation + waitanimation + call BattleScript_MoveWeatherChangeRet + moveendall + goto BattleScript_MoveSwitch -BattleScript_ExtremelyHarshSunlightWasNotLessened: - pause B_WAIT_TIME_SHORT - printstring STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED +BattleScript_MoveWeatherChangeRet:: + printfromtable gMoveWeatherChangeStringIds waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd + call BattleScript_ActivateWeatherAbilities + return -BattleScript_ExtremelyHarshSunlightWasNotLessenedEnd3: - pause B_WAIT_TIME_SHORT - printstring STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED - waitmessage B_WAIT_TIME_LONG - end3 +BattleScript_FailOnPrimalWeather:: + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + return -BattleScript_ExtremelyHarshSunlightWasNotLessenedRet: +BattleScript_ExtremelyHarshSunlightWasNotLessened: pause B_WAIT_TIME_SHORT printstring STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED waitmessage B_WAIT_TIME_LONG return BattleScript_NoReliefFromHeavyRain: - pause B_WAIT_TIME_SHORT - printstring STRINGID_NORELIEFROMHEAVYRAIN - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd - -BattleScript_NoReliefFromHeavyRainEnd3: - pause B_WAIT_TIME_SHORT - printstring STRINGID_NORELIEFROMHEAVYRAIN - waitmessage B_WAIT_TIME_LONG - end3 - -BattleScript_NoReliefFromHeavyRainRet: pause B_WAIT_TIME_SHORT printstring STRINGID_NORELIEFROMHEAVYRAIN waitmessage B_WAIT_TIME_LONG return BattleScript_MysteriousAirCurrentBlowsOn: - pause B_WAIT_TIME_SHORT - printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd - -BattleScript_MysteriousAirCurrentBlowsOnEnd3: - pause B_WAIT_TIME_SHORT - printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON - waitmessage B_WAIT_TIME_LONG - end3 - -BattleScript_MysteriousAirCurrentBlowsOnRet: pause B_WAIT_TIME_SHORT printstring STRINGID_MYSTERIOUSAIRCURRENTBLOWSON waitmessage B_WAIT_TIME_LONG return -BattleScript_BlockedByPrimalWeatherEnd3:: - call BattleScript_AbilityPopUp - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessenedEnd3 - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRainEnd3 - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOnEnd3 - end3 - -BattleScript_BlockedByPrimalWeatherRet:: +BattleScript_BlockedByPrimalWeather:: call BattleScript_AbilityPopUp - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessenedRet - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRainRet - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOnRet + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn return BattleScript_EffectBellyDrum:: @@ -3769,7 +3383,7 @@ BattleScript_EffectBellyDrum:: BattleScript_EffectPsychUp:: attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause copyfoestats attackanimation waitanimation @@ -3777,15 +3391,6 @@ BattleScript_EffectPsychUp:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectMirrorCoat:: - attackcanceler - mirrorcoatdamagecalculator BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - typecalc - clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE - adjustdamage - goto BattleScript_HitFromAtkAnimation - BattleScript_EffectFutureSight:: attackcanceler setfutureattack @@ -3814,17 +3419,9 @@ BattleScript_DoEffectTeleport:: setteleportoutcome BS_ATTACKER goto BattleScript_MoveEnd -BattleScript_EffectBeatUp:: - jumpifgenconfiglowerthan CONFIG_B_BEAT_UP, GEN_5, BattleScript_EffectBeatUpGen3 - goto BattleScript_EffectHit - -BattleScript_EffectBeatUpGen3: - attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - pause B_WAIT_TIME_SHORT - trydobeatup BattleScript_MoveEnd, BattleScript_ButItFailed +BattleScript_BeatUpAttackMessage:: printstring STRINGID_PKMNATTACK - goto BattleScript_HitFromCritCalc + return BattleScript_EffectDefenseCurl:: attackcanceler @@ -3890,17 +3487,16 @@ BattleScript_NotAffectedAbilityPopUp:: BattleScript_EffectStockpile:: attackcanceler - stockpile 0 + stockpile attackanimation waitanimation printstring STRINGID_PKMNSTOCKPILED waitmessage B_WAIT_TIME_LONG .if B_STOCKPILE_RAISES_DEFS < GEN_4 - goto BattleScript_EffectStockpileEnd + goto BattleScript_MoveEnd .endif - jumpifmovehadnoeffect BattleScript_EffectStockpileEnd jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, MAX_STAT_STAGE, BattleScript_EffectStockpileDef - jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_EffectStockpileEnd + jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, MAX_STAT_STAGE, BattleScript_MoveEnd BattleScript_EffectStockpileDef: setstatchanger STAT_DEF, 1, FALSE statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileSpDef, BIT_SPDEF @@ -3909,20 +3505,16 @@ BattleScript_EffectStockpileDef: waitmessage B_WAIT_TIME_LONG BattleScript_EffectStockpileSpDef:: setstatchanger STAT_SPDEF, 1, FALSE - statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_EffectStockpileEnd - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_EffectStockpileEnd + statbuffchange BS_ATTACKER, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_CHANGE, BattleScript_MoveEnd printfromtable gStatUpStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_EffectStockpileEnd: - stockpile 1 goto BattleScript_MoveEnd BattleScript_MoveEffectStockpileWoreOff:: - .if B_STOCKPILE_RAISES_DEFS >= GEN_4 dostockpilestatchangeswearoff BS_ATTACKER, BattleScript_StockpileStatChangeDown printstring STRINGID_STOCKPILEDEFFECTWOREOFF waitmessage B_WAIT_TIME_SHORT - .endif return BattleScript_StockpileStatChangeDown: @@ -3932,25 +3524,6 @@ BattleScript_StockpileStatChangeDown: BattleScript_StockpileStatChangeDown_Ret: return -BattleScript_EffectSpitUp:: - attackcanceler - jumpifbyte CMP_EQUAL, cMISS_TYPE, B_MSG_PROTECTED, BattleScript_SpitUpFailProtect - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - damagecalc - adjustdamage - stockpiletobasedamage - call BattleScript_Hit_RetFromAtkAnimation - tryfaintmon BS_TARGET - removestockpilecounters - goto BattleScript_MoveEnd - -BattleScript_SpitUpFailProtect:: - pause B_WAIT_TIME_LONG - stockpiletobasedamage - resultmessage - waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd - BattleScript_EffectSwallow:: attackcanceler stockpiletohpheal BattleScript_ButItFailed @@ -3960,18 +3533,11 @@ BattleScript_EffectSwallow:: datahpupdate BS_TARGET, PASSIVE_HP_UPDATE printstring STRINGID_PKMNREGAINEDHEALTH waitmessage B_WAIT_TIME_LONG - removestockpilecounters goto BattleScript_MoveEnd -BattleScript_EffectHail:: - attackcanceler - call BattleScript_CheckPrimalWeather - setfieldweather BATTLE_WEATHER_HAIL - goto BattleScript_MoveWeatherChange - BattleScript_EffectTorment:: attackcanceler - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects settorment BattleScript_ButItFailed attackanimation @@ -3983,7 +3549,7 @@ BattleScript_EffectTorment:: BattleScript_EffectFlatter:: attackcanceler jumpifsubstituteblocks BattleScript_MakeMoveMissed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause jumpifconfusedandstatmaxed STAT_SPATK, BattleScript_ButItFailed attackanimation waitanimation @@ -4006,7 +3572,7 @@ BattleScript_EffectDarkVoid:: BattleScript_EffectNonVolatileStatus:: attackcanceler trynonvolatilestatus - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed attackanimation waitanimation setnonvolatilestatus TRIGGER_ON_MOVE @@ -4062,9 +3628,7 @@ BattleScript_MementoTargetProtectEnd: tryfaintmon BS_ATTACKER goto BattleScript_MoveEnd -BattleScript_EffectFocusPunch:: - attackcanceler - jumpifnodamage BattleScript_HitFromAccCheck +BattleScript_FocusPunchLostFocus:: printstring STRINGID_PKMNLOSTFOCUS waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -4098,7 +3662,7 @@ BattleScript_EffectChargeString: BattleScript_EffectTaunt:: attackcanceler jumpifability BS_TARGET_SIDE, ABILITY_AROMA_VEIL, BattleScript_AromaVeilProtects - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed settaunt BattleScript_ButItFailed attackanimation waitanimation @@ -4118,7 +3682,7 @@ BattleScript_EffectHelpingHand:: BattleScript_EffectTrick:: attackcanceler jumpifsubstituteblocks BattleScript_ButItFailed - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed tryswapitems BattleScript_ButItFailed attackanimation waitanimation @@ -4126,11 +3690,13 @@ BattleScript_EffectTrick:: waitmessage B_WAIT_TIME_LONG printfromtable gItemSwapStringIds waitmessage B_WAIT_TIME_LONG + tryactivateabilitywithabilityshield BS_TARGET, TRUE + tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN + tryactivateitem BS_TARGET, ACTIVATION_ON_USABLE_AGAIN goto BattleScript_MoveEnd BattleScript_EffectRolePlay:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON trycopyability BS_ATTACKER, BattleScript_ButItFailed attackanimation waitanimation @@ -4176,41 +3742,24 @@ BattleScript_EffectRecycle:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectBrickBreak:: - attackcanceler - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - typecalc - removescreens - critcalc - damagecalc - adjustdamage - jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_BrickBreakAnim - clearmoveresultflags MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE -BattleScript_BrickBreakAnim:: - attackanimation +BattleScript_BreakScreens:: + playmoveanimation MOVE_NONE @use current move waitanimation - jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 2, BattleScript_BrickBreakDoHit printstring STRINGID_THEWALLSHATTERED + return + +BattleScript_StealStats:: + playmoveanimation MOVE_SPECTRAL_THIEF + waitanimation + printstring STRINGID_SPECTRALTHIEFSTEAL waitmessage B_WAIT_TIME_LONG -BattleScript_BrickBreakDoHit:: - typecalc - effectivenesssound - hitanimation BS_TARGET - waitstate - healthbarupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE - datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE - critmessage - waitmessage B_WAIT_TIME_LONG - resultmessage - waitmessage B_WAIT_TIME_LONG - tryfaintmon BS_TARGET - setadditionaleffects - goto BattleScript_MoveEnd + spectralthiefprintstats + flushtextbox + return BattleScript_EffectYawn:: attackcanceler trynonvolatilestatus - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON setyawn BattleScript_ButItFailed attackanimation waitanimation @@ -4230,19 +3779,8 @@ BattleScript_PrintAbilityMadeIneffective:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectEndeavor:: - attackcanceler - setdamagetohealthdifference BattleScript_ButItFailed - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE - typecalc - jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation - clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE - adjustdamage - goto BattleScript_HitFromAtkAnimation - BattleScript_EffectSkillSwap:: attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON tryswapabilities BattleScript_ButItFailed attackanimation waitanimation @@ -4319,10 +3857,11 @@ BattleScript_EffectWaterSport:: BattleScript_EffectTickle:: attackcanceler + jumpifsubstituteblocks BattleScript_ButItFailed jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_TickleDoMoveAnim jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, MIN_STAT_STAGE, BattleScript_CantLowerMultipleStats BattleScript_TickleDoMoveAnim:: - accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + accuracycheck BattleScript_ButItFailed attackanimation waitanimation setstatchanger STAT_ATK, 1, TRUE @@ -4451,7 +3990,7 @@ BattleScript_EffectCamouflage:: BattleScript_FaintBattler:: tryillusionoff BS_FAINTED - tryactivategulpmissile + undodynamax BS_FAINTED playfaintcry BS_FAINTED pause B_WAIT_TIME_LONG dofaintanimation BS_FAINTED @@ -4544,6 +4083,7 @@ BattleScript_FaintedMonSendOutNew: jumpifbytenotequal sSHIFT_SWITCHED, sZero, BattleScript_FaintedMonShiftSwitched BattleScript_FaintedMonSendOutNewEnd: switchineffects BS_FAINTED + switchinevents jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd cancelallactions BattleScript_FaintedMonEnd:: @@ -4551,6 +4091,7 @@ BattleScript_FaintedMonEnd:: BattleScript_FaintedMonShiftSwitched: copybyte sSAVED_BATTLER, gBattlerTarget switchineffects BS_ATTACKER + switchinevents resetsentmonsvalue copybyte gBattlerTarget, sSAVED_BATTLER goto BattleScript_FaintedMonSendOutNewEnd @@ -4573,12 +4114,17 @@ BattleScript_HandleFaintedMonLoop:: hidepartystatussummary BS_FAINTED switchinanim BS_FAINTED, FALSE, FALSE waitstate + trytrainerslidemsglaston BS_FAINTED switchineffects BS_FAINTED_MULTIPLE_1 jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_HandleFaintedMonLoop BattleScript_HandleFaintedMonMultipleEnd:: - switchineffects BS_FAINTED_MULTIPLE_2 + switchinevents end2 +BattleScript_FirstTurnSwitchInEvents:: + switchinevents + end3 + BattleScript_LocalTrainerBattleWon:: jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated printstring STRINGID_PLAYERDEFEATEDTRAINER1 @@ -4604,12 +4150,26 @@ BattleScript_PayDayMoneyAndPickUpItems:: pickup end2 +BattleScript_RivalBattleLost:: + jumpifhasnohp BS_ATTACKER, BattleScript_RivalBattleLostSkipMonRecall + printstring STRINGID_TRAINER1MON1COMEBACK + waitmessage B_WAIT_TIME_LONG + returnatktoball + waitstate +BattleScript_RivalBattleLostSkipMonRecall:: + trainerslidein BS_ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_LocalBattleLostPrintWhiteOut + end2 + BattleScript_LocalBattleLost:: jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_LocalBattleLostPrintTrainersWinText jumpifbattletype BATTLE_TYPE_TRAINER_HILL, BattleScript_LocalBattleLostPrintTrainersWinText jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd jumpifhalfword CMP_EQUAL, gTrainerBattleParameter + 2, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_RivalBattleLost jumpifnowhiteout BattleScript_LocalBattleLostEnd_ jumpifbattletype BATTLE_TYPE_INGAME_PARTNER, BattleScript_LocalBattleLostPrintWhiteOut BattleScript_LocalBattleLostPrintWhiteOut:: @@ -4790,6 +4350,7 @@ BattleScript_DoSwitchOut:: switchinanim BS_ATTACKER, FALSE, FALSE waitstate switchineffects BS_ATTACKER + switchinevents moveendcase MOVEEND_STATUS_IMMUNITY_ABILITIES moveendcase MOVEEND_MIRROR_MOVE end2 @@ -4837,6 +4398,21 @@ BattleScript_LearnedNewMove:: BattleScript_LearnMoveReturn:: return +BattleScript_WeatherAbilityActivates:: + pause B_WAIT_TIME_SHORT + call BattleScript_AbilityPopUp + jumpifability BS_SCRIPTING, ABILITY_SAND_SPIT, BattleScript_SandSpitActivates + printfromtable gAbilityWeatherChangeStringId +BattleScript_WeatherAbilityActivatesContinue: + waitstate + playanimation_var BS_BATTLER_0, sB_ANIM_ARG1 + call BattleScript_ActivateWeatherAbilities + return + +BattleScript_SandSpitActivates:: + printstring STRINGID_ASANDSTORMKICKEDUP + goto BattleScript_WeatherAbilityActivatesContinue + BattleScript_WeatherContinues:: printfromtable gWeatherTurnStringIds waitmessage B_WAIT_TIME_LONG @@ -4899,6 +4475,11 @@ BattleScript_OverworldTerrain:: call BattleScript_ActivateTerrainEffects end3 +BattleScript_OverworldHazard:: + printfromtable gStartingStatusStringIds + waitmessage B_WAIT_TIME_LONG + end3 + BattleScript_SideStatusWoreOff:: printstring STRINGID_PKMNSXWOREOFF waitmessage B_WAIT_TIME_LONG @@ -4933,8 +4514,9 @@ BattleScript_MagicRoomEnds:: printstring STRINGID_MAGICROOMENDS waitmessage B_WAIT_TIME_LONG setbyte gBattlerTarget, 0 + sortbattlers BattleScript_MagicRoomHealingItemsLoop: - copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattlerTarget, 1 + copyarraywithindex gBattlerAttacker, gBattlersBySpeed, gBattlerTarget, 1 tryactivateitem BS_ATTACKER, ACTIVATION_ON_USABLE_AGAIN addbyte gBattlerTarget, 1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_MagicRoomHealingItemsLoop @@ -5022,11 +4604,10 @@ BattleScript_BideAttack:: clearvolatile BS_ATTACKER, VOLATILE_MULTIPLETURNS printstring STRINGID_PKMNUNLEASHEDENERGY waitmessage B_WAIT_TIME_LONG - accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissed typecalc clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE copybidedmg - adjustdamage setbyte sB_ANIM_TURN, 1 attackanimation waitanimation @@ -5037,7 +4618,6 @@ BattleScript_BideAttack:: datahpupdate BS_TARGET, MOVE_DAMAGE_HP_UPDATE resultmessage waitmessage B_WAIT_TIME_LONG - tryfaintmon BS_TARGET goto BattleScript_MoveEnd BattleScript_BideNoEnergyToAttack:: @@ -5057,6 +4637,7 @@ BattleScript_RoarSuccessSwitch:: waitstate printstring STRINGID_PKMNWASDRAGGEDOUT switchineffects BS_TARGET + switchinevents jumpifbyte CMP_EQUAL, sSWITCH_CASE, B_SWITCH_RED_CARD, BattleScript_RoarSuccessSwitch_Ret setbyte sSWITCH_CASE, B_SWITCH_NORMAL goto BattleScript_MoveEnd @@ -5187,66 +4768,13 @@ BattleScript_DestinyBondTakesLife:: tryfaintmon BS_ATTACKER return -BattleScript_DmgHazardsOnAttacker:: - healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE - datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE - call BattleScript_PrintHurtByDmgHazards - tryfaintmon BS_ATTACKER - tryfaintmon_spikes BS_ATTACKER, BattleScript_DmgHazardsOnAttackerFainted - return - -BattleScript_DmgHazardsOnAttackerFainted:: - setbyte sGIVEEXP_STATE, 0 - getexp BS_ATTACKER - moveendall - tryabsorbtoxicspikesonfaint - goto BattleScript_HandleFaintedMon - -BattleScript_DmgHazardsOnTarget:: - healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE - datahpupdate BS_TARGET, PASSIVE_HP_UPDATE - call BattleScript_PrintHurtByDmgHazards - tryfaintmon BS_TARGET - tryfaintmon_spikes BS_TARGET, BattleScript_DmgHazardsOnTargetFainted - return - -BattleScript_DmgHazardsOnTargetFainted:: - setbyte sGIVEEXP_STATE, 0 - getexp BS_TARGET - moveendall - tryabsorbtoxicspikesonfaint - goto BattleScript_HandleFaintedMon - -BattleScript_DmgHazardsOnBattlerScripting:: +BattleScript_DmgHazardsOnBattler:: healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE call BattleScript_PrintHurtByDmgHazards tryfaintmon BS_SCRIPTING - tryfaintmon_spikes BS_SCRIPTING, BattleScript_DmgHazardsOnBattlerScriptingFainted - return - -BattleScript_DmgHazardsOnBattlerScriptingFainted:: - setbyte sGIVEEXP_STATE, 0 - getexp BS_SCRIPTING - moveendall - tryabsorbtoxicspikesonfaint - goto BattleScript_HandleFaintedMon - -BattleScript_DmgHazardsOnFaintedBattler:: - healthbarupdate BS_FAINTED, PASSIVE_HP_UPDATE - datahpupdate BS_FAINTED, PASSIVE_HP_UPDATE - call BattleScript_PrintHurtByDmgHazards - tryfaintmon BS_FAINTED - tryfaintmon_spikes BS_FAINTED, BattleScript_DmgHazardsOnFaintedBattlerFainted return -BattleScript_DmgHazardsOnFaintedBattlerFainted:: - setbyte sGIVEEXP_STATE, 0 - getexp BS_FAINTED - moveendall - tryabsorbtoxicspikesonfaint - goto BattleScript_HandleFaintedMon - BattleScript_PrintHurtByDmgHazards:: printfromtable gDmgHazardsStringIds waitmessage B_WAIT_TIME_LONG @@ -5307,6 +4835,9 @@ BattleScript_PerishBodyActivates:: BattleScript_GulpMissileGorging:: call BattleScript_AbilityPopUp + handleformchange BS_TARGET, 0 + playanimation BS_TARGET, B_ANIM_FORM_CHANGE_INSTANT + waitanimation playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE waitanimation effectivenesssound @@ -5318,21 +4849,15 @@ BattleScript_GulpMissileGorging:: tryfaintmon BS_ATTACKER jumpiffainted BS_ATTACKER, TRUE, BattleScript_GulpMissileNoSecondEffectGorging BattleScript_GulpMissileNoDmgGorging: - handleformchange BS_TARGET, 0 - playanimation BS_TARGET, B_ANIM_FORM_CHANGE - waitanimation - swapattackerwithtarget - seteffectprimary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_PARALYSIS - swapattackerwithtarget - return + seteffectprimary BS_TARGET, BS_ATTACKER, MOVE_EFFECT_PARALYSIS BattleScript_GulpMissileNoSecondEffectGorging: - handleformchange BS_TARGET, 0 - playanimation BS_TARGET, B_ANIM_FORM_CHANGE - waitanimation return BattleScript_GulpMissileGulping:: call BattleScript_AbilityPopUp + handleformchange BS_TARGET, 0 + playanimation BS_TARGET, B_ANIM_FORM_CHANGE_INSTANT + waitanimation playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE waitanimation effectivenesssound @@ -5344,21 +4869,14 @@ BattleScript_GulpMissileGulping:: tryfaintmon BS_ATTACKER jumpiffainted BS_ATTACKER, TRUE, BattleScript_GulpMissileNoSecondEffectGulping BattleScript_GulpMissileNoDmgGulping: - handleformchange BS_TARGET, 0 - playanimation BS_TARGET, B_ANIM_FORM_CHANGE - waitanimation swapattackerwithtarget @ to make gStatDownStringIds down below print the right battler setstatchanger STAT_DEF, 1, TRUE statbuffchange BS_TARGET, STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_GulpMissileGulpingEnd printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG BattleScript_GulpMissileGulpingEnd: - swapattackerwithtarget @ restore the battlers, just in case - return + swapattackerwithtarget BattleScript_GulpMissileNoSecondEffectGulping: - handleformchange BS_TARGET, 0 - playanimation BS_TARGET, B_ANIM_FORM_CHANGE - waitanimation return BattleScript_SeedSowerActivates:: @@ -5499,15 +5017,10 @@ BattleScript_DefogClearHazards:: BattleScript_MonTookFutureAttack:: printstring STRINGID_PKMNTOOKATTACK waitmessage B_WAIT_TIME_LONG - jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_CheckDoomDesireMiss - accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT - goto BattleScript_FutureAttackAnimate -BattleScript_CheckDoomDesireMiss:: - accuracycheck BattleScript_FutureAttackMiss, MOVE_DOOM_DESIRE -BattleScript_FutureAttackAnimate:: - critcalc + futuresighttargetfailure BattleScript_DoFutureAttackResult + jumpifmovehadnoeffect BattleScript_FutureAttackEnd + accuracycheck BattleScript_MoveMissedPause damagecalc - adjustdamage jumpifmovehadnoeffect BattleScript_DoFutureAttackResult jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_FUTURE_SIGHT, BattleScript_FutureHitAnimDoomDesire playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT @@ -5525,21 +5038,14 @@ BattleScript_DoFutureAttackHit:: BattleScript_DoFutureAttackResult: resultmessage waitmessage B_WAIT_TIME_LONG - tryfaintmon BS_TARGET - checkteamslost BattleScript_FutureAttackEnd BattleScript_FutureAttackEnd:: moveendcase MOVEEND_SET_VALUES moveendcase MOVEEND_RAGE moveendcase MOVEEND_ABILITIES - moveendcase MOVEEND_COLOR_CHANGE moveendcase MOVEEND_ITEM_EFFECTS_TARGET moveendfromto MOVEEND_SYMBIOSIS, MOVEEND_UPDATE_LAST_MOVES - goto BattleScript_FutureAttackClearResults -BattleScript_FutureAttackMiss:: - pause B_WAIT_TIME_SHORT - setmoveresultflags MOVE_RESULT_FAILED - resultmessage - waitmessage B_WAIT_TIME_LONG + moveendcase MOVEEND_COLOR_CHANGE + checkteamslost BattleScript_FutureAttackClearResults BattleScript_FutureAttackClearResults: setmoveresultflags 0 clearspecialstatuses @@ -5841,7 +5347,9 @@ BattleScript_MoveEffectClearSmog:: BattleScript_FocusPunchSetUp:: flushtextbox + call BattleScript_SwapFromSubstitute playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP + call BattleScript_SwapToSubstitute printstring STRINGID_PKMNTIGHTENINGFOCUS waitmessage B_WAIT_TIME_LONG end3 @@ -5852,10 +5360,10 @@ BattleScript_MegaEvolution:: printstring STRINGID_MEGAEVOREACTING BattleScript_MegaEvolutionAfterString: waitmessage B_WAIT_TIME_LONG - handlemegaevo BS_SCRIPTING, 0 + handleformchange BS_SCRIPTING, 0 playanimation BS_SCRIPTING, B_ANIM_MEGA_EVOLUTION waitanimation - handlemegaevo BS_SCRIPTING, 1 + handleformchange BS_SCRIPTING, 1 printstring STRINGID_MEGAEVOEVOLVED waitmessage B_WAIT_TIME_LONG switchinabilities BS_SCRIPTING @@ -5869,15 +5377,14 @@ BattleScript_WishMegaEvolution:: BattleScript_PrimalReversion:: flushtextbox - handleprimalreversion BS_SCRIPTING, 0 - handleprimalreversion BS_SCRIPTING, 1 + handleformchange BS_SCRIPTING, 0 playanimation BS_SCRIPTING, B_ANIM_PRIMAL_REVERSION waitanimation - handleprimalreversion BS_SCRIPTING, 2 + handleformchange BS_SCRIPTING, 1 printstring STRINGID_PKMNREVERTEDTOPRIMAL waitmessage B_WAIT_TIME_LONG switchinabilities BS_SCRIPTING - end3 + return BattleScript_PowerConstruct:: flushtextbox @@ -5885,10 +5392,9 @@ BattleScript_PowerConstruct:: waitmessage B_WAIT_TIME_SHORT call BattleScript_AbilityPopUpScripting handleformchange BS_SCRIPTING, 0 - handleformchange BS_SCRIPTING, 1 playanimation BS_SCRIPTING, B_ANIM_POWER_CONSTRUCT waitanimation - handleformchange BS_SCRIPTING, 2 + handleformchange BS_SCRIPTING, 1 printstring STRINGID_POWERCONSTRUCTTRANSFORM waitmessage B_WAIT_TIME_SHORT end2 @@ -5898,34 +5404,49 @@ BattleScript_UltraBurst:: trytrainerslidezmovemsg printstring STRINGID_ULTRABURSTREACTING waitmessage B_WAIT_TIME_LONG - handleultraburst BS_SCRIPTING, 0 + handleformchange BS_SCRIPTING, 0 playanimation BS_SCRIPTING, B_ANIM_ULTRA_BURST waitanimation - handleultraburst BS_SCRIPTING, 1 + handleformchange BS_SCRIPTING, 1 printstring STRINGID_ULTRABURSTCOMPLETED waitmessage B_WAIT_TIME_LONG switchinabilities BS_SCRIPTING end3 -BattleScript_GulpMissileFormChange:: - call BattleScript_BattlerFormChange - goto BattleScript_FromTwoTurnMovesSecondTurnRet - BattleScript_BattlerFormChange:: pause 5 call BattleScript_AbilityPopUpScripting flushtextbox -BattleScript_BattlerFormChangeNoPopup: +BattleScript_BattlerFormChangeNoPopup:: handleformchange BS_SCRIPTING, 0 - handleformchange BS_SCRIPTING, 1 playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE waitanimation - handleformchange BS_SCRIPTING, 2 +BattleScript_BattlerFormChangeFromAfterAnimation:: + handleformchange BS_SCRIPTING, 1 + switchinabilities BS_SCRIPTING + jumpifability BS_TARGET, ABILITY_DISGUISE, BattleScript_ApplyDisguiseFormChangeHPLoss return -BattleScript_BattlerFormChangeEnd3:: - call BattleScript_BattlerFormChange - end3 +BattleScript_ZenMode:: + flushtextbox + call BattleScript_AbilityPopUpScripting + handleformchange BS_SCRIPTING, 0 + playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE + waitanimation + handleformchange BS_SCRIPTING, 1 + printfromtable gZenModeStringIds + waitmessage B_WAIT_TIME_SHORT + end2 + +BattleScript_BattlerFormChangeDisguise:: + call BattleScript_AbilityPopUpScripting + pause B_WAIT_TIME_LONG + handleformchange BS_SCRIPTING, 0 + playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE_DISGUISE + waitanimation + printstring STRINGID_PKMNDISGUISEWASBUSTED + waitmessage B_WAIT_TIME_SHORT + goto BattleScript_BattlerFormChangeFromAfterAnimation BattleScript_BattlerFormChangeEnd3NoPopup:: call BattleScript_BattlerFormChangeNoPopup @@ -5935,29 +5456,28 @@ BattleScript_BattlerFormChangeEnd2:: call BattleScript_BattlerFormChange end2 -BattleScript_BattlerFormChangeWithStringEnd3:: +BattleScript_BattlerFormChangeWithString:: pause 5 call BattleScript_AbilityPopUpScripting flushtextbox handleformchange BS_SCRIPTING, 0 - handleformchange BS_SCRIPTING, 1 playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE waitanimation - handleformchange BS_SCRIPTING, 2 + handleformchange BS_SCRIPTING, 1 printstring STRINGID_PKMNTRANSFORMED waitmessage B_WAIT_TIME_LONG - end3 + switchinabilities BS_SCRIPTING + return BattleScript_AttackerFormChangeMoveEffect:: waitmessage 1 handleformchange BS_ATTACKER, 0 - handleformchange BS_ATTACKER, 1 playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE waitanimation + handleformchange BS_ATTACKER, 1 copybyte sBATTLER, gBattlerAttacker printstring STRINGID_PKMNTRANSFORMED waitmessage B_WAIT_TIME_LONG - handleformchange BS_ATTACKER, 2 return BattleScript_BallFetch:: @@ -5984,12 +5504,9 @@ BattleScript_ApplyDisguiseFormChangeHPLossReturn: BattleScript_TargetFormChangeNoPopup: flushtextbox handleformchange BS_SCRIPTING, 0 - handleformchange BS_SCRIPTING, 1 playanimation BS_TARGET, B_ANIM_FORM_CHANGE waitanimation - handleformchange BS_SCRIPTING, 2 - jumpifability BS_TARGET, ABILITY_DISGUISE, BattleScript_ApplyDisguiseFormChangeHPLoss - return + goto BattleScript_BattlerFormChangeFromAfterAnimation BattleScript_TargetFormChange:: pause 5 @@ -6000,11 +5517,6 @@ BattleScript_TargetFormChange:: BattleScript_TargetFormChangeWithString:: pause 5 call BattleScript_AbilityPopUpTarget - call BattleScript_TargetFormChangeNoPopup - printstring STRINGID_PKMNTRANSFORMED - waitmessage B_WAIT_TIME_LONG - return - BattleScript_TargetFormChangeWithStringNoPopup:: call BattleScript_TargetFormChangeNoPopup printstring STRINGID_PKMNTRANSFORMED @@ -6015,25 +5527,20 @@ BattleScript_IllusionOffAndTerastallization:: call BattleScript_IllusionOff goto BattleScript_Terastallization -BattleScript_IllusionOffEnd3:: - call BattleScript_IllusionOff - end3 - BattleScript_IllusionOff:: - setspriteignore0hp TRUE call BattleScript_SwapFromSubstitute playanimation BS_SCRIPTING, B_ANIM_ILLUSION_OFF waitanimation call BattleScript_SwapToSubstitute updatenick waitstate - setspriteignore0hp FALSE printstring STRINGID_ILLUSIONWOREOFF waitmessage B_WAIT_TIME_LONG return BattleScript_CottonDownActivates:: - copybyte sSAVED_BATTLER, gBattlerAttacker + saveattacker + savetarget call BattleScript_AbilityPopUpTarget copybyte gEffectBattler, gBattlerTarget swapattackerwithtarget @@ -6054,7 +5561,8 @@ BattleScript_CottonDownLoopIncrement: addbyte gBattlerTarget, 1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_CottonDownLoop swapattackerwithtarget - copybyte gBattlerAttacker, sSAVED_BATTLER + restoreattacker + restoretarget return BattleScript_AnticipationActivates:: @@ -6092,6 +5600,12 @@ BattleScript_MoveUsedIsAsleep:: statusanimation BS_ATTACKER goto BattleScript_MoveEnd +BattleScript_BeforeSnoreMessage:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage B_WAIT_TIME_LONG + statusanimation BS_ATTACKER + return + BattleScript_MoveUsedWokeUp:: printfromtable gWokeUpStringIds waitmessage B_WAIT_TIME_LONG @@ -6144,28 +5658,16 @@ BattleScript_MoveUsedIsFrozen:: statusanimation BS_ATTACKER goto BattleScript_MoveEnd -BattleScript_MoveUsedUnfroze:: +BattleScript_BattlerDefrosted:: printfromtable gGotDefrostedStringIds waitmessage B_WAIT_TIME_LONG - updatestatusicon BS_ATTACKER + updatestatusicon BS_SCRIPTING return -BattleScript_MoveUsedUnfrostbite:: +BattleScript_BattlerFrostbiteHealed:: printfromtable gFrostbiteHealedStringIds waitmessage B_WAIT_TIME_LONG - updatestatusicon BS_ATTACKER - return - -BattleScript_DefrostedViaFireMove:: - printstring STRINGID_PKMNWASDEFROSTED - waitmessage B_WAIT_TIME_LONG - updatestatusicon BS_TARGET - return - -BattleScript_FrostbiteHealedViaFireMove:: - printstring STRINGID_PKMNFROSTBITEHEALED - waitmessage B_WAIT_TIME_LONG - updatestatusicon BS_TARGET + updatestatusicon BS_SCRIPTING return BattleScript_MoveUsedIsParalyzed:: @@ -6177,20 +5679,18 @@ BattleScript_MoveUsedIsParalyzed:: BattleScript_PowderMoveNoEffect:: pause B_WAIT_TIME_SHORT - jumpiftype BS_TARGET, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint - jumpifability BS_TARGET, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat - setlastuseditem BS_TARGET + jumpiftype BS_SCRIPTING, TYPE_GRASS, BattleScript_PowderMoveNoEffectPrint + jumpifability BS_SCRIPTING, ABILITY_OVERCOAT, BattleScript_PowderMoveNoEffectOvercoat + setlastuseditem BS_SCRIPTING printstring STRINGID_SAFETYGOGGLESPROTECTED goto BattleScript_PowderMoveNoEffectWaitMsg BattleScript_PowderMoveNoEffectOvercoat: - call BattleScript_AbilityPopUpTarget + call BattleScript_AbilityPopUp BattleScript_PowderMoveNoEffectPrint: - printstring STRINGID_ITDOESNTAFFECT + printstring STRINGID_SCR_ITDOESNTAFFECT BattleScript_PowderMoveNoEffectWaitMsg: waitmessage B_WAIT_TIME_LONG - cancelmultiturnmoves - setmoveresultflags MOVE_RESULT_FAILED - goto BattleScript_MoveEnd + return BattleScript_MoveUsedFlinched:: printstring STRINGID_PKMNFLINCHED @@ -6218,10 +5718,17 @@ BattleScript_PrintUproarOverTurns:: BattleScript_ThrashConfuses:: volatileanimation BS_ATTACKER, VOLATILE_CONFUSION + copybyte sBATTLER, gBattlerAttacker printstring STRINGID_PKMNFATIGUECONFUSION waitmessage B_WAIT_TIME_LONG end2 +BattleScript_ThrashConfusesRet:: + volatileanimation BS_SCRIPTING, VOLATILE_CONFUSION + printstring STRINGID_PKMNFATIGUECONFUSION + waitmessage B_WAIT_TIME_LONG + return + BattleScript_MoveUsedIsConfused:: printstring STRINGID_PKMNISCONFUSED waitmessage B_WAIT_TIME_LONG @@ -6229,13 +5736,12 @@ BattleScript_MoveUsedIsConfused:: jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, FALSE, BattleScript_MoveUsedIsConfusedRet BattleScript_DoSelfConfusionDmg:: cancelmultiturnmoves - adjustdamage printstring STRINGID_ITHURTCONFUSION waitmessage B_WAIT_TIME_LONG effectivenesssound hitanimation BS_ATTACKER waitstate - isdmgblockedbydisguise + tryselfconfusiondmgformchange healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE resultmessage @@ -6450,17 +5956,9 @@ BattleScript_ItemSteal:: playanimation BS_EFFECT_BATTLER, B_ANIM_ITEM_STEAL printstring STRINGID_PKMNSTOLEITEM waitmessage B_WAIT_TIME_LONG + tryactivateabilitywithabilityshield BS_ATTACKER, FALSE return -BattleScript_DrizzleActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_PKMNMADEITRAIN - waitstate - playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 - BattleScript_AbilityRaisesDefenderStat:: pause B_WAIT_TIME_SHORT statbuffchange BS_TARGET, STAT_CHANGE_ONLY_CHECKING, BattleScript_AbilityCantRaiseDefenderStat @@ -6531,70 +6029,39 @@ BattleScript_MoodyLower: statbuffchange BS_ATTACKER, STAT_CHANGE_CERTAIN | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_MoodyEnd jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, B_MSG_DEFENDER_STAT_CHANGED, BattleScript_MoodyEnd printfromtable gStatDownStringIds - waitmessage B_WAIT_TIME_LONG -BattleScript_MoodyEnd: - end2 - -BattleScript_EmergencyExit:: - pause 5 - call BattleScript_AbilityPopUpScripting - pause B_WAIT_TIME_LONG - playanimation BS_SCRIPTING, B_ANIM_SLIDE_OFFSCREEN - waitanimation - openpartyscreen BS_SCRIPTING, BattleScript_EmergencyExitRet - waitstate - returntoball BS_SCRIPTING, FALSE - switchoutabilities BS_SCRIPTING - switchhandleorder BS_SCRIPTING, 2 - getswitchedmondata BS_SCRIPTING - switchindataupdate BS_SCRIPTING - hpthresholds BS_SCRIPTING - printstring STRINGID_SWITCHINMON - switchinanim BS_SCRIPTING, FALSE, TRUE - waitstate - switchineffects BS_SCRIPTING -BattleScript_EmergencyExitRet: - return - -BattleScript_EmergencyExitWild:: - pause 5 - call BattleScript_AbilityPopUpScripting - pause B_WAIT_TIME_LONG - playanimation BS_SCRIPTING, B_ANIM_SLIDE_OFFSCREEN - waitanimation - setteleportoutcome BS_SCRIPTING - finishaction - return - -BattleScript_EmergencyExitEnd2:: - pause 5 - call BattleScript_AbilityPopUp - pause B_WAIT_TIME_LONG - playanimation BS_ATTACKER, B_ANIM_SLIDE_OFFSCREEN - waitanimation - openpartyscreen BS_ATTACKER, BattleScript_EmergencyExitRetEnd2 - waitstate - returntoball BS_ATTACKER, FALSE - switchoutabilities BS_ATTACKER - switchhandleorder BS_ATTACKER, 2 - getswitchedmondata BS_ATTACKER - switchindataupdate BS_ATTACKER - hpthresholds BS_ATTACKER - printstring STRINGID_SWITCHINMON - switchinanim BS_ATTACKER, FALSE, TRUE - waitstate - switchineffects BS_ATTACKER -BattleScript_EmergencyExitRetEnd2: + waitmessage B_WAIT_TIME_LONG +BattleScript_MoodyEnd: end2 -BattleScript_EmergencyExitWildEnd2:: +BattleScript_EmergencyExit:: pause 5 - call BattleScript_AbilityPopUp + call BattleScript_AbilityPopUpScripting pause B_WAIT_TIME_LONG - playanimation BS_ATTACKER, B_ANIM_SLIDE_OFFSCREEN + playanimation BS_SCRIPTING, B_ANIM_SLIDE_OFFSCREEN waitanimation - setteleportoutcome BS_ATTACKER + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_EmergencyExitTrainer + setteleportoutcome BS_SCRIPTING finishaction + return +BattleScript_EmergencyExitTrainer: + openpartyscreen BS_SCRIPTING, BattleScript_EmergencyExitRet + waitstate + returntoball BS_SCRIPTING, FALSE + switchoutabilities BS_SCRIPTING + switchhandleorder BS_SCRIPTING, 2 + getswitchedmondata BS_SCRIPTING + switchindataupdate BS_SCRIPTING + hpthresholds BS_SCRIPTING + printstring STRINGID_SWITCHINMON + switchinanim BS_SCRIPTING, FALSE, TRUE + waitstate + switchineffects BS_SCRIPTING + switchinevents +BattleScript_EmergencyExitRet: + return + +BattleScript_EmergencyExitEnd2:: + call BattleScript_EmergencyExit end2 BattleScript_TraceActivates:: @@ -6604,7 +6071,7 @@ BattleScript_TraceActivates:: waitmessage B_WAIT_TIME_LONG settracedability BS_SCRIPTING switchinabilities BS_SCRIPTING - end3 + return BattleScript_ReceiverActivates:: call BattleScript_AbilityPopUp @@ -6670,24 +6137,6 @@ BattleScript_HealerActivates:: waitmessage B_WAIT_TIME_LONG end2 -BattleScript_SandstreamActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM - waitstate - playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 - -BattleScript_SandSpitActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_ASANDSTORMKICKEDUP - waitstate - playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES - call BattleScript_ActivateWeatherAbilities - return - BattleScript_ShedSkinActivates:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXCUREDYPROBLEM @@ -6700,8 +6149,9 @@ BattleScript_ActivateWeatherAbilities: savetarget tryboosterenergy ON_WEATHER setbyte gBattlerAttacker, 0 + sortbattlers BattleScript_ActivateWeatherAbilities_Loop: - copyarraywithindex gBattlerTarget, gBattlerByTurnOrder, gBattlerAttacker, 1 + copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1 activateweatherchangeabilities BS_TARGET addbyte gBattlerAttacker, 1 jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_ActivateWeatherAbilities_Loop @@ -6754,7 +6204,7 @@ BattleScript_IntimidateLoopIncrement: restoretarget restoreattacker pause B_WAIT_TIME_MED - end3 + return BattleScript_IntimidatePrevented:: copybyte sBATTLER, gBattlerTarget @@ -6806,61 +6256,25 @@ BattleScript_SupersweetSyrupLoopIncrement: restoretarget restoreattacker pause B_WAIT_TIME_MED - end3 + return BattleScript_SupersweetSyrupWontDecrease: printstring STRINGID_STATSWONTDECREASE goto BattleScript_SupersweetSyrupEffect_WaitString -BattleScript_DroughtActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_PKMNSXINTENSIFIEDSUN - waitstate - playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 - -BattleScript_DesolateLandActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_EXTREMELYHARSHSUNLIGHT - waitstate - playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 - BattleScript_PrimalWeatherBlocksMove:: pause B_WAIT_TIME_SHORT printfromtable gPrimalWeatherBlocksStringIds waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_PrimordialSeaActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_HEAVYRAIN - waitstate - playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 - -BattleScript_DeltaStreamActivates:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_MYSTERIOUSAIRCURRENT - waitstate - playanimation BS_ATTACKER, B_ANIM_STRONG_WINDS - call BattleScript_ActivateWeatherAbilities - end3 - BattleScript_ProtosynthesisActivates:: call BattleScript_AbilityPopUpScripting printstring STRINGID_SUNLIGHTACTIVATEDABILITY waitmessage B_WAIT_TIME_MED printstring STRINGID_STATWASHEIGHTENED waitmessage B_WAIT_TIME_MED - end3 + return BattleScript_QuarkDriveActivates:: call BattleScript_AbilityPopUp @@ -6868,34 +6282,34 @@ BattleScript_QuarkDriveActivates:: waitmessage B_WAIT_TIME_MED printstring STRINGID_STATWASHEIGHTENED waitmessage B_WAIT_TIME_MED - end3 + return BattleScript_RuinAbilityActivates:: call BattleScript_AbilityPopUp printstring STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT waitmessage B_WAIT_TIME_LONG - end3 + return BattleScript_SupremeOverlordActivates:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN waitmessage B_WAIT_TIME_LONG - end3 + return BattleScript_CostarActivates:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNCOPIEDSTATCHANGES waitmessage B_WAIT_TIME_LONG - end3 + return BattleScript_ZeroToHeroActivates:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUpScripting printstring STRINGID_ZEROTOHEROTRANSFORMATION waitmessage B_WAIT_TIME_LONG - end3 + return BattleScript_CommanderActivates:: pause B_WAIT_TIME_SHORT @@ -6934,7 +6348,7 @@ BattleScript_CommanderSpeedIncrease: waitmessage B_WAIT_TIME_LONG BattleScript_CommanderEnd: restoreattacker - end3 + return BattleScript_HospitalityActivates:: pause B_WAIT_TIME_SHORT @@ -6944,7 +6358,7 @@ BattleScript_HospitalityActivates:: playanimation BS_EFFECT_BATTLER, B_ANIM_SIMPLE_HEAL healthbarupdate BS_EFFECT_BATTLER, PASSIVE_HP_UPDATE datahpupdate BS_EFFECT_BATTLER, PASSIVE_HP_UPDATE - end3 + return BattleScript_AttackWeakenedByStrongWinds:: pause B_WAIT_TIME_SHORT @@ -6957,34 +6371,17 @@ BattleScript_MimicryActivates:: call BattleScript_AbilityPopUp printstring STRINGID_BATTLERTYPECHANGEDTO waitmessage B_WAIT_TIME_SHORT - end3 - -BattleScript_SnowWarningActivatesHail:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_SNOWWARNINGHAIL - waitstate - playanimation BS_BATTLER_0, B_ANIM_HAIL_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 - -BattleScript_SnowWarningActivatesSnow:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUp - printstring STRINGID_SNOWWARNINGSNOW - waitstate - playanimation BS_BATTLER_0, B_ANIM_SNOW_CONTINUES - call BattleScript_ActivateWeatherAbilities - end3 + return BattleScript_ActivateTerrainEffects: saveattacker savetarget tryboosterenergy ON_TERRAIN - resetterrainabilityflags + resetterrainabilityflags setbyte gBattlerAttacker, 0 + sortbattlers BattleScript_ActivateTerrainSeed: - copyarraywithindex gBattlerTarget, gBattlerByTurnOrder, gBattlerAttacker, 1 + copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1 tryterrainseed BS_TARGET, BattleScript_ActivateTerrainAbility removeitem BS_TARGET BattleScript_ActivateTerrainAbility: @@ -7002,7 +6399,7 @@ BattleScript_ElectricSurgeActivates:: waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG call BattleScript_ActivateTerrainEffects - end3 + return BattleScript_MistySurgeActivates:: pause B_WAIT_TIME_SHORT @@ -7011,7 +6408,7 @@ BattleScript_MistySurgeActivates:: waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG call BattleScript_ActivateTerrainEffects - end3 + return BattleScript_GrassySurgeActivates:: pause B_WAIT_TIME_SHORT @@ -7020,7 +6417,7 @@ BattleScript_GrassySurgeActivates:: waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG call BattleScript_ActivateTerrainEffects - end3 + return BattleScript_PsychicSurgeActivates:: pause B_WAIT_TIME_SHORT @@ -7029,7 +6426,7 @@ BattleScript_PsychicSurgeActivates:: waitmessage B_WAIT_TIME_LONG playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG call BattleScript_ActivateTerrainEffects - end3 + return BattleScript_BadDreamsActivates:: setbyte gBattlerTarget, 0 @@ -7091,42 +6488,35 @@ BattleScript_DampStopsExplosion:: BattleScript_MoveHPDrain:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp - healthbarupdate BS_TARGET, PASSIVE_HP_UPDATE - datahpupdate BS_TARGET, PASSIVE_HP_UPDATE + healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE + datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE printstring STRINGID_PKMNRESTOREDHPUSING waitmessage B_WAIT_TIME_LONG - setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE - goto BattleScript_MoveEnd + return BattleScript_MoveStatDrain:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp - statbuffchange BS_TARGET, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveStatDrain_Cont -.if B_ABSORBING_ABILITY_STRING >= GEN_5 - printfromtable gStatUpStringIds + statbuffchange BS_SCRIPTING, STAT_CHANGE_ALLOW_PTR, BattleScript_MoveStatDrain_Cont + printstring STRINGID_SCRIPTINGSTATROSE waitmessage B_WAIT_TIME_LONG -.else - printstring STRINGID_TARGETABILITYSTATRAISE - waitmessage B_WAIT_TIME_LONG -.endif BattleScript_MoveStatDrain_Cont: clearsemiinvulnerablebit - goto BattleScript_MoveEnd + return BattleScript_MonMadeMoveUseless:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXMADEYUSELESS waitmessage B_WAIT_TIME_LONG - setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE - goto BattleScript_MoveEnd + return BattleScript_FlashFireBoost:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printfromtable gFlashFireStringIds waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd + return BattleScript_AbilityPreventsPhasingOut:: call BattleScript_AbilityPreventsPhasingOutRet @@ -7179,8 +6569,7 @@ BattleScript_SoundproofProtected:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXBLOCKSY waitmessage B_WAIT_TIME_LONG - setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE - goto BattleScript_MoveEnd + return BattleScript_IceFaceNullsDamage:: call BattleScript_TargetFormChangeWithString @@ -7197,8 +6586,7 @@ BattleScript_MoveUsedPsychicTerrainPrevents:: pause B_WAIT_TIME_SHORT printstring STRINGID_PSYCHICTERRAINPREVENTS waitmessage B_WAIT_TIME_LONG - setmoveresultflags MOVE_RESULT_NO_EFFECT - goto BattleScript_MoveEnd + return BattleScript_GrassyTerrainHeals:: printstring STRINGID_GRASSYTERRAINHEALS @@ -7223,6 +6611,7 @@ BattleScript_StickyHoldActivates:: BattleScript_StickyHoldActivatesRet:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp + copybyte sBATTLER, gBattlerAbility printstring STRINGID_PKMNSXMADEYINEFFECTIVE waitmessage B_WAIT_TIME_LONG return @@ -7310,7 +6699,7 @@ BattleScript_BattlerAbilityStatRaiseOnSwitchIn:: printstring STRINGID_SCRIPTINGABILITYSTATRAISE waitmessage B_WAIT_TIME_LONG BattleScript_BattlerAbilityStatRaiseOnSwitchInRet: - end3 + return BattleScript_ScriptingAbilityStatRaise:: copybyte gBattlerAbility, sBATTLER @@ -7389,7 +6778,7 @@ BattleScript_FellStingerRaisesAtkEnd: BattleScript_AttackerAbilityStatRaiseEnd3:: call BattleScript_AttackerAbilityStatRaise restoreattacker - end3 + return BattleScript_AttackerAbilityStatRaiseEnd2:: call BattleScript_AttackerAbilityStatRaise @@ -7397,12 +6786,6 @@ BattleScript_AttackerAbilityStatRaiseEnd2:: end2 BattleScript_SwitchInAbilityMsg:: - call BattleScript_AbilityPopUp - printfromtable gSwitchInAbilityStringIds - waitmessage B_WAIT_TIME_LONG - end3 - -BattleScript_SwitchInAbilityMsgRet:: call BattleScript_AbilityPopUp printfromtable gSwitchInAbilityStringIds waitmessage B_WAIT_TIME_LONG @@ -7418,7 +6801,7 @@ BattleScript_ActivateAsOne:: call BattleScript_AbilityPopUp printfromtable gSwitchInAbilityStringIds waitmessage B_WAIT_TIME_LONG - end3 + return BattleScript_FriskMsgWithPopup:: copybyte gBattlerAbility, gBattlerAttacker @@ -7435,7 +6818,7 @@ BattleScript_FriskActivates:: tryfriskmessage restoreattacker restoretarget - end3 + return BattleScript_ImposterActivates:: call BattleScript_AbilityPopUp @@ -7446,7 +6829,7 @@ BattleScript_ImposterActivates:: waitmessage B_WAIT_TIME_LONG restoreattacker restoretarget - end3 + return BattleScript_HurtAttacker: healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE @@ -7527,10 +6910,9 @@ BattleScript_BattleBondActivatesOnMoveEndAttacker:: call BattleScript_AbilityPopUp printstring STRINGID_ATTACKERBECAMEFULLYCHARGED handleformchange BS_ATTACKER, 0 - handleformchange BS_ATTACKER, 1 playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE waitanimation - handleformchange BS_ATTACKER, 2 + handleformchange BS_ATTACKER, 1 printstring STRINGID_ATTACKERBECAMEASHSPECIES return @@ -7580,13 +6962,6 @@ BattleScript_AbilityCuredStatus:: updatestatusicon BS_SCRIPTING return -BattleScript_AbilityCuredStatusEnd3:: - call BattleScript_AbilityPopUp - printstring STRINGID_PKMNSXCUREDITSYPROBLEM - waitmessage B_WAIT_TIME_LONG - updatestatusicon BS_SCRIPTING - end3 - BattleScript_BattlerShookOffTaunt:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSHOOKOFFTHETAUNT @@ -7644,10 +7019,6 @@ BattleScript_SubstituteFade:: printstring STRINGID_PKMNSUBSTITUTEFADED return -BattleScript_BerryCureStatusEnd2:: - call BattleScript_BerryCureStatusRet - end2 - BattleScript_BerryCureStatusRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printfromtable CureStatusBerryEffectStringID @@ -7659,7 +7030,6 @@ BattleScript_BerryCureStatusRet:: BattleScript_GemActivates:: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT waitanimation - setlastuseditem BS_ATTACKER printstring STRINGID_GEMACTIVATES waitmessage B_WAIT_TIME_LONG removeitem BS_ATTACKER @@ -7668,16 +7038,11 @@ BattleScript_GemActivates:: BattleScript_BerryReduceDmg:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT waitanimation - setlastuseditem BS_SCRIPTING printstring STRINGID_BERRYDMGREDUCES waitmessage B_WAIT_TIME_LONG removeitem BS_SCRIPTING return -BattleScript_BerryCureConfusionEnd2:: - call BattleScript_BerryCureConfusionRet - end2 - BattleScript_BerryCureConfusionRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMSNAPPEDOUT @@ -7708,7 +7073,7 @@ BattleScript_WhiteHerbRet:: removeitem BS_SCRIPTING return -BattleScript_ItemHealHP_RemoveItemRet:: +BattleScript_ItemHealHP_RemoveItem:: jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp goto BattleScript_ItemHealHP_RemoveItemRet_Anim BattleScript_ItemHealHP_RemoveItemRet_AbilityPopUp: @@ -7722,21 +7087,7 @@ BattleScript_ItemHealHP_RemoveItemRet_Anim: removeitem BS_SCRIPTING return -BattleScript_ItemHealHP_RemoveItemEnd2:: - jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp - goto BattleScript_ItemHealHP_RemoveItemEnd2_Anim -BattleScript_ItemHealHP_RemoveItemEnd2_AbilityPopUp: - call BattleScript_AbilityPopUpScripting -BattleScript_ItemHealHP_RemoveItemEnd2_Anim: - playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT - printstring STRINGID_PKMNSITEMRESTOREDHEALTH - waitmessage B_WAIT_TIME_LONG - healthbarupdate BS_ATTACKER, PASSIVE_HP_UPDATE - datahpupdate BS_ATTACKER, PASSIVE_HP_UPDATE - removeitem BS_ATTACKER - end2 - -BattleScript_BerryPPHealRet:: +BattleScript_BerryPPHeal:: jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryPPHeal_AbilityPopup goto BattleScript_BerryPPHeal_Anim BattleScript_BerryPPHeal_AbilityPopup: @@ -7748,19 +7099,10 @@ BattleScript_BerryPPHeal_Anim: removeitem BS_SCRIPTING return -BattleScript_BerryPPHealEnd2:: - call BattleScript_BerryPPHealRet - end2 - BattleScript_ItemHealHP_End2:: call BattleScript_ItemHealHP_Ret end2 -BattleScript_AirBalloonMsgIn:: - printstring STRINGID_AIRBALLOONFLOAT - waitmessage B_WAIT_TIME_LONG - end3 - BattleScript_AirBalloonMsgInRet:: printstring STRINGID_AIRBALLOONFLOAT waitmessage B_WAIT_TIME_LONG @@ -7835,22 +7177,7 @@ BattleScript_HangedOnMsg:: BattleScript_HangedOnMsgRet: return -BattleScript_BerryConfuseHealEnd2:: - jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryConfuseHealEnd2_AbilityPopup - goto BattleScript_BerryConfuseHealEnd2_Anim -BattleScript_BerryConfuseHealEnd2_AbilityPopup: - call BattleScript_AbilityPopUp -BattleScript_BerryConfuseHealEnd2_Anim: - playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT - printstring STRINGID_PKMNSITEMRESTOREDHEALTH - waitmessage B_WAIT_TIME_LONG - healthbarupdate BS_SCRIPTING, PASSIVE_HP_UPDATE - datahpupdate BS_SCRIPTING, PASSIVE_HP_UPDATE - seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION - removeitem BS_SCRIPTING - end2 - -BattleScript_BerryConfuseHealRet:: +BattleScript_BerryConfuseHeal:: jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryConfuseHealRet_AbilityPopup goto BattleScript_BerryConfuseHealRet_Anim BattleScript_BerryConfuseHealRet_AbilityPopup: @@ -7865,10 +7192,6 @@ BattleScript_BerryConfuseHealRet_Anim: removeitem BS_SCRIPTING return -BattleScript_ConsumableStatRaiseEnd2:: - call BattleScript_ConsumableStatRaiseRet - end2 - BattleScript_ConsumableStatRaiseRet:: jumpifnotberry BS_SCRIPTING, BattleScript_ConsumableStatRaiseRet_Anim jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ConsumableStatRaiseRet_AbilityPopup @@ -7888,17 +7211,13 @@ BattleScript_ConsumableStatRaiseRet_Anim: BattleScript_ConsumableStatRaiseRet_End: return -BattleScript_BerryFocusEnergyRet:: +BattleScript_BerryFocusEnergy:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNUSEDXTOGETPUMPED waitmessage B_WAIT_TIME_LONG removeitem BS_SCRIPTING return -BattleScript_BerryFocusEnergyEnd2:: - call BattleScript_BerryFocusEnergyRet - end2 - BattleScript_ActionSelectionItemsCantBeUsed:: printselectionstring STRINGID_ITEMSCANTBEUSEDNOW endselectionscript @@ -7971,6 +7290,7 @@ BattleScript_ArenaDoJudgment:: erasearenareftextbox printstring STRINGID_DEFEATEDOPPONENTBYREFEREE waitmessage B_WAIT_TIME_LONG + undodynamax BS_OPPONENT1 playfaintcry BS_OPPONENT1 waitcry dofaintanimation BS_OPPONENT1 @@ -7986,6 +7306,7 @@ BattleScript_ArenaJudgmentPlayerLoses: erasearenareftextbox printstring STRINGID_LOSTTOOPPONENTBYREFEREE waitmessage B_WAIT_TIME_LONG + undodynamax BS_PLAYER1 playfaintcry BS_PLAYER1 waitcry dofaintanimation BS_PLAYER1 @@ -8002,11 +7323,13 @@ BattleScript_ArenaJudgmentDraw: printstring STRINGID_TIEDOPPONENTBYREFEREE waitmessage B_WAIT_TIME_LONG arenabothmonslost + undodynamax BS_PLAYER1 playfaintcry BS_PLAYER1 waitcry dofaintanimation BS_PLAYER1 cleareffectsonfaint BS_PLAYER1 waitanimation + undodynamax BS_OPPONENT1 playfaintcry BS_OPPONENT1 waitcry dofaintanimation BS_OPPONENT1 @@ -8069,10 +7392,6 @@ BattleScript_OpportunistCopyStatChangeEnd: setbyte sSTAT_ANIM_PLAYED, FALSE return -BattleScript_OpportunistCopyStatChangeEnd3:: - call BattleScript_OpportunistCopyStatChange - end3 - BattleScript_TotemVar:: call BattleScript_TotemVar_Ret end2 @@ -8093,14 +7412,14 @@ BattleScript_AnnounceAirLockCloudNine:: printstring STRINGID_AIRLOCKACTIVATES waitmessage B_WAIT_TIME_LONG call BattleScript_ActivateWeatherAbilities - end3 + return BattleScript_ActivateTeraformZero:: call BattleScript_AbilityPopUp waitmessage B_WAIT_TIME_LONG jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_ANY, BattleScript_ActivateTeraformZero_RemoveWeather jumpifhalfword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_ActivateTeraformZero_RemoveTerrain - goto BattleScript_ActivateTeraformZero_End + goto BattleScript_ActivateTeraformZero_Ret BattleScript_ActivateTeraformZero_RemoveWeather: removeweather printfromtable gWeatherEndsStringIds @@ -8118,16 +7437,17 @@ BattleScript_ActivateTeraformZeroEffects: tryboosterenergy ON_ANY resetterrainabilityflags setbyte gBattlerAttacker, 0 + sortbattlers BattleScript_ActivateTeraformZeroLoop: - copyarraywithindex gBattlerTarget, gBattlerByTurnOrder, gBattlerAttacker, 1 + copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1 activateterrainchangeabilities BS_TARGET activateweatherchangeabilities BS_TARGET addbyte gBattlerAttacker, 1 jumpifbytenotequal gBattlerAttacker, gBattlersCount, BattleScript_ActivateTeraformZeroLoop restoreattacker restoretarget -BattleScript_ActivateTeraformZero_End: - end3 +BattleScript_ActivateTeraformZero_Ret: + return BattleScript_QuickClawActivation:: flushtextbox @@ -8153,19 +7473,7 @@ BattleScript_CustapBerryActivation:: removeitem BS_ATTACKER end2 -BattleScript_MicleBerryActivateEnd2:: - jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_MicleBerryActivateEnd2_Ripen - goto BattleScript_MicleBerryActivateEnd2_Anim -BattleScript_MicleBerryActivateEnd2_Ripen: - call BattleScript_AbilityPopUp -BattleScript_MicleBerryActivateEnd2_Anim: - playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT - printstring STRINGID_MICLEBERRYACTIVATES - waitmessage B_WAIT_TIME_LONG - removeitem BS_ATTACKER - end2 - -BattleScript_MicleBerryActivateRet:: +BattleScript_MicleBerryActivate:: jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_MicleBerryActivateRet_Ripen goto BattleScript_MicleBerryActivateRet_Anim BattleScript_MicleBerryActivateRet_Ripen: @@ -8333,22 +7641,23 @@ BattleScript_RedCardActivates:: setbyte sSWITCH_CASE, B_SWITCH_RED_CARD forcerandomswitch BattleScript_RedCardEnd @ changes the current battle script. the rest happens in BattleScript_RoarSuccessSwitch_Ret, if switch is successful -BattleScript_RedCardEnd: - return BattleScript_RedCardIngrain: printstring STRINGID_PKMNANCHOREDITSELF BattleScript_RedCardIngrainContinue: waitmessage B_WAIT_TIME_LONG removeitem BS_SCRIPTING - restoretarget - restoreattacker - return + goto BattleScript_RedCardEnd BattleScript_RedCardSuctionCups: - printstring STRINGID_PKMNANCHORSITSELFWITH - goto BattleScript_RedCardIngrainContinue + printstring STRINGID_PKMNANCHORSITSELFWITH + goto BattleScript_RedCardIngrainContinue BattleScript_RedCardDynamaxed: printstring STRINGID_MOVEBLOCKEDBYDYNAMAX - goto BattleScript_RedCardIngrainContinue + goto BattleScript_RedCardIngrainContinue + +BattleScript_RedCardEnd: + restoretarget + restoreattacker + return BattleScript_EjectButtonActivates:: makevisible BS_ATTACKER @@ -8374,6 +7683,7 @@ BattleScript_EjectButtonActivates:: switchinanim BS_SCRIPTING, FALSE, TRUE waitstate switchineffects BS_SCRIPTING + switchinevents BattleScript_EjectButtonEnd: return @@ -8384,10 +7694,6 @@ BattleScript_EjectPackActivate_End2:: call BattleScript_EjectPackActivate_Ret end2 -BattleScript_EjectPackActivate_End3:: - call BattleScript_EjectPackActivate_Ret - end3 - BattleScript_EjectPackActivates:: jumpifcantswitch BS_SCRIPTING, BattleScript_EjectButtonEnd goto BattleScript_EjectPackActivate_Ret @@ -8399,28 +7705,18 @@ BattleScript_DoesntAffectTargetAtkString:: setmoveresultflags MOVE_RESULT_NO_EFFECT goto BattleScript_MoveEnd -BattleScript_WellBakedBodyActivates:: +BattleScript_DoesntAffectScripting:: pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUpTarget - setmoveresultflags MOVE_RESULT_NO_EFFECT - modifybattlerstatstage BS_TARGET, STAT_DEF, INCREASE, 1, BattleScript_WellBakedBodyEnd, ANIM_ON -BattleScript_WellBakedBodyEnd: - goto BattleScript_MoveEnd - -BattleScript_WindRiderActivatesMoveEnd:: - pause B_WAIT_TIME_SHORT - call BattleScript_AbilityPopUpTarget - setmoveresultflags MOVE_RESULT_NO_EFFECT - modifybattlerstatstage BS_TARGET, STAT_ATK, INCREASE, 1, BattleScript_WindRiderActivatesMoveEnd_End, ANIM_ON -BattleScript_WindRiderActivatesMoveEnd_End: - goto BattleScript_MoveEnd + printstring STRINGID_SCR_ITDOESNTAFFECT + waitmessage B_WAIT_TIME_LONG + return BattleScript_GoodAsGoldActivates:: - call BattleScript_AbilityPopUpTarget + call BattleScript_AbilityPopUp pause B_WAIT_TIME_SHORT - printstring STRINGID_ITDOESNTAFFECT + printstring STRINGID_SCR_ITDOESNTAFFECT waitmessage B_WAIT_TIME_MED - goto BattleScript_MoveEnd + return BattleScript_PastelVeilActivates:: setbyte gBattleCommunication, 0 @@ -8445,7 +7741,7 @@ BattleScript_PastelVeilLoopIncrement: goto BattleScript_PastelVeilEnd BattleScript_PastelVeilEnd: restoretarget - end3 + return BattleScript_NeutralizingGasExits:: saveattacker @@ -8454,8 +7750,9 @@ BattleScript_NeutralizingGasExits:: printstring STRINGID_NEUTRALIZINGGASOVER waitmessage B_WAIT_TIME_LONG setbyte gBattlerAttacker, 0 + sortbattlers BattleScript_NeutralizingGasExitsLoop: - copyarraywithindex gBattlerTarget, gBattlerByTurnOrder, gBattlerAttacker, 1 + copyarraywithindex gBattlerTarget, gBattlersBySpeed, gBattlerAttacker, 1 jumpifabilitycantbereactivated BS_TARGET, BattleScript_NeutralizingGasExitsLoopIncrement saveattacker switchinabilities BS_TARGET @@ -8476,6 +7773,7 @@ BattleScript_SymbiosisActivates:: call BattleScript_AbilityPopUp printstring STRINGID_SYMBIOSISITEMPASS waitmessage B_WAIT_TIME_LONG + tryactivateabilitywithabilityshield BS_EFFECT_BATTLER, FALSE return BattleScript_TargetAbilityStatRaiseRet:: @@ -8488,12 +7786,6 @@ BattleScript_TargetAbilityStatRaiseRet_End: restoreattacker return -@@@ MAX MOVES @@@ -BattleScript_EffectMaxMove:: - attackcanceler - accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON - goto BattleScript_HitFromCritCalc - BattleScript_EffectRaiseStatAllies:: savetarget copybyte gBattlerTarget, gBattlerAttacker @@ -8787,16 +8079,14 @@ BattleScript_DynamaxEnds:: BattleScript_DynamaxEnds_Ret:: flushtextbox - setspriteignore0hp TRUE updatedynamax playanimation BS_SCRIPTING, B_ANIM_FORM_CHANGE waitanimation - setspriteignore0hp FALSE pause B_WAIT_TIME_SHORT return BattleScript_MoveBlockedByDynamax:: - accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + accuracycheck BattleScript_MoveMissedPause pause B_WAIT_TIME_SHORT printstring STRINGID_MOVEBLOCKEDBYDYNAMAX waitmessage B_WAIT_TIME_LONG @@ -8808,6 +8098,12 @@ BattleScript_PokemonCantUseTheMove:: waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd +BattleScript_TargetAvoidsAttack:: + pause B_WAIT_TIME_SHORT + printfromtable gMissStringIds + waitmessage B_WAIT_TIME_LONG + return + BattleScript_CouldntFullyProtect:: printstring STRINGID_COULDNTFULLYPROTECT waitmessage B_WAIT_TIME_LONG @@ -8838,14 +8134,6 @@ BattleScript_BerserkGeneRet_End: removeitem BS_SCRIPTING return -BattleScript_BerserkGeneRetEnd2:: - call BattleScript_BerserkGeneRet - end2 - -BattleScript_BoosterEnergyEnd2:: - call BattleScript_BoosterEnergyRet - end2 - BattleScript_BoosterEnergyRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1 call BattleScript_AbilityPopUpScripting @@ -8856,12 +8144,6 @@ BattleScript_BoosterEnergyRet:: removeitem BS_SCRIPTING return -BattleScript_EffectSnow:: - attackcanceler - call BattleScript_CheckPrimalWeather - setfieldweather BATTLE_WEATHER_SNOW - goto BattleScript_MoveWeatherChange - BattleScript_SleepClauseBlocked:: pause B_WAIT_TIME_SHORT setmoveresultflags MOVE_RESULT_FAILED @@ -8948,3 +8230,24 @@ BattleScript_SwapToSubstituteContinue: waitanimation BattleScript_SwapToSubstituteReturn: return + +BattleScript_TooScaredToMove:: + printstring STRINGID_MONTOOSCAREDTOMOVE + waitmessage B_WAIT_TIME_LONG + playanimation BS_ATTACKER, B_ANIM_MON_SCARED + goto BattleScript_MoveEnd + +BattleScript_GhostGetOutGetOut:: + printstring STRINGID_GHOSTGETOUTGETOUT + playanimation BS_ATTACKER, B_ANIM_GHOST_GET_OUT + goto BattleScript_MoveEnd + +BattleScript_SilphScopeUnveiled:: + pause B_WAIT_TIME_SHORT + printstring STRINGID_SILPHSCOPEUNVEILED + waitstate + playanimation BS_OPPONENT1, B_ANIM_SILPH_SCOPED + pause B_WAIT_TIME_SHORT + printstring STRINGID_GHOSTWASMAROWAK + waitmessage B_WAIT_TIME_LONG + end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 5f7cc23a8cba..4e4a4f667d0c 100755 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -1,4 +1,5 @@ #include "config/battle.h" +#include "constants/global.h" #include "constants/battle.h" #include "constants/battle_script_commands.h" #include "constants/battle_anim.h" @@ -33,6 +34,8 @@ gBattlescriptsForSafariActions:: .4byte BattleScript_ActionGetNear .4byte BattleScript_ActionThrowPokeblock .4byte BattleScript_ActionWallyThrow + .4byte BattleScript_ActionThrowRock + .4byte BattleScript_ActionThrowBait BattleScript_ItemEnd: end @@ -81,6 +84,7 @@ BattleScript_ItemRestoreHP_SendOutRevivedBattler: switchinanim BS_SCRIPTING, FALSE, FALSE waitstate switchineffects BS_SCRIPTING + switchinevents end BattleScript_ItemCureStatus:: @@ -147,6 +151,7 @@ BattleScript_ItemSetMist:: BattleScript_ItemSetFocusEnergy:: call BattleScript_UseItemMessage + itemincreasestat jumpifvolatile BS_ATTACKER, VOLATILE_DRAGON_CHEER, BattleScript_ButItFailed jumpifvolatile BS_ATTACKER, VOLATILE_FOCUS_ENERGY, BattleScript_ButItFailed setfocusenergy BS_ATTACKER @@ -166,11 +171,12 @@ BattleScript_ItemRestorePP:: BattleScript_ItemIncreaseAllStats:: call BattleScript_UseItemMessage + itemincreasestat call BattleScript_AllStatsUp end BattleScript_BallThrow:: - jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally + jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_CATCH_TUTORIAL, BattleScript_BallThrowByWally printstring STRINGID_PLAYERUSEDITEM handleballthrow @@ -246,8 +252,11 @@ BattleScript_RunByUsingItem:: finishturn BattleScript_ActionWatchesCarefully: - printstring STRINGID_PKMNWATCHINGCAREFULLY + printfromtable gSafariReactionStringIds waitmessage B_WAIT_TIME_LONG +#if IS_FRLG + playanimation BS_OPPONENT1, B_ANIM_SAFARI_REACTION +#endif end2 BattleScript_ActionGetNear: @@ -299,3 +308,34 @@ BattleScript_TrainerBSlideMsgRet:: BattleScript_TrainerBSlideMsgEnd2:: call BattleScript_TrainerBSlideMsgRet end2 + +BattleScript_TrainerPartnerSlideMsgRet:: + trainerslidein BS_PLAYER2 + handletrainerslidemsg BS_SCRIPTING, PRINT_SLIDE_MESSAGE + waitstate + trainerslideout BS_PLAYER2 + waitstate + handletrainerslidemsg BS_SCRIPTING, RESTORE_BATTLER_SLIDE_CONTROL + return + +BattleScript_TrainerPartnerSlideMsgEnd2:: + call BattleScript_TrainerPartnerSlideMsgRet + end2 + +BattleScript_GhostBallDodge:: + waitmessage B_WAIT_TIME_LONG + printstring STRINGID_ITDODGEDBALL + waitmessage B_WAIT_TIME_LONG + finishaction + +BattleScript_ActionThrowRock:: + printstring STRINGID_THREWROCK + waitmessage B_WAIT_TIME_LONG + playanimation BS_ATTACKER, B_ANIM_ROCK_THROW + end2 + +BattleScript_ActionThrowBait:: + printstring STRINGID_THREWBAIT + waitmessage B_WAIT_TIME_LONG + playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW + end2 diff --git a/data/event_scripts.s b/data/event_scripts.s index 73b171c206ea..ae21d4b67cab 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -13,6 +13,7 @@ #include "constants/battle_pike.h" #include "constants/battle_pyramid.h" #include "constants/battle_setup.h" +#include "constants/battle_special.h" #include "constants/battle_tent.h" #include "constants/battle_tower.h" #include "constants/berry.h" @@ -25,6 +26,7 @@ #include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/event_object_movement.h" +#include "constants/fame_checker.h" #include "constants/field_effects.h" #include "constants/field_move.h" #include "constants/field_poison.h" @@ -46,12 +48,15 @@ #include "constants/metatile_labels.h" #include "constants/move_relearner.h" #include "constants/moves.h" +#include "constants/mystery_gift.h" #include "constants/party_menu.h" +#include "constants/pokeball.h" #include "constants/pokedex.h" #include "constants/pokemon.h" #include "constants/rtc.h" #include "constants/roulette.h" #include "constants/script_menu.h" +#include "constants/seagallop.h" #include "constants/secret_bases.h" #include "constants/siirtc.h" #include "constants/songs.h" @@ -59,7 +64,9 @@ #include "constants/species.h" #include "constants/trade.h" #include "constants/trainer_hill.h" +#include "constants/trainer_tower.h" #include "constants/trainers.h" +#include "constants/trainer_card.h" #include "constants/tv.h" #include "constants/union_room.h" #include "constants/vars.h" @@ -113,8 +120,11 @@ gStdScripts:: .4byte Std_RegisteredInMatchCall @ STD_REGISTER_MATCH_CALL .4byte Std_MsgboxGetPoints @ MSGBOX_GETPOINTS .4byte Std_MsgboxPokenav @ MSGBOX_POKENAV + .4byte Std_PutItemAway @ STD_PUT_ITEM_AWAY + .4byte Std_ReceivedItem @ STD_RECEIVED_ITEM gStdScripts_End:: + .include "data/maps/PetalburgCity/scripts.inc" .include "data/maps/SlateportCity/scripts.inc" .include "data/maps/MauvilleCity/scripts.inc" @@ -585,10 +595,460 @@ gStdScripts_End:: .include "data/maps/Route119_House/scripts.inc" .include "data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc" +.if IS_FRLG + +@ FRLG scripts + .include "data/maps/BattleColosseum_2P_Frlg/scripts.inc" + .include "data/maps/TradeCenter_Frlg/scripts.inc" + .include "data/maps/RecordCorner_Frlg/scripts.inc" + .include "data/maps/BattleColosseum_4P_Frlg/scripts.inc" + .include "data/maps/UnionRoom_Frlg/scripts.inc" + .include "data/maps/ViridianForest_Frlg/scripts.inc" + .include "data/maps/MtMoon_1F_Frlg/scripts.inc" + .include "data/maps/MtMoon_B1F_Frlg/scripts.inc" + .include "data/maps/MtMoon_B2F_Frlg/scripts.inc" + .include "data/maps/SSAnne_Exterior_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Corridor_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Corridor_Frlg/scripts.inc" + .include "data/maps/SSAnne_3F_Corridor_Frlg/scripts.inc" + .include "data/maps/SSAnne_B1F_Corridor_Frlg/scripts.inc" + .include "data/maps/SSAnne_Deck_Frlg/scripts.inc" + .include "data/maps/SSAnne_Kitchen_Frlg/scripts.inc" + .include "data/maps/SSAnne_CaptainsOffice_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room1_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room2_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room3_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room4_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room5_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room7_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Room1_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Room2_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Room3_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Room4_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Room5_Frlg/scripts.inc" + .include "data/maps/SSAnne_2F_Room6_Frlg/scripts.inc" + .include "data/maps/SSAnne_B1F_Room1_Frlg/scripts.inc" + .include "data/maps/SSAnne_B1F_Room2_Frlg/scripts.inc" + .include "data/maps/SSAnne_B1F_Room3_Frlg/scripts.inc" + .include "data/maps/SSAnne_B1F_Room4_Frlg/scripts.inc" + .include "data/maps/SSAnne_B1F_Room5_Frlg/scripts.inc" + .include "data/maps/SSAnne_1F_Room6_Frlg/scripts.inc" + .include "data/maps/UndergroundPath_NorthEntrance_Frlg/scripts.inc" + .include "data/maps/UndergroundPath_NorthSouthTunnel_Frlg/scripts.inc" + .include "data/maps/UndergroundPath_SouthEntrance_Frlg/scripts.inc" + .include "data/maps/UndergroundPath_WestEntrance_Frlg/scripts.inc" + .include "data/maps/UndergroundPath_EastWestTunnel_Frlg/scripts.inc" + .include "data/maps/UndergroundPath_EastEntrance_Frlg/scripts.inc" + .include "data/maps/DiglettsCave_NorthEntrance_Frlg/scripts.inc" + .include "data/maps/DiglettsCave_B1F_Frlg/scripts.inc" + .include "data/maps/DiglettsCave_SouthEntrance_Frlg/scripts.inc" + .include "data/maps/VictoryRoad_1F_Frlg/scripts.inc" + .include "data/maps/VictoryRoad_2F_Frlg/scripts.inc" + .include "data/maps/VictoryRoad_3F_Frlg/scripts.inc" + .include "data/maps/RocketHideout_B1F_Frlg/scripts.inc" + .include "data/maps/RocketHideout_B2F_Frlg/scripts.inc" + .include "data/maps/RocketHideout_B3F_Frlg/scripts.inc" + .include "data/maps/RocketHideout_B4F_Frlg/scripts.inc" + .include "data/maps/RocketHideout_Elevator_Frlg/scripts.inc" + .include "data/maps/SilphCo_1F_Frlg/scripts.inc" + .include "data/maps/SilphCo_2F_Frlg/scripts.inc" + .include "data/maps/SilphCo_3F_Frlg/scripts.inc" + .include "data/maps/SilphCo_4F_Frlg/scripts.inc" + .include "data/maps/SilphCo_5F_Frlg/scripts.inc" + .include "data/maps/SilphCo_6F_Frlg/scripts.inc" + .include "data/maps/SilphCo_7F_Frlg/scripts.inc" + .include "data/maps/SilphCo_8F_Frlg/scripts.inc" + .include "data/maps/SilphCo_9F_Frlg/scripts.inc" + .include "data/maps/SilphCo_10F_Frlg/scripts.inc" + .include "data/maps/SilphCo_11F_Frlg/scripts.inc" + .include "data/maps/SilphCo_Elevator_Frlg/scripts.inc" + .include "data/maps/PokemonMansion_1F_Frlg/scripts.inc" + .include "data/maps/PokemonMansion_2F_Frlg/scripts.inc" + .include "data/maps/PokemonMansion_3F_Frlg/scripts.inc" + .include "data/maps/PokemonMansion_B1F_Frlg/scripts.inc" + .include "data/maps/SafariZone_Center_Frlg/scripts.inc" + .include "data/maps/SafariZone_East_Frlg/scripts.inc" + .include "data/maps/SafariZone_North_Frlg/scripts.inc" + .include "data/maps/SafariZone_West_Frlg/scripts.inc" + .include "data/maps/SafariZone_Center_RestHouse_Frlg/scripts.inc" + .include "data/maps/SafariZone_East_RestHouse_Frlg/scripts.inc" + .include "data/maps/SafariZone_North_RestHouse_Frlg/scripts.inc" + .include "data/maps/SafariZone_West_RestHouse_Frlg/scripts.inc" + .include "data/maps/SafariZone_SecretHouse_Frlg/scripts.inc" + .include "data/maps/CeruleanCave_1F_Frlg/scripts.inc" + .include "data/maps/CeruleanCave_2F_Frlg/scripts.inc" + .include "data/maps/CeruleanCave_B1F_Frlg/scripts.inc" + .include "data/maps/PokemonLeague_LoreleisRoom_Frlg/scripts.inc" + .include "data/maps/PokemonLeague_BrunosRoom_Frlg/scripts.inc" + .include "data/maps/PokemonLeague_AgathasRoom_Frlg/scripts.inc" + .include "data/maps/PokemonLeague_LancesRoom_Frlg/scripts.inc" + .include "data/maps/PokemonLeague_ChampionsRoom_Frlg/scripts.inc" + .include "data/maps/PokemonLeague_HallOfFame_Frlg/scripts.inc" + .include "data/maps/RockTunnel_1F_Frlg/scripts.inc" + .include "data/maps/RockTunnel_B1F_Frlg/scripts.inc" + .include "data/maps/SeafoamIslands_1F_Frlg/scripts.inc" + .include "data/maps/SeafoamIslands_B1F_Frlg/scripts.inc" + .include "data/maps/SeafoamIslands_B2F_Frlg/scripts.inc" + .include "data/maps/SeafoamIslands_B3F_Frlg/scripts.inc" + .include "data/maps/SeafoamIslands_B4F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_1F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_2F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_3F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_4F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_5F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_6F_Frlg/scripts.inc" + .include "data/maps/PokemonTower_7F_Frlg/scripts.inc" + .include "data/maps/PowerPlant_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B4F_Frlg/scripts.inc" + .include "data/maps/MtEmber_Exterior_Frlg/scripts.inc" + .include "data/maps/MtEmber_SummitPath_1F_Frlg/scripts.inc" + .include "data/maps/MtEmber_SummitPath_2F_Frlg/scripts.inc" + .include "data/maps/MtEmber_SummitPath_3F_Frlg/scripts.inc" + .include "data/maps/MtEmber_Summit_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B5F_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_1F_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B1F_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B2F_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B3F_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/scripts.inc" + .include "data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_BerryForest_Frlg/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_Entrance_Frlg/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_1F_Frlg/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_B1F_Frlg/scripts.inc" + .include "data/maps/FourIsland_IcefallCave_Back_Frlg/scripts.inc" + .include "data/maps/FiveIsland_RocketWarehouse_Frlg/scripts.inc" + .include "data/maps/SixIsland_DottedHole_1F_Frlg/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B1F_Frlg/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B2F_Frlg/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B3F_Frlg/scripts.inc" + .include "data/maps/SixIsland_DottedHole_B4F_Frlg/scripts.inc" + .include "data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/scripts.inc" + .include "data/maps/SixIsland_PatternBush_Frlg/scripts.inc" + .include "data/maps/SixIsland_AlteringCave_Frlg/scripts.inc" + .include "data/maps/NavelRock_Exterior_Frlg/scripts.inc" + .include "data/maps/TrainerTower_1F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_2F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_3F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_4F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_5F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_6F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_7F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_8F_Frlg/scripts.inc" + .include "data/maps/TrainerTower_Roof_Frlg/scripts.inc" + .include "data/maps/TrainerTower_Lobby_Frlg/scripts.inc" + .include "data/maps/TrainerTower_Elevator_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Entrance_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room1_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room2_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room3_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room4_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room5_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room6_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room7_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room8_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room9_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room10_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room11_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room12_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room13_Frlg/scripts.inc" + .include "data/maps/FiveIsland_LostCave_Room14_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_DunsparceTunnel_Frlg/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/scripts.inc" + .include "data/maps/NavelRock_1F_Frlg/scripts.inc" + .include "data/maps/NavelRock_Summit_Frlg/scripts.inc" + .include "data/maps/NavelRock_Base_Frlg/scripts.inc" + .include "data/maps/NavelRock_SummitPath_2F_Frlg/scripts.inc" + .include "data/maps/NavelRock_SummitPath_3F_Frlg/scripts.inc" + .include "data/maps/NavelRock_SummitPath_4F_Frlg/scripts.inc" + .include "data/maps/NavelRock_SummitPath_5F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B1F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B2F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B3F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B4F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B5F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B6F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B7F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B8F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B9F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B10F_Frlg/scripts.inc" + .include "data/maps/NavelRock_BasePath_B11F_Frlg/scripts.inc" + .include "data/maps/NavelRock_B1F_Frlg/scripts.inc" + .include "data/maps/NavelRock_Fork_Frlg/scripts.inc" + .include "data/maps/BirthIsland_Exterior_Frlg/scripts.inc" + .include "data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/scripts.inc" + .include "data/maps/BirthIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/NavelRock_Harbor_Frlg/scripts.inc" + .include "data/maps/PalletTown_Frlg/scripts.inc" + .include "data/maps/ViridianCity_Frlg/scripts.inc" + .include "data/maps/PewterCity_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_Frlg/scripts.inc" + .include "data/maps/LavenderTown_Frlg/scripts.inc" + .include "data/maps/VermilionCity_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_Frlg/scripts.inc" + .include "data/maps/IndigoPlateau_Exterior_Frlg/scripts.inc" + .include "data/maps/SaffronCity_Frlg/scripts.inc" + .include "data/maps/SaffronCity_Connection_Frlg/scripts.inc" + .include "data/maps/OneIsland_Frlg/scripts.inc" + .include "data/maps/TwoIsland_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_Frlg/scripts.inc" + .include "data/maps/FourIsland_Frlg/scripts.inc" + .include "data/maps/FiveIsland_Frlg/scripts.inc" + .include "data/maps/SevenIsland_Frlg/scripts.inc" + .include "data/maps/SixIsland_Frlg/scripts.inc" + .include "data/maps/Route1_Frlg/scripts.inc" + .include "data/maps/Route2_Frlg/scripts.inc" + .include "data/maps/Route3_Frlg/scripts.inc" + .include "data/maps/Route4_Frlg/scripts.inc" + .include "data/maps/Route5_Frlg/scripts.inc" + .include "data/maps/Route6_Frlg/scripts.inc" + .include "data/maps/Route7_Frlg/scripts.inc" + .include "data/maps/Route8_Frlg/scripts.inc" + .include "data/maps/Route9_Frlg/scripts.inc" + .include "data/maps/Route10_Frlg/scripts.inc" + .include "data/maps/Route11_Frlg/scripts.inc" + .include "data/maps/Route12_Frlg/scripts.inc" + .include "data/maps/Route13_Frlg/scripts.inc" + .include "data/maps/Route14_Frlg/scripts.inc" + .include "data/maps/Route15_Frlg/scripts.inc" + .include "data/maps/Route16_Frlg/scripts.inc" + .include "data/maps/Route17_Frlg/scripts.inc" + .include "data/maps/Route18_Frlg/scripts.inc" + .include "data/maps/Route19_Frlg/scripts.inc" + .include "data/maps/Route20_Frlg/scripts.inc" + .include "data/maps/Route21_North_Frlg/scripts.inc" + .include "data/maps/Route21_South_Frlg/scripts.inc" + .include "data/maps/Route22_Frlg/scripts.inc" + .include "data/maps/Route23_Frlg/scripts.inc" + .include "data/maps/Route24_Frlg/scripts.inc" + .include "data/maps/Route25_Frlg/scripts.inc" + .include "data/maps/OneIsland_KindleRoad_Frlg/scripts.inc" + .include "data/maps/OneIsland_TreasureBeach_Frlg/scripts.inc" + .include "data/maps/TwoIsland_CapeBrink_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_BondBridge_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_Port_Frlg/scripts.inc" + .include "data/maps/FiveIsland_ResortGorgeous_Frlg/scripts.inc" + .include "data/maps/FiveIsland_WaterLabyrinth_Frlg/scripts.inc" + .include "data/maps/FiveIsland_Meadow_Frlg/scripts.inc" + .include "data/maps/FiveIsland_MemorialPillar_Frlg/scripts.inc" + .include "data/maps/SixIsland_OutcastIsland_Frlg/scripts.inc" + .include "data/maps/SixIsland_GreenPath_Frlg/scripts.inc" + .include "data/maps/SixIsland_WaterPath_Frlg/scripts.inc" + .include "data/maps/SixIsland_RuinValley_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TrainerTower_Frlg/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_Frlg/scripts.inc" + .include "data/maps/SevenIsland_TanobyRuins_Frlg/scripts.inc" + .include "data/maps/PalletTown_PlayersHouse_1F_Frlg/scripts.inc" + .include "data/maps/PalletTown_PlayersHouse_2F_Frlg/scripts.inc" + .include "data/maps/PalletTown_RivalsHouse_Frlg/scripts.inc" + .include "data/maps/PalletTown_ProfessorOaksLab_Frlg/scripts.inc" + .include "data/maps/ViridianCity_House_Frlg/scripts.inc" + .include "data/maps/ViridianCity_Gym_Frlg/scripts.inc" + .include "data/maps/ViridianCity_School_Frlg/scripts.inc" + .include "data/maps/ViridianCity_Mart_Frlg/scripts.inc" + .include "data/maps/ViridianCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/ViridianCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/PewterCity_Museum_1F_Frlg/scripts.inc" + .include "data/maps/PewterCity_Museum_2F_Frlg/scripts.inc" + .include "data/maps/PewterCity_Gym_Frlg/scripts.inc" + .include "data/maps/PewterCity_Mart_Frlg/scripts.inc" + .include "data/maps/PewterCity_House1_Frlg/scripts.inc" + .include "data/maps/PewterCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/PewterCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/PewterCity_House2_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_House1_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_House2_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_House3_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_Gym_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_BikeShop_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_Mart_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_House4_Frlg/scripts.inc" + .include "data/maps/CeruleanCity_House5_Frlg/scripts.inc" + .include "data/maps/LavenderTown_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/LavenderTown_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/scripts.inc" + .include "data/maps/LavenderTown_House1_Frlg/scripts.inc" + .include "data/maps/LavenderTown_House2_Frlg/scripts.inc" + .include "data/maps/LavenderTown_Mart_Frlg/scripts.inc" + .include "data/maps/VermilionCity_House1_Frlg/scripts.inc" + .include "data/maps/VermilionCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/VermilionCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/VermilionCity_PokemonFanClub_Frlg/scripts.inc" + .include "data/maps/VermilionCity_House2_Frlg/scripts.inc" + .include "data/maps/VermilionCity_Mart_Frlg/scripts.inc" + .include "data/maps/VermilionCity_Gym_Frlg/scripts.inc" + .include "data/maps/VermilionCity_House3_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_1F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_2F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_3F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_4F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_5F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_Roof_Frlg/scripts.inc" + .include "data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_1F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_2F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_3F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_Roof_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/scripts.inc" + .include "data/maps/CeladonCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/CeladonCity_GameCorner_Frlg/scripts.inc" + .include "data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Gym_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Restaurant_Frlg/scripts.inc" + .include "data/maps/CeladonCity_House1_Frlg/scripts.inc" + .include "data/maps/CeladonCity_Hotel_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_Mart_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_SafariZone_Office_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_Gym_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_House1_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_WardensHouse_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_House2_Frlg/scripts.inc" + .include "data/maps/FuchsiaCity_House3_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_Gym_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/CinnabarIsland_Mart_Frlg/scripts.inc" + .include "data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/SaffronCity_CopycatsHouse_1F_Frlg/scripts.inc" + .include "data/maps/SaffronCity_CopycatsHouse_2F_Frlg/scripts.inc" + .include "data/maps/SaffronCity_Dojo_Frlg/scripts.inc" + .include "data/maps/SaffronCity_Gym_Frlg/scripts.inc" + .include "data/maps/SaffronCity_House_Frlg/scripts.inc" + .include "data/maps/SaffronCity_Mart_Frlg/scripts.inc" + .include "data/maps/SaffronCity_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/SaffronCity_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/SaffronCity_MrPsychicsHouse_Frlg/scripts.inc" + .include "data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/scripts.inc" + .include "data/maps/Route2_ViridianForest_SouthEntrance_Frlg/scripts.inc" + .include "data/maps/Route2_House_Frlg/scripts.inc" + .include "data/maps/Route2_EastBuilding_Frlg/scripts.inc" + .include "data/maps/Route2_ViridianForest_NorthEntrance_Frlg/scripts.inc" + .include "data/maps/Route4_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/Route4_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/Route5_PokemonDayCare_Frlg/scripts.inc" + .include "data/maps/Route5_SouthEntrance_Frlg/scripts.inc" + .include "data/maps/Route6_NorthEntrance_Frlg/scripts.inc" + .include "data/maps/Route6_UnusedHouse_Frlg/scripts.inc" + .include "data/maps/Route7_EastEntrance_Frlg/scripts.inc" + .include "data/maps/Route8_WestEntrance_Frlg/scripts.inc" + .include "data/maps/Route10_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/Route10_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/Route11_EastEntrance_1F_Frlg/scripts.inc" + .include "data/maps/Route11_EastEntrance_2F_Frlg/scripts.inc" + .include "data/maps/Route12_NorthEntrance_1F_Frlg/scripts.inc" + .include "data/maps/Route12_NorthEntrance_2F_Frlg/scripts.inc" + .include "data/maps/Route12_FishingHouse_Frlg/scripts.inc" + .include "data/maps/Route15_WestEntrance_1F_Frlg/scripts.inc" + .include "data/maps/Route15_WestEntrance_2F_Frlg/scripts.inc" + .include "data/maps/Route16_House_Frlg/scripts.inc" + .include "data/maps/Route16_NorthEntrance_1F_Frlg/scripts.inc" + .include "data/maps/Route16_NorthEntrance_2F_Frlg/scripts.inc" + .include "data/maps/Route18_EastEntrance_1F_Frlg/scripts.inc" + .include "data/maps/Route18_EastEntrance_2F_Frlg/scripts.inc" + .include "data/maps/Route22_NorthEntrance_Frlg/scripts.inc" + .include "data/maps/Route25_SeaCottage_Frlg/scripts.inc" + .include "data/maps/SevenIsland_House_Room1_Frlg/scripts.inc" + .include "data/maps/SevenIsland_House_Room2_Frlg/scripts.inc" + .include "data/maps/SevenIsland_Mart_Frlg/scripts.inc" + .include "data/maps/SevenIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/SevenIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/SevenIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/OneIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/OneIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/OneIsland_House1_Frlg/scripts.inc" + .include "data/maps/OneIsland_House2_Frlg/scripts.inc" + .include "data/maps/OneIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/TwoIsland_JoyfulGameCorner_Frlg/scripts.inc" + .include "data/maps/TwoIsland_House_Frlg/scripts.inc" + .include "data/maps/TwoIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/TwoIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/TwoIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_House1_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_Mart_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_House2_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_House3_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_House4_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_House5_Frlg/scripts.inc" + .include "data/maps/FourIsland_PokemonDayCare_Frlg/scripts.inc" + .include "data/maps/FourIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/FourIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/FourIsland_House1_Frlg/scripts.inc" + .include "data/maps/FourIsland_LoreleisHouse_Frlg/scripts.inc" + .include "data/maps/FourIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/FourIsland_House2_Frlg/scripts.inc" + .include "data/maps/FourIsland_Mart_Frlg/scripts.inc" + .include "data/maps/FiveIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/FiveIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/FiveIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/FiveIsland_House1_Frlg/scripts.inc" + .include "data/maps/FiveIsland_House2_Frlg/scripts.inc" + .include "data/maps/SixIsland_PokemonCenter_1F_Frlg/scripts.inc" + .include "data/maps/SixIsland_PokemonCenter_2F_Frlg/scripts.inc" + .include "data/maps/SixIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/SixIsland_House_Frlg/scripts.inc" + .include "data/maps/SixIsland_Mart_Frlg/scripts.inc" + .include "data/maps/ThreeIsland_Harbor_Frlg/scripts.inc" + .include "data/maps/FiveIsland_ResortGorgeous_House_Frlg/scripts.inc" + .include "data/maps/TwoIsland_CapeBrink_House_Frlg/scripts.inc" + .include "data/maps/SixIsland_WaterPath_House1_Frlg/scripts.inc" + .include "data/maps/SixIsland_WaterPath_House2_Frlg/scripts.inc" + .include "data/maps/SevenIsland_SevaultCanyon_House_Frlg/scripts.inc" + + .include "data/scripts/trainer_tower.inc" + .include "data/scripts/fame_checker_frlg.inc" + .include "data/text/fame_checker_frlg.inc" + .include "data/scripts/item_ball_scripts_frlg.inc" + .include "data/scripts/silphco_doors.inc" + .include "data/scripts/move_tutors_frlg.inc" + .include "data/scripts/cable_club_frlg.inc" + .include "data/scripts/trainer_card_frlg.inc" + .include "data/text/trainer_card_frlg.inc" + .include "data/scripts/mystery_event_club.inc" + .include "data/scripts/day_care_frlg.inc" + .include "data/text/day_care_frlg.inc" + .include "data/scripts/seagallop.inc" + .include "data/scripts/static_pokemon.inc" + .include "data/scripts/aide.inc" + .include "data/scripts/pokemon_mansion.inc" + .include "data/scripts/pokemon_league.inc" + .include "data/scripts/route23.inc" + .include "data/text/new_game_intro_frlg.inc" + .include "data/scripts/trainers_frlg.inc" + .include "data/text/trainers_frlg.inc" + .include "data/text/ingame_trade_frlg.inc" + .include "data/scripts/flavor_text.inc" + .include "data/scripts/pkmn_center_nurse_frlg.inc" + +.endif + .include "data/scripts/std_msgbox.inc" .include "data/scripts/trainer_battle.inc" .include "data/scripts/new_game.inc" .include "data/scripts/hall_of_fame.inc" + .include "data/scripts/hall_of_fame_frlg.inc" .include "data/scripts/config.inc" .include "data/scripts/debug.inc" @@ -750,6 +1210,12 @@ Common_EventScript_BagIsFull:: msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT return +EventScript_BagIsFull:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox gText_TooBadBagIsFull + release + end + Common_EventScript_ShowNoRoomForDecor:: msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT release @@ -1052,10 +1518,37 @@ gText_Sudowoodo_Attacked:: gText_LegendaryFlewAway:: .string "The {STR_VAR_1} flew away!$" +gText_WantWhichFloor:: + .string "Which floor do you want?$" + .include "data/text/pc_transfer.inc" .include "data/text/questionnaire.inc" .include "data/text/abnormal_weather.inc" +EventScript_GetInGameTradeSpeciesInfo:: + copyvar VAR_0x8005, VAR_0x8008 + specialvar VAR_0x8009, GetInGameTradeSpeciesInfo + return + +EventScript_ChooseMonForInGameTrade:: + special ChoosePartyMon + waitstate + lock + faceplayer + return + +EventScript_GetInGameTradeSpecies:: + specialvar VAR_RESULT, GetTradeSpecies + return + +EventScript_DoInGameTrade:: + special CreateInGameTradePokemon + special DoInGameTradeScene + waitstate + lock + faceplayer + return + EventScript_SelectWithoutRegisteredItem:: msgbox gText_SelectWithoutRegisteredItem, MSGBOX_SIGN end @@ -1065,6 +1558,18 @@ EventScript_SelectWithoutRegisteredItem:: Common_EventScript_NopReturn:: return +EventScript_SetResultTrue:: + setvar VAR_RESULT, TRUE + return + +EventScript_SetResultFalse:: + setvar VAR_RESULT, FALSE + return + +EventScript_GetElevatorFloor:: + special GetElevatorFloor + return + @ Unused EventScript_CableClub_SetVarResult1:: setvar VAR_RESULT, 1 @@ -1075,15 +1580,27 @@ EventScript_CableClub_SetVarResult0:: return Common_EventScript_UnionRoomAttendant:: +#if IS_FRLG + call CableClub_EventScript_UnionRoomAttendant_Frlg +#else call CableClub_EventScript_UnionRoomAttendant +#endif end Common_EventScript_WirelessClubAttendant:: +#if IS_FRLG + call CableClub_EventScript_WirelessClubAttendant_Frlg +#else call CableClub_EventScript_WirelessClubAttendant +#endif end Common_EventScript_DirectCornerAttendant:: +#if IS_FRLG + call CableClub_EventScript_DirectCornerAttendant_Frlg +#else call CableClub_EventScript_DirectCornerAttendant +#endif end Common_EventScript_RemoveStaticPokemon:: @@ -1109,6 +1626,62 @@ EventScript_VsSeekerChargingDone:: releaseall end +@ FRLG scripts + +EventScript_SetExitingCyclingRoad:: + lockall + clearflag FLAG_SYS_ON_CYCLING_ROAD + setvar VAR_MAP_SCENE_ROUTE16, 0 + releaseall + end + +EventScript_SetEnteringCyclingRoad:: + lockall + setvar VAR_MAP_SCENE_ROUTE16, 1 + releaseall + end + +EventScript_TryDarkenRuins:: + goto_if_set FLAG_SYS_UNLOCKED_TANOBY_RUINS, Common_EventScript_NopReturn + setweather WEATHER_SHADE + doweather + return + +Text_MonFlewAway:: + .string "The {STR_VAR_1} flew away!$" + +@ Call for legendary bird trio +Text_Gyaoo:: + .string "Gyaoo!$" + +EventScript_BrailleCursorWaitButton:: + special BrailleCursorToggle + waitbuttonpress + closebraillemessage + playse SE_SELECT + setvar VAR_0x8006, 1 + special BrailleCursorToggle + return + +EventScript_PalletTown_PlayersHouse_2F_ShutDownPC:: + setvar VAR_0x8004, PC_LOCATION_PLAYER_HOUSE_FRLG + playse SE_PC_OFF + special DoPCTurnOffEffect + releaseall + end + +EventScript_PalletTown_PlayersHouse_2F_TurnOnPC:: + lockall + setvar VAR_0x8004, PC_LOCATION_PLAYER_HOUSE_FRLG + special DoPCTurnOnEffect + playse SE_PC_ON + msgbox gText_PlayerHouseBootPC + special BedroomPC + waitstate + releaseall + end + + .include "data/scripts/pc_transfer.inc" .include "data/scripts/questionnaire.inc" .include "data/scripts/abnormal_weather.inc" @@ -1136,6 +1709,7 @@ EventScript_VsSeekerChargingDone:: .include "data/scripts/repel.inc" .include "data/scripts/safari_zone.inc" .include "data/scripts/roulette.inc" + .include "data/scripts/pokedex_rating.inc" .include "data/text/pokedex_rating.inc" .include "data/text/lottery_corner.inc" .include "data/text/event_ticket_1.inc" @@ -1148,7 +1722,6 @@ EventScript_VsSeekerChargingDone:: .include "data/text/match_call.inc" .include "data/scripts/apprentice.inc" .include "data/text/apprentice.inc" - .include "data/text/battle_dome.inc" .include "data/scripts/battle_pike.inc" .include "data/text/blend_master.inc" .include "data/text/battle_tent.inc" diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 41bf18da94fe..e50a5db3a385 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -84,6 +84,9 @@ gFieldEffectScriptPointers:: .4byte gFieldEffectScript_UseRockClimb @ FLDEFF_USE_ROCK_CLIMB .4byte gFieldEffectScript_RockClimbDust @ FLDEFF_ROCK_CLIMB_DUST .4byte gFieldEffectScript_ORASDowse @ FLDEFF_ORAS_DOWSE + .4byte gFldEffScript_SmileyFaceIcon @ FLDEFF_SMILEY_FACE_ICON + .4byte gFieldEffectScript_HallOfFameRecordFrlg @ FLDEFF_HALL_OF_FAME_RECORD_FRLG + .4byte gFldEffScript_PhotoFlash @ FLDEFF_PHOTO_FLASH gFieldEffectScript_ExclamationMarkIcon1:: field_eff_callnative FldEff_ExclamationMarkIcon @@ -385,8 +388,8 @@ gFieldEffectScript_CaveDust:: field_eff_end gFieldEffectScript_Defog:: - field_eff_callnative FldEff_Defog - field_eff_end + field_eff_callnative FldEff_Defog + field_eff_end gFieldEffectScript_UseRockClimb:: @ 82DBC3F field_eff_callnative FldEff_UseRockClimb @@ -400,3 +403,15 @@ gFieldEffectScript_ORASDowse:: field_eff_callnative FldEff_ORASDowsing field_eff_end +gFldEffScript_SmileyFaceIcon:: + field_eff_callnative FldEff_SmileyFaceIcon + field_eff_end + +gFieldEffectScript_HallOfFameRecordFrlg:: + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor_Frlg, FldEff_HallOfFameRecord + field_eff_end + +gFldEffScript_PhotoFlash:: + field_eff_callnative FldEff_PhotoFlash + field_eff_end diff --git a/data/layouts/BattleColosseum_2P_Frlg/border.bin b/data/layouts/BattleColosseum_2P_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/BattleColosseum_2P_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/BattleColosseum_2P_Frlg/map.bin b/data/layouts/BattleColosseum_2P_Frlg/map.bin new file mode 100644 index 000000000000..8616a5f1bf7d Binary files /dev/null and b/data/layouts/BattleColosseum_2P_Frlg/map.bin differ diff --git a/data/layouts/BattleColosseum_4P_Frlg/border.bin b/data/layouts/BattleColosseum_4P_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/BattleColosseum_4P_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/BattleColosseum_4P_Frlg/map.bin b/data/layouts/BattleColosseum_4P_Frlg/map.bin new file mode 100644 index 000000000000..c68e13ec359b Binary files /dev/null and b/data/layouts/BattleColosseum_4P_Frlg/map.bin differ diff --git a/data/layouts/BirthIsland_Exterior_Frlg/border.bin b/data/layouts/BirthIsland_Exterior_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/BirthIsland_Exterior_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/BirthIsland_Exterior_Frlg/map.bin b/data/layouts/BirthIsland_Exterior_Frlg/map.bin new file mode 100644 index 000000000000..98502708b331 --- /dev/null +++ b/data/layouts/BirthIsland_Exterior_Frlg/map.bin @@ -0,0 +1 @@ +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvfvvvvvvvvvvvvvvvvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvvvvvvvv[\]}vvvvvvvvvvvvvvvvvvvvvvvsz`ab|s}vvvvvvvvvvvvvvvvvvvsszscdeu|s}vvvvvvvvvvvvvvvvvssz21310 003141|ss}vvvvvvvvvvvDEvvssz210 00Y300 041|ss}vDEvvvvvvvLMvszs000)3Z3+3 000u|ss}LMvvvvvvvvvsz21310 0)3,323-3+3 003141|ssvvvvvvvvvvszs0 00 01323232333000 0u|s}vvvvvvvvsz21000)3,3232323-3+30 0041|svvvvvvvszss 00 0)3,32323232323-3+300 041|}vvvvvsz2131000132323232323232333 0000u|}vvvszs0000)3,323232323232323-3+300041mu|}vvszs0 093:3:3:3:3:3:3:3:3:3;3 0 0u|}vpssk3100&'00000000000&'0041muuqvtss{||||||||||0||||||||||}uurvts{|||||||||||0|||||||||||}urvt{||||||||||||0||||||||||||}rvxkkkkkkkkkkkk111kkkkkkkkkkkkyvvvvvvvvvvvoss111sssmvvvvvvvvvvvvvvvvvvvvvvv111vvvvvvvvvvvvvvvvvvvvvvvvvvv111vvvvvvvvvvvvvvvvvvvvvvvvvvv222vvvvvvvvvvvvvvvvvvvvvvvvv"3#3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv !vvvvvvvvvvvvvvvvvvvvvvv$%vvvvvvvvvvvvvvvvvvvvvvv&'vvvvvvvvvvv \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_1F_Frlg/border.bin b/data/layouts/CeladonCity_Condominiums_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_1F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_1F_Frlg/map.bin b/data/layouts/CeladonCity_Condominiums_1F_Frlg/map.bin new file mode 100644 index 000000000000..d396e11161ad --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_2F_Frlg/border.bin b/data/layouts/CeladonCity_Condominiums_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_2F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_2F_Frlg/map.bin b/data/layouts/CeladonCity_Condominiums_2F_Frlg/map.bin new file mode 100644 index 000000000000..8dcec24564de Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_2F_Frlg/map.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_3F_Frlg/border.bin b/data/layouts/CeladonCity_Condominiums_3F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_3F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_3F_Frlg/map.bin b/data/layouts/CeladonCity_Condominiums_3F_Frlg/map.bin new file mode 100644 index 000000000000..5e44c90c6e02 --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_3F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/border.bin b/data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/map.bin b/data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/map.bin new file mode 100644 index 000000000000..a6aaf9a0c11a --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_Roof_Frlg/border.bin b/data/layouts/CeladonCity_Condominiums_Roof_Frlg/border.bin new file mode 100644 index 000000000000..cbaea0adcef4 --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_Roof_Frlg/border.bin @@ -0,0 +1 @@ +(((( \ No newline at end of file diff --git a/data/layouts/CeladonCity_Condominiums_Roof_Frlg/map.bin b/data/layouts/CeladonCity_Condominiums_Roof_Frlg/map.bin new file mode 100644 index 000000000000..8f044c89aa1f --- /dev/null +++ b/data/layouts/CeladonCity_Condominiums_Roof_Frlg/map.bin @@ -0,0 +1 @@ +((((((((((((((     ./    .!33353  73353  "!3336373363"!3333337333@3A3"!3333337333HI"!337333@3A3"!%&&'337333HI"!%&&'337333@3A3"!%&&'337333HI"!%&&'337333@3A3"!0123337333HI"!893:;33733333"!333333733333"!333333733333"!<>=>=>?33333"!B3C33333333333"!JK3333333333")            *PQQQQURSTQQQQV#DE#,-$#DE#+#LM#,-$#LM#+####,-$####+ \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_1F_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_1F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_1F_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_1F_Frlg/map.bin new file mode 100644 index 000000000000..3c09fa172d32 --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_1F_Frlg/map.bin @@ -0,0 +1 @@ +`ahij322222pqr322222e2222222222222222222222222222222222222222222222223222222222332222222223&32222"32222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_2F_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_2F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_2F_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_2F_Frlg/map.bin new file mode 100644 index 000000000000..41c334718726 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_2F_Frlg/map.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_3F_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_3F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_3F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_3F_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_3F_Frlg/map.bin new file mode 100644 index 000000000000..1640da24e284 --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_3F_Frlg/map.bin @@ -0,0 +1 @@ +`ahij22222klmpqr22222stu22222222222222222222222222222222 3 32 3 322223222222222222222 3 32 3 32222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_4F_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_4F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_4F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_4F_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_4F_Frlg/map.bin new file mode 100644 index 000000000000..f3f558069cee Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_4F_Frlg/map.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_5F_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_5F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_5F_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_5F_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_5F_Frlg/map.bin new file mode 100644 index 000000000000..5374a18eee26 --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_5F_Frlg/map.bin @@ -0,0 +1 @@ +`ahij322222k3lm7pqr322222s3tu2222222222222222 22$22222222222322223323322222222222222''2''223323322222222 !2 !23323322()2()2222012012''2''322222222222# \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/map.bin new file mode 100644 index 000000000000..42e08c38debb --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/border.bin b/data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/border.bin new file mode 100644 index 000000000000..87ae772ca07a --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/border.bin @@ -0,0 +1 @@ +WWWW \ No newline at end of file diff --git a/data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/map.bin b/data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/map.bin new file mode 100644 index 000000000000..f92a0a330cf1 --- /dev/null +++ b/data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/map.bin @@ -0,0 +1 @@ +WWWWWWWWWWWWW.///OW89999999999996777?]@AAAAAAAAA%%%=<>6?QH22222222c---EDF6?YH22*3+3+3,322222222M36?YH2243KL5322222222U36?YH2243ST5322222222N36?YH2223[3\33322222222V3=GYPB3:3:3:3:3:3:3:3:3:3:3:3:3:3:3IJRXAAAAAAAAAAAAAAAAAZC;C;C;C; \ No newline at end of file diff --git a/data/layouts/CeladonCity_Frlg/border.bin b/data/layouts/CeladonCity_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/CeladonCity_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Frlg/map.bin b/data/layouts/CeladonCity_Frlg/map.bin new file mode 100644 index 000000000000..45bad7034e6c Binary files /dev/null and b/data/layouts/CeladonCity_Frlg/map.bin differ diff --git a/data/layouts/CeladonCity_GameCorner_Frlg/border.bin b/data/layouts/CeladonCity_GameCorner_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_GameCorner_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_GameCorner_Frlg/map.bin b/data/layouts/CeladonCity_GameCorner_Frlg/map.bin new file mode 100644 index 000000000000..00280b8a4ad0 --- /dev/null +++ b/data/layouts/CeladonCity_GameCorner_Frlg/map.bin @@ -0,0 +1 @@ +222222322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/border.bin b/data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/map.bin b/data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/map.bin new file mode 100644 index 000000000000..475ca451ca82 --- /dev/null +++ b/data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/map.bin @@ -0,0 +1 @@ +222222322222222222222222222222222222232222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Gym_Frlg/border.bin b/data/layouts/CeladonCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Gym_Frlg/map.bin b/data/layouts/CeladonCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..19338125c165 --- /dev/null +++ b/data/layouts/CeladonCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/CeladonCity_Hotel_Duplicate_Frlg/border.bin b/data/layouts/CeladonCity_Hotel_Duplicate_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Hotel_Duplicate_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Hotel_Duplicate_Frlg/map.bin b/data/layouts/CeladonCity_Hotel_Duplicate_Frlg/map.bin new file mode 100644 index 000000000000..4573c1444ecb --- /dev/null +++ b/data/layouts/CeladonCity_Hotel_Duplicate_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Hotel_Frlg/border.bin b/data/layouts/CeladonCity_Hotel_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Hotel_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Hotel_Frlg/map.bin b/data/layouts/CeladonCity_Hotel_Frlg/map.bin new file mode 100644 index 000000000000..4573c1444ecb --- /dev/null +++ b/data/layouts/CeladonCity_Hotel_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/border.bin b/data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/map.bin b/data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/map.bin new file mode 100644 index 000000000000..a5391187c7c6 --- /dev/null +++ b/data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeladonCity_Restaurant_Frlg/border.bin b/data/layouts/CeladonCity_Restaurant_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeladonCity_Restaurant_Frlg/border.bin differ diff --git a/data/layouts/CeladonCity_Restaurant_Frlg/map.bin b/data/layouts/CeladonCity_Restaurant_Frlg/map.bin new file mode 100644 index 000000000000..a5391187c7c6 --- /dev/null +++ b/data/layouts/CeladonCity_Restaurant_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeruleanCave_1F_Frlg/border.bin b/data/layouts/CeruleanCave_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/CeruleanCave_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CeruleanCave_1F_Frlg/map.bin b/data/layouts/CeruleanCave_1F_Frlg/map.bin new file mode 100644 index 000000000000..33a82233782b Binary files /dev/null and b/data/layouts/CeruleanCave_1F_Frlg/map.bin differ diff --git a/data/layouts/CeruleanCave_2F_Frlg/border.bin b/data/layouts/CeruleanCave_2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/CeruleanCave_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CeruleanCave_2F_Frlg/map.bin b/data/layouts/CeruleanCave_2F_Frlg/map.bin new file mode 100644 index 000000000000..f2b9dcb9c9f0 --- /dev/null +++ b/data/layouts/CeruleanCave_2F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeruleanCave_B1F_Frlg/border.bin b/data/layouts/CeruleanCave_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/CeruleanCave_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CeruleanCave_B1F_Frlg/map.bin b/data/layouts/CeruleanCave_B1F_Frlg/map.bin new file mode 100644 index 000000000000..f423b6e0e6e2 Binary files /dev/null and b/data/layouts/CeruleanCave_B1F_Frlg/map.bin differ diff --git a/data/layouts/CeruleanCity_BikeShop_Frlg/border.bin b/data/layouts/CeruleanCity_BikeShop_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeruleanCity_BikeShop_Frlg/border.bin differ diff --git a/data/layouts/CeruleanCity_BikeShop_Frlg/map.bin b/data/layouts/CeruleanCity_BikeShop_Frlg/map.bin new file mode 100644 index 000000000000..7bfc920825c9 --- /dev/null +++ b/data/layouts/CeruleanCity_BikeShop_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_Frlg/border.bin b/data/layouts/CeruleanCity_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/CeruleanCity_Frlg/border.bin differ diff --git a/data/layouts/CeruleanCity_Frlg/map.bin b/data/layouts/CeruleanCity_Frlg/map.bin new file mode 100644 index 000000000000..de72d4e8766f --- /dev/null +++ b/data/layouts/CeruleanCity_Frlg/map.bin @@ -0,0 +1,5 @@ +qq|||||||||||}u*+++,2220 00*qqu|||||||||||}*+++,222*qquu ###########1+++,222 00 0*+qquu*+++++++++++++++,222000*+++++++++ +  +  +  + qquu*+++++++++++++++,222 00 05qquu*+(000000000000000qquu*+,0 00 00 000000000 00 00 0000000000qquu*+,0000000000000000000001001002qquu*+,2220 00 00 02222000qquu*+,000000000qquu*+,0 00 00 0000||}u*+,000000000000y0|z*+,000000000000000000000000000000 00000 0*+,000000000000000000000000000000000000*+,001002222222000000000000000000 000000*+,00000{1|1}1~11000000000000000&%$%$%####1+,000HIJK0 00 00 00 000000 00000000++++++,00000PQRS00091:1:1:1:1:1;000000++++++,001000000000XYZ[ABBBBBC0000000000000000000000000`ab000IJJJJJK0000 00 00 00 000000000001010000001000 00 000 0`1PQRSTUV0 0000000000000000000000000000hX1Y1Z[\]1^100000000000000000001000000000010000000000000001000 00000 022220000000000000000000000000000000010000000000000000000 000020000222222(0)0*0+022222000000020000001230 00 00002 0000089:;000000002200000@Abc0 00 000010222201010000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000=>>>>>>>>?0=>>>>>>>>>?0 0 00 00 00 00 0 00 00 00 00 00 00 0 0 00 00 00 00 00 00000000000000000000000000000000000 00 00 00 00 00 00 00 0000000000 00 00 00 00 00 00 00 000000000000000000 00 00 00 00 00 00 00 00 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_Gym_Frlg/border.bin b/data/layouts/CeruleanCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeruleanCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/CeruleanCity_Gym_Frlg/map.bin b/data/layouts/CeruleanCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..ee6d6516501d --- /dev/null +++ b/data/layouts/CeruleanCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/CeruleanCity_House1_Frlg/border.bin b/data/layouts/CeruleanCity_House1_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeruleanCity_House1_Frlg/border.bin differ diff --git a/data/layouts/CeruleanCity_House1_Frlg/map.bin b/data/layouts/CeruleanCity_House1_Frlg/map.bin new file mode 100644 index 000000000000..83ebe0b15752 --- /dev/null +++ b/data/layouts/CeruleanCity_House1_Frlg/map.bin @@ -0,0 +1 @@ +bcdjk1l111111112121V1 1 1 1 1 1 1 1 1 1^ 1 1 1 1#1$1$1$1%11 1 1 1 1+1&1()-1V1 1 1 1 1+1,101-1^ 1 1 1 131414141511 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_House2_Frlg/border.bin b/data/layouts/CeruleanCity_House2_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeruleanCity_House2_Frlg/border.bin differ diff --git a/data/layouts/CeruleanCity_House2_Frlg/map.bin b/data/layouts/CeruleanCity_House2_Frlg/map.bin new file mode 100644 index 000000000000..21a7d4178ab2 --- /dev/null +++ b/data/layouts/CeruleanCity_House2_Frlg/map.bin @@ -0,0 +1 @@ +a2iH1I12222221#1$1$1$1$1%1221+12()2-12221+1212-1 12 1V131412414151222^ 1?1G1O122 1 \ No newline at end of file diff --git a/data/layouts/CeruleanCity_House5_Frlg/border.bin b/data/layouts/CeruleanCity_House5_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CeruleanCity_House5_Frlg/border.bin differ diff --git a/data/layouts/CeruleanCity_House5_Frlg/map.bin b/data/layouts/CeruleanCity_House5_Frlg/map.bin new file mode 100644 index 000000000000..1f06133b3e3a --- /dev/null +++ b/data/layouts/CeruleanCity_House5_Frlg/map.bin @@ -0,0 +1 @@ +aaii2121211111M1N1M1N11 1 1 1 1 1 1 1ef 11.1 1 1 1 1 1o1mn 16 1 1 1 1 1 1ef 11.1 1 1 1 1 1 1mng16 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_Frlg/border.bin b/data/layouts/CinnabarIsland_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/CinnabarIsland_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_Frlg/map.bin b/data/layouts/CinnabarIsland_Frlg/map.bin new file mode 100644 index 000000000000..7631ea1d8a49 --- /dev/null +++ b/data/layouts/CinnabarIsland_Frlg/map.bin @@ -0,0 +1 @@ +++,003141)++,10 0031ABBBBC)++,00 0 0 0IJJJJK*++,20000PQRSTV*++,00222000 0 0 0 0X1Y1Z[\*++,000000000000000 00h++,222222200000000000++,{1|1}1~110 00 00 0*++,HIJK(0)0*0+000*++,PQRS012300*++,000 0220XYZ[89:;00*++,0000000`ab@Abc00*++0##!000000000000000*+++++,000000000000000*+++++,000000000000000*++++0###############1++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_Gym_Frlg/border.bin b/data/layouts/CinnabarIsland_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CinnabarIsland_Gym_Frlg/border.bin differ diff --git a/data/layouts/CinnabarIsland_Gym_Frlg/map.bin b/data/layouts/CinnabarIsland_Gym_Frlg/map.bin new file mode 100644 index 000000000000..39cd83f5a41f --- /dev/null +++ b/data/layouts/CinnabarIsland_Gym_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/border.bin b/data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/map.bin b/data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..39ca3b4d708b --- /dev/null +++ b/data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +hiiiijpqqr0x0y0y0y0y0y0z022000000020200jhijhijhij200200rpq2rpq2rpq2r20022000z0x0y0y0y0y0z0x0y0y0y0y0z0x0y0y0y0y0z00000000000000000000000000002200000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/border.bin b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.bin b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.bin new file mode 100644 index 000000000000..1dbda8fd5ba6 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/border.bin b/data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/map.bin b/data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/map.bin new file mode 100644 index 000000000000..a84c9d1abfb4 --- /dev/null +++ b/data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/map.bin @@ -0,0 +1,3 @@ +hkli$ikljpstq%qstrx0 3 +3{0|0y0y0y0y0y0{0|0 3 +3z0000022222220000200022666220002200022220002200022220002000022222220000200000000000000600000000000 \ No newline at end of file diff --git a/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/border.bin b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/border.bin differ diff --git a/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.bin b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.bin new file mode 100644 index 000000000000..6032e183ff7a Binary files /dev/null and b/data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.bin differ diff --git a/data/layouts/DiglettsCave_B1F_Frlg/border.bin b/data/layouts/DiglettsCave_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/DiglettsCave_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/DiglettsCave_B1F_Frlg/map.bin b/data/layouts/DiglettsCave_B1F_Frlg/map.bin new file mode 100644 index 000000000000..d29e66e00eac --- /dev/null +++ b/data/layouts/DiglettsCave_B1F_Frlg/map.bin @@ -0,0 +1 @@ +2222226666666666666666222222226622222266662222222662222222662222266222222662222222222662266226662222222222222222222222226622222222222266222222222222222222222222222222222222222222222222222222222222222222222222222222222222222666666666622222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222666666666666666666666666666666666666666666666666666666666666666666666666 \ No newline at end of file diff --git a/data/layouts/DiglettsCave_NorthEntrance_Frlg/border.bin b/data/layouts/DiglettsCave_NorthEntrance_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/DiglettsCave_NorthEntrance_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/DiglettsCave_NorthEntrance_Frlg/map.bin b/data/layouts/DiglettsCave_NorthEntrance_Frlg/map.bin new file mode 100644 index 000000000000..39007d306616 --- /dev/null +++ b/data/layouts/DiglettsCave_NorthEntrance_Frlg/map.bin @@ -0,0 +1 @@ +6666666666666623322266332222662222226632222266622222266666 \ No newline at end of file diff --git a/data/layouts/DiglettsCave_SouthEntrance_Frlg/border.bin b/data/layouts/DiglettsCave_SouthEntrance_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/DiglettsCave_SouthEntrance_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/DiglettsCave_SouthEntrance_Frlg/map.bin b/data/layouts/DiglettsCave_SouthEntrance_Frlg/map.bin new file mode 100644 index 000000000000..9d2c75793dd6 Binary files /dev/null and b/data/layouts/DiglettsCave_SouthEntrance_Frlg/map.bin differ diff --git a/data/layouts/Entrance_1F_Frlg/border.bin b/data/layouts/Entrance_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Entrance_1F_Frlg/border.bin differ diff --git a/data/layouts/Entrance_1F_Frlg/map.bin b/data/layouts/Entrance_1F_Frlg/map.bin new file mode 100644 index 000000000000..e39d586e9c5f --- /dev/null +++ b/data/layouts/Entrance_1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Entrance_2F_Frlg/border.bin b/data/layouts/Entrance_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Entrance_2F_Frlg/border.bin differ diff --git a/data/layouts/Entrance_2F_Frlg/map.bin b/data/layouts/Entrance_2F_Frlg/map.bin new file mode 100644 index 000000000000..bfac6e348c8d --- /dev/null +++ b/data/layouts/Entrance_2F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222226622 \ No newline at end of file diff --git a/data/layouts/EverGrandeCity_HallOfFame_Frlg/border.bin b/data/layouts/EverGrandeCity_HallOfFame_Frlg/border.bin new file mode 100644 index 000000000000..f496f458ecf2 Binary files /dev/null and b/data/layouts/EverGrandeCity_HallOfFame_Frlg/border.bin differ diff --git a/data/layouts/EverGrandeCity_HallOfFame_Frlg/map.bin b/data/layouts/EverGrandeCity_HallOfFame_Frlg/map.bin new file mode 100644 index 000000000000..1df9e480472f --- /dev/null +++ b/data/layouts/EverGrandeCity_HallOfFame_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222262226 \ No newline at end of file diff --git a/data/layouts/FiveIsland_Frlg/border.bin b/data/layouts/FiveIsland_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/FiveIsland_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_Frlg/map.bin b/data/layouts/FiveIsland_Frlg/map.bin new file mode 100644 index 000000000000..98fa499f86cd Binary files /dev/null and b/data/layouts/FiveIsland_Frlg/map.bin differ diff --git a/data/layouts/FiveIsland_LostCave_Entrance_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Entrance_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Entrance_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..7e68d2dd45e4 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room10_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room10_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room10_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room10_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room10_Frlg/map.bin new file mode 100644 index 000000000000..9e26501cbfa7 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room10_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room11_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room11_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room11_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room11_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room11_Frlg/map.bin new file mode 100644 index 000000000000..6af11f8cc206 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room11_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room12_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room12_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room12_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room12_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room12_Frlg/map.bin new file mode 100644 index 000000000000..6f77bfda909e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room12_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room13_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room13_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room13_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room13_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room13_Frlg/map.bin new file mode 100644 index 000000000000..bb1a69aa2c21 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room13_Frlg/map.bin @@ -0,0 +1,2 @@ +222222222222222222222 + 3222222223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room14_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room14_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room14_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room14_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room14_Frlg/map.bin new file mode 100644 index 000000000000..a4849c5d4fd1 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room14_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222223 223332222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room1_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room1_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room1_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room1_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room1_Frlg/map.bin new file mode 100644 index 000000000000..1683057f523d --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room1_Frlg/map.bin @@ -0,0 +1,2 @@ +222222222222222222222 + 3222223 2222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room2_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room2_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room2_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room2_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room2_Frlg/map.bin new file mode 100644 index 000000000000..f89ec37f3359 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room2_Frlg/map.bin @@ -0,0 +1,2 @@ +2222222222222222 + 3222223 222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room3_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room3_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room3_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room3_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room3_Frlg/map.bin new file mode 100644 index 000000000000..24073548c540 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room3_Frlg/map.bin @@ -0,0 +1,2 @@ +2222222222222222222 + 3222223 222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room4_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room4_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room4_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room4_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room4_Frlg/map.bin new file mode 100644 index 000000000000..af2e57bb2786 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room4_Frlg/map.bin @@ -0,0 +1,2 @@ +2222222222222222222 + 3222223 222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room5_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room5_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room5_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room5_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room5_Frlg/map.bin new file mode 100644 index 000000000000..b8db9de8087e --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room5_Frlg/map.bin @@ -0,0 +1,2 @@ +2222222222222222222 + 3222223 222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room6_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room6_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room6_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room6_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room6_Frlg/map.bin new file mode 100644 index 000000000000..ddf7f44026f5 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room6_Frlg/map.bin @@ -0,0 +1,2 @@ +22222222222222222 + 3222223 22222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room7_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room7_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room7_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room7_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room7_Frlg/map.bin new file mode 100644 index 000000000000..ff3353201530 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room7_Frlg/map.bin @@ -0,0 +1,2 @@ +222222222222222222 + 3222223 2222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room8_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room8_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room8_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room8_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room8_Frlg/map.bin new file mode 100644 index 000000000000..452a62af2e61 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room8_Frlg/map.bin @@ -0,0 +1,2 @@ +22222222222222222222 + 3222223 22222222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room9_Frlg/border.bin b/data/layouts/FiveIsland_LostCave_Room9_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room9_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_LostCave_Room9_Frlg/map.bin b/data/layouts/FiveIsland_LostCave_Room9_Frlg/map.bin new file mode 100644 index 000000000000..ec3f1ac6e4bf --- /dev/null +++ b/data/layouts/FiveIsland_LostCave_Room9_Frlg/map.bin @@ -0,0 +1,2 @@ +222222222222222 + 3222223 2222222222222222 \ No newline at end of file diff --git a/data/layouts/FiveIsland_Meadow_Frlg/border.bin b/data/layouts/FiveIsland_Meadow_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/FiveIsland_Meadow_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_Meadow_Frlg/map.bin b/data/layouts/FiveIsland_Meadow_Frlg/map.bin new file mode 100644 index 000000000000..6126a6fa43b3 --- /dev/null +++ b/data/layouts/FiveIsland_Meadow_Frlg/map.bin @@ -0,0 +1,5 @@ ++++++++++ +  +  +  + +++++++313131313141+++++++$%$'0 0 00 0 0u)++++ 00 00 0 0 0 00 031313141+$' 0 0 0 0 0 0 0 0 0 0 00003141+0 0 0 0 0 0 0 00 0 0 000u)00 0 0 0&%$% 0 0 0 00u)0 000 000 0 0&% 0 0 0u*yy00yy 0 0 0 0$' 0 0 0u*111111 0 000 0 0 0 0 0u*111111 0 0 0 00u*#! 0 00u*+s 0 0&' 0u*+s 0 0 0 00u+,s 0 0 000u,s0 00u*+,s000u*+,s0 00u*+,s00zs$% r 0 0 0+s0 000 0 0r 0 0 0*+,{0&%0 000r 0 0 0*+0$x0y00r 0 00*+0 00p 0 0&%r 0 00*+000p 000 0&'r0 00*++,0 00p&%$' 00 00 0 0r000*++0##$x|| 00000 0z0 00*+++++0##!s0 00 0 0 0r0000*++++++,xyy00yyz0 0*++++++++, 0 0 000000&'00*++++++++, 0 000000 00 0*++++++++, 0&' 00 00000*++++++, 0 0 0 0 00&'00 0"1++++++0###########1++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/FiveIsland_MemorialPillar_Frlg/border.bin b/data/layouts/FiveIsland_MemorialPillar_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/FiveIsland_MemorialPillar_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_MemorialPillar_Frlg/map.bin b/data/layouts/FiveIsland_MemorialPillar_Frlg/map.bin new file mode 100644 index 000000000000..a5aae1ecc5da Binary files /dev/null and b/data/layouts/FiveIsland_MemorialPillar_Frlg/map.bin differ diff --git a/data/layouts/FiveIsland_ResortGorgeous_Frlg/border.bin b/data/layouts/FiveIsland_ResortGorgeous_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/FiveIsland_ResortGorgeous_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_ResortGorgeous_Frlg/map.bin b/data/layouts/FiveIsland_ResortGorgeous_Frlg/map.bin new file mode 100644 index 000000000000..aaf0ec4dbc39 --- /dev/null +++ b/data/layouts/FiveIsland_ResortGorgeous_Frlg/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11++++++++++++++ 1 1%11111111111111111111+++++++++++++++++++++++++++++++1111011++++++++++++++++++ 1 1 1 11+++++++++ 1 1%1111 000011+++++++++++++ 1%11+++++++++1111110000&'11+++++++++++++++11q&11++++++ 1 1%1111110000  11++++++++++++ 1 1 1 11++++++1-1|.11+++++ 1%1111111110 00000 00i11+++++++++ 1%1&11++++++1-1111++++++111-1111111100000000000 00111+++++++++1squ&11++++1111+++++++++11-11111110000000000111.11+++++++++1squ11++++++++++++++++++++111-111111111111111.111++++++++++1{|}11+++++++++++++++++++++++1111111111111111++++++++++++1y0y.11+++++++++++++++++++++++++++++++++++++++++++++++++1-111111+++++++++++++++++++++++++++++++++++++++++++++++++111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/FiveIsland_ResortGorgeous_House_Frlg/border.bin b/data/layouts/FiveIsland_ResortGorgeous_House_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FiveIsland_ResortGorgeous_House_Frlg/border.bin differ diff --git a/data/layouts/FiveIsland_ResortGorgeous_House_Frlg/map.bin b/data/layouts/FiveIsland_ResortGorgeous_House_Frlg/map.bin new file mode 100644 index 000000000000..f313d50ebb65 Binary files /dev/null and b/data/layouts/FiveIsland_ResortGorgeous_House_Frlg/map.bin differ diff --git a/data/layouts/FiveIsland_RocketWarehouse_Frlg/border.bin b/data/layouts/FiveIsland_RocketWarehouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FiveIsland_RocketWarehouse_Frlg/border.bin differ diff --git a/data/layouts/FiveIsland_RocketWarehouse_Frlg/map.bin b/data/layouts/FiveIsland_RocketWarehouse_Frlg/map.bin new file mode 100644 index 000000000000..aef63eaf1ace --- /dev/null +++ b/data/layouts/FiveIsland_RocketWarehouse_Frlg/map.bin @@ -0,0 +1 @@ +2222222223323322222222222222222222222222222222222+3-3222222222223222232232222222222222222222222222222223 32222222222222(3*33322222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 32222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233322 \ No newline at end of file diff --git a/data/layouts/FiveIsland_WaterLabyrinth_Frlg/border.bin b/data/layouts/FiveIsland_WaterLabyrinth_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/FiveIsland_WaterLabyrinth_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FiveIsland_WaterLabyrinth_Frlg/map.bin b/data/layouts/FiveIsland_WaterLabyrinth_Frlg/map.bin new file mode 100644 index 000000000000..66a91da605e8 --- /dev/null +++ b/data/layouts/FiveIsland_WaterLabyrinth_Frlg/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++(213131313131313141)++++++++++++++++++++++++++++++++++++++,0 00000000*++++++++++++++++++++++++++++++,000010010*+++++++++++++++++++++++++++++++++0$000010003141)++++++++++++++++++++++++++++++++++++++++0#$00010000*+++++++++++++++++++++++++++++++++++++0$0 00100 0*++++++++++++++++++++++++++++++++++++++++++,0000000*++++++++++++++++++++++++++++++++,0 000 00 0*+++++++++++++++++++++++++0#######1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/FortreeCity_DecorationShop_Frlg/border.bin b/data/layouts/FortreeCity_DecorationShop_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/FortreeCity_DecorationShop_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FortreeCity_DecorationShop_Frlg/map.bin b/data/layouts/FortreeCity_DecorationShop_Frlg/map.bin new file mode 100644 index 000000000000..6ca8b4e610db --- /dev/null +++ b/data/layouts/FortreeCity_DecorationShop_Frlg/map.bin @@ -0,0 +1 @@ +333333333333733337 \ No newline at end of file diff --git a/data/layouts/FortreeCity_House1_Frlg/border.bin b/data/layouts/FortreeCity_House1_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/FortreeCity_House1_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FortreeCity_House1_Frlg/map.bin b/data/layouts/FortreeCity_House1_Frlg/map.bin new file mode 100644 index 000000000000..5a3ac8cb6bff --- /dev/null +++ b/data/layouts/FortreeCity_House1_Frlg/map.bin @@ -0,0 +1 @@ +33333333333333333333733337 \ No newline at end of file diff --git a/data/layouts/FortreeCity_House2_Frlg/border.bin b/data/layouts/FortreeCity_House2_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/FortreeCity_House2_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FortreeCity_House2_Frlg/map.bin b/data/layouts/FortreeCity_House2_Frlg/map.bin new file mode 100644 index 000000000000..3fbcd604300f --- /dev/null +++ b/data/layouts/FortreeCity_House2_Frlg/map.bin @@ -0,0 +1 @@ +37733333333333333333733337 \ No newline at end of file diff --git a/data/layouts/FourIsland_Frlg/border.bin b/data/layouts/FourIsland_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/FourIsland_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/FourIsland_Frlg/map.bin b/data/layouts/FourIsland_Frlg/map.bin new file mode 100644 index 000000000000..dd45ba9bd48f --- /dev/null +++ b/data/layouts/FourIsland_Frlg/map.bin @@ -0,0 +1 @@ +vOssqsqq{|||||qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvOssqsqqqqqqqq{|||||||||||||qqqqqqqqqqqqqqqqqqqvOssq{||||qqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqqqqqqvOssqqqqqq{|||||||||||||||qsqqqqqqqqqqqqqqqqqqqvOs{|||yyyyyyyyyyyyyyyqsqsqqqqqqqqqqqqqqqqqqqvO{||ypqsqsqqqqqqqqqqqqqqqqqqqvWeeG11110 0 00pqsqsqqqqqqqqqqqqqqqqqqqvsssO1##11100 00####pqsq{||qqqqqqqqqqqqqqqqvvosO100111 00110000pq{qqq{|||||||||||||qqvvvsO10 00 0 0 00111000pqq{||qqqqqqqqqqqqqqsqqvvvsO1$% 02222 00111000pqqqqq{||||||||||||qsqqDEvsO1y 000|||||||||||sqsqqLMvsO11100 0000000||||yy0yyssqsqqvvvsO111 0 00u0000 0pssqsqqvvvsO1110 00 00 000 00&%$'0u00000pssqsqqvvvsO111000000 0 00 0 00 00 0 00 00 0usssqsqqvvvoO1110 00 0000{1|1}1~1100000000usssqsqqvvvvO1110000000HIJK 00 0usssqsqqvvDEO1110 00 00PQRS000usssqsqqvvLMO1110000&'XYZ[ 00 0u313131313141sssq{qvvvvO1110 00 0000`ab0003sssqqsqvvvvO111000 00 00 000003131313131 00 0&'0usssqqsqvvvvO1110 0000000000 00 00 0000000a1usssqqsqvvDEO111000yyyy0 00(0)0*0+02222200ir313131pssqqsqvvLMO1111111111100001230 00 0 0000r0 00pssqqsqvvvvO111111111110 0089:;00000000r 00 0pssqqsqvvvvO11111111111000@Abc0 00 0 0000r000pssqq{vDEvWkkkk111kkG10 00 00 00 00 00 00 0y00yyz0 00ps{qqsvLMvsssss222ssO100000000000000r00110 0110psqsqqsvvvvvosO100 00000000000 0r0 01101110psqsqqsvvvvvvsO1yyy 0 0r0000011 00psqsqq{vvvvDEsO11111&%$%$%$'hiqsqqqvvvvLMsWkkG11yyyhiiiqqqqqqqqqqqqqqsqqqvvvvvvssssO111111sqqqqqqqqqqqqqqqqqqsqqqvvvvvvossssssssssO111111sqqqqqqqqqqqqqqqqqq{|||vvvvvvvDEvvvvvvvoWkkG111{||||||||||qqqqqqqqqqqvvvvvvvLMvvvDEvvvvvoWkkG||||||||||sqqqqqqqqqqqvvvvvvvvvvvvLMvvvDEvsssWeeeeeeeeeeGs{|||||||||||vvvvvvvvvvvvvvvvvLMvvvosssss^_ssssO{||||||||||||vvvvvvvvvvvvvvvvvvvvvvvvvvvvLMvvosWeeeeeeeeeeeee \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_1F_Frlg/border.bin b/data/layouts/FourIsland_IcefallCave_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_1F_Frlg/map.bin b/data/layouts/FourIsland_IcefallCave_1F_Frlg/map.bin new file mode 100644 index 000000000000..22cfdf42ef8c Binary files /dev/null and b/data/layouts/FourIsland_IcefallCave_1F_Frlg/map.bin differ diff --git a/data/layouts/FourIsland_IcefallCave_B1F_Frlg/border.bin b/data/layouts/FourIsland_IcefallCave_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_B1F_Frlg/map.bin b/data/layouts/FourIsland_IcefallCave_B1F_Frlg/map.bin new file mode 100644 index 000000000000..b3db8d893686 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_B1F_Frlg/map.bin @@ -0,0 +1 @@ +K3K3K3?_22222J3K3OK3K3K3K3_22J3K3O?K3K3K3_22^K3K3OK3K3K3_22s^K3K3K3K3K3K3_s22222BK3K3K3K3K3K3L3222222BK3?K3K3K3K3_s22222^K3K3K3GK3K3L3222222^K3K3?K3?K3D22222^K3K3K3K3K3K3_222222^K3K3K3K3K3K3_222^K3HIK3K3K3L322222R\tS3S3\TVU22222222VUU22222VU222VVUUVVUV \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Back_Frlg/border.bin b/data/layouts/FourIsland_IcefallCave_Back_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Back_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Back_Frlg/map.bin b/data/layouts/FourIsland_IcefallCave_Back_Frlg/map.bin new file mode 100644 index 000000000000..aa44dd119709 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Back_Frlg/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++   +++++++++++++   U+++++++++++V)+++++(*+++,U ++++++++,)++++++++++ VU*+++++++++(VU*+++++++++,V*+++++++++,*+++++++++,*+++++++++,U +++++++ VUgj3k3k3k3k3k3l3fV2222222p222222U222222qVUor22nVU22qV222222222p22UVUV \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Entrance_Frlg/border.bin b/data/layouts/FourIsland_IcefallCave_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Entrance_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/FourIsland_IcefallCave_Entrance_Frlg/map.bin b/data/layouts/FourIsland_IcefallCave_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..b37ddd8008b9 --- /dev/null +++ b/data/layouts/FourIsland_IcefallCave_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222>2222222#"222'''''/////////////////////////77777>22222>22222222======222222===222222===222222===UV===UV=UV==UV \ No newline at end of file diff --git a/data/layouts/FourIsland_LoreleisHouse_Frlg/border.bin b/data/layouts/FourIsland_LoreleisHouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FourIsland_LoreleisHouse_Frlg/border.bin differ diff --git a/data/layouts/FourIsland_LoreleisHouse_Frlg/map.bin b/data/layouts/FourIsland_LoreleisHouse_Frlg/map.bin new file mode 100644 index 000000000000..5ce78023de34 --- /dev/null +++ b/data/layouts/FourIsland_LoreleisHouse_Frlg/map.bin @@ -0,0 +1 @@ +  ` 5 h22222222222B222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FourIsland_PokemonDayCare_Frlg/border.bin b/data/layouts/FourIsland_PokemonDayCare_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FourIsland_PokemonDayCare_Frlg/border.bin differ diff --git a/data/layouts/FourIsland_PokemonDayCare_Frlg/map.bin b/data/layouts/FourIsland_PokemonDayCare_Frlg/map.bin new file mode 100644 index 000000000000..d7207d8ff0c6 --- /dev/null +++ b/data/layouts/FourIsland_PokemonDayCare_Frlg/map.bin @@ -0,0 +1 @@ +b33333222222    !32222222"32232 3 32222222 3 322222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_Frlg/border.bin b/data/layouts/FuchsiaCity_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/FuchsiaCity_Frlg/border.bin differ diff --git a/data/layouts/FuchsiaCity_Frlg/map.bin b/data/layouts/FuchsiaCity_Frlg/map.bin new file mode 100644 index 000000000000..e1517ef1d9ef --- /dev/null +++ b/data/layouts/FuchsiaCity_Frlg/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%0000000000000000000000 00000000000000000002222222222222200 0 02020000022222222222220000000000 000000000000000 000 000 0000000000000000034445000000000000000000000000000000088888900000000000000000000000000000000000000000000000000000 00 00(0)0*0+00000000000002222220222222222000000000000123000000000000 00 0089:;0000000000000 00000000 0000$'0000000@Abc00000000000000000000000000000000000000000000000 0 0000222222222000000000000000000000000000000000000000000000 000000000000000000000 00000000000000&%0000100000000 0 00001000000000000000000000003444445 00 0000000000000000000000000000 000006666666666000010000000000000000000000100000000000000000000100066666666670 0000 000000000000000000000000000000 00?00 00 0000000000000000000000000000000?0 00 0hiiiiiiiiiiiiiiiiiiiiiiij000 0031313131313131?0000pqqqqqqqqqqqqqqqqqqr0000000 000000 00 0pqHIJKr00222222220000xyABBBBBCPQRSz000 00 00IJJJJJKXYZ[00a100000`1PQRSTUV`ab00i0000 0hX1Y1Z[\]1^10000000000000000000000000000 00 00000000000100000000000000000000 00 0000010100000001010000000 0 00 00 00 00 00 00 0000000hiiiiij0000000000000000000 000000000pklllmr000 00 00 00 00000000000psqqqur0000000000hiiiiij0000000000psqqqur0 00 00 00 00 0pklllmrpsqqqur0000000000psqqqur \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_Gym_Frlg/border.bin b/data/layouts/FuchsiaCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FuchsiaCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/FuchsiaCity_Gym_Frlg/map.bin b/data/layouts/FuchsiaCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..390ee14be029 --- /dev/null +++ b/data/layouts/FuchsiaCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_House2_Frlg/border.bin b/data/layouts/FuchsiaCity_House2_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FuchsiaCity_House2_Frlg/border.bin differ diff --git a/data/layouts/FuchsiaCity_House2_Frlg/map.bin b/data/layouts/FuchsiaCity_House2_Frlg/map.bin new file mode 100644 index 000000000000..83ebe0b15752 --- /dev/null +++ b/data/layouts/FuchsiaCity_House2_Frlg/map.bin @@ -0,0 +1 @@ +bcdjk1l111111112121V1 1 1 1 1 1 1 1 1 1^ 1 1 1 1#1$1$1$1%11 1 1 1 1+1&1()-1V1 1 1 1 1+1,101-1^ 1 1 1 131414141511 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/border.bin b/data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/border.bin differ diff --git a/data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/map.bin b/data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..e84271730c99 --- /dev/null +++ b/data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_SafariZone_Office_Frlg/border.bin b/data/layouts/FuchsiaCity_SafariZone_Office_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FuchsiaCity_SafariZone_Office_Frlg/border.bin differ diff --git a/data/layouts/FuchsiaCity_SafariZone_Office_Frlg/map.bin b/data/layouts/FuchsiaCity_SafariZone_Office_Frlg/map.bin new file mode 100644 index 000000000000..d18ddbd61749 --- /dev/null +++ b/data/layouts/FuchsiaCity_SafariZone_Office_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/FuchsiaCity_WardensHouse_Frlg/border.bin b/data/layouts/FuchsiaCity_WardensHouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/FuchsiaCity_WardensHouse_Frlg/border.bin differ diff --git a/data/layouts/FuchsiaCity_WardensHouse_Frlg/map.bin b/data/layouts/FuchsiaCity_WardensHouse_Frlg/map.bin new file mode 100644 index 000000000000..4efd7d891bf9 --- /dev/null +++ b/data/layouts/FuchsiaCity_WardensHouse_Frlg/map.bin @@ -0,0 +1 @@ +M1N1M1N11111111111 1 1 12222 1 1222rf 1#1%1 1zn 131222251 11s1 1 1 1 1 1 1 1 1 11111 1 1 1 1 1 1 1 1 1 1 1 1V1 1 1 1 1 1 1 1 1 1 1 1U1^ 1 1 1 1?1G1O1 1 1 1 1] \ No newline at end of file diff --git a/data/layouts/House1_Frlg/border.bin b/data/layouts/House1_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/House1_Frlg/border.bin differ diff --git a/data/layouts/House1_Frlg/map.bin b/data/layouts/House1_Frlg/map.bin new file mode 100644 index 000000000000..7fb8f8319113 --- /dev/null +++ b/data/layouts/House1_Frlg/map.bin @@ -0,0 +1 @@ +aapq5iixyH1I11111111111 1 1#1$1$1$1$1%1 1 11 1 1+1&1()'1-1 1 11 1 1+1&101'1-1 1 1V1 1 1314141414151 1U1^ 1 1?1G1O1 1 1 1 1] \ No newline at end of file diff --git a/data/layouts/House2_Frlg/border.bin b/data/layouts/House2_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/House2_Frlg/border.bin differ diff --git a/data/layouts/House2_Frlg/map.bin b/data/layouts/House2_Frlg/map.bin new file mode 100644 index 000000000000..2f2d83996079 --- /dev/null +++ b/data/layouts/House2_Frlg/map.bin @@ -0,0 +1 @@ +  ./ -!" 1267(5)*(90:0>0?0 0=0 0 0 0 0 0 000C0D0D0D0D0F000 000S0K0LMN0V000 000S0K0TUN0V000W000[0\0\0\0\0^00G0_000000000O44444444 \ No newline at end of file diff --git a/data/layouts/House3_Frlg/border.bin b/data/layouts/House3_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/House3_Frlg/border.bin differ diff --git a/data/layouts/House3_Frlg/map.bin b/data/layouts/House3_Frlg/map.bin new file mode 100644 index 000000000000..73c6abf89d2f --- /dev/null +++ b/data/layouts/House3_Frlg/map.bin @@ -0,0 +1 @@ +"  89*!@A211111111H1I11V1 1 1 1 1 1 1 1 1 1 1^ 1 1 1o1efg1 1 1 11 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/House4_Frlg/border.bin b/data/layouts/House4_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/House4_Frlg/border.bin differ diff --git a/data/layouts/House4_Frlg/map.bin b/data/layouts/House4_Frlg/map.bin new file mode 100644 index 000000000000..f74c83441dca --- /dev/null +++ b/data/layouts/House4_Frlg/map.bin @@ -0,0 +1 @@ +  `` h h111111111111 1 1 1 1 1 1 1 1 1 1V1 1 1 1o1efg1 1 1 1^ 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1?1G1O1 1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/House5_Frlg/border.bin b/data/layouts/House5_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/House5_Frlg/border.bin differ diff --git a/data/layouts/House5_Frlg/map.bin b/data/layouts/House5_Frlg/map.bin new file mode 100644 index 000000000000..4daf805f737f --- /dev/null +++ b/data/layouts/House5_Frlg/map.bin @@ -0,0 +1 @@ +aapqi5ixy000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/IndigoPlateau_Exterior_Frlg/border.bin b/data/layouts/IndigoPlateau_Exterior_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/IndigoPlateau_Exterior_Frlg/border.bin differ diff --git a/data/layouts/IndigoPlateau_Exterior_Frlg/map.bin b/data/layouts/IndigoPlateau_Exterior_Frlg/map.bin new file mode 100644 index 000000000000..2bfc01f42e6d Binary files /dev/null and b/data/layouts/IndigoPlateau_Exterior_Frlg/map.bin differ diff --git a/data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/border.bin b/data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/border.bin differ diff --git a/data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/map.bin b/data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/map.bin new file mode 100644 index 000000000000..9a9319f8e509 Binary files /dev/null and b/data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/map.bin differ diff --git a/data/layouts/Island_Harbor_Frlg/border.bin b/data/layouts/Island_Harbor_Frlg/border.bin new file mode 100644 index 000000000000..536a722ecaf5 --- /dev/null +++ b/data/layouts/Island_Harbor_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Island_Harbor_Frlg/map.bin b/data/layouts/Island_Harbor_Frlg/map.bin new file mode 100644 index 000000000000..353d5f450d8c --- /dev/null +++ b/data/layouts/Island_Harbor_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222#####!222 #####+++++,2*++++++++++0#1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/LavaridgeTown_HerbShop_Frlg/border.bin b/data/layouts/LavaridgeTown_HerbShop_Frlg/border.bin new file mode 100644 index 000000000000..f496f458ecf2 Binary files /dev/null and b/data/layouts/LavaridgeTown_HerbShop_Frlg/border.bin differ diff --git a/data/layouts/LavaridgeTown_HerbShop_Frlg/map.bin b/data/layouts/LavaridgeTown_HerbShop_Frlg/map.bin new file mode 100644 index 000000000000..cc0294a805f3 --- /dev/null +++ b/data/layouts/LavaridgeTown_HerbShop_Frlg/map.bin @@ -0,0 +1 @@ +32222x2p2p2p2p22h2h2h2x2p2p2p2p2p2y2h2h2h232h2h2h2h2h2h2h2h2h22g2h2h2h2h2h2h2h2f2Z2abh2h2h2h2h2ab \ No newline at end of file diff --git a/data/layouts/LavenderTown_Frlg/border.bin b/data/layouts/LavenderTown_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/LavenderTown_Frlg/border.bin differ diff --git a/data/layouts/LavenderTown_Frlg/map.bin b/data/layouts/LavenderTown_Frlg/map.bin new file mode 100644 index 000000000000..9bba130efad2 --- /dev/null +++ b/data/layouts/LavenderTown_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqqr0 00 0 0psuqqqqq10000psuqqqqHIJK 00 0 0psuqqqqrPQRS0000psuqyyzXYZ[ 00 0psuqr 00 0`ab0000p{'89:4}qr0000b1c1d10 00 00xy/@3B5qr 00 00r1s1t1 00000 00 0b1c1c1c1d1pqz000000022222000r1s1s1s1t1 0pq0 00 00 00 0 00 0 00 00 00pq00000000 0000000 00pq0 00 00 0000 00 0000pq0 000000 0b1c1d1 00 00 00(0)0*0+0pqj 002222222222000000123pqr00 0 00 0089:;pqr 0000000@Abcpqr00 00 0b1c1c1c1c1d1pqr 0b1c1c1c1c1c1c1c1c1c1d1000r1s1s1s1s1t1pqr0r1s1s1s1s1s1s1s1s1s1t1 00 00 00 00 0pqiiiiiiiiij00hiiiiiiiiq \ No newline at end of file diff --git a/data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/border.bin b/data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/border.bin differ diff --git a/data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/map.bin b/data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/map.bin new file mode 100644 index 000000000000..3e5dc6ddab29 --- /dev/null +++ b/data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/map.bin @@ -0,0 +1 @@ +#$%&5222(3)32 32222222222222222233222222332222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/LittlerootTown_MaysHouse_2F_Frlg/border.bin b/data/layouts/LittlerootTown_MaysHouse_2F_Frlg/border.bin new file mode 100644 index 000000000000..c1b82435c8c5 --- /dev/null +++ b/data/layouts/LittlerootTown_MaysHouse_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/LittlerootTown_MaysHouse_2F_Frlg/map.bin b/data/layouts/LittlerootTown_MaysHouse_2F_Frlg/map.bin new file mode 100644 index 000000000000..b512103321c8 --- /dev/null +++ b/data/layouts/LittlerootTown_MaysHouse_2F_Frlg/map.bin @@ -0,0 +1,2 @@ +  +'VTPTQ/eUXYE2222]2g22`2a2222222222222222222222BB2222222222222222 \ No newline at end of file diff --git a/data/layouts/Mart_Frlg/border.bin b/data/layouts/Mart_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Mart_Frlg/border.bin differ diff --git a/data/layouts/Mart_Frlg/map.bin b/data/layouts/Mart_Frlg/map.bin new file mode 100644 index 000000000000..dee537e49385 --- /dev/null +++ b/data/layouts/Mart_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/MauvilleCity_GameCorner/map.bin b/data/layouts/MauvilleCity_GameCorner/map.bin index ce3f9bf7398c..a6fc8965d225 100644 Binary files a/data/layouts/MauvilleCity_GameCorner/map.bin and b/data/layouts/MauvilleCity_GameCorner/map.bin differ diff --git a/data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/border.bin b/data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/border.bin new file mode 100644 index 000000000000..f496f458ecf2 Binary files /dev/null and b/data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/border.bin differ diff --git a/data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/map.bin b/data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/map.bin new file mode 100644 index 000000000000..bad63f412213 --- /dev/null +++ b/data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/map.bin @@ -0,0 +1,2 @@ +0no +2  hvw22$2$2$2$2$282p2~2292#2#2#2#2#2#2#2#2#2#292#2#2#2+2JK,2#2#2#292#2#2#2+2RS,2#2#2#292#2#2#2#2#2#2#2#2"2"292#2#2 #2#2#2#2** \ No newline at end of file diff --git a/data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/border.bin b/data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/border.bin new file mode 100644 index 000000000000..f496f458ecf2 Binary files /dev/null and b/data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/border.bin differ diff --git a/data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/map.bin b/data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/map.bin new file mode 100644 index 000000000000..399d05705f5c --- /dev/null +++ b/data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/map.bin @@ -0,0 +1,2 @@ +  +        6$2$2$2$2$2$2$2$2$2$2692#2#2#2#2#2#2#2#2#2#2#292#2#2#252626272#2#2#2#292#2#2#2=2>2>2?2#2#2#2#292#2#2#2E2F2F2G2#2#2#2#22#2#2#2#2#2#2#2#2#2#2"2#2#2#2#2#2#2#2#2#2#2* \ No newline at end of file diff --git a/data/layouts/MtEmber_Exterior_Frlg/border.bin b/data/layouts/MtEmber_Exterior_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/MtEmber_Exterior_Frlg/border.bin differ diff --git a/data/layouts/MtEmber_Exterior_Frlg/map.bin b/data/layouts/MtEmber_Exterior_Frlg/map.bin new file mode 100644 index 000000000000..28f5cc74919a --- /dev/null +++ b/data/layouts/MtEmber_Exterior_Frlg/map.bin @@ -0,0 +1 @@ +SQQSQSQSQSQSQSSQSSQSQSQSQSSSW33UUUQUQUQUQUQUQUQUQUQUQUQUQSQQSQSQSQSQ[5SSQSSQSQSQSQSSS33WUUUQUQUQUQUQUQUQUQUQUQUQUQSQQSQSQSQ[5QSS[5SSQSQSQ[5SS[\\]UU4]QUQUQUQUQUQUQUQUQUQUQ[5QSQSQ[5QSQSSQSSSQ[5[5QSS[\\\\]UUQ4]4]QU4]QUQUQUQUQUQUQQSQSQ[5QSQSQSSQSSSQQSQSQS[\\\\\\]UQUQUQQUUQ4]QUQUQUQUQUQQSQ[5QSQSQ[5S>5SSSQQSQSQ[\\\\\\\\]QUQUQQUUQUQ4]QUQUQUQUQQ[5QSQSQ[5QSS36SSSQQSQ[\\\\\\\\\\\\]QUQQUUQUQUQ4]QUQUQUQ5QSQSQ[5QSQSS36SSSQQ[\\\\533W13334\\\\]QQUUQUQUQUQ4]QUQUQSQSQ[5QSQSQSS36SS>YYYYY5QS33333W3UQQQQQQQUUQUQUQUQUQ4]QUQ[5[5QSQSQSQSS36SS3333336QS3W33333U4YYYYYY]UQUQUQUQUQUQ4]QQSQSQSQSQ[5SS36SS333333>5S33333W3U733 00 034]QUQUQUQUQUQUQ4QSQSQSQ[5QSSS36SS33333336[\\534\\]733}3}3}33UQQUQUQUQUQUQUQUQSQSQ[5QSQSSS36S[00\\533>Y5Q[0]Q4Y?3W3333UQ4]QUQUQUQUQUQUQ[5[5QSQSQSSS36[\00\5S3333>YY0YY?3W33W33WUQUQ4]QUQUQUQUQU5QSQSQSQSQSSS3>YY005SS333333333W33333cddeU4]QUQ4]QUQUQUQUSQSQSQSQSQSSS3333336S[\\5333333333WW3333WUU4\]QUQ4]QUQUQUSQSQSQSQSQSSS3333336[\\5S33W33333333W33W3UUU4\\]QUQ4]QUQUSQ[5[5SQSQSS[\\\\5W>\\5S[5333333W33333334]UUU4\\\]QUQ4]QU[5QSQSSQSQSSQQQQQ[\\\5S[5[\\\00\\\\\\\\\]4]UUUQQQ4\]QUQ4]QSQSQSSQ[5S[\\\5QQQQQS[5[YYYY00YYYYYYYYF3Y?4]UUQ4Y]QQ4]4]QQSQSQS[5QSSQQQQ[\\\\5[5[\533333333333~30 033U4]UQO04\\]QUQ4QSQ[5SQSQS[\\5QQQQQQ[5SQQS333333333333}3}34\]UQUQO0UQQQ4]4]Q[5QSSQSQSQQQ[\\\\5QQSSQQ[\\\00\\\5334\\]QQU4]QO0UQ4\]QUQ5QSQSSQSQSQ4\\\\5Q[5QSSQQ4YYY00YY5S33UQQQ4\]UQ4G0UQUQQ4]4SQSQSSQ[5SQU4\F35[5QSQSSQQ733333336[\\]Q4\]QQUQO00UQU4\]QUSQSQS[\5SSQUO0 0NQSQSQSSQQ733333336QQQQQUQ4\\]QO 04]QUUQQ4]SQSQSQQSSSQUO 00NQ[5SQSSQQ7dddddddTQQ4\\]QU4\\\G0UQ4]UQ4]QSQSQSQQSS[\]U}3~3E5QSSQS[\\?3333333>\\]Q4\\]O0 0 00 0UQUQUQUQ4[5[5[\5SSQQQU33}36QSSQ[\\\533333334\\\\]QQ4G 0 00 04]QUQUQUQUQSQSQQSS>\\\?3336QSSQQQQQ[\533334]QQQQQ4YG 00 04\]Q4]QUQUQUQSQSQQSS333333336QS>YYYY5QQ[\00\]QQQ4YYG0 00 04]QQ4]Q4]QUQUQ[5SQQSE\\\\53336QS33333>YYYY00YYYYY?30 00 0 0 0UQ4\]Q4]Q4]QU5QS[\5SV 00 00N3336QS33333333333333333330 0 0 0 00UQUQ4\]Q4]Q4]SQSQQSS00000N3336QS333333333333333333 04\\\\\]QUQUQ4\]Q4]QSQ[5QSEY0050E\536Q[00\YYY00YYYYYYYYY\\]QQQQQQ4]4]QUQ4\]QQ[5QSQSV 0 0 0N0 00N3EYY005333333g33333334\\\\\\\\]QUQ4]QUQQQQQSQSQ[5 0 0 0N0 00N0 00 00 0N0 03333f333 00 03UQQQQQQQQ4\]QUQ4]QQQQQSQSQQS 0 0 0N000N000000N000003f3300 000UQQQQQQ4\]QQ4]QUQQQQQQSQ[\5S 0 0 0EY50EYYY005S0 00 003o33 00 004]Q4\\\\]4\\\]Q4]QQQQ4Q[5QQSSV 0 0 0VN0 00 00 0 0N[\\\00\\\\\00\]4Y]Q4YY\]QQQ4\]QQ4\\]5QSQQSS 00 00 0N0000000EYYYY00YYYYY00YY]Q4YG004\\\\]QQ4\]QQQSQSQQSS 0 00 00EYY5 00 00 00 000 0 0 0 0000 00 004YG 0 00 0UQQQQ4\\]QQQQQSQ[\5S[50 00 00 00N0 00 0 0 00 0 00 0 0 00000000O000000UQ4\\]QQQQQQQQ[5QQSSQ[\5 00000N00 00 0 0 0 0 0 0 00 0 00hiiijO00 0 00 0UQUQQQQQQ4\\\\QSQQS[5QQS0 00 00EYYYYYYYYYYYYYY50 00 00O0004\\]QUQQQ4\\]QQQQQ[\5SQ[\5S000000V000 0 000 00 00 00EY00YYG00 0UQQQQU4\\]QQQQQQQ5QQS[5QQS[\\5 00000000V000000|3}3~3 000 0000 04]4\\\]UQQQQQQQ4\\SQQSQ[\5[\\5[\\\\\\\\500 00 0|3333}3~3 00 0 000UQUQQQQUQQQQ4\\]QQSQQ[5QQ[\\5[\\5QQQQQQ[\5`ab3113^_b4\\\\]4]4\\\]Q4\\]QQQQQ[\5Q[\5QQQ[\5Q[\\\\\\\5SSQU45SQUU4\\\\]QUQQQQQUQQQQQQ4\QQ[5QQ[\\5QQ[\\\\\\5QQSSSQU76SQUUUQ4\\\\]Q4\\\]QQQ4\\]Q5QQ[\5QQQ[\\\\\\\5Q[5QSSSQU76SQUUUQUQQQQQ4]QQQQ4\\]QQQ4[\5QQ[\\5QQQQQQQQSQQSQSSSQU76SQUUUQUQ4\\\]Q4\\\]QQQ4\\]QQSQQQQQ[\\\\\\5Q[5QSQSSSQU76SQUUUQUQUQQQQ4]QQQQ4\\]QQQ \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_1F_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_1F_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_1F_Frlg/map.bin new file mode 100644 index 000000000000..bfa5e7637172 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_1F_Frlg/map.bin @@ -0,0 +1 @@ +22+22+2222)2222222222222222222222222222222222222222222)2222222222222222222!322222222+#322222)22222)222222222!3+222#322 \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B1F_Frlg/map.bin new file mode 100644 index 000000000000..e92a275101ac --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F_Frlg/map.bin @@ -0,0 +1 @@ +2+222222222!322222)2222#322222222222222+22222222!3222222* \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/map.bin new file mode 100644 index 000000000000..1ac916e78599 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/map.bin @@ -0,0 +1 @@ +)2222+22+222( \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B2F_Frlg/map.bin new file mode 100644 index 000000000000..09813c497b07 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F_Frlg/map.bin @@ -0,0 +1 @@ +2#3222+!322222222222222222222222222222222222222(22( \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/map.bin new file mode 100644 index 000000000000..4c7388aa5362 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/map.bin @@ -0,0 +1 @@ +)+22222222222(* \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B3F_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B3F_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B3F_Frlg/map.bin new file mode 100644 index 000000000000..882838538265 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B3F_Frlg/map.bin @@ -0,0 +1 @@ +++))222222222222222222222222222222222222)2222!322222!3222222222222222+(+222222222222222+)2+22)222+22222222222222222222222+!3222#3*22222))2222#3222#322222222!32222222++ \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B4F_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B4F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B4F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B4F_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B4F_Frlg/map.bin new file mode 100644 index 000000000000..ea974a47ec2a Binary files /dev/null and b/data/layouts/MtEmber_RubyPath_B4F_Frlg/map.bin differ diff --git a/data/layouts/MtEmber_RubyPath_B5F_Frlg/border.bin b/data/layouts/MtEmber_RubyPath_B5F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_RubyPath_B5F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_RubyPath_B5F_Frlg/map.bin b/data/layouts/MtEmber_RubyPath_B5F_Frlg/map.bin new file mode 100644 index 000000000000..e67aaa03d2e0 Binary files /dev/null and b/data/layouts/MtEmber_RubyPath_B5F_Frlg/map.bin differ diff --git a/data/layouts/MtEmber_SummitPath_1F_Frlg/border.bin b/data/layouts/MtEmber_SummitPath_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_1F_Frlg/map.bin b/data/layouts/MtEmber_SummitPath_1F_Frlg/map.bin new file mode 100644 index 000000000000..40ec58172ef1 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_1F_Frlg/map.bin @@ -0,0 +1 @@ +2)!32222#3222222+2222*22222222)222 \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_2F_Frlg/border.bin b/data/layouts/MtEmber_SummitPath_2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_2F_Frlg/map.bin b/data/layouts/MtEmber_SummitPath_2F_Frlg/map.bin new file mode 100644 index 000000000000..960c58b68beb --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_2F_Frlg/map.bin @@ -0,0 +1 @@ ++222)2222222222222222222222222222222#32!3222222222)22#322222+2)222222222)222222222+22222IIIII#32226B@222!36IIIIJL@222BECHIIIIII222+BLLLLMC@2IJEKLLLLLL@2B7EC@222222IJLMCH22222#3B7EC@22IIIJ7MK@22B7777ECH+22B7LLLLMC@22B7EKH2222!3B7E7C@2222B7E77K@222IJ7E777C@222B77E7777CH#322B7LM7777C@222B7E777K@222B7E777C@22!3B7E7777C@666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666662222222222266666666666666666666622222222222666666666666666666666622222222222 \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_3F_Frlg/border.bin b/data/layouts/MtEmber_SummitPath_3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtEmber_SummitPath_3F_Frlg/map.bin b/data/layouts/MtEmber_SummitPath_3F_Frlg/map.bin new file mode 100644 index 000000000000..b107b027ef40 --- /dev/null +++ b/data/layouts/MtEmber_SummitPath_3F_Frlg/map.bin @@ -0,0 +1 @@ +)22222222222222222*222*22!3222#322 \ No newline at end of file diff --git a/data/layouts/MtEmber_Summit_Frlg/border.bin b/data/layouts/MtEmber_Summit_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/MtEmber_Summit_Frlg/border.bin differ diff --git a/data/layouts/MtEmber_Summit_Frlg/map.bin b/data/layouts/MtEmber_Summit_Frlg/map.bin new file mode 100644 index 000000000000..603170671b6c --- /dev/null +++ b/data/layouts/MtEmber_Summit_Frlg/map.bin @@ -0,0 +1 @@ +QQQU4\\\\\\\\5QS[\5Q4\]U4\\\\\\5[5[\5SMU4\]U4\\\\5[5[\5SSUUU4\]U4\\5[5[5QSSSUUUU4\]UQQSQ[5[5SSSUUUUUQK22222MSQSSSSUU<<<LS33333U=L==SS22MQKLS33333ULMK2223322222WW33W2222333333333W33333W33334\3W3333W33WW3W3333U4\\5333W3333W3W334]U\5S3W3WW333W3334]4]QS[5333WW333W33UQU45[5[\5W3333W33WU4]U[5SQQS3WW1W3W4\]UQU5S[\5[\\\\]4\]4]S[\5[\\\\\\]4\]4[\5[\\\\\\\\]4\]\5[\\\\\\\\\\]4\5[\\\\\\\\\\\\]4[\\\\\\\\\\\\\\] \ No newline at end of file diff --git a/data/layouts/MtMoon_1F_Frlg/border.bin b/data/layouts/MtMoon_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/MtMoon_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtMoon_1F_Frlg/map.bin b/data/layouts/MtMoon_1F_Frlg/map.bin new file mode 100644 index 000000000000..0a21468552e8 Binary files /dev/null and b/data/layouts/MtMoon_1F_Frlg/map.bin differ diff --git a/data/layouts/MtMoon_B1F_Frlg/border.bin b/data/layouts/MtMoon_B1F_Frlg/border.bin new file mode 100644 index 000000000000..23857cf752da --- /dev/null +++ b/data/layouts/MtMoon_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtMoon_B1F_Frlg/map.bin b/data/layouts/MtMoon_B1F_Frlg/map.bin new file mode 100644 index 000000000000..89714677c014 Binary files /dev/null and b/data/layouts/MtMoon_B1F_Frlg/map.bin differ diff --git a/data/layouts/MtMoon_B2F_Frlg/border.bin b/data/layouts/MtMoon_B2F_Frlg/border.bin new file mode 100644 index 000000000000..23857cf752da --- /dev/null +++ b/data/layouts/MtMoon_B2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/MtMoon_B2F_Frlg/map.bin b/data/layouts/MtMoon_B2F_Frlg/map.bin new file mode 100644 index 000000000000..9b546adb53d7 --- /dev/null +++ b/data/layouts/MtMoon_B2F_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_1F_Frlg/border.bin b/data/layouts/NavelRock_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_1F_Frlg/map.bin b/data/layouts/NavelRock_1F_Frlg/map.bin new file mode 100644 index 000000000000..6398304c99c5 --- /dev/null +++ b/data/layouts/NavelRock_1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_B1F_Frlg/border.bin b/data/layouts/NavelRock_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_B1F_Frlg/map.bin b/data/layouts/NavelRock_B1F_Frlg/map.bin new file mode 100644 index 000000000000..856e2a21f6ae --- /dev/null +++ b/data/layouts/NavelRock_B1F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B10F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B10F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B10F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B10F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B10F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B10F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B11F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B11F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B11F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B11F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B11F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B11F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B1F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B1F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B1F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B2F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B2F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B2F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B2F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B3F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B3F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B3F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B3F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B4F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B4F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B4F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B4F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B4F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B4F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B5F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B5F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B5F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B5F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B5F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B5F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B6F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B6F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B6F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B6F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B6F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B6F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B7F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B7F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B7F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B7F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B7F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B7F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B8F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B8F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B8F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B8F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B8F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B8F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B9F_Frlg/border.bin b/data/layouts/NavelRock_BasePath_B9F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B9F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_BasePath_B9F_Frlg/map.bin b/data/layouts/NavelRock_BasePath_B9F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_BasePath_B9F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_Base_Frlg/border.bin b/data/layouts/NavelRock_Base_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_Base_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_Base_Frlg/map.bin b/data/layouts/NavelRock_Base_Frlg/map.bin new file mode 100644 index 000000000000..dcfeee21ec29 --- /dev/null +++ b/data/layouts/NavelRock_Base_Frlg/map.bin @@ -0,0 +1 @@ +**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.vvv6+++((**---.8886+++((**---93;3;3;3:3+++((**-99%,3,3,3#::+((**-,,-%,3#+,,+((**-,,--3++,,+((**-,,-93,3:3+,,+((**-&45,3,33/'+((**--,3,3,3,3,373++((**--,,3,3,3,3++((>><<==?? \ No newline at end of file diff --git a/data/layouts/NavelRock_Exterior_Frlg/border.bin b/data/layouts/NavelRock_Exterior_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/NavelRock_Exterior_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/NavelRock_Exterior_Frlg/map.bin b/data/layouts/NavelRock_Exterior_Frlg/map.bin new file mode 100644 index 000000000000..4d169ee3a0c4 Binary files /dev/null and b/data/layouts/NavelRock_Exterior_Frlg/map.bin differ diff --git a/data/layouts/NavelRock_Fork_Frlg/border.bin b/data/layouts/NavelRock_Fork_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_Fork_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_Fork_Frlg/map.bin b/data/layouts/NavelRock_Fork_Frlg/map.bin new file mode 100644 index 000000000000..e6ce2d331c46 --- /dev/null +++ b/data/layouts/NavelRock_Fork_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222V2T32W222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_2F_Frlg/border.bin b/data/layouts/NavelRock_SummitPath_2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_2F_Frlg/map.bin b/data/layouts/NavelRock_SummitPath_2F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_2F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_3F_Frlg/border.bin b/data/layouts/NavelRock_SummitPath_3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_3F_Frlg/map.bin b/data/layouts/NavelRock_SummitPath_3F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_3F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_4F_Frlg/border.bin b/data/layouts/NavelRock_SummitPath_4F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_4F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_4F_Frlg/map.bin b/data/layouts/NavelRock_SummitPath_4F_Frlg/map.bin new file mode 100644 index 000000000000..48a1246d488c --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_4F_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_5F_Frlg/border.bin b/data/layouts/NavelRock_SummitPath_5F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_5F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_SummitPath_5F_Frlg/map.bin b/data/layouts/NavelRock_SummitPath_5F_Frlg/map.bin new file mode 100644 index 000000000000..3f718d185eca --- /dev/null +++ b/data/layouts/NavelRock_SummitPath_5F_Frlg/map.bin @@ -0,0 +1 @@ +2222222 \ No newline at end of file diff --git a/data/layouts/NavelRock_Summit_Frlg/border.bin b/data/layouts/NavelRock_Summit_Frlg/border.bin new file mode 100644 index 000000000000..4ecad6cd2b6d --- /dev/null +++ b/data/layouts/NavelRock_Summit_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/NavelRock_Summit_Frlg/map.bin b/data/layouts/NavelRock_Summit_Frlg/map.bin new file mode 100644 index 000000000000..d49777f32f71 --- /dev/null +++ b/data/layouts/NavelRock_Summit_Frlg/map.bin @@ -0,0 +1,2 @@ +66666666366666666666666636666666666666366666666666626666666666662666666666666222226666666666@22222@666666@:222229@666:2222296::99::99:      +9:       9:       9 \ No newline at end of file diff --git a/data/layouts/OneIsland_Frlg/border.bin b/data/layouts/OneIsland_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/OneIsland_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_Frlg/map.bin b/data/layouts/OneIsland_Frlg/map.bin new file mode 100644 index 000000000000..26fbb1b50abc --- /dev/null +++ b/data/layouts/OneIsland_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqqqqqquu*1+qqqqqquuqqqqqqruuqqqqqqruu*1+qqqqqqruu*1+qqq||z&%$'&'uu*1+qqqu0200qqqurx|000|zrqqqurs3000000qqqur000000qqqur00000000000qqqur00000000||qqqur0000000000111111q|}r000000000r111111|}|z&'0000000000rhq}|||||||000|||zpqqqqq|}} # ###111# $sqqqqq||} 1++++111+,{||||###1+++++222++####!s+++++++,s \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/border.bin b/data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/map.bin b/data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/map.bin new file mode 100644 index 000000000000..9817d8614bf4 --- /dev/null +++ b/data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/map.bin @@ -0,0 +1 @@ +)''''+////+01772//)8999:-3//8'99:-30771125555-3`999&a2-3-3-3"36)7 3-3-3-3-3-3,3,3,3,3,3,3,3,3-3-3-3-3-36+7-3-3"3-3-3-3 3-3-3-3-3-3-3 3-3-3-3-3-36-3-322071313331313272)87&393939393:7+7-36031313238793939393&3:7?-3683'393:3879393'39393:77-3-36*(7-3 36557-3-367-3-3>5555+5-3-367-3-3-3-3-3-3-3>5555?-3-3"3-367 3-3-3-3"3-3-3-3-3-3-3-3-3-3-3-3-367-3-3-3-3-3-3-3-3-3-3 3-3-3-3-3-3-3644/-3-3-3-3-3-3-3-3-3-3.444444/-3-3-3.447-3-3-367-3-3-367"3-3-36/-3-367-3 367-3.7-367-367-367-367-367-367-36=36 \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad_Frlg/border.bin b/data/layouts/OneIsland_KindleRoad_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/OneIsland_KindleRoad_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_KindleRoad_Frlg/map.bin b/data/layouts/OneIsland_KindleRoad_Frlg/map.bin new file mode 100644 index 000000000000..4d4abca6d0f5 Binary files /dev/null and b/data/layouts/OneIsland_KindleRoad_Frlg/map.bin differ diff --git a/data/layouts/OneIsland_PokemonCenter_1F_Frlg/border.bin b/data/layouts/OneIsland_PokemonCenter_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/OneIsland_PokemonCenter_1F_Frlg/border.bin differ diff --git a/data/layouts/OneIsland_PokemonCenter_1F_Frlg/map.bin b/data/layouts/OneIsland_PokemonCenter_1F_Frlg/map.bin new file mode 100644 index 000000000000..a9016b670596 --- /dev/null +++ b/data/layouts/OneIsland_PokemonCenter_1F_Frlg/map.bin @@ -0,0 +1 @@ +bHI``JK222c3222PQUURS 722222LMVVNOn22222222222T\XY^WnBB22222222ABFGCD222222222222E322222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/OneIsland_PokemonCenter_2F_Frlg/border.bin b/data/layouts/OneIsland_PokemonCenter_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/OneIsland_PokemonCenter_2F_Frlg/border.bin differ diff --git a/data/layouts/OneIsland_PokemonCenter_2F_Frlg/map.bin b/data/layouts/OneIsland_PokemonCenter_2F_Frlg/map.bin new file mode 100644 index 000000000000..a1b551a7369e Binary files /dev/null and b/data/layouts/OneIsland_PokemonCenter_2F_Frlg/map.bin differ diff --git a/data/layouts/OneIsland_TreasureBeach_Frlg/border.bin b/data/layouts/OneIsland_TreasureBeach_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/OneIsland_TreasureBeach_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/OneIsland_TreasureBeach_Frlg/map.bin b/data/layouts/OneIsland_TreasureBeach_Frlg/map.bin new file mode 100644 index 000000000000..fe6ef01a73e3 Binary files /dev/null and b/data/layouts/OneIsland_TreasureBeach_Frlg/map.bin differ diff --git a/data/layouts/PalletTown_Frlg/border.bin b/data/layouts/PalletTown_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/PalletTown_Frlg/border.bin differ diff --git a/data/layouts/PalletTown_Frlg/map.bin b/data/layouts/PalletTown_Frlg/map.bin new file mode 100644 index 000000000000..f2113394f22d --- /dev/null +++ b/data/layouts/PalletTown_Frlg/map.bin @@ -0,0 +1 @@ +22$%$%$%$%$'22&%$%$%$%222222222222222222222222222222222222222222222222222202220222222222222222222222222222222222222222222222222222222222222222222222222222222222222200000222222220000022222222 00 00222222222222222222222222222222222222222222222222222##2222222222200 00 0*++,2222222222200000*++,00000000000 \ No newline at end of file diff --git a/data/layouts/PalletTown_PlayersHouse_1F_Frlg/border.bin b/data/layouts/PalletTown_PlayersHouse_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PalletTown_PlayersHouse_1F_Frlg/border.bin differ diff --git a/data/layouts/PalletTown_PlayersHouse_1F_Frlg/map.bin b/data/layouts/PalletTown_PlayersHouse_1F_Frlg/map.bin new file mode 100644 index 000000000000..b93d823c96d0 --- /dev/null +++ b/data/layouts/PalletTown_PlayersHouse_1F_Frlg/map.bin @@ -0,0 +1 @@ +  ./ -!"    1267(5)*((90:0>0?0 0=0 0 0 00 000C0D0D0D0D0F0%0&0'0 000S0K0LMN0V0000 000S0K0TUN0V0000W000[0\0\0\0\0^000G0_0000000000O 000000000000 \ No newline at end of file diff --git a/data/layouts/PalletTown_PlayersHouse_2F_Frlg/border.bin b/data/layouts/PalletTown_PlayersHouse_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PalletTown_PlayersHouse_2F_Frlg/border.bin differ diff --git a/data/layouts/PalletTown_PlayersHouse_2F_Frlg/map.bin b/data/layouts/PalletTown_PlayersHouse_2F_Frlg/map.bin new file mode 100644 index 000000000000..b5d3bee2deee Binary files /dev/null and b/data/layouts/PalletTown_PlayersHouse_2F_Frlg/map.bin differ diff --git a/data/layouts/PalletTown_ProfessorOaksLab_Frlg/border.bin b/data/layouts/PalletTown_ProfessorOaksLab_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PalletTown_ProfessorOaksLab_Frlg/border.bin differ diff --git a/data/layouts/PalletTown_ProfessorOaksLab_Frlg/map.bin b/data/layouts/PalletTown_ProfessorOaksLab_Frlg/map.bin new file mode 100644 index 000000000000..1067109ab084 --- /dev/null +++ b/data/layouts/PalletTown_ProfessorOaksLab_Frlg/map.bin @@ -0,0 +1 @@ +mmniiklkluvstst222222222222222222222222222222222222222222222222222222222222222222222sstst222ststt22222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PalletTown_RivalsHouse_Frlg/border.bin b/data/layouts/PalletTown_RivalsHouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PalletTown_RivalsHouse_Frlg/border.bin differ diff --git a/data/layouts/PalletTown_RivalsHouse_Frlg/map.bin b/data/layouts/PalletTown_RivalsHouse_Frlg/map.bin new file mode 100644 index 000000000000..a29b5dbdc63d --- /dev/null +++ b/data/layouts/PalletTown_RivalsHouse_Frlg/map.bin @@ -0,0 +1 @@ +  ./ -!"  +,1267(5)*((3490:0>0?0 0=0 0 0 0 0 0;0<0 0000C0D0D0D0D0F0000 0000S0K0LMN0V0000 0000S0K0TUN0V0000 0000[0\0\0\0\0^0000W000000000000G0_00000000000O4444444444 \ No newline at end of file diff --git a/data/layouts/PewterCity_Frlg/border.bin b/data/layouts/PewterCity_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/PewterCity_Frlg/border.bin differ diff --git a/data/layouts/PewterCity_Frlg/map.bin b/data/layouts/PewterCity_Frlg/map.bin new file mode 100644 index 000000000000..fc42368cb17c --- /dev/null +++ b/data/layouts/PewterCity_Frlg/map.bin @@ -0,0 +1 @@ +$%$%$%$%2222$%$%$%$%$%000000000000000000000000000000000000000000000000000000000 00 000 00 0000000&%00000200 00 000 00 000222000001111111111111111111000000022222111001111111111111111111 0000000111111111111111111111100000001111111111111111111111 00 00 00011111100 091:1:1:1:1:1;1 0001111111111111111111110ABBBBBC0111111111111111111111IJJJJJK111111111111111111111`1PQRSTUV 0111 0(0)0*0+00000000111111&'hX1Y1Z[\]1^10&'111001230000000111111111111111110111089:;00000111111111111111110111 0@Abc$%0000011111111111111111011111111111111111$%$%$%$'11111111111111111111 00 00 00000000000{1|1}1~1100111111111111111111110000000000000HIJK11100000000000011111 00 00 000000000PQRS11100111000000000 00 00 00XYZ[1110&%$%$%$%$'01110000000&'`ab&'111 01110 00 00 000111111111110000000000111002222201111111111100000000001110 0011111111111000000000011100000 00000011100000000001110 00000 00 001110011101111111111111111111111111111111110111111111111111111111111111111111 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/PewterCity_Gym_Frlg/border.bin b/data/layouts/PewterCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PewterCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/PewterCity_Gym_Frlg/map.bin b/data/layouts/PewterCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..7a22de0f9451 --- /dev/null +++ b/data/layouts/PewterCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/PewterCity_Museum_1F_Frlg/border.bin b/data/layouts/PewterCity_Museum_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PewterCity_Museum_1F_Frlg/border.bin differ diff --git a/data/layouts/PewterCity_Museum_1F_Frlg/map.bin b/data/layouts/PewterCity_Museum_1F_Frlg/map.bin new file mode 100644 index 000000000000..1485da6ef24e --- /dev/null +++ b/data/layouts/PewterCity_Museum_1F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PewterCity_Museum_2F_Frlg/border.bin b/data/layouts/PewterCity_Museum_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PewterCity_Museum_2F_Frlg/border.bin differ diff --git a/data/layouts/PewterCity_Museum_2F_Frlg/map.bin b/data/layouts/PewterCity_Museum_2F_Frlg/map.bin new file mode 100644 index 000000000000..d8d372f70d2c --- /dev/null +++ b/data/layouts/PewterCity_Museum_2F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonCenter_1F_Frlg/border.bin b/data/layouts/PokemonCenter_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonCenter_1F_Frlg/border.bin differ diff --git a/data/layouts/PokemonCenter_1F_Frlg/map.bin b/data/layouts/PokemonCenter_1F_Frlg/map.bin new file mode 100644 index 000000000000..590f4798938e --- /dev/null +++ b/data/layouts/PokemonCenter_1F_Frlg/map.bin @@ -0,0 +1 @@ +2b22222c322222222222222222222222222222222222222222BB222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonCenter_2F_Frlg/border.bin b/data/layouts/PokemonCenter_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonCenter_2F_Frlg/border.bin differ diff --git a/data/layouts/PokemonCenter_2F_Frlg/map.bin b/data/layouts/PokemonCenter_2F_Frlg/map.bin new file mode 100644 index 000000000000..a1b551a7369e Binary files /dev/null and b/data/layouts/PokemonCenter_2F_Frlg/map.bin differ diff --git a/data/layouts/PokemonLeague_AgathasRoom_Frlg/border.bin b/data/layouts/PokemonLeague_AgathasRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonLeague_AgathasRoom_Frlg/border.bin differ diff --git a/data/layouts/PokemonLeague_AgathasRoom_Frlg/map.bin b/data/layouts/PokemonLeague_AgathasRoom_Frlg/map.bin new file mode 100644 index 000000000000..718b7678cea3 Binary files /dev/null and b/data/layouts/PokemonLeague_AgathasRoom_Frlg/map.bin differ diff --git a/data/layouts/PokemonLeague_BrunosRoom_Frlg/border.bin b/data/layouts/PokemonLeague_BrunosRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonLeague_BrunosRoom_Frlg/border.bin differ diff --git a/data/layouts/PokemonLeague_BrunosRoom_Frlg/map.bin b/data/layouts/PokemonLeague_BrunosRoom_Frlg/map.bin new file mode 100644 index 000000000000..96107bfa1eec --- /dev/null +++ b/data/layouts/PokemonLeague_BrunosRoom_Frlg/map.bin @@ -0,0 +1 @@ +RSE3KF322222E3KF3L3P3222222L3P322Y2222222Y2X3[222222X3[22Q32222222Q322Y2222222Y2X3[222222X3[22222222222201289: \ No newline at end of file diff --git a/data/layouts/PokemonLeague_ChampionsRoom_Frlg/border.bin b/data/layouts/PokemonLeague_ChampionsRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonLeague_ChampionsRoom_Frlg/border.bin differ diff --git a/data/layouts/PokemonLeague_ChampionsRoom_Frlg/map.bin b/data/layouts/PokemonLeague_ChampionsRoom_Frlg/map.bin new file mode 100644 index 000000000000..3e83caa24d6b --- /dev/null +++ b/data/layouts/PokemonLeague_ChampionsRoom_Frlg/map.bin @@ -0,0 +1 @@ +7733333333333333 \ No newline at end of file diff --git a/data/layouts/PokemonLeague_HallOfFame_Frlg/border.bin b/data/layouts/PokemonLeague_HallOfFame_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonLeague_HallOfFame_Frlg/border.bin differ diff --git a/data/layouts/PokemonLeague_HallOfFame_Frlg/map.bin b/data/layouts/PokemonLeague_HallOfFame_Frlg/map.bin new file mode 100644 index 000000000000..e8a598e9b3b0 --- /dev/null +++ b/data/layouts/PokemonLeague_HallOfFame_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonLeague_LancesRoom_Frlg/border.bin b/data/layouts/PokemonLeague_LancesRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonLeague_LancesRoom_Frlg/border.bin differ diff --git a/data/layouts/PokemonLeague_LancesRoom_Frlg/map.bin b/data/layouts/PokemonLeague_LancesRoom_Frlg/map.bin new file mode 100644 index 000000000000..0ba5c9ff0362 --- /dev/null +++ b/data/layouts/PokemonLeague_LancesRoom_Frlg/map.bin @@ -0,0 +1 @@ +OW3r3333333s33j33333333k333p33 3!3"333q33x3&3#3$3%3'33y33333333333333h33.3+3,3-3/33i333333333333333p33(3)3*333q33333333333333x3222223y3333333@2333@2322222222222333333I?333I?3673@33333>?3H333333A233A23?32A233A2333333333I?33I?333I?33I?3333333333333333333333333333333333333333333333333@233@2333@233@233333333222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonLeague_LoreleisRoom_Frlg/border.bin b/data/layouts/PokemonLeague_LoreleisRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonLeague_LoreleisRoom_Frlg/border.bin differ diff --git a/data/layouts/PokemonLeague_LoreleisRoom_Frlg/map.bin b/data/layouts/PokemonLeague_LoreleisRoom_Frlg/map.bin new file mode 100644 index 000000000000..340b78d78b40 --- /dev/null +++ b/data/layouts/PokemonLeague_LoreleisRoom_Frlg/map.bin @@ -0,0 +1 @@ +CD2I2222222I22A32222222A322J2222222J22M2222222M22B32222222B322J2222222J22M2222222M222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonMansion_1F_Frlg/border.bin b/data/layouts/PokemonMansion_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonMansion_1F_Frlg/border.bin differ diff --git a/data/layouts/PokemonMansion_1F_Frlg/map.bin b/data/layouts/PokemonMansion_1F_Frlg/map.bin new file mode 100644 index 000000000000..491753551ccb Binary files /dev/null and b/data/layouts/PokemonMansion_1F_Frlg/map.bin differ diff --git a/data/layouts/PokemonMansion_2F_Frlg/border.bin b/data/layouts/PokemonMansion_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonMansion_2F_Frlg/border.bin differ diff --git a/data/layouts/PokemonMansion_2F_Frlg/map.bin b/data/layouts/PokemonMansion_2F_Frlg/map.bin new file mode 100644 index 000000000000..87db6b0ea012 Binary files /dev/null and b/data/layouts/PokemonMansion_2F_Frlg/map.bin differ diff --git a/data/layouts/PokemonMansion_3F_Frlg/border.bin b/data/layouts/PokemonMansion_3F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonMansion_3F_Frlg/border.bin differ diff --git a/data/layouts/PokemonMansion_3F_Frlg/map.bin b/data/layouts/PokemonMansion_3F_Frlg/map.bin new file mode 100644 index 000000000000..9a05ce1b8c22 Binary files /dev/null and b/data/layouts/PokemonMansion_3F_Frlg/map.bin differ diff --git a/data/layouts/PokemonMansion_B1F_Frlg/border.bin b/data/layouts/PokemonMansion_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PokemonMansion_B1F_Frlg/border.bin differ diff --git a/data/layouts/PokemonMansion_B1F_Frlg/map.bin b/data/layouts/PokemonMansion_B1F_Frlg/map.bin new file mode 100644 index 000000000000..a7b0eeeb13e4 --- /dev/null +++ b/data/layouts/PokemonMansion_B1F_Frlg/map.bin @@ -0,0 +1 @@ +22l3l3m322l3m3222l3l3l322m3m3n3n3n3n322222222222222222222222222222222222322222222222222222222R322S3222Q322222,2222222222222\3]3^32222222 R3R3W3S32222Q322.2222[32222222222622Z32[3222P22222222222d3e3f32222X222222222222222222222222222b22222222222222222222222222222222222j22222222222222222222222222222222222r222222222222222222222222-R322S3222Q322222222222222222222S322222252222222222222222222222222222i3i3i3222i3i3i32222222222222222222222222aaa222aaa222222222222222222R3S3222Q3.222222222222222222222222222222262Y3Y3Y3222Y3Y3Y32222Q322S3222Q322S32222222aaa222aaa2222222222222-R3222222222222222222222225222TUV2222222222222n3n322222l3m32222222222222222222222222222Q3222.222222222222222222\3]3^32222222226222222222222222222v[322222222t222222222222222222Z32322222222222222222222222222d3e3f32,22222222c322222222222222222222222222222222k3-R322222222222222R322222222R3222222222.129:AB \ No newline at end of file diff --git a/data/layouts/PokemonTower_1F_Frlg/border.bin b/data/layouts/PokemonTower_1F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_1F_Frlg/map.bin b/data/layouts/PokemonTower_1F_Frlg/map.bin new file mode 100644 index 000000000000..f393c9f34da1 --- /dev/null +++ b/data/layouts/PokemonTower_1F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_2F_Frlg/border.bin b/data/layouts/PokemonTower_2F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_2F_Frlg/map.bin b/data/layouts/PokemonTower_2F_Frlg/map.bin new file mode 100644 index 000000000000..0d1e67b03352 --- /dev/null +++ b/data/layouts/PokemonTower_2F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222662222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_3F_Frlg/border.bin b/data/layouts/PokemonTower_3F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_3F_Frlg/map.bin b/data/layouts/PokemonTower_3F_Frlg/map.bin new file mode 100644 index 000000000000..c591995c15c0 --- /dev/null +++ b/data/layouts/PokemonTower_3F_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222622222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_4F_Frlg/border.bin b/data/layouts/PokemonTower_4F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_4F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_4F_Frlg/map.bin b/data/layouts/PokemonTower_4F_Frlg/map.bin new file mode 100644 index 000000000000..eebe48c134f2 --- /dev/null +++ b/data/layouts/PokemonTower_4F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222622222222222222222222222222226622222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_5F_Frlg/border.bin b/data/layouts/PokemonTower_5F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_5F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_5F_Frlg/map.bin b/data/layouts/PokemonTower_5F_Frlg/map.bin new file mode 100644 index 000000000000..efc99cca9005 --- /dev/null +++ b/data/layouts/PokemonTower_5F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222622222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_6F_Frlg/border.bin b/data/layouts/PokemonTower_6F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_6F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_6F_Frlg/map.bin b/data/layouts/PokemonTower_6F_Frlg/map.bin new file mode 100644 index 000000000000..fb8746f20ec7 --- /dev/null +++ b/data/layouts/PokemonTower_6F_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222226622222222222222222222222222222222222222222222222622222222222222222 \ No newline at end of file diff --git a/data/layouts/PokemonTower_7F_Frlg/border.bin b/data/layouts/PokemonTower_7F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/PokemonTower_7F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/PokemonTower_7F_Frlg/map.bin b/data/layouts/PokemonTower_7F_Frlg/map.bin new file mode 100644 index 000000000000..7554673cf602 --- /dev/null +++ b/data/layouts/PokemonTower_7F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222662222222222 \ No newline at end of file diff --git a/data/layouts/PowerPlant_Frlg/border.bin b/data/layouts/PowerPlant_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/PowerPlant_Frlg/border.bin differ diff --git a/data/layouts/PowerPlant_Frlg/map.bin b/data/layouts/PowerPlant_Frlg/map.bin new file mode 100644 index 000000000000..48a6e198497b Binary files /dev/null and b/data/layouts/PowerPlant_Frlg/map.bin differ diff --git a/data/layouts/Prototype_SeviiIsle_22_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_22_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_22_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_22_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_22_Frlg/map.bin new file mode 100644 index 000000000000..a4b5b8b853bb --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_22_Frlg/map.bin @@ -0,0 +1 @@ ++++++  +++++++++++++++    .1-  ++++++++++++11111111++++++++++++11111111-   +++++++ .111111111111+++++++11111111111111-   +++111111111111111111+++111111111111111111+++111111111111111111- +&1111111111111111111+&1111111111111++++   .1111111111111+   .111111111111111%+11111111111111%++11111111111%++++++&111111111+++++++++11111111%+++++++++111111%++++++++++&1111++++++++++++++1111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_23_East_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_23_East_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_23_East_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_23_East_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_23_East_Frlg/map.bin new file mode 100644 index 000000000000..5bc807eea8de --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_23_East_Frlg/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++++           +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++              ++++++++++++++++++++++++++++++++++++1111111111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111111111111+++++++++++++++++++++++++++++++++   .1111111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   .1111111111111+++++++++++++++++++++++++++++++++1111111111111- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111111111111111- +++++++++++++++++++++++++++++++111111111111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111111111111111++++++++++++++++++++++++++++++ .1111111111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .1111111111111++++++++++++++++++++++++++++++11qqq1111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11qqq1111++++++++++++++++++++++++++++++qqqqqqqq111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqq111++++++++++++++++++++++++++++++qqqqqqqqqqq111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqqqqq111++++++++++++++++++++++++++++++qqqqqqqqqq11%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqqqq11%++++++++++++++++++++++++++++++qqqqqqqy111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++qqqqqqqqqqy111+++++++++++++++++++++++++++++++&qqqqqy1111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&qqqqqyyyy1111%++++++++++++++++++++++++++++++++yyq1111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++yyq1111111%+++++++++++++++++++++++++++++++++&y111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&y111111%++++++++++++++++++++++++++++++++++++++1111%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_23_West_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_23_West_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_23_West_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_23_West_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_23_West_Frlg/map.bin new file mode 100644 index 000000000000..667f4a779021 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_23_West_Frlg/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++     ++++++++++++    .1111++++++++++++11111111- ++++++++++1111111111+++++++   .1111111111+++++++1111111111111- +++++111111111111111++++ .1111111111++++11qqq1111++++qqqqqqqq111++++qqqqqqqqqqq111++++qqqqqqqqqqq111++++qqqqqqqqqqq111++++qqqqqqqqqq1%++++qqqqqqqy11++++&qqqqqy1111+++++yyq1111%+++++&y111%++++++++++1111%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_24_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_24_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_24_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_24_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_24_Frlg/map.bin new file mode 100644 index 000000000000..ce93426c585b --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_24_Frlg/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++,21313131313141)++++++++,213131hiiiiij313141)+++++,hiiqqqqqqqiij)++++,21pqqqyyyqqqr3131)++,hqqyz 000xyqij 0*++,pqz 0 0 00000pqqr 0*++,pqr00 0hij00xqqj*++,pqr000pqr000pqqr*++,pqr00 0xyz0 00pqqr*++,pqqj0 0 00 00 00pqz*++,xqr0 0 00 0 00hqqr"1++0$xqij0 0000pqz*++++0$xyr00 0 0hqz"1+++++0#$xz 0 000xyz"1++++++++0#########1++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_6_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_6_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_6_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_6_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_6_Frlg/map.bin new file mode 100644 index 000000000000..cbd97e3616ae --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_6_Frlg/map.bin @@ -0,0 +1 @@ ++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_7_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_7_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_7_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_7_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_7_Frlg/map.bin new file mode 100644 index 000000000000..e6859e745114 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_7_Frlg/map.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_8_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_8_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_8_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_8_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_8_Frlg/map.bin new file mode 100644 index 000000000000..7f730c59669e Binary files /dev/null and b/data/layouts/Prototype_SeviiIsle_8_Frlg/map.bin differ diff --git a/data/layouts/Prototype_SeviiIsle_9_Frlg/border.bin b/data/layouts/Prototype_SeviiIsle_9_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_9_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/Prototype_SeviiIsle_9_Frlg/map.bin b/data/layouts/Prototype_SeviiIsle_9_Frlg/map.bin new file mode 100644 index 000000000000..616f50967fab --- /dev/null +++ b/data/layouts/Prototype_SeviiIsle_9_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++qqqqqqu+++++++++++++++||||||+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/RS_BattleTower_Frlg/border.bin b/data/layouts/RS_BattleTower_Frlg/border.bin new file mode 100644 index 000000000000..c3fe51511d0d --- /dev/null +++ b/data/layouts/RS_BattleTower_Frlg/border.bin @@ -0,0 +1 @@ +pppp \ No newline at end of file diff --git a/data/layouts/RS_BattleTower_Frlg/map.bin b/data/layouts/RS_BattleTower_Frlg/map.bin new file mode 100644 index 000000000000..6e9f6adb6fae --- /dev/null +++ b/data/layouts/RS_BattleTower_Frlg/map.bin @@ -0,0 +1 @@ +ppppppprIJJxyz{bJJ`tp1ppppppppppprIJJxyz{bJJ`tpppppppprk0rIJJxyz{bJJ`s0mtppppprks0jIJJxyz{bJJ`k00mtpppxsqsk00HIJJxyz{bJJ`a22umtppskssHIJJxyz{bJJ`auuqutpssqss0HIJJKLMNOJJ`a2uuquuyssqss00PQRRSTUVWRRhi22uuquuyssks0X2Y2Z2Z2[\]^_Z2Z2p2q22uuquusssqs000w2o22c2d2e2f2g2222222uuquusssqs00w2o2l2m2n22222uut}usssqs0000000t2u2v2000000t}uuqusssq{00000|2}2~200000ut}ut}ss{qs0000000000000t}uquus{sq{000000000ut}t}up{s{|{00000t}uququps{qsq{||||000||||}t}ququpp{{{||000}qququppsqsqqqqt000qqqt|}t}pppsq{||||}q]^0^0^0_q{|||}qquppp{||]^0^0^0_|||}pppp]^0^0^0_pppppppppppppp]^0^0^0^0V0V0V0V0V0V0Wppppppppppppppppp]^0^0^0^0^0^0^0^0^0^0_pppppppppppppppp22pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp \ No newline at end of file diff --git a/data/layouts/RS_PokemonCenter_1F_Frlg/border.bin b/data/layouts/RS_PokemonCenter_1F_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/RS_PokemonCenter_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RS_PokemonCenter_1F_Frlg/map.bin b/data/layouts/RS_PokemonCenter_1F_Frlg/map.bin new file mode 100644 index 000000000000..f84061f08fa1 --- /dev/null +++ b/data/layouts/RS_PokemonCenter_1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222 3 3222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/RS_SafariZone_Entrance_Frlg/border.bin b/data/layouts/RS_SafariZone_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..f496f458ecf2 Binary files /dev/null and b/data/layouts/RS_SafariZone_Entrance_Frlg/border.bin differ diff --git a/data/layouts/RS_SafariZone_Entrance_Frlg/map.bin b/data/layouts/RS_SafariZone_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..35c1badacb16 --- /dev/null +++ b/data/layouts/RS_SafariZone_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +]x2p2p2p2p2p22222e2x2p2p2p2p22h2h2h2h2h22h22h2h22\2h2h2h2h2h2q2Y2Z2Y2Z2p2y2h2h2h2h22d6h2h2h2h2ababh2h2h2h2h2h2h22h2h2h222\2h2h2h2dh2h2h2x22h2h2h222h2h2h222h2h2h2\2h2h2h2q22d6h2h2t6 \ No newline at end of file diff --git a/data/layouts/RS_SafariZone_Northeast_Frlg/border.bin b/data/layouts/RS_SafariZone_Northeast_Frlg/border.bin new file mode 100644 index 000000000000..03bcafef11c0 --- /dev/null +++ b/data/layouts/RS_SafariZone_Northeast_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RS_SafariZone_Northeast_Frlg/map.bin b/data/layouts/RS_SafariZone_Northeast_Frlg/map.bin new file mode 100644 index 000000000000..d5e7fd825182 Binary files /dev/null and b/data/layouts/RS_SafariZone_Northeast_Frlg/map.bin differ diff --git a/data/layouts/RS_SafariZone_RestHouse_Frlg/border.bin b/data/layouts/RS_SafariZone_RestHouse_Frlg/border.bin new file mode 100644 index 000000000000..f496f458ecf2 Binary files /dev/null and b/data/layouts/RS_SafariZone_RestHouse_Frlg/border.bin differ diff --git a/data/layouts/RS_SafariZone_RestHouse_Frlg/map.bin b/data/layouts/RS_SafariZone_RestHouse_Frlg/map.bin new file mode 100644 index 000000000000..c57c99c7baf7 --- /dev/null +++ b/data/layouts/RS_SafariZone_RestHouse_Frlg/map.bin @@ -0,0 +1 @@ +        $2$2$2$2$2$2$2$2$2$292#24266<2#2#2#2#292#24266<2#2#2#2#292#2#2#2#2#2#2#2#2#292#2#2 #2#2#2#2#2 \ No newline at end of file diff --git a/data/layouts/RS_SafariZone_Southeast_Frlg/border.bin b/data/layouts/RS_SafariZone_Southeast_Frlg/border.bin new file mode 100644 index 000000000000..03bcafef11c0 --- /dev/null +++ b/data/layouts/RS_SafariZone_Southeast_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RS_SafariZone_Southeast_Frlg/map.bin b/data/layouts/RS_SafariZone_Southeast_Frlg/map.bin new file mode 100644 index 000000000000..5407981441c2 Binary files /dev/null and b/data/layouts/RS_SafariZone_Southeast_Frlg/map.bin differ diff --git a/data/layouts/RS_SafariZone_Southwest_Frlg/border.bin b/data/layouts/RS_SafariZone_Southwest_Frlg/border.bin new file mode 100644 index 000000000000..03bcafef11c0 --- /dev/null +++ b/data/layouts/RS_SafariZone_Southwest_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RS_SafariZone_Southwest_Frlg/map.bin b/data/layouts/RS_SafariZone_Southwest_Frlg/map.bin new file mode 100644 index 000000000000..0074b6e552b2 Binary files /dev/null and b/data/layouts/RS_SafariZone_Southwest_Frlg/map.bin differ diff --git a/data/layouts/RecordCorner_Frlg/border.bin b/data/layouts/RecordCorner_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/RecordCorner_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RecordCorner_Frlg/map.bin b/data/layouts/RecordCorner_Frlg/map.bin new file mode 100644 index 000000000000..08209eaca94e --- /dev/null +++ b/data/layouts/RecordCorner_Frlg/map.bin @@ -0,0 +1 @@ + !3'3'3'3$3%3%3&3'3'3'3"3#()3D3D343D3D3D3D363D3D3*3+()3D3,3<89:;>.3D3*3+()3D3D353@ABC73D3D3*3+()3D3-3=HIJK?/3D3*3+()3D3D3F3F3F3F3F3F3D3D3*3+013D3D3D3D3D3D3D3D3D3D32332222 \ No newline at end of file diff --git a/data/layouts/RockTunnel_1F_Frlg/border.bin b/data/layouts/RockTunnel_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/RockTunnel_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RockTunnel_1F_Frlg/map.bin b/data/layouts/RockTunnel_1F_Frlg/map.bin new file mode 100644 index 000000000000..80a6a266c949 Binary files /dev/null and b/data/layouts/RockTunnel_1F_Frlg/map.bin differ diff --git a/data/layouts/RockTunnel_B1F_Frlg/border.bin b/data/layouts/RockTunnel_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/RockTunnel_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RockTunnel_B1F_Frlg/map.bin b/data/layouts/RockTunnel_B1F_Frlg/map.bin new file mode 100644 index 000000000000..68eed9a4c72a Binary files /dev/null and b/data/layouts/RockTunnel_B1F_Frlg/map.bin differ diff --git a/data/layouts/RocketHideout_B1F_Frlg/border.bin b/data/layouts/RocketHideout_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/RocketHideout_B1F_Frlg/border.bin differ diff --git a/data/layouts/RocketHideout_B1F_Frlg/map.bin b/data/layouts/RocketHideout_B1F_Frlg/map.bin new file mode 100644 index 000000000000..4a2ed565f4cb Binary files /dev/null and b/data/layouts/RocketHideout_B1F_Frlg/map.bin differ diff --git a/data/layouts/RocketHideout_B2F_Frlg/border.bin b/data/layouts/RocketHideout_B2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/RocketHideout_B2F_Frlg/border.bin differ diff --git a/data/layouts/RocketHideout_B2F_Frlg/map.bin b/data/layouts/RocketHideout_B2F_Frlg/map.bin new file mode 100644 index 000000000000..f849a064257c --- /dev/null +++ b/data/layouts/RocketHideout_B2F_Frlg/map.bin @@ -0,0 +1 @@ +UVW222222222222223 322]2^_3222222222222e2fg 2222222222222222222232222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/RocketHideout_B3F_Frlg/border.bin b/data/layouts/RocketHideout_B3F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/RocketHideout_B3F_Frlg/border.bin differ diff --git a/data/layouts/RocketHideout_B3F_Frlg/map.bin b/data/layouts/RocketHideout_B3F_Frlg/map.bin new file mode 100644 index 000000000000..bdd8863469f7 --- /dev/null +++ b/data/layouts/RocketHideout_B3F_Frlg/map.bin @@ -0,0 +1 @@ +23 322222222222222222222222222222222222222222222222222222222222222222222222332222222222222222222222222222222222222222222222222222222232222222222222222222222222222222222222222222222222222222222n222222222222222222222222222222222222222222222222222222222222222222222222222223222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/RocketHideout_B4F_Frlg/border.bin b/data/layouts/RocketHideout_B4F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/RocketHideout_B4F_Frlg/border.bin differ diff --git a/data/layouts/RocketHideout_B4F_Frlg/map.bin b/data/layouts/RocketHideout_B4F_Frlg/map.bin new file mode 100644 index 000000000000..0e0b8ec93c09 Binary files /dev/null and b/data/layouts/RocketHideout_B4F_Frlg/map.bin differ diff --git a/data/layouts/RocketHideout_Elevator_Frlg/border.bin b/data/layouts/RocketHideout_Elevator_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/RocketHideout_Elevator_Frlg/border.bin differ diff --git a/data/layouts/RocketHideout_Elevator_Frlg/map.bin b/data/layouts/RocketHideout_Elevator_Frlg/map.bin new file mode 100644 index 000000000000..42e08c38debb --- /dev/null +++ b/data/layouts/RocketHideout_Elevator_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/Route10_Frlg/border.bin b/data/layouts/Route10_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route10_Frlg/border.bin differ diff --git a/data/layouts/Route10_Frlg/map.bin b/data/layouts/Route10_Frlg/map.bin new file mode 100644 index 000000000000..7e40aae438bf --- /dev/null +++ b/data/layouts/Route10_Frlg/map.bin @@ -0,0 +1 @@ +m||||||||||||||||||||quu ##################!squu*++++++++++++++++++,squu*++++++++++++++++++,squr3131313131313131313131313131313141)+,squr0 0*+,sq}r0 000 0 0 0 0 0 0 0 0 0 0 0 0*+,sqy000 0 0 0 0 0 0 0 0 0 0 0 00*+,sq000000 0 0 0 0 0 0 0 0 0 0 0 0*+,sq00000 0 0 0 0 0 0 0 0 0 0 0 00*+,sq000100 0 0 0 0 0 0 0 0 0 0 0 0*+,sq00 00 00 00 00 00 00 00*+,sqm00L*+,squr0 00 00 00 00 00 00 00 0*+,squr0000000000000000*+,squiiiiiiiij 00 00 00 0*+,sqllllllllmr{1|1}1~1100*+,sqqqqqqqqqqurHIJK0 0*+,sq|||||||||}rPQRS00*+,sqqyyyyyy0yzXYZ[0 0*+,sqq000001000`ab00*+,sqq000000000 0*+,sqq0000100 000000000*+,sqq00000000000000 0*+,sqq0000000 00 00 00 00 0*+,sqq000100000000000*+,sqq010000000 00 00 00 0*+,sqq000000 000000000*+,sqqr0 00 000000 00 00 00 0*+,sqqr000000 0000000000*+,sqqr*+,sqqiiiiiiiiiiiiiij00*+,sqqklllllllllllllmr0 0*+,sqqsqqqqqqqqqqqqqur00*+,sqq{||||||||ur0 0*+,sqyP%%%%Ssur00*+,sqr0Q,-$-$-$-.Tpsur0 0*+,sqr0R3Up{}r00*+,sqr02Wpqqr00*+,sqr0 !!!#Tpqq00*+,sq()3*+U3pq00*+,sqr00000313"32333000q000*+,sqj0000000000q000*+,sqqr00000000000y000*+,sqq00000000000000000*+,sqq00000000000000000*+,sqq000000000000000 #1+,sqqu ##############1+++,sqqu*++++++++++++++++++,sqqu*++++++++++++++++++,sqqXYqqqqqqqqqqqqqqqqqqqqqqqqqqklllllllmqqqqqqkllllmqqqsqqqqqqquqqqqqqsqqqquqqqsqqqqqqqlmqqqq{||||}qqq{||qqqqqquqqqqyyyyyqqqqq{||||||}qqqq00 00 0pqqqyyyyy0yyyyyyy00000pqqq0000000000000000 00 0pqqq000000000000100000pqqq00000000000010 00 00 0pqq000000000Mj00000pqq0000000000klm0qq000squr0 00 00pqq000kllllllqur00000pqqsqqqqqqqqur0 00 00pqq001{||||||||}0pqq100xyyyyyyyyyyz00000pqq0000000000000000 00 00pqqr0 00 00 00 00 00 00 000000 0pqqr00000000000000000000pqqiiiiiiiij0 00 00 00000 0pqkllllllllmr00000022200pqsqqqqqqqqur0 00 02222222pqsqqqqq||}0hqsqqqqquyyz000pqqsqqqqqur0 00 00 0pqqsqqqqqur000000pqqsqqqqqur0 00 00hqq{|||||}r00000pkmq \ No newline at end of file diff --git a/data/layouts/Route11_Frlg/border.bin b/data/layouts/Route11_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route11_Frlg/border.bin differ diff --git a/data/layouts/Route11_Frlg/map.bin b/data/layouts/Route11_Frlg/map.bin new file mode 100644 index 000000000000..6062ac7f3b34 --- /dev/null +++ b/data/layouts/Route11_Frlg/map.bin @@ -0,0 +1,7 @@ +$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$% 00 0000000000000000000 0 0 0 0000000000000000 0 0 00 00 00$%000000000000000000000 0 0 0 0000000000000000 0 0 000000hsq0q0uj 00 0001000000000000100 0 0 0 0001000000000100 0 0 00 00 00$%$'psq0q0ur000000 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 0 0 0 0 0 0 0 0 0000 0 0 0 0000 00 00p{||}r 00 0000 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00xy0yyz&'000000 0 0 0 000000000000 0 0 0 000000000000 0 0 0 0 0 0 0 0DEEEEF%$%$%$%0 00 00 00 00000000000 0 0 0 000000000000 0 0 0 000000000000 0 0 0 0 0 0 00 001LMMMMN'000000000000000000 0 0 0 000100000100 0 0 0 000100000100 0 0 0 000000081<10000000 00 00 00 00 0000001000000000 0 0 0 0 00000000000 0 0 0 0 0000 0 0 0 00000 00@1D1000000############$0 00000000000 0 0 0 0 00000000000 0 0 0 0 0000 0 0 0 0001000H1deeeefL1000000++++++++++++,000000000000 0 0 0 0 00000000100 0 0 0 0 0000 0 0 0 00000 +  +  +  +  +  + ,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0000 0 00 00000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000 0 0 0 00000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000 0 0 0 00000 00 000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000100000100 0 0 0 000000000 00000000000000000000000000 0 0 0 0 000000000000 00 0000000000000000000000000000 0 0 0 0 000000000000000002222222222222222222222222 0 0 0 0 0222222222200000 \ No newline at end of file diff --git a/data/layouts/Route12_Frlg/border.bin b/data/layouts/Route12_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route12_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route12_Frlg/map.bin b/data/layouts/Route12_Frlg/map.bin new file mode 100644 index 000000000000..ca203b565e54 Binary files /dev/null and b/data/layouts/Route12_Frlg/map.bin differ diff --git a/data/layouts/Route12_NorthEntrance_1F_Frlg/border.bin b/data/layouts/Route12_NorthEntrance_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Route12_NorthEntrance_1F_Frlg/border.bin differ diff --git a/data/layouts/Route12_NorthEntrance_1F_Frlg/map.bin b/data/layouts/Route12_NorthEntrance_1F_Frlg/map.bin new file mode 100644 index 000000000000..f723c9817f90 --- /dev/null +++ b/data/layouts/Route12_NorthEntrance_1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route13_Frlg/border.bin b/data/layouts/Route13_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route13_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route13_Frlg/map.bin b/data/layouts/Route13_Frlg/map.bin new file mode 100644 index 000000000000..b1f55a645d96 Binary files /dev/null and b/data/layouts/Route13_Frlg/map.bin differ diff --git a/data/layouts/Route14_Frlg/border.bin b/data/layouts/Route14_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route14_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route14_Frlg/map.bin b/data/layouts/Route14_Frlg/map.bin new file mode 100644 index 000000000000..48d7c0dcdda3 --- /dev/null +++ b/data/layouts/Route14_Frlg/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%0 00 00 00 00 00 00 00 00000 00 00 00 00 000 0 00 00000 00 00 00 00 00 00 00 00000 00 00 000 000 00 00 0000000000 000000 00 00 000000000000000 00 0000000000000000000&%$%$0000 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0 0000 0 0 0 0 0000&%$%$% 0 0 0 0 0000"##### 0 0 0 0 0000*+0 00 00000*+0000*+0 0000000*+00000000*++0 0000000*++++0000000031313141)0 0000000*000000000 00 0*0 00000000000*00000&'0000 00 0*0 0000000000000*000000000 00 0*0 00000000000*000000000 00 0*0 00000000000*00000000000 0*0 00000000000*00000000000 0*0 00000000000*$%$%000000000000*0000000100&'0000000*$%00000000000 00000 000* 000000000000000000000*00 00 00 00 00 00 00000 000*0000000000000000000*000 00000000 00 00000 000*0000 00 00 00 00 000000000*11000000000000001000 000*11000000000000000000000*11000000000000000000 000*11*110000000000000000000000*11*** \ No newline at end of file diff --git a/data/layouts/Route15_Frlg/border.bin b/data/layouts/Route15_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route15_Frlg/border.bin differ diff --git a/data/layouts/Route15_Frlg/map.bin b/data/layouts/Route15_Frlg/map.bin new file mode 100644 index 000000000000..786f679883f0 --- /dev/null +++ b/data/layouts/Route15_Frlg/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%$%0000000000000000000000000000000000000000000000000000000$%$%$%$%$'0000000000000000000000000000000000000000000000000000000000000 00 000000000000000000000000000000000000000000000000000000000DEEEEF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00$%$%$'0001LMMMMN100000000081<1000 0 0 0 0 0 0000000 0 0 0 0 0 00 0000 00 000000 0 0 0 00000 0 0 0 0 0 0 000000 0000000000@1D1000 0 0 0 0 0 0000000 0 0 0 0 0 0000000000000 0 0 0 00000 0 0 0 0 0 0 0000000000000000H1deeeefL1101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/Route16_Frlg/border.bin b/data/layouts/Route16_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route16_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route16_Frlg/map.bin b/data/layouts/Route16_Frlg/map.bin new file mode 100644 index 000000000000..a88b95a6a1aa --- /dev/null +++ b/data/layouts/Route16_Frlg/map.bin @@ -0,0 +1 @@ +,,+,(21&%$%$%$]-0-0-0^$%$%$%$DEEEEF%$%$%$%$%$%$%$%,45667.LMMMMN/,0000000<=BC?00000081LMMMMN<100000 0 0 0 0 0 0 0 0 0,000000100000100000@1LMMMMND100000 0 0 0 0 0 0 0 0 0,000000000000001000H1L100100 0 0 0 0 0 0 0 0 0,0000000000000000 00 0DEEEEF0 00001000000000,0000000000000000000LMMMMN000000000000000,LMMMMN000000000000,0 00 00 00 00 00 00 00 00 01100&%$%$%,00000000000000000081<1000 00 00 00 00 00 00 00,00000 00 00000000000@1\]0]0]0]0^D100000000000000000000,000000000000100000H1deeeefL1000 00 00 00 00 00 00 00,00000 00 000000,0000000000000,000100010000,0000000000000,0001000010100 \ No newline at end of file diff --git a/data/layouts/Route16_NorthEntrance_1F_Frlg/border.bin b/data/layouts/Route16_NorthEntrance_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Route16_NorthEntrance_1F_Frlg/border.bin differ diff --git a/data/layouts/Route16_NorthEntrance_1F_Frlg/map.bin b/data/layouts/Route16_NorthEntrance_1F_Frlg/map.bin new file mode 100644 index 000000000000..c41db67b6e35 --- /dev/null +++ b/data/layouts/Route16_NorthEntrance_1F_Frlg/map.bin @@ -0,0 +1 @@ +23333333332222222222222222222222222222222222           222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route17_Frlg/border.bin b/data/layouts/Route17_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route17_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route17_Frlg/map.bin b/data/layouts/Route17_Frlg/map.bin new file mode 100644 index 000000000000..24ce3c11f7a1 --- /dev/null +++ b/data/layouts/Route17_Frlg/map.bin @@ -0,0 +1 @@ +,>3 3!3"3>3?3>3?3 3!3"3?3>3,#$3(3)3*3F3G3F3G3(3)3*3G3,3%&%$%$%$%,+>3(3)3*3>3?3>3?3(3)3*3?3F3->3"######,343(3)3*3F3G3F3G3(3)3*3G3>35F3*+,>3(3)3*3>3?3>3?3(3)3*3?3>3>3*,F3(3)3*3F3G3F3G3(3)3*3G3F3F3*,#$3(3)3*3>3?3>3?3(3)3*3?3,3%>3*+,+>3(3)3*3;3<3<3=3(3)3*3G3F3-F3*+++++,343(3)3*3C3D3D3E3(3)3*3?3>35>3313131313141),F3(3)3*3C3D3D3E3(3)3*3G3F3*,>3(3)3*3C3D3D3E3(3)3*3?3>3?3>3?3>3?3>3?3*,#$3(3)3*3C3D3D3E3(3)3*3G3F3R3R3R3R3R3R3,3%*,+>3(3)3*3C3D3D3E3(3)3*3?3>3R3R3R3R3R3R3F3-*,343(3)3*3C3D3D3E3(3)3*3G3F3R3R3R3R3R3R3>35*,>3(3)3*3K3L3L3M3(3)3*3?3>3R3R3R3R3R3R3?3*,F3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3G3*,#$3(3)3*3>3?3>3?3(3)3*3?3>3R3R3R3R3R3R3,3%*,+>3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3F3-*,343(3)3*3>3?3>3?3(3)3*3?3>3R3R3R3R3R3R3>35*,F3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3G3*,>3(3)3*3>3?3>3?3(3)3*3?3>3R3R3R3R3R3R3?3*,#$3(3)3*3F3G3F3G3(3)3*3G3F3R3R3R3R3R3R3,3%*,+>3(3)3*3>3?3>3?3(3)3*3?3>3?3>3?3>3?3>3F3-*,343(3)3*3F3G3F3G3(3)3*3G3;3<3<3=3F3G3F3>35*,>3(3)3*3>3?3>3?3(3)3*3?3C3D3D3Q3<3<3=3?3*,F3(3)3*3F3G3F3G3(3)3*3G3C3D3D3D3D3D3E3G3*,#$3(3)3*3>3?3>3?3(3)3*3?3K3L3L3P3D3D3E3,3%*,+>3(3)3*3F3G3F3G3(3)3*3G3F3G3F3K3L3L3M3F3-*,343(3)3*3>3?3>3?3(3)3*3?3>3?3>3?3>3?3>3>35*,F3(3)3*3F3G3F3G3(3)3*3G3F3G3F3G3F3G3F3G3*,>3(3)3*3>3?3>3?3(3)3*3XYYZ 3!3"3>3?3*,#$3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3,3%*,+>3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3F3-*,343(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3>35*,>3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3?3*,F3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3G3*,#$3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3,3%*,+>3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3F3-*,343(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3>35*,F3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3G3*,>3(3)3*3>3?3>3?3(3)3*3`aab(3)3*3>3?3*,#$3(3)3*3F3G3F3G3(3)3*3`aab(3)3*3F3,3%*,+>3(3)3*3>3?3>3?3031323`aab(3)3*3>3F3-*,343(3)3*3F3G3F3G3F3G3F3`aab(3)3*3F3>35*,>3(3)3*3XYYZ8393:3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3'`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3'`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3'`aab(3)3*3F3>35*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3F3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3>3>35*,F3(3)3*3`aab@3A3B3`aab(3)3*3F3G3*,>3(3)3*3`aab@3A3B3`aab(3)3*3>3?3*,#$3(3)3*3`aab@3A3B3`aab(3)3*3F3,3%*,+>3(3)3*3`aab@3A3B3`aab(3)3*3>3F3-*,343(3)3*3`aab@3A3B3`aab(3)3*3F3>35*,>3(3)3*3N3N3N3N3@3A3B3`aab(3)3*3>3?3*,F3(3)3*3F3G38393O3A3B3`aab(3)3*3F3G3*,#$3(3)3*3>3?3@3A3A3A3B3`aab(3)3*3>3,3%*,+>3(3)3*3F3G3H3I3I3I3`aab(3)3*3F3F3-*,343(3)3*3>3?3XYYYYdaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3`aaaaaaab(3)3*3>3F3-*,343(3)3*3F3G3`aaaaaaab(3)3*3F3>35*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,#$3(3)3*3>3?3`aaaaaaab(3)3*3>3,3%*,+>3(3)3*3F3G3`aaaaaaab(3)3*3F3F3-*,343(3)3*3>3?3`aaaaaaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3`aaaaaaab(3)3*3>3F3-*,343(3)3*3F3G3`aaaaaaab(3)3*3F3>35*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,#$3(3)3*3>3?3`aaaaaaab(3)3*3>3,3%*,+>3(3)3*3F3G3`aaaaaaab(3)3*3F3F3-*,343(3)3*3>3?3`aaaaaaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3N3N3N3N3N3N3N3N3N3(3)3*3>3F3-*,343(3)3*3F3G3F3G3F3G3F3G3F3G3F3(3)3*3F3>35*,>3(3)3*3>3?3>3?3>3?3>3?3>3?3>3(3)3*3>3?3*,F3(3)3*3F3G3F3G3F3G3UG3F3G3F3(3)3*3F3G3*,#$3(3)3*3>3?3XYYYYYYYZ(3)3*3>3,3%*,+>3(3)3*3F3G3`aaaaaaab(3)3*3F3F3-*,343(3)3*3>3?3`aaaaaaab(3)3*3>3>35*,F3(3)3*3F3G3`aaaaaaab(3)3*3F3G3*,>3(3)3*3>3?3`aaaaaaab(3)3*3>3?3*,#$3(3)3*3F3G3`aaaaaaab(3)3*3F3,3%*,+>3(3)3*3>3?3`aaaaaaab(3)3*3>3F3-*,343(3)3*3F3G3N3N3N3N3N3N3N3N3N3(3)3*3F3>35*,>3(3)3*3>3?3>3?3>3?3>3?3>3?3>3(3)3*3>3?3*,F3(3)3*3F3G3F3G3F3G3F3G3F3G3F3(3)3*3F3G3*,>3031323>3?3>3?3>3?3>3?3>3?3>3031323>3?3*,F3G3F3F3F3G3*0 ###$ 3!3"3?3>3?3 3!3"3"# #1+++,(3)3*3G3F3G3(3)3*3*+++++,(3)3*3?3>3?3(3)3*3*++++,(3)3*3;3<3=3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*++++,(3)3*3C3D3E3(3)3*3*+++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3C3D3E3(3)3*3*+++++,(3)3*3K3L3M3(3)3*3*+++,(3)3*3G3F3G3(3)3*3*+++++,(3)3*3?3>3?3(3)3*3*++++,(3)3*3G3F3G3(3)3*3*+++,(3)3*3?3>3?3(3)3*3*++,031323F3G3031323*++,>3*++,0 00 00 00 00*+ \ No newline at end of file diff --git a/data/layouts/Route18_Frlg/border.bin b/data/layouts/Route18_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route18_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route18_Frlg/map.bin b/data/layouts/Route18_Frlg/map.bin new file mode 100644 index 000000000000..9e246b459ac8 --- /dev/null +++ b/data/layouts/Route18_Frlg/map.bin @@ -0,0 +1 @@ +++000000000+++,++00 00 00 000++,+,000000000*++++,++,00 00 00 000*+++++++,000000000*++++++,00 00 00 00 0*++++++++++,&%$%$%$%$%$%$%$%$%$%$%$%$%+++,0 00000000mnnnnnnnnnnnnoDEEEEF+++,000000000031313131313131313131313131311LMMMMN1 00 0+++,01000001000000000000000000000000081<100000000000+++,000000000000000000000000000000000@1D100000000000+++,000000000000000000000000000010000H1deeeefL100000000000+++jffffffffffffffffffffffffffffffg 00++++++++++++++++++++++++++++++++,0 00 00 00000 0++++++++++++++++++++++++++++++++,0 0 0 0 0 0 0 0 000+++++++++++++++++++++++++++++,0 0 0 0 0 0 00+++++++++++++++++0 0 0 0 0 0 0 0+++++++++0 0 0 0 0 0 00+++++++++++++,0 00 00 00 0&%$%$%++++++++,"####$0##########10 \ No newline at end of file diff --git a/data/layouts/Route19_Frlg/border.bin b/data/layouts/Route19_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route19_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route19_Frlg/map.bin b/data/layouts/Route19_Frlg/map.bin new file mode 100644 index 000000000000..54388bc491e8 --- /dev/null +++ b/data/layouts/Route19_Frlg/map.bin @@ -0,0 +1 @@ +psqqqu1111111111sqqqurpsqqqu1111111111sqqqurpsqqqu111111111sqqqurpsqqqu11sqqqurpsqqqu111111111{qqurpsqqqu11qsqqurp{q}111111111qsq}rpq{|}q11q{|}qrx|||||1111111111|||||z##### !11111111  #####+++,11111111*+++,11111111*++0!111111*+++0#!11111*+++++0#####1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Route1_Frlg/border.bin b/data/layouts/Route1_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route1_Frlg/border.bin differ diff --git a/data/layouts/Route1_Frlg/map.bin b/data/layouts/Route1_Frlg/map.bin new file mode 100644 index 000000000000..02ee26860a9e --- /dev/null +++ b/data/layouts/Route1_Frlg/map.bin @@ -0,0 +1 @@ +0000$%$%$%$'0000&%$%$%$%0 00 00 00 00000 00 00 0000000000000001000000000 00 00 0000000001000000000000000 0 0 0 0 0 0 0 0 0 0 0 0000 000 0 0 0 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0000 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000&'00000000000000000000 0 0000100000000000000000000 0 0 0 0 0 000000000000000 0 0 0 0 0 0 0 0 0 0 0 0&'000000&%$%$' 0 0 0 0 0 000000000000000 0 0 0 0 0 0000000000001000000000 00000100000000000000000 00000100000000000000 0000000000000001000000000000000000000000000000000 0 0 0 0 0 00000 0 0 0 0 0 00000&%$%$%$%$' 0 0 0 0 0 000000 00 00 0 0 0 0 0 0 000000000000000 0 0 0 0 0 000000000000000000000100000000000010010000000 0000 0 0 0 0 0 0 0 000000 0 0 0 0 0 000 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0 000000 0 0 0 0 000 0 0 0 0 0 0 000 0 0 00 0 0 0 0 0 00 0 0000000000 0 00000000 0 0 0 0 \ No newline at end of file diff --git a/data/layouts/Route20_Frlg/border.bin b/data/layouts/Route20_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route20_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route20_Frlg/map.bin b/data/layouts/Route20_Frlg/map.bin new file mode 100644 index 000000000000..534a7034d381 --- /dev/null +++ b/data/layouts/Route20_Frlg/map.bin @@ -0,0 +1 @@ +++++++++++++++++++++++++++++++++++++++++++++klm+++++++++++++++++++++++++kqm++++++++++++++++++++++++++++++++++++++++++++++++++++sqsqqququ+(22222222)+++++++++++++++++++++++++ 1 11+++++++++++++++++++++++(sq{q}quu22111111112)++++++++++++++++++++++++++++ 1%11&1 11++++++++++++++++++++{q{|}q}111111111112)+++++++++++++++++++++++++++++++++++++++++++++++++11111&11+++++++++++++++++++++{qqq}1111111*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11111.11++++++++++++ 1 1 1 11+++++++,1{|||}1111klm11*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++++++++++1111&11+++++11yy0yy111kqm1*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++111111111111sqsqqququ*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11-1111++++++0!11111111111sq{q}quu++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1111+++++++,1111111 ##!{q{|}q}u+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11+++++++++++++++++++0#######1+{qqq}}*+++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11++++++++++++1.11+++++++++++++++++++++++++++1{|||}} 1++++++++++++++++++++++++++++++++++++++++++++++++ 1%111++++++++++++11+++++++++++++++++++++0!yy0yy} 1+++++++++++++++++++++++++++++++++++++++++++++++++1111++++++++++++++++++++++++++++++++++++++,1111111 1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0##!1111*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0####1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Route21_North_Frlg/border.bin b/data/layouts/Route21_North_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route21_North_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route21_North_Frlg/map.bin b/data/layouts/Route21_North_Frlg/map.bin new file mode 100644 index 000000000000..02a4bcd546be --- /dev/null +++ b/data/layouts/Route21_North_Frlg/map.bin @@ -0,0 +1 @@ +*++,*++,0 00 00 0*++,000000*++,0 00 00 0*++,000000*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0*++, 0 0 0 0 0 0$%$%$%*++, 0 0 0 0 0 0*++0###### #####*+++++++++++$%$%$'*+++++++++++*++++++++++##### 1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 11+++++++++++++ 1%1111+++++++++++++++111.11+++++++++++++++1111+++++++ 1 1 11+++++++++++++++ 1%111&1 11+++++++++++++1111111+++++++++++++1111111+++++++++++++111-11.11++++++++++++++++111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11++++++++++++++ 1%11&11+++++++++++++11111+++++++++++++111.11++++++++++++++1111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/Route21_South_Frlg/border.bin b/data/layouts/Route21_South_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/Route21_South_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/Route21_South_Frlg/map.bin b/data/layouts/Route21_South_Frlg/map.bin new file mode 100644 index 000000000000..30c2cba6f893 --- /dev/null +++ b/data/layouts/Route21_South_Frlg/map.bin @@ -0,0 +1 @@ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 11++++++++++++++11&1 11++++++++++++1-1111++++++++++++1111+++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 11++++++++++ 1%11111++++++++++++1111.11++++++++++++1-1111++++++++++++++1111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 1 11++++++++++++11111&11++++++++++++1-111111++++++++++++++1-11111+++++++++++11111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 11++++++++++ 1 1%1111++++++++++1111.11++++++++++11111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++(22)++++++++++,00*++++++++++++,00*+++++(222222200*+++++,222222201*++++ \ No newline at end of file diff --git a/data/layouts/Route22_Frlg/border.bin b/data/layouts/Route22_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route22_Frlg/border.bin differ diff --git a/data/layouts/Route22_Frlg/map.bin b/data/layouts/Route22_Frlg/map.bin new file mode 100644 index 000000000000..1caf49cc729f --- /dev/null +++ b/data/layouts/Route22_Frlg/map.bin @@ -0,0 +1 @@ +qqurpsqqqqqqqqqqqqqqqqq|||||||||||q0q0q0qqurp{|qqqqqqqqqqqqq|}yyyyyyyyq0sq0q0q0|}rpqq{|||||||||||||}qqr 00 00 00 00pq0{|q0uyzxyyyyyyyyyyyyyyyyyyyz 0pq0q0q0{|urb1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d10 0pq0q0q0q0q0ur[b1c1c1c1c1c1c1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1l100xyyyyyur2222222r1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1t1 00 00 00urb1c1c1c1c1c1c1c1c1c1d10 00 00 00 00 00 00iiij 000 00 0000000urr1s1s1s1s1s1s1s1s1s1t1kllmr 0 0 000000ur00 0 0 0 0 0 0 0sqqur 0 0 0 0 0 0000100ur00 00 00 00 00 0 0 0 0 0 0 0 0sqqur 0 0 0 0 0 00000hiur00000000000 0 0 0 0 0 0 0sqqur 0 0 0 0 0 00000pqur0 00 0 0 0 0 0 0 0313131313131p{||}r 0 0 0 0 0 00000pquij000 00 00 00 00 0 0 0 0 0 0 0000000pqqqqr 0 0 0 0 0 0&'0000pqlmr0 00000000000 00 00 00000000xyyyyz 000 00 00 00000pqqqur 00pqqqurb1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1d1pqqqurj1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1l1pqqqurr1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1s1t1pkqquiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisqqllllllllllllllllllllllllllllllllllllllllllllqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/Route22_NorthEntrance_Frlg/border.bin b/data/layouts/Route22_NorthEntrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Route22_NorthEntrance_Frlg/border.bin differ diff --git a/data/layouts/Route22_NorthEntrance_Frlg/map.bin b/data/layouts/Route22_NorthEntrance_Frlg/map.bin new file mode 100644 index 000000000000..1452ebb13138 --- /dev/null +++ b/data/layouts/Route22_NorthEntrance_Frlg/map.bin @@ -0,0 +1 @@ +2231332223133222233/4322233/432222225363732225363732222203.3232222203.323222233/432222233/432222536373222225363732222203.32322203.32322222233/4322233/4322225363732225363732 \ No newline at end of file diff --git a/data/layouts/Route23_Frlg/border.bin b/data/layouts/Route23_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route23_Frlg/border.bin differ diff --git a/data/layouts/Route23_Frlg/map.bin b/data/layouts/Route23_Frlg/map.bin new file mode 100644 index 000000000000..f6f5f5662dd5 --- /dev/null +++ b/data/layouts/Route23_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqyy222yyqqqqqqqz2222222xy22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 02222222222222222220000 00 0222222222 00 00 000000000000000000000hiiiiiiiiiiiiiiij0 00pklllllllllllllmr000psqqqqqqqqqqqqqur0 00psqqqqqqqqqqqqqur0 00psqqqqqqqqqqqqqur000psqqqqqqqqqqqqqj00psqqqqqqqqqqqqqqquj0p{||||||qqqq|||}r0xy0yysqqqquy0yz00222psqqqqur0 00 000 02220 0psqqqqur0000002220psqqqqur000 00 002220 0psqqqqur00 000022200psqqqquiiiij022222psqqqqllmqqr2220psqqqqqqquqqr0 02220psqqqqqqquqqr0022200p{qqqqqquqqr02220pqsqqqqqquqqr002220pq{||||||}qqr222220pqqqqqqqqqqqr0222 0xyyyyyyyyyyyz 02220 00 0 0 0 00 0 0 00000000 0 0 0 0000000222200 000 0 0 00000000000 00022222222200002222220 000 00022222222222200000002222220 00 00 00222222000000000022222222220000 00 022200000000002222222222222222222222222222222222 0 022200 0 0 0 02220000 0 0 0 0 00 00000 0 0 0000000 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0000 0 0 0 0 0 0 000 00 000000000 0 0 0 000 00 0 0 00000000 0 0 0 00 0000 0 0 000000 0 00 00000 0 0 0 0 00000 0000 0 0 0 0 00 000000 0 0 0 0000000000 00 00 0.1111111-12222221++++++11++++++11++++++11++++++12112121++++++12121132++++++++++++++++++32++++++++++++++++++32++++++++++++++++++32++++++++++++++++++32++++++++++++++++++3 3()*+,!3%&'-./++++++.1$+++#31121121-11++++++++++++11++++++++++++11++++++++++++11++++++++++++11++ 1 1 1 1 11++++11++111111++++11++111111++++11++111111++++13121++111111++++13+++++++++++++++13+++++++++++++++13+++++++++++++++1 3()*+,2%&'-./++++++3112211211$+++#3112133++++++++++++++++++33++++++++++++++++++33++++++++++++++++++33++++++++++++++++++3 3+++!32222222222222222222222222222222220222222222222222222002222222222222222220000222222222222222220 002220002220002220 002220002002220020020020 00 0 02220 0000 00 0000000000000000000000 00 00 0000 00 0000 00 02222222222222222222222222222220 0222002002002000000222 02222222222000 00000222222222200 00 0 022222222222222222222222222222222222200200222 00222222222 00 00$'2222222220 00 0&%222222222000000'222iiiiiqqujhsqqqqqujqqurpsqqqqqurqqurpsqqqqqurqqurpsqqqqqur&%qqurpsqqqqqiiqqurpsqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/Route24_Frlg/border.bin b/data/layouts/Route24_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route24_Frlg/border.bin differ diff --git a/data/layouts/Route24_Frlg/map.bin b/data/layouts/Route24_Frlg/map.bin new file mode 100644 index 000000000000..80de4b1f1b44 --- /dev/null +++ b/data/layouts/Route24_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqqqqqq|||||||qqqqqq||||||||}qqqqqqq{||||qquyyyyyyyyy|yyyyyyyyyyq}0000000000000 00 00 0quq000000000000000000qu0000000000000 00 00 0qu00000qu000000000000000000000qu000000000000000000000qu000000010100000000000qur0000000000F>>>>>>>>>>qur00 0 000 0000W0 00 00 00 00 0qur0000000000W000hiiiiii}r00 00 0 00000W0 00pqklllluqr00 0000 0000W000pqsqqqquqr 000 00 00000W0 00pkqqqquqr000"#$000M000psqqqqquqr 00 0*+,2220 00psqqqqquqr000*+,222000psqqqqquqr 0 0 0*+,2220 00psqqqqquqr 0 0 0*+,222000psqqqqquqr 0 0 0*+,2220 00psqqqqquqr 0 0 0*+,222000p{qqqquqr 0 0 0*+,2220 00pqsqqqquqr 0 0 0*+,222000pqsqqqquqr 0 0 0*+,2220 00x{||||uqr 0 0 0*+,222000x|||||uqr 0 0 0*+,2220 00"#####mr 0 0 0*+,222000*+qur 0 0 0*+,2220 00*+qur 0 0 0*+,222000*qur 0 0 0*+,2220 00*quj"#1+,222000*ququ*+++,2220 00*ququ*+++,222000*qmu*+++,2220 00*qquu*+++,222000*qquu*+++,2220 00*qquu*+++,222000*qquu*+++,2220 00* \ No newline at end of file diff --git a/data/layouts/Route25_Frlg/border.bin b/data/layouts/Route25_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route25_Frlg/border.bin differ diff --git a/data/layouts/Route25_Frlg/map.bin b/data/layouts/Route25_Frlg/map.bin new file mode 100644 index 000000000000..9ec2e35d4454 --- /dev/null +++ b/data/layouts/Route25_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqqq|||||||||||||||||||||||||||||||||||||||||||||||||||||||||qqqqq||||||||}qqyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyqqq{qqqqyyyyyyyyyyyz0 000 000 0 00 00 00 000000 00 0000x|||sqqqq0 0 0 0 0 0 0 0 00 0000000000000000000 00 00 00 00 0&%$%$$%$%$%$'"##!s{qqq0 0 0 0 0 0 0 0 00000 0000 00000 00 000 00 00 00 00 000i*,sqsqqq00 00 00 00 00 00 00 000000000 000 00 0000000 000 0000 00j1k1l1 00 0 00 00 0*,{{|||0000 0000000000000000000 0000 0b1c1c1k1k1k1c1c1d100000*0!{|qq000000000000000 000 00 00 00 000000 00 00 00 000 000r1s1s1s1s1s1s1s1t1 00 00 0*0#!{||00000000000000000000 0000000000 000 00 00 00 00 00 00 0 00 00 000000*0###00000000000000 00000000000000000 0000000 000000 0*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?000000*000000000000000000000000000000000000000000000000 0*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiij00313131313131000003131313131310*lllllllmqqqqqqqqqqqqqqqqklllllllmqqqqqqqr*qqqqqqqlllllllllmqqqqqqsqqqqqqqlllmqqqr"####################1qqqqqqqqqqqqqqqqqllllllqqqqqqqqqqqllmu*+qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu*qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu*qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu*qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquu* \ No newline at end of file diff --git a/data/layouts/Route25_SeaCottage_Frlg/border.bin b/data/layouts/Route25_SeaCottage_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Route25_SeaCottage_Frlg/border.bin differ diff --git a/data/layouts/Route25_SeaCottage_Frlg/map.bin b/data/layouts/Route25_SeaCottage_Frlg/map.bin new file mode 100644 index 000000000000..dbf7d06ba9de --- /dev/null +++ b/data/layouts/Route25_SeaCottage_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route2_Entrance_Frlg/border.bin b/data/layouts/Route2_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Route2_Entrance_Frlg/border.bin differ diff --git a/data/layouts/Route2_Entrance_Frlg/map.bin b/data/layouts/Route2_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..dfde7c299c6e --- /dev/null +++ b/data/layouts/Route2_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route2_Frlg/border.bin b/data/layouts/Route2_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route2_Frlg/border.bin differ diff --git a/data/layouts/Route2_Frlg/map.bin b/data/layouts/Route2_Frlg/map.bin new file mode 100644 index 000000000000..1d093f92b2f3 --- /dev/null +++ b/data/layouts/Route2_Frlg/map.bin @@ -0,0 +1 @@ + 0000$%$%$% 0000$%$%$%$%$% 0 0 0 0 0 0 0000 0 0 0 0 0 0 00000 00 00 00 00 0 0 0 0 0 0 0000000000000 0 0 0 0 0 0 00000 00 00 00 00 0 0 0 0 0 0 0000hiiiiiij0 0 0 0 0 0 0 0000pkllllmr 0 0 0 0 0 0 0 0000psqqqqur00 000000100psqqqqur00000000000p{||||}r 00 000010000xyyy0yyz000000000 0000000000x1y1y1z10000000000DEEEEEEF 00 000000000LMMMMMMN000000000000LMMMMMMN0000000 0000000000 00 00 00 000000000,0-0-0-0/0 00 046657000<=?0000000000000000000000000000000 00 00 00000000 00 00 000000000 00 00 00000000 00 00 0000000000000000000 0000000x1y1y1z1DEEEEFLMMMMND0E0E0E0E0E0E0F0pqLMMMMMMNd11fLMMMMMMN1111 00000 0000000\]0]0^000000de11ef$%$%0111100000 00000000 00 00 000000000000000000000000 0 00 00000000000 0 0 0 0 0 0 000 0000 00000 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 00 000000000 0 0 0 0 0 0 000000000000 0 0 0 0 0 0 000 0000 000000 00 00 00 0&'00000000000000000000000000000000000 0000000000000000000000000&%$%$%$%00 0000000100000000000000000000000000&'0000000000000001000 0000000000000000000001000 00 00 00010000100000000000 00 00000000000000000000000000001000010000000000000101000000000000 00000000000000000000 0000 \ No newline at end of file diff --git a/data/layouts/Route3_Frlg/border.bin b/data/layouts/Route3_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route3_Frlg/border.bin differ diff --git a/data/layouts/Route3_Frlg/map.bin b/data/layouts/Route3_Frlg/map.bin new file mode 100644 index 000000000000..7e4fd76ffc97 --- /dev/null +++ b/data/layouts/Route3_Frlg/map.bin @@ -0,0 +1 @@ +psqqqqqqqqqqqqqq|||||||||||||qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu00000000sqqqqqqpsqqqqqqqqq||||}qqqqqqqqqqqqq{|||||qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu00000000sqqqqqqpsqqqqqqq|}yyyyyyyyyyyyyyyyyyyyyy{|qqqqqqqq|||||||qqqqqqqqqqu10000010sqqqqqqpsqqqqqqquy0000000000000000000000ysqq|||||}qqqqqqq{||||qqqqqur0100100hsqqqqqqpsqqqqqqqu00000100000001000000000000sq}yyyyyyyyyyyyyyyy{|qqqur00000hiqsqqqqqqp{qqqqq}0000000 00 00 0 00000000000100squ0000000000000000ysqqqur0 00 0 0pkllqqqqqqpq{|||||}qr0 00 00 00 00hij0 00 00 00hj0 0000squ0001000000000010000sqqqur00000psqqqqqqqqqpqqqqqyyyz00q00p{|}0000000000000000000sqqqur0 00 0 0psqqqqqqqqqxyyyyyz000000 00 00 00 0pqr0 00 00 00pr0 00 00xyyyz00hiiiiij0p{|||}00p{|||qqqqq0 00 00 00 000 0000000000pqr0000000pr00 00 00 000 00 00 00 0pklllmr0 0 00 00pqqqyz00 000xyyy{|qqq0000000000000 00 00 00 0pqr0 00 00 00pj000000000000000psqqqur000000xyyyz0 00 0000 0 0 0 0xysqqq0 00 00 00 00hij00000000pqr0000000pqr 0 0 0 0 0 0 00 00 00 00 0psqqqur 00 00 000 00 00 00 00 0 0 0 0 0 0psqqq00hiiiiiiq0 0qqr 0 0 0 0 0 0 0 0 0 0 0 0 0 0hsqqqur0000000000 00 00 00 0 0 0 0 0 0 0 0psqqqhiqqqqqqqqr0 00 00 00 0xyz 00 00 00 0pqr 0 0 0 0 0 0 0 0 0 0 0 0 0 0pkqqqur0 0 00 000 00 0000000 0 0 0 0 0 0 0 0psqqqpqklllllllmr000000000 00 00 00 0 0hqij 0 0 0 0 0 0 0 0 0 0 0 0psqqqqur000000 00 00 00 00 0 0 0 0 0 0 0 0 0 0psqqqpkqqqqqqqu000000000000000kllmr 0 0 0 0 0 0 0 0 0 0 0 0psqqqquij00000 0000000 0 0 0 0 0 0 0 0 0 0psqqqpsqqqqqqqqlmsqquiiij 0 0 0 0 0 0 0 0psqqqqlmr000000 00 00 00 0 0 0 0 0 0 0hiisqqqpsqqqqqqqqqqlllllllllllllllllqqlllmiiiiiiiisqqqqqquiiiiiiiiiiiiiiiiiiikllqqqpsqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqllllllllllqqqqqqlllllllllllllllllllllqqqqqqpsqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/Route4_Frlg/border.bin b/data/layouts/Route4_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route4_Frlg/border.bin differ diff --git a/data/layouts/Route4_Frlg/map.bin b/data/layouts/Route4_Frlg/map.bin new file mode 100644 index 000000000000..447d87b5cd71 --- /dev/null +++ b/data/layouts/Route4_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqqqq|||||||qqsqqqqqqqqqqqqqquqqqqq||||||||||||||qqqqq||||||||||qqqqqqqqqqq|||||||||||||qqqqqqqqqqqqqqqqqu22222sqqsqqqqqqqqqqqqqquqqqqquqyyyyyyyyy|y{|||||}yyyyyyyy{|||||||||||}yyyyyyyyyyy{|||||||||q||||||}rHIJKpsqq{|||qqqqqq|||}qqqqquqr0 0 00 00 00 0x|yyyyyyz 00 00 00xyyyyyyyyyyyyyz 00 000000000yyyyyyyyyyquyyyyyyzPQRSp{qqqqqsqqqq|}qqqqqqqq}qr000000000000000 00000000 000000 00 00 00 000000000000000000000000qu 00 000XYZ[x{||||sqqqqu|||||||||}yz0 0 00 00 000000000000 00 0000 0000000000000 00 00000000000000000000qu000 000`ab0yy0ys{qq}uy0yyyyyyyz0 0000 00000000 0000000qu0000000 0 00 00000000{sqqu}000000000000 00 00 00 00 00 0000 000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000"#########qu000000000000ssqquu01000000000000000000000 00000 0000*+++++++++qu000000000000000000ssqquu0000 00 00 000 00 00 00 00 00 00 0000 00000 0 00 00 00 00 00 00 000 00 00 0000000 00 00 00*+++++++++qu000000000000ssqquu000 00000o0000000000000000 00 00 00qu000000000000000000s{||}ur0 00 00 00 00 00 00 00 00000000000000000000 000000000000000000qu000000000sqqqqur000000000000 00 00 00 0 000000001010000000000 0 0 0 0 0 0 0 0 0 0 0 0000000000000000000qu000000000000sqqqquiiiiiiiiiij000000000000000000000000000000 0 0 0 0 0 0 0 0 0 0 0&% 000010000000000000qu000000000000000sqqqqlllllmqqqqqiiij 0000000000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 000000 00qlmq0000000000000sqqqqkllllmllllmqqqqr&%$'0000000000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0000qqqllm0000000sqqqqsqqqqllllmuqqqqiiij0000 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 00qqqqqqu00000000kllqqqqsqqqqqqqqqulmqqqqqqr00000 00 0 00 00 00 00 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0&'0000000qqqqqqu00000000kllqqqqqqkqqqqqqqqquqquqqqqqqr00000000000000000000$%$' 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00 000&%$%$%$%$%qqqqqqu00000sqqqqqqqqqsqqqqqqqqqquqquqqqqqqiiiiiij0 00 00 00 00 000 0&'hiiiiiiiiiiiiij000000000hiiiiiiiiiiijqqqqqqu00000000sqqqqqqqqqsqqqqqqqqqquqquqqqqqqqqqqqqqiiiiiiiiiiiiiiiqqqqqqqqqqqqqiiiiiiiiiqqqqqqqqqqqr \ No newline at end of file diff --git a/data/layouts/Route5_Frlg/border.bin b/data/layouts/Route5_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route5_Frlg/border.bin differ diff --git a/data/layouts/Route5_Frlg/map.bin b/data/layouts/Route5_Frlg/map.bin new file mode 100644 index 000000000000..3c357908f297 Binary files /dev/null and b/data/layouts/Route5_Frlg/map.bin differ diff --git a/data/layouts/Route5_PokemonDayCare_Frlg/border.bin b/data/layouts/Route5_PokemonDayCare_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/Route5_PokemonDayCare_Frlg/border.bin differ diff --git a/data/layouts/Route5_PokemonDayCare_Frlg/map.bin b/data/layouts/Route5_PokemonDayCare_Frlg/map.bin new file mode 100644 index 000000000000..85114f523382 --- /dev/null +++ b/data/layouts/Route5_PokemonDayCare_Frlg/map.bin @@ -0,0 +1 @@ +b22222222222232222222222222 3 32222222 3 32222222222222222222222 \ No newline at end of file diff --git a/data/layouts/Route6_Frlg/border.bin b/data/layouts/Route6_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route6_Frlg/border.bin differ diff --git a/data/layouts/Route6_Frlg/map.bin b/data/layouts/Route6_Frlg/map.bin new file mode 100644 index 000000000000..c4e9b6b92bcc --- /dev/null +++ b/data/layouts/Route6_Frlg/map.bin @@ -0,0 +1 @@ +DEEEEFLMMMMN$%$%$%$%$%$%$%\^0 0000 00d11f 00 00 0000000001111000000000000000 00 00 00 00000000 00 00 0000000000 00 00 00000000000000000000000D0E0E0F00LMMN0000000000000000TgUV0000000000000000d=ef00001010000001010000 0 0 0 0000 0 0 0 0 0 0000000 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000100000000000 0 0 0 0 0 000000000000000 0 0 0 0 0 000000000000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 0 0 0 0000 0 0 0 0000 0 0 0 0000 0 0000000000000000100 0 00 00 00 00 00000000000 0 0000000000010000000 0 0 00 0000 0 0 0 00000000000 0 0 0 00000 00 0000 0 0 0 0000000 0 0 0 000000000000000000$%$%$%$'0000########$000,000 \ No newline at end of file diff --git a/data/layouts/Route7_Frlg/border.bin b/data/layouts/Route7_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/Route7_Frlg/border.bin differ diff --git a/data/layouts/Route7_Frlg/map.bin b/data/layouts/Route7_Frlg/map.bin new file mode 100644 index 000000000000..08212179a4b8 --- /dev/null +++ b/data/layouts/Route7_Frlg/map.bin @@ -0,0 +1 @@ +$%$%$%$%$%$%$%$%$%$%0 00 00 00 00 0 0 0 0 0 0 0 0 00000000000 0 0 0 0 0 0 0 00 00 00 00 00 0 0 0 0 0 0 0 0 00000000000 0 0 0 0 0 000&%$%0 00 00 0 0 0 0 0 0 000000000000000000D0E0E0EEF0000001LMMMMN100 00 00 00 00 0081<1000000000000@1D100 0D0E0E0F00 00 00H1deeeefL10LMMN0000TgUV 00 00 00 00 00000d=ef0000000000 00 00 000 00 0000 00000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/Route8_Frlg/border.bin b/data/layouts/Route8_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route8_Frlg/border.bin differ diff --git a/data/layouts/Route8_Frlg/map.bin b/data/layouts/Route8_Frlg/map.bin new file mode 100644 index 000000000000..9d370b135c49 --- /dev/null +++ b/data/layouts/Route8_Frlg/map.bin @@ -0,0 +1 @@ +pqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpqqqqqq;<<=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyqqqpqqqqqqrLMMN0000000000 00 00 00 00 00 00 00 00 00 0 00 00 00 00 00pqqqpqqqqqqrTgUV000000000000000000000000000000000000000pqqqpqqyyyzd=ef0010100000 000000000000000000000000000 00pqqq$%$'pqqr0000000010000000000000000000000000000000&%$%$'pqqq0000xyyz00000000000000000 000100000000000000000001000 00000000pqqqDEEEEF 00 000100000000000000 00 00 00 00 00 00 00 000 0000000000000pqqq1LMMMMN1 00 00 00000 00000000 00000000000000 00 00 00 00xyyy81<100000100000000000 00 0 00 0 00 0 0000 00000000000000000@1D1000000000 00000000 000000000 0 0 0 0 00 0 00 0000000 00 00 00000000H1deeeefL100000100000000000000000 000 0 00 00 0 00 0000 00000000000010000 00 00 00000 000000000 00000000 0 0 0 0 0 0 0 0 0 000000000 00 00 00000000hiiiiiij0000000000000 00 00 00 00 00 0 0 000 0000000&%$%$'000000hiiipqqqqqqr00000 00 00 00 00 00 000000 0 0 0 0 0 0 0 0 00 0 00000000 00 00 00 00 00 0000pqqqpqqqqqqr00000000000000000000 0000 00 00 0 00 00 0 00 0000000000000000000pqqqpqqqqqqr0001000000000000100000 00 0 0 00 0 0 0 0 0000001000000000000100pqqqpqqqqqqr00000000000000000000 00000 00 0 000 0000 0000000000000000000pqqqpqqqqqqr0000000000000000000000000 0 000 0000000000000000000000000pqqqpqqqqqqiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiqqq \ No newline at end of file diff --git a/data/layouts/Route9_Frlg/border.bin b/data/layouts/Route9_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/Route9_Frlg/border.bin differ diff --git a/data/layouts/Route9_Frlg/map.bin b/data/layouts/Route9_Frlg/map.bin new file mode 100644 index 000000000000..6ac9ccccde1b --- /dev/null +++ b/data/layouts/Route9_Frlg/map.bin @@ -0,0 +1 @@ +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyykllmyyyyyyyyyyyyyyyyyklllll000000 0 0 0 0 0 0 0 0 0 0 00 00 00 00 00 00 0hiiiij 0 0 0 0 0 0psqqur 00 00 00 00 00 0000000sqqqqq 0 0 0 0 0 0 0 0 0 0 0000000000000pkllmr 0 0 0 0 0 0psqqur00000000000000000sqqqqq 0 0 0 0 0 0 0 0 0 0 0hiiij00 00 00 0psqqur0 00 00 0p{||}r 00 00000000h00sqqqqq 0 0 0 0 0 0 0 0 0 0 0pklm00psqqu00qqqq00klm{|qqq$%$%$' 0 0 0 0 0 0 0 0 0 0 0psqu0000000{||}000000yyyy0000000000squ00qqsqqq00000000000000000psqu0000000qqqq0000000000000000000000squ00qq{|||0 0psqu000000yyyy00000000000000000{|}00yyyyyy0 000 00 000000000hiisqu0000000000000klm0000000yyy00000000000000000000000kllqu0000000000000squ0000klm000klm00000000000000hi0000sqqqqu00squ0000squ000squ000000000000000000pkllm{||||}000000000000 0p{|}{|}0psqu000000psqqu0000yyyyyy0000000001000xyyyz0000xyyyz000psquklmklpsqqu0000000000000000000000 00 00 000 000 000 00 000 00p{|}000squ000sqpsqqu000000000000000000000000000000000000pqqqr0 00p{|}000sqpsqqu00kllm00xyyyzxyyyzsqpsqqu000000000000000sqqur 000 00 000 00 00 00 00 0 00 00 00 00 00 00 00 00 00 00psq$'psqqu000000000000000sqqur0000000000000000000000000000000000000psqhii{||}sqquiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii{|pqqqqqqqqqqqqqqqqqqqqqqqq{||}qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq \ No newline at end of file diff --git a/data/layouts/RustboroCity_CuttersHouse_Frlg/border.bin b/data/layouts/RustboroCity_CuttersHouse_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/RustboroCity_CuttersHouse_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RustboroCity_CuttersHouse_Frlg/map.bin b/data/layouts/RustboroCity_CuttersHouse_Frlg/map.bin new file mode 100644 index 000000000000..5515d00cfd6b --- /dev/null +++ b/data/layouts/RustboroCity_CuttersHouse_Frlg/map.bin @@ -0,0 +1 @@ +yzfg8898x88no@@A@VW33v3w3+3+3+3+33^3_3+3{3|3|3}3,3,3,3,3,3,3+33>2>23,3,3,3j7k7E3+33>2>23,3,3D3r7s7E3+33333,3,3,3,3,3,3F3G3,3,3,3,3,3,3,3,3,3N7O7,3,3,3LM,3,3,3,3 \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat1_1F_Frlg/border.bin b/data/layouts/RustboroCity_Flat1_1F_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/RustboroCity_Flat1_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat1_1F_Frlg/map.bin b/data/layouts/RustboroCity_Flat1_1F_Frlg/map.bin new file mode 100644 index 000000000000..017298e71601 --- /dev/null +++ b/data/layouts/RustboroCity_Flat1_1F_Frlg/map.bin @@ -0,0 +1 @@ +8()*:888:8x88:H0 2B@@@B@VWBP3+3+3+3+3+3+3+3+3+33^3_3+3+3D3,3,3,3,3,3,3{3|3|3|3|3}3+3h7i7,3,3,3,3,332H6I623+3p7q7E3,3,3,3,33>2P6Q623F3G3,3,3,3,3,3,3333333N7O7,3,3,3,3LM,3,3,3,3,3,3 \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat1_2F_Frlg/border.bin b/data/layouts/RustboroCity_Flat1_2F_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/RustboroCity_Flat1_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat1_2F_Frlg/map.bin b/data/layouts/RustboroCity_Flat1_2F_Frlg/map.bin new file mode 100644 index 000000000000..17a6113437e6 --- /dev/null +++ b/data/layouts/RustboroCity_Flat1_2F_Frlg/map.bin @@ -0,0 +1 @@ +8()*:888:8888:@02B@@@BT7UIB+3+3+3+3+3+3+3+3+3\3?3]3Q3+3+3,3,3,3,3,3,3,3{3|3|3|3}3,3+3D3~777E3,3,33>2>2>23,3+3,3777E3,3,33>2>2>23,3+3G3G3,3,3,3,3,333333,3+3O7O7,3,3,3,3,3,3,3,3,3,3,3 \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat2_1F_Frlg/border.bin b/data/layouts/RustboroCity_Flat2_1F_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/RustboroCity_Flat2_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat2_1F_Frlg/map.bin b/data/layouts/RustboroCity_Flat2_1F_Frlg/map.bin new file mode 100644 index 000000000000..0f6829f9c3bd Binary files /dev/null and b/data/layouts/RustboroCity_Flat2_1F_Frlg/map.bin differ diff --git a/data/layouts/RustboroCity_Flat2_2F_Frlg/border.bin b/data/layouts/RustboroCity_Flat2_2F_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/RustboroCity_Flat2_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat2_2F_Frlg/map.bin b/data/layouts/RustboroCity_Flat2_2F_Frlg/map.bin new file mode 100644 index 000000000000..9f3750fb4b4c Binary files /dev/null and b/data/layouts/RustboroCity_Flat2_2F_Frlg/map.bin differ diff --git a/data/layouts/RustboroCity_Flat2_3F_Frlg/border.bin b/data/layouts/RustboroCity_Flat2_3F_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/RustboroCity_Flat2_3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/RustboroCity_Flat2_3F_Frlg/map.bin b/data/layouts/RustboroCity_Flat2_3F_Frlg/map.bin new file mode 100644 index 000000000000..2112fe7996c1 Binary files /dev/null and b/data/layouts/RustboroCity_Flat2_3F_Frlg/map.bin differ diff --git a/data/layouts/SSAnne_1F_Corridor_Frlg/border.bin b/data/layouts/SSAnne_1F_Corridor_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_1F_Corridor_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_1F_Corridor_Frlg/map.bin b/data/layouts/SSAnne_1F_Corridor_Frlg/map.bin new file mode 100644 index 000000000000..b9fde8c26ada --- /dev/null +++ b/data/layouts/SSAnne_1F_Corridor_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222232232232232232232232222222222222222222222222222222222222222222266222223223222 \ No newline at end of file diff --git a/data/layouts/SSAnne_2F_Corridor_Frlg/border.bin b/data/layouts/SSAnne_2F_Corridor_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_2F_Corridor_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_2F_Corridor_Frlg/map.bin b/data/layouts/SSAnne_2F_Corridor_Frlg/map.bin new file mode 100644 index 000000000000..9fa53735cc41 --- /dev/null +++ b/data/layouts/SSAnne_2F_Corridor_Frlg/map.bin @@ -0,0 +1 @@ +6233232222222222222222222222222222222222222222222222232222222232222222222222222222222222222232222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_3F_Corridor_Frlg/border.bin b/data/layouts/SSAnne_3F_Corridor_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_3F_Corridor_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_3F_Corridor_Frlg/map.bin b/data/layouts/SSAnne_3F_Corridor_Frlg/map.bin new file mode 100644 index 000000000000..336e034fa808 --- /dev/null +++ b/data/layouts/SSAnne_3F_Corridor_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222223VW322222222222222223^_32222222222222222222fg32222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_B1F_Corridor_Frlg/border.bin b/data/layouts/SSAnne_B1F_Corridor_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_B1F_Corridor_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_B1F_Corridor_Frlg/map.bin b/data/layouts/SSAnne_B1F_Corridor_Frlg/map.bin new file mode 100644 index 000000000000..db24bfff4b4a --- /dev/null +++ b/data/layouts/SSAnne_B1F_Corridor_Frlg/map.bin @@ -0,0 +1 @@ +T2222222222222222223222222222222222222U322222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_CaptainsOffice_Frlg/border.bin b/data/layouts/SSAnne_CaptainsOffice_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_CaptainsOffice_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_CaptainsOffice_Frlg/map.bin b/data/layouts/SSAnne_CaptainsOffice_Frlg/map.bin new file mode 100644 index 000000000000..75c9eb2d3e67 --- /dev/null +++ b/data/layouts/SSAnne_CaptainsOffice_Frlg/map.bin @@ -0,0 +1 @@ +2 32222222 22222222222222233222322222 \ No newline at end of file diff --git a/data/layouts/SSAnne_Deck_Frlg/border.bin b/data/layouts/SSAnne_Deck_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/SSAnne_Deck_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/SSAnne_Deck_Frlg/map.bin b/data/layouts/SSAnne_Deck_Frlg/map.bin new file mode 100644 index 000000000000..bf3fb5e80d45 --- /dev/null +++ b/data/layouts/SSAnne_Deck_Frlg/map.bin @@ -0,0 +1 @@ ++++++++++++,*++++++++++++++++++,*++++++++++++++++++,*++++++++++++++++++,*++++++++++++++QR[\v]eeeee+++++QRYZc3d3d3d3d3mn+++QRYZS3P33P3P3P3P3P3u+QRYZS3P3P3w3P3P3wP3P3P3}XYZS3P3P3P3P3P3P3P3P3P3P3P3P33`a3b3P3P3P3P3P3P3P3P3P3P3P3P3P33hijx3b3P3P3P3P3P3P3P3P3P3P3P3pqrijx3b3P3P33P3P3P3P3P33+yzzrijx3b33wP3P3P33+pqzzzrijk3l3l3l3l3~++1yzzzzzrstttttttttttttt++1pqzzzzz{||||||||||||||++1+1yzzzzz{||||||||||||||+++pqzzzz{||||||||||||||++++yzzzz{|||||||||||||| \ No newline at end of file diff --git a/data/layouts/SSAnne_Exterior_Frlg/border.bin b/data/layouts/SSAnne_Exterior_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/SSAnne_Exterior_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Exterior_Frlg/map.bin b/data/layouts/SSAnne_Exterior_Frlg/map.bin new file mode 100644 index 000000000000..a76275227088 --- /dev/null +++ b/data/layouts/SSAnne_Exterior_Frlg/map.bin @@ -0,0 +1 @@ +,*,*+++++++++++++++++++++,*++++(%333333333+++,   *+++++++++111111111+++++++++++,*+++++111111111111+++++++2+++0##########!11 #########++++++++++++111++++++++++++++++,11*++++++++++++++++++++++++++++++++,111*+++++++++++++++++++,11*++++++++++++++++++++++++++,111*+++++++++++++++++++++,11*++++++++++++++++++++++++++,111*+++++++++++++++++++++,11*++++++++++++++++++++++++++,1*+++++++++++++++++++,11*+++++++++++++++++++++1++++++++++++++,11*++++++++++++++++++++++1++++++++++++++,11*+++++++++++++++++++++++++,1*+++++++++++++++++,11*++++++++++++++++++++++!2"++++++++++++++++,11*++++++++++++++++++++++#   $++++++++++++++,11*+++++++++++++++++++++++++++++,11*++++++++++++++++++++++++,11*++++++++++++++++++,11*++++++++++++++++++,11*+++++++++++++++++,11*++++++++++++++++,11*++++++++++++++++,11*++++++++,11*++++,11*+++,11*++,11*++,11*+11*++*+0###1 \ No newline at end of file diff --git a/data/layouts/SSAnne_Kitchen_Frlg/border.bin b/data/layouts/SSAnne_Kitchen_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_Kitchen_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Kitchen_Frlg/map.bin b/data/layouts/SSAnne_Kitchen_Frlg/map.bin new file mode 100644 index 000000000000..f74655d33167 --- /dev/null +++ b/data/layouts/SSAnne_Kitchen_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SSAnne_Room1_Frlg/border.bin b/data/layouts/SSAnne_Room1_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_Room1_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Room1_Frlg/map.bin b/data/layouts/SSAnne_Room1_Frlg/map.bin new file mode 100644 index 000000000000..b5cfa38c41f6 --- /dev/null +++ b/data/layouts/SSAnne_Room1_Frlg/map.bin @@ -0,0 +1 @@ +:+333333333333333333893(3)*3@A4303123HI3333 \ No newline at end of file diff --git a/data/layouts/SSAnne_Room2_Frlg/border.bin b/data/layouts/SSAnne_Room2_Frlg/border.bin new file mode 100644 index 000000000000..b90547a3e261 --- /dev/null +++ b/data/layouts/SSAnne_Room2_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSAnne_Room2_Frlg/map.bin b/data/layouts/SSAnne_Room2_Frlg/map.bin new file mode 100644 index 000000000000..e1509b523341 --- /dev/null +++ b/data/layouts/SSAnne_Room2_Frlg/map.bin @@ -0,0 +1,2 @@ +;;BCD3  +3JKL33'3<3$3$3$3$3'3$3$3$3$3$3 3$3$3$3$3$3$3$3=3>3?3 \ No newline at end of file diff --git a/data/layouts/SSTidal_Corridor_Frlg/border.bin b/data/layouts/SSTidal_Corridor_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/SSTidal_Corridor_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSTidal_Corridor_Frlg/map.bin b/data/layouts/SSTidal_Corridor_Frlg/map.bin new file mode 100644 index 000000000000..f8cf1725df61 --- /dev/null +++ b/data/layouts/SSTidal_Corridor_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222 6222222222222222222201111111111222222011111111112222220111111111122222201111111111222222%#$"#$"#$"#&22222-+6{*+6{*+6{*+622222222222222222222 22222222222222222 \ No newline at end of file diff --git a/data/layouts/SSTidal_LowerDeck_Frlg/border.bin b/data/layouts/SSTidal_LowerDeck_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/SSTidal_LowerDeck_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSTidal_LowerDeck_Frlg/map.bin b/data/layouts/SSTidal_LowerDeck_Frlg/map.bin new file mode 100644 index 000000000000..059ce30fe4b0 --- /dev/null +++ b/data/layouts/SSTidal_LowerDeck_Frlg/map.bin @@ -0,0 +1 @@ +22222222 22 22 22 2 2 22 2222 2222 22222 2 2 22222222 222 2222 2 2 22222 2 22222 2 2222222222222222 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2222222222 222 222 2 22222 2662222222 2 \ No newline at end of file diff --git a/data/layouts/SSTidal_Rooms_Frlg/border.bin b/data/layouts/SSTidal_Rooms_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/SSTidal_Rooms_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SSTidal_Rooms_Frlg/map.bin b/data/layouts/SSTidal_Rooms_Frlg/map.bin new file mode 100644 index 000000000000..6103ad0c2268 --- /dev/null +++ b/data/layouts/SSTidal_Rooms_Frlg/map.bin @@ -0,0 +1 @@ +6@kcmE@kcmE@kc''@kcmE7>HsuMHsuMHs////uM?>PQ:2;2;2TUPQ:2;2;2TUPQ:2;2;2;2;2;2;2;2TU?>XY=28282\]XY=28282\]XY=282828282828282\]?>:;2<28282;2;2:;2<28282;2;2:2;2<282828282w682828282;2;2?>=2828282828282w68282VW8282=282`2VWa282=28282828282a2?>=2828282VW82=282`2^_a282=282`2^_a282=282828282VW?>=28282`2^_b=2828282828282=2828282b8282=2828282`2^_?6@klvlmElvllCDE@lvlvmE@kv'vmE7>Hst~tuMt~ttKij/t~t~uMHs~/~//?>PQ:2;2;2TU:2;2;2;2;2qr66;2;2;2TUPQ:2;2;2;2|2?>XY=28282\]=2VW8282yz828282\]XY=2VppW?>:;2<28282;2|2=2^_a282;256=282828282;2;2h;2<2^xx_?>=2828282828282=2828282828282=2828282828282=28282`2828282?>=2828282828282=2828282828282=2828282828282=2828282828282?>=28282de8282=28282de8282=28282de8282=28282de8282? \ No newline at end of file diff --git a/data/layouts/SafariZone_Center_Frlg/border.bin b/data/layouts/SafariZone_Center_Frlg/border.bin new file mode 100644 index 000000000000..964b51edb7e9 --- /dev/null +++ b/data/layouts/SafariZone_Center_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_Center_Frlg/map.bin b/data/layouts/SafariZone_Center_Frlg/map.bin new file mode 100644 index 000000000000..f1fe437e9750 --- /dev/null +++ b/data/layouts/SafariZone_Center_Frlg/map.bin @@ -0,0 +1,6 @@ + %&'%&'#%&' #7       22    0 00 00 0000000 0000000000 00 00 0 000 00 0 %&'00000 0 0 0 000000 00 00000 0 0 0 0 00000000#0 0 0 0 0 0 0 0 0 0 00 000000 0 0 0 0 0 0 0 0 0 000100 00 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 00000#%&'0 0 0 0 0 0 0 0 0 0 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 00000 %&'00 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 001000#0 0 0 0 0 0 0 00000 00 00 0 0 0 0 0 00 0 0 0 0000000 000 0 0 000 0"##############$0 00 000000   0 00 0 000 0 0*++++++++++++++,   0000000 0 0*++(3131313131313131)++,0 00 000 00 0200000 0 0 0 0*++,0 0000 00 0*++,0000 0000022001010 0 0 0*++0########1++, 0 00000 00 0  +  + 20000000 0 0*++++++++++++++, 0 0 0 000000  +  +  +00000100031313131313131313131313131310 0 0 0 0 0000 !" !" 0000000 0 000 0 0 0 0 0 0 00#%& !"   !"0 00 0000 00 00 00 0 00 0 0 0 0 0 0 0 00 %&'0 00 00 0000000000100022222000 0 0 0 00 00#00000 0 0 0 0 0 0 0 001000 000 0 0 0 0 0 0 00 0 00 0 0 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0 000#%&'0000 0 0 0 0 0 0 0 0 0 00000 00 0 0 0 0 00 00 0 0 00 00 0 0 0 0 0 0 0 00 000000 0 00 0 0 0 0 000000#00000 0 0 0 0 0 0 0 0 0 0 0 00 00 00 0 0 0 0 00 00 00 0 0 00 0000 0 0 0 0 0 0 00 00 00 00 00 0 0 0 00000000#3333333333330 0 00000 00 0333333333333 222222#%&'  " !"   " !" !"     %&'%&'%&'" "  \ No newline at end of file diff --git a/data/layouts/SafariZone_East_Frlg/border.bin b/data/layouts/SafariZone_East_Frlg/border.bin new file mode 100644 index 000000000000..964b51edb7e9 --- /dev/null +++ b/data/layouts/SafariZone_East_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_East_Frlg/map.bin b/data/layouts/SafariZone_East_Frlg/map.bin new file mode 100644 index 000000000000..28a9cafb73c1 Binary files /dev/null and b/data/layouts/SafariZone_East_Frlg/map.bin differ diff --git a/data/layouts/SafariZone_North_Frlg/border.bin b/data/layouts/SafariZone_North_Frlg/border.bin new file mode 100644 index 000000000000..964b51edb7e9 --- /dev/null +++ b/data/layouts/SafariZone_North_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_North_Frlg/map.bin b/data/layouts/SafariZone_North_Frlg/map.bin new file mode 100644 index 000000000000..03319e72c5dc Binary files /dev/null and b/data/layouts/SafariZone_North_Frlg/map.bin differ diff --git a/data/layouts/SafariZone_RestHouse_Frlg/border.bin b/data/layouts/SafariZone_RestHouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SafariZone_RestHouse_Frlg/border.bin differ diff --git a/data/layouts/SafariZone_RestHouse_Frlg/map.bin b/data/layouts/SafariZone_RestHouse_Frlg/map.bin new file mode 100644 index 000000000000..caec48cdc728 --- /dev/null +++ b/data/layouts/SafariZone_RestHouse_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SafariZone_SecretHouse_Frlg/border.bin b/data/layouts/SafariZone_SecretHouse_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SafariZone_SecretHouse_Frlg/border.bin differ diff --git a/data/layouts/SafariZone_SecretHouse_Frlg/map.bin b/data/layouts/SafariZone_SecretHouse_Frlg/map.bin new file mode 100644 index 000000000000..8acbf7b90d53 --- /dev/null +++ b/data/layouts/SafariZone_SecretHouse_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SafariZone_West_Frlg/border.bin b/data/layouts/SafariZone_West_Frlg/border.bin new file mode 100644 index 000000000000..964b51edb7e9 --- /dev/null +++ b/data/layouts/SafariZone_West_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SafariZone_West_Frlg/map.bin b/data/layouts/SafariZone_West_Frlg/map.bin new file mode 100644 index 000000000000..f2f943b69f00 Binary files /dev/null and b/data/layouts/SafariZone_West_Frlg/map.bin differ diff --git a/data/layouts/SaffronCity_Connection_Frlg/border.bin b/data/layouts/SaffronCity_Connection_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/SaffronCity_Connection_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_Connection_Frlg/map.bin b/data/layouts/SaffronCity_Connection_Frlg/map.bin new file mode 100644 index 000000000000..dd7aea1cff1d Binary files /dev/null and b/data/layouts/SaffronCity_Connection_Frlg/map.bin differ diff --git a/data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/border.bin b/data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/map.bin b/data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/map.bin new file mode 100644 index 000000000000..6db070ab7a7f --- /dev/null +++ b/data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/map.bin @@ -0,0 +1 @@ +500000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/border.bin b/data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/map.bin b/data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/map.bin new file mode 100644 index 000000000000..c3090f485807 Binary files /dev/null and b/data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/map.bin differ diff --git a/data/layouts/SaffronCity_Dojo_Frlg/border.bin b/data/layouts/SaffronCity_Dojo_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_Dojo_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_Dojo_Frlg/map.bin b/data/layouts/SaffronCity_Dojo_Frlg/map.bin new file mode 100644 index 000000000000..55b1548aad6a --- /dev/null +++ b/data/layouts/SaffronCity_Dojo_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_EastWestEntrance_Frlg/border.bin b/data/layouts/SaffronCity_EastWestEntrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_EastWestEntrance_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_EastWestEntrance_Frlg/map.bin b/data/layouts/SaffronCity_EastWestEntrance_Frlg/map.bin new file mode 100644 index 000000000000..8b9683b9962e --- /dev/null +++ b/data/layouts/SaffronCity_EastWestEntrance_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222(3'3'3'3'3'3)32222,322222-32222*3&3&3&3&3&3+32222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_Frlg/border.bin b/data/layouts/SaffronCity_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/SaffronCity_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_Frlg/map.bin b/data/layouts/SaffronCity_Frlg/map.bin new file mode 100644 index 000000000000..001fb4e2fe6f Binary files /dev/null and b/data/layouts/SaffronCity_Frlg/map.bin differ diff --git a/data/layouts/SaffronCity_Gym_Frlg/border.bin b/data/layouts/SaffronCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_Gym_Frlg/map.bin b/data/layouts/SaffronCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..2eee324477fd --- /dev/null +++ b/data/layouts/SaffronCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_NorthSouthEntrance_Frlg/border.bin b/data/layouts/SaffronCity_NorthSouthEntrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_NorthSouthEntrance_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_NorthSouthEntrance_Frlg/map.bin b/data/layouts/SaffronCity_NorthSouthEntrance_Frlg/map.bin new file mode 100644 index 000000000000..138b62d0f8a0 --- /dev/null +++ b/data/layouts/SaffronCity_NorthSouthEntrance_Frlg/map.bin @@ -0,0 +1 @@ +2222222223222223222222322222322222#32222222222222222 \ No newline at end of file diff --git a/data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/border.bin b/data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/border.bin differ diff --git a/data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/map.bin b/data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/map.bin new file mode 100644 index 000000000000..1f0a70d65a63 --- /dev/null +++ b/data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/map.bin @@ -0,0 +1,2 @@ +52222 +32222222222222222222222222222222222222222222222222222 32222222 3222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_1F_Frlg/border.bin b/data/layouts/SeafoamIslands_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_1F_Frlg/map.bin b/data/layouts/SeafoamIslands_1F_Frlg/map.bin new file mode 100644 index 000000000000..00e11336438b Binary files /dev/null and b/data/layouts/SeafoamIslands_1F_Frlg/map.bin differ diff --git a/data/layouts/SeafoamIslands_B1F_Frlg/border.bin b/data/layouts/SeafoamIslands_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B1F_Frlg/map.bin b/data/layouts/SeafoamIslands_B1F_Frlg/map.bin new file mode 100644 index 000000000000..8735540c7120 --- /dev/null +++ b/data/layouts/SeafoamIslands_B1F_Frlg/map.bin @@ -0,0 +1 @@ +BBBBBBBBBBBBBBBBBBBB22222222222BBBBBBBBBB2222222222222222222BBBBBBBBBB22222222222BBBFBBBBBBB22222222222BBBBBBBBBBB222222222222222BBBBBBBBBBBB222222222222222BBBBBBBBB222222222222222BBBBBBXCBBBBB222222222222222BBBBBBBBBBBB222222222222222BBBBBBBB2222222222222BBBBBBBBWCBBBB22222222222222222BBBBBBBBBBBBB22222222222222222BBBBBBBBBBBBB22222222222222222BBBBBBBBBBBBB22222222222222222222222222U22222222222222222222222222222222222222222222222222222222222U222222222222222222222222222222UVUVUVUV \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B2F_Frlg/border.bin b/data/layouts/SeafoamIslands_B2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_B2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B2F_Frlg/map.bin b/data/layouts/SeafoamIslands_B2F_Frlg/map.bin new file mode 100644 index 000000000000..968163399d98 Binary files /dev/null and b/data/layouts/SeafoamIslands_B2F_Frlg/map.bin differ diff --git a/data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/border.bin b/data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/map.bin b/data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/map.bin new file mode 100644 index 000000000000..d1385e8cb761 --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/map.bin @@ -0,0 +1,3 @@ +'''///BBBBBBBBB///2222222BBBBBBBBB7772222222BBBBBBBBB !!& %"22222222BBBBBBBBB#     $22222222BBBBBBBBBC C C C C C +C $BBBBBBBBBBBB()BBBBBBBBBBBBB2222BBBBB*,BBBBBBBBBBBBB2222BBB22*,BBBBBBBBBBBWCBBBBXCBBB ###1,22BBBBBBBBBBBBBBBBB*++++0###!BBBBBBBBBBB*::::::::,BBBBBBBBBBB22BBBWC C C C C +C::CXCBBBB22BBBBBBBBB3,3,32BBBBB2222222222BBBBBBBBB3-3-32BBBBBBU22222222225-3'4222222222222222227'-622222U2222222222222222223./22222UV3012UVUUV3./VBFUUVVBBU3012VBBBUVBBBBBUVBBB \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B3F_Frlg/border.bin b/data/layouts/SeafoamIslands_B3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B3F_Frlg/map.bin b/data/layouts/SeafoamIslands_B3F_Frlg/map.bin new file mode 100644 index 000000000000..f6803677d0c0 --- /dev/null +++ b/data/layouts/SeafoamIslands_B3F_Frlg/map.bin @@ -0,0 +1,3 @@ +'''///BBBBBBBBB///2222222BBBBBBBBB7772222222BBBBBBBBB !!& %"22222222BBBBBBBBB#     $22222222BBBBBBBBBC C C C C C +C $BBBBBBBBBBBB;<BBBBBBBBBBBBB2222BBBBB#$BBBBBBBBBBBBB2222BBB22#$BBBBBBBBBBBWBBBBXBBB PP!&$22BBBBBBBBBBBBBBBBB#    %PQBBBBBBBBBBB#     $BBBBBBBBBBB22BBBWC C C C C +C  CXCBBBB22BBBBBBBBB#$BBBBB2222222222BBBBBBBBB#$BBBBBBU2222222222#$2222222222222222222222U22222222222222222222222UVUVUUVVBFUUVVBBUVBBBUVBBBBBUVBBB \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/border.bin b/data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/map.bin b/data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/map.bin new file mode 100644 index 000000000000..13a635e49520 --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/map.bin @@ -0,0 +1,3 @@ + #!BBBBBBBB ##!BBBBBBBBBBBBB*+,BBBBBBBB*++,BBBBBBBBBBBB*+,BBBBBB*++,BBBBBBBBBBB*+,22*++,BBBBBBBBBBBB*+0##########1++,BBBBBBBBBBB*+++++++++++++++,BB22*++++++C C C C C C C C CXCBB #########!*+++++,BBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,*+++++,BBBBBBBBBBBB*+++++++++,V*+++++,BBBBBBB*+++++++++,U*+++++,22BB ##1+++++++++,*+++++0######!BB*++++++++++++,*++++++++++++,BB*++++++++++++,VU*++++++++++++,BB*++++++++++++,*++++++++++++,BB*++++++++++++,U    ++C C C C C CXCBBWC C +C++++++++++,*+BBBBBBBBBBBWC +C++++++++,BBBBBBBBBBBBBB       VBBBBBBBBBBBBBB  U                  V \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F_Frlg/border.bin b/data/layouts/SeafoamIslands_B4F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SeafoamIslands_B4F_Frlg/map.bin b/data/layouts/SeafoamIslands_B4F_Frlg/map.bin new file mode 100644 index 000000000000..668ac25807e4 --- /dev/null +++ b/data/layouts/SeafoamIslands_B4F_Frlg/map.bin @@ -0,0 +1,3 @@ +BBBBBBBBBBBBBBBBBBBBB BBBBBBBB  BBBBBBBBBBBB BBBBBB  BBBBBBBBBBB6 22  BBBBBBBBBBBB   BBBBBBBBBBB      BB22      C C C C C C C C CXCBB #########!6     BBBBBBBBB*+++++++++,     BBBBBBBBBBBB*+++++++++,     BBBBBBBBBBBB*+++++++++,V     BBBBBBB*+++++++++,U     22BB ##1+++++++++,   BB*++++++++++++,        BB*++++++++++++,VU         BB*++++++++++++,         BB*++++++++++++,U      C C C C C CXCBBWC C +C++++++++++,89BBBBBBBBBBBWC +C++++++++,BBBBBBBBBBBBBB       VBBBBBBBBBBBBBB  U                  V \ No newline at end of file diff --git a/data/layouts/SevenIsland_Frlg/border.bin b/data/layouts/SevenIsland_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/SevenIsland_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/SevenIsland_Frlg/map.bin b/data/layouts/SevenIsland_Frlg/map.bin new file mode 100644 index 000000000000..05be06e76cef --- /dev/null +++ b/data/layouts/SevenIsland_Frlg/map.bin @@ -0,0 +1 @@ +qqqqqur000HIJKp{|||}qqq|||qur000PQRSpqqqqqq|||squr000XYZ[xyq||}q|s{|}r000`ab0 0pqu|||issqqqr0000000000pquuhkkts{qqr00000000 0 0pquursmt{0002222200pquursvxis01230000 0pquursvots89:;00000xuursvvts@Abc000 0 0puursvvts000000000000 00 0puursvvts000000000000000x}ursvvt{|||000||||000||}rsvvxkkkis0 00uhkkk222kkkysvvossst{000}rs22ssmvvvossxk111kysssvvvvvvoss111ssssmDEvvDEvos111ssssvLMvvLMvvs111ssssvvvvvvvvvs111sssssmvvvvvvvv \ No newline at end of file diff --git a/data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/border.bin b/data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/map.bin b/data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/map.bin new file mode 100644 index 000000000000..b9381326fee8 --- /dev/null +++ b/data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/map.bin @@ -0,0 +1 @@ +=>9{|}PQ9=>EF~1wXEFM1N11111111M1N1V1 1 1 1 1 1 1 1 1 1 1^ 1 1 1o1efg1 1 1 11 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/SevenIsland_House_Room1_Frlg/border.bin b/data/layouts/SevenIsland_House_Room1_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_House_Room1_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_House_Room1_Frlg/map.bin b/data/layouts/SevenIsland_House_Room1_Frlg/map.bin new file mode 100644 index 000000000000..e439b6d6fd0d --- /dev/null +++ b/data/layouts/SevenIsland_House_Room1_Frlg/map.bin @@ -0,0 +1 @@ +=>{|}PQ=>EFXYEFM1N11111111M1N1V1 1 1 1 1 1 1 1 1 1 1^ 1 1 1o1efg1 1 1 11 1 1 1o1mng1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/SevenIsland_House_Room2_Frlg/border.bin b/data/layouts/SevenIsland_House_Room2_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_House_Room2_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_House_Room2_Frlg/map.bin b/data/layouts/SevenIsland_House_Room2_Frlg/map.bin new file mode 100644 index 000000000000..7ed3a8c8ada3 --- /dev/null +++ b/data/layouts/SevenIsland_House_Room2_Frlg/map.bin @@ -0,0 +1 @@ +{|}PQPQ!~1w!XYXY!111111111111 1 1 1 1 1 1 1 1 1 161 1 1#1$1$1$1$1%1 1 1 11 1 1+1,1,1,1,1-1 1 1 11 1 1314141414151 1 1.1 1 1 1 1 1 1 1 1 1 161 1 1 1 1 1 1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/border.bin b/data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/map.bin b/data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..080fac6fb4c3 Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/map.bin differ diff --git a/data/layouts/SevenIsland_SevaultCanyon_Frlg/border.bin b/data/layouts/SevenIsland_SevaultCanyon_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_SevaultCanyon_Frlg/map.bin b/data/layouts/SevenIsland_SevaultCanyon_Frlg/map.bin new file mode 100644 index 000000000000..d2414a683973 Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon_Frlg/map.bin differ diff --git a/data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/border.bin b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/border.bin new file mode 100644 index 000000000000..56b76feec923 --- /dev/null +++ b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.bin b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.bin new file mode 100644 index 000000000000..77ec431c89c9 Binary files /dev/null and b/data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.bin new file mode 100644 index 000000000000..50d04c4d3b3a --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_Frlg/map.bin new file mode 100644 index 000000000000..0bf51a581423 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_Frlg/map.bin @@ -0,0 +1 @@ +++++++++++ssquz0 0pqu+++++++++++++++++++++++s{|}r000xy}++++++++++++++ 11+++++++++++++,{|qr00 00 0"1+++++++++++++++++++++++++++1&11++++ 1 1 1 1 11++++++0#!{|z00000*++++++ 1 1 1 1 1 1 11+++++++++++++++++111+++++++++ 1%1111&11+++++++++++++0#$000 00 0*++++++111++++++++++++++ 1 1 1 1 1 1 1 11+++++++++111+++++++++111+++++ 1 1 1 1 11++++++0######1++++++++++111++++++ 1 1 1 1 1 1 11+++++++ 1%1&11+++++++12111+++++++111++++ 1%1111&11+++++++++++++++++++++++++++111++++++111++++++ 1%1&11++++++++11-1111.11+++++++++++111++++111+++++++++++++++++++++++++++111++++++++11++++++1su1+++++++++11111++++++++++++111++++111+++++++++++++++++++++++++++11121++++++++111++++++1su1++++++++++++++++++++++++121.11++++111+++++++++++++++++++++++++++++++++1-11111.11++++++++111++++++1su1++++++++++++++++++++++++++1-1111.11+++++111++++++++++++++++++++++++++++++++++++111111+++++++++11211++++++1{I3<=3>I3}1++++++++ 11++++++++++++++11111++++++121.11+++++++++++++++++++++++++++++++++++++++++++++++++++1-11111.11++++++1{I3I3I3}1++++++++1&11++++++++++++++++++++++++1111111+++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++++1-1{000}.11++++++++111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1-1y000y11+++++++++111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1-11111.1111+++++++12111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++111111+++++++++++11111111++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.bin new file mode 100644 index 000000000000..0dd265d65aee --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.bin new file mode 100644 index 000000000000..38f818e71943 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.bin new file mode 100644 index 000000000000..e98187c675e4 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.bin new file mode 100644 index 000000000000..bdd65c306936 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.bin new file mode 100644 index 000000000000..4d4d0e886248 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/border.bin b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/border.bin differ diff --git a/data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.bin b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.bin new file mode 100644 index 000000000000..acb0469fcbe3 --- /dev/null +++ b/data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower_Frlg/border.bin b/data/layouts/SevenIsland_TrainerTower_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SevenIsland_TrainerTower_Frlg/map.bin b/data/layouts/SevenIsland_TrainerTower_Frlg/map.bin new file mode 100644 index 000000000000..c6a77c45229e --- /dev/null +++ b/data/layouts/SevenIsland_TrainerTower_Frlg/map.bin @@ -0,0 +1 @@ +++squqyyyyqsqu+++ssquzhqqjxsquu+(sssqurhqjpsquuu),sssqurpqqrpsquuu*,sssqurpqqrpsquuu*,sssqurpqqrpsquuu*,sssqurx2zpsquuu*,sssqjxyyy2yyyzhquuu*,ss{qqj 0022200 0hqq}uu*,s{sqqqij 00 00 0hiqqqu}u*,{ssqqqqquj000hsqqqqquu}*0$ss{|||quu333ssq|||}uu 1+,s{|||{|z31 0 0 031x|}|||}u*++,{|||{| 00 00 00 0|}|||}*+0# !sqq{||000||}qqu  #1+,{||||y000y||||}*+++++0 ##$0 00 00"# #1++++++++0#####1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 1 1 1 1 1 1 1 1 1 11++++++++111111111111+++++++++++ 1%1111+++++++++++111110000000++++++++++11110000000++++++++11111000000pqqqqq+++++11111111000000hiikllllllm+++++111111110000 0hqklqqqqqququ++G100000pqkqqqqqqqququu)++qqqqqqqiij0000 0pqsqqqqqqqqququu*++sqkllllllmqqqqr00000pqsqqqqqqqqquqO+(ssqsqqqqqqllmqr0000 0pqsqqqqqqqqquqqqqu,ssqsqqqqqqqqqmr00000pq{|qqqqqqquqqqquu),ssqsqqqqqqqqqqur000{1|1sqqq|||}qqqquu* \ No newline at end of file diff --git a/data/layouts/SilphCo_10F_Frlg/border.bin b/data/layouts/SilphCo_10F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_10F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_10F_Frlg/map.bin b/data/layouts/SilphCo_10F_Frlg/map.bin new file mode 100644 index 000000000000..1ca95017cb87 --- /dev/null +++ b/data/layouts/SilphCo_10F_Frlg/map.bin @@ -0,0 +1 @@ +000i000jk8q88o0]0>rst253u2vw?@BA008e8Fz{|243}2~GHI885353535353;3<3434353535353535353535343434343434393232323234343232323534343434343M30^_534300534343434343U8fg534388534343434343M3N353535343535353534343434343UV434343433434313232343432323132323434323232300534300000534300088534388888534388|53535353435353535353534353533N343435334343moW343V434343435343mo#%63435343435343#%u3w36343N34343435343u3w36334343V4343434343435343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_11F_Frlg/border.bin b/data/layouts/SilphCo_11F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_11F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_11F_Frlg/map.bin b/data/layouts/SilphCo_11F_Frlg/map.bin new file mode 100644 index 000000000000..027e0a7dbf7a --- /dev/null +++ b/data/layouts/SilphCo_11F_Frlg/map.bin @@ -0,0 +1 @@ +000i0T88q800RS35353?0@BA0088Z[\34343G8HI8853535353;3<343435353535353535353433132323232323232323:343435343430]^_005343534343bOefgO85343534343353VV535343534343534343(3)3*3634353435343435343333334353435343435343435343534343534363534353434353436353435343435343=3;3;3;3;3<3534353434353432323232323235343534343?>53430000005343534343GF534388OOO85343534343535353435353VVV535343534343434343434343434343435343 \ No newline at end of file diff --git a/data/layouts/SilphCo_1F_Frlg/border.bin b/data/layouts/SilphCo_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_1F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_1F_Frlg/map.bin b/data/layouts/SilphCo_1F_Frlg/map.bin new file mode 100644 index 000000000000..fb7be168be65 --- /dev/null +++ b/data/layouts/SilphCo_1F_Frlg/map.bin @@ -0,0 +1 @@ +i000q8PQ00]000000000]00^_0000@BA00000>533XY?0O8e888dOOO88e88fg8888HI88888F533`aG8V5353535353lVVV535353535353535353535353535353535353535353435353535353434343433l634343434343434343434343434343434343434343434343434343434353434343433t63434343434343434343434343434343434343434343434343434343M3h3i3i3i3i3i3s6343434343434343434343434343434343434343434343E3J3434343Upqqqqqr6343434343434343434343434343434343CDW3E3434353;3;3;3;3;3;3<3434343434343434343434343KL63J343M353434343434343434343434343434343=3;3<34343U5343434343434343434343434343E3J34343434353b3c3W343b3c3W3434343434343CDW3E343M353j3k36343j3k3634343434343434343KL63J343U53=3;3<343=3;3<3434343434343434343434343=3;3<343434353b3c3W343b3c3W343434343434343434343434343434343E3J3434343M353j3k36343j3k36343434343434343434343434343434343434343434343CDW3E343U53=3;3<343=3;3<343434343434343434343434343434343434343434343KL63J34343534343434343434343434343434343434343434343434343434343434343=3;3<34343M35343434343434343434343434343434343434343434343M34343M34343M34343M34343U5343434343434333343434343434343434343434343U4343U4343U4343U434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_2F_Frlg/border.bin b/data/layouts/SilphCo_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_2F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_2F_Frlg/map.bin b/data/layouts/SilphCo_2F_Frlg/map.bin new file mode 100644 index 000000000000..97ada04d85f3 --- /dev/null +++ b/data/layouts/SilphCo_2F_Frlg/map.bin @@ -0,0 +1 @@ +000i000jk8q88o000]00000000000^_0@BA0>rst253u2vw?00OOOe8888888OO88fg8HI8Fz{|243}2~G88VVV53535353535353VV53535353535353535353;3;3<343435353535353534343434343434343434353434343434343434343434343434343434343434343435343343434343434343435343343434343434343434343434343434343434343431323232323434323232323132323232323232323232323232323234343232323232300000534300000000000000000000005343000008888853438888888888OOOOOO8888885343888885353535353534353535353535353535353VVVVVV5353535353535343535353535353434343434343434343434343434343434343434343434343434343434343434343434353434343434343434343434343434343434343434343434343439323232323232323232353434343434343434343434343434343434343434343434343430^_000013232323234343232323232323:34343mnoW343mnoW3438fg88{|000053430]00}5343#343#343?>53535353535333|{8853438e885343u3v3w36343u3v3w36343GF534343434343434333535353534353535353~3534343434343434343434343535353x3y3z3434343435343x3y3z3434343434343M35343mnoW343mnoW34393:34334343M353433433434343U5343#343#3435363343U5343333634343434343M35343u3v3w36343u3v3w3634353333634343M35343434343434343434343U53434343434343434343434353434343434343U \ No newline at end of file diff --git a/data/layouts/SilphCo_3F_Frlg/border.bin b/data/layouts/SilphCo_3F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_3F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_3F_Frlg/map.bin b/data/layouts/SilphCo_3F_Frlg/map.bin new file mode 100644 index 000000000000..e0a18ff16629 --- /dev/null +++ b/data/layouts/SilphCo_3F_Frlg/map.bin @@ -0,0 +1 @@ +000i000T88q8PQ000000000^_000^_00000@BA0>RS3533XY?00OOO888888fg888fg88888HI8FZ[\3433`aG88VVV5353535353535353535353535353535353535353535353;3;3<3434353535353535343434343434343434343434343434343434343434343434343434343434343433434353434343343434343434343434343434343434343434343434343434343434343434343132323232323232323232323232323232323232323:34343434393232323232323232323}0000000000000}053434343000|888888888888|53434343888~3353535353535353?>N3535353535353~33?>53434343?>53535353333343434343mnoW3GFV434343mnoW343GF53434343GF53434343x3y3z34343434343635353534343436343535353434343535353434343W3534343433#6393:3N343433#634393:34343434393:3434343363534334343u3v3w363V43343u3v3w363435343434353343433336313232323232323232313232323232323232353434343132323232323232300]00000000000000]000>53434343?00000000088e88888OOOOOO888e888F53434343G888888OOO5353535353535353VVVVVV53535353535353535343434353535353535353VVV5343434343434343434343434343434343434343434343434343434343434343434343435343433434343434343434343434343434343434343434343434343434343433434343534343434343434343434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_4F_Frlg/border.bin b/data/layouts/SilphCo_4F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_4F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_4F_Frlg/map.bin b/data/layouts/SilphCo_4F_Frlg/map.bin new file mode 100644 index 000000000000..b6a91deb851d --- /dev/null +++ b/data/layouts/SilphCo_4F_Frlg/map.bin @@ -0,0 +1 @@ +000i000jk8q88o00000000000^_000@BA0>rst253u2vw?0088888888888fg888HI8Fz{|243}2~G8853535353535353535353535353535353535353535353;3;3<343435353535353537777W343W35343mnnoW34353434343434343434343434343434353776353436335343434343434343434343434343435363533#$34353434343434343434343434343434353635343u3v3v3w3634353434393232323234343232323232353635334343434343435343430053430}}536313232343432323235343438853438537363000534300053434353535353435333~3~353634363{|85343888534343534343x3y3z3434343435373<34373<333535343535353534343534343W34343M353=3<34343=3;3<3435343434343434335343435343334343U132323434323232323132323434323232353434353434333363434343000534300000000053430000>534343534343x3y3z3434343M3O88534388OOOO88853438888F534343534343W34343UV535353435353VVVV535353534353535353535343435343334343435343434343434343434343434343434343434343434343434343333634343M3534334343434343434343434343434343434343434343434343434343434343U534343434343434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_5F_Frlg/border.bin b/data/layouts/SilphCo_5F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_5F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_5F_Frlg/map.bin b/data/layouts/SilphCo_5F_Frlg/map.bin new file mode 100644 index 000000000000..0a4f53ad75f2 --- /dev/null +++ b/data/layouts/SilphCo_5F_Frlg/map.bin @@ -0,0 +1 @@ +000i000T88q8PQ00}}}000000]0000000@BA0>RS3533XY?0088888888e888OOO8HI8FZ[\3433`aG885353~3~3~353535353535353535353VVV535353535353;3;3<34343535353535353M343M343M3435343434343434343434343434343434343434343434343433434353U43U43U4353434343434343434393232323232323232323434323232323:34353434343434343?>53434343434334343}}0^_0053430005353434343434343GF5343932323232323238fg88534388O53534343434343435353534300000~3~353535353535353435353V5353M343M343M34393:343438{{|85343434343x3y3z33y3z343435353U43U43U4353435333353?>534343433W34353132323232323235343N343434343GF53434343433336343530000005343V4343434353535343434343434336343538888885343534343434393:343434343433y3z3634353535353535353535343N343434343534343433634353534343774343?>5343V43434343534343434333333363435353W3GF53431323232323132323232323232323232323235353=36353535343?00000000^_00000000000>535343=36393:34343G8O88O88OfgO8O88O88O88F5353433634335353V5353V5353V5353V5353V5353V5353V53535353534343=3;3;3<3434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_6F_Frlg/border.bin b/data/layouts/SilphCo_6F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_6F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_6F_Frlg/map.bin b/data/layouts/SilphCo_6F_Frlg/map.bin new file mode 100644 index 000000000000..cf0b384e7dec --- /dev/null +++ b/data/layouts/SilphCo_6F_Frlg/map.bin @@ -0,0 +1 @@ +0000i000jk88q88o0}}0000]0>rst253?00@BA00>53u2vw?0{8888e8Fz{|243G88HI88F53}2~G83~3~353535353535353;3;3<3435353535353535353535343535353535343434343?>534343439323232323232323232323434323232323:3343534334343GF53434343}000000053430^_534353M343M3435353534343M3{|8888853438fg534353U43U4393:3434343U~3335353535353535343535353534313232323235343434353434343x3y3y3y3y3y3y3z3434353430000534343M3N343434334353438888534343UV43434343435343535353535353434343N3434333435343534343?>534343M3V434343333333334343534353434343GF534343U132323434323232323232323232353435374343535353434343?000053430000000000>534353434393:343434343G888853438888888888F5343534343435343434353535353535343535353535353535353535353435343434343534343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_7F_Frlg/border.bin b/data/layouts/SilphCo_7F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_7F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_7F_Frlg/map.bin b/data/layouts/SilphCo_7F_Frlg/map.bin new file mode 100644 index 000000000000..373fa1f17c75 --- /dev/null +++ b/data/layouts/SilphCo_7F_Frlg/map.bin @@ -0,0 +1 @@ +000i0000T88q88PQ^_00000000RS353?@BA>533XY?fg88OO8d88Z[\343GHIF533`aG335353533VV5353t5353?>53;3<34353535353535343535353534343x3y3z3h3i3i3i3s4343GF5343434343434343434343434343534343pqqqr4343535353434393232323434323232323235343433331323234343232323:3434343005343000053434343433005343^_534343O853438888132323232323885343fg534343V53534353533353000}}}53535353435353534343N3434343434338{|53moW3moW3534343V434343434333635333~3~3~353#%63#%6353434313232343432323232353434343434353u3w363u3w36353434300053430]53M34343M34353433434334353434388853438e53U4343U43132323232323235343435353535343535333534343434343?00]000]00>5343435343434343434343b3534343434343G88e888e88F534343534343343434343j35343434343435353535353535353535353534343534343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_8F_Frlg/border.bin b/data/layouts/SilphCo_8F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_8F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_8F_Frlg/map.bin b/data/layouts/SilphCo_8F_Frlg/map.bin new file mode 100644 index 000000000000..73efec7e113f --- /dev/null +++ b/data/layouts/SilphCo_8F_Frlg/map.bin @@ -0,0 +1 @@ +0000i000jk88q88o00^_00}00}rst253?00@BA00>53u2vw88fg88{|z{|243G88HI88F53}2~535353535353~333~353;3<3435353535353535353535343535353x3y3z343534343434353434393232323232323232323232323235343534343343534343000000^_3435343232323534343888888fg533?>534300534343335353533333343GF534388534343CCC443434343M3435343535353435353353434354344344343434343U43533334393:3534343CD53434353CD43J34343434343M343534334343534343KL53434353KL43E34343434343U4313232323235343232323534343132323232343432323232323000000>534300]0>534343?00^_0053430000O88888F534388e8F534343G88fg8853438888V535353535353534353535353535343435353535353535353435353535353N343343434343434343434343434343434343434343434343434343434343V434343434343434343434343434343434343434343434343434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_9F_Frlg/border.bin b/data/layouts/SilphCo_9F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_9F_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_9F_Frlg/map.bin b/data/layouts/SilphCo_9F_Frlg/map.bin new file mode 100644 index 000000000000..95d58dafb055 --- /dev/null +++ b/data/layouts/SilphCo_9F_Frlg/map.bin @@ -0,0 +1 @@ +000i000T88q8PQ000]000]0000RS3533XY?0@BA00000888e888e8888Z[\3433`aG8HI888885353535353535353533535353;3<343435353535353535353535353535343932323232323232323235343932323232343432323232323:343435343000^_0053430053430^_053435343OO8fg88N3438853438fg8N3435343?>VV535353535353V43535353534353535353V435343GF534343CD43J34353435343434343CD43J3N34353435353534343KL43E343N3435343434343KL43E3V43534393:34343439323232323V4313232343432323232335353435343430005343}}0534300005313235343438N343853438888530^_>534343?>53?>V43~3~35353435353535353538fgF534343GF534343GF53435343437777434343?>53334343535353434353535343534343434343GF53CCC44393:343434393:34343534343434343535353543443443435343435343534343433434343434343 \ No newline at end of file diff --git a/data/layouts/SilphCo_Elevator_Frlg/border.bin b/data/layouts/SilphCo_Elevator_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/SilphCo_Elevator_Frlg/border.bin differ diff --git a/data/layouts/SilphCo_Elevator_Frlg/map.bin b/data/layouts/SilphCo_Elevator_Frlg/map.bin new file mode 100644 index 000000000000..42e08c38debb --- /dev/null +++ b/data/layouts/SilphCo_Elevator_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_AlteringCave_Frlg/border.bin b/data/layouts/SixIsland_AlteringCave_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_AlteringCave_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_AlteringCave_Frlg/map.bin b/data/layouts/SixIsland_AlteringCave_Frlg/map.bin new file mode 100644 index 000000000000..7dde0cb15343 Binary files /dev/null and b/data/layouts/SixIsland_AlteringCave_Frlg/map.bin differ diff --git a/data/layouts/SixIsland_DottedHole_1F_Frlg/border.bin b/data/layouts/SixIsland_DottedHole_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_1F_Frlg/map.bin b/data/layouts/SixIsland_DottedHole_1F_Frlg/map.bin new file mode 100644 index 000000000000..ea33c9ead89b --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_1F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B1F_Frlg/border.bin b/data/layouts/SixIsland_DottedHole_B1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B1F_Frlg/map.bin b/data/layouts/SixIsland_DottedHole_B1F_Frlg/map.bin new file mode 100644 index 000000000000..a610cdd58244 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222333222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B2F_Frlg/border.bin b/data/layouts/SixIsland_DottedHole_B2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B2F_Frlg/map.bin b/data/layouts/SixIsland_DottedHole_B2F_Frlg/map.bin new file mode 100644 index 000000000000..3abe860dd640 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B2F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222223332222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B3F_Frlg/border.bin b/data/layouts/SixIsland_DottedHole_B3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B3F_Frlg/map.bin b/data/layouts/SixIsland_DottedHole_B3F_Frlg/map.bin new file mode 100644 index 000000000000..c72c26c5c9fd --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B3F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222223332222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B4F_Frlg/border.bin b/data/layouts/SixIsland_DottedHole_B4F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B4F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_B4F_Frlg/map.bin b/data/layouts/SixIsland_DottedHole_B4F_Frlg/map.bin new file mode 100644 index 000000000000..a0c7e44e3604 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_B4F_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222223332222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/border.bin b/data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/map.bin b/data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/map.bin new file mode 100644 index 000000000000..67a89d25ed16 --- /dev/null +++ b/data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/map.bin @@ -0,0 +1 @@ +S22[322222222A3M33L3C3222F3222E322222G222223I3222H3322N3K32J3O3223332222 \ No newline at end of file diff --git a/data/layouts/SixIsland_Frlg/border.bin b/data/layouts/SixIsland_Frlg/border.bin new file mode 100644 index 000000000000..d9994d6cdc78 --- /dev/null +++ b/data/layouts/SixIsland_Frlg/border.bin @@ -0,0 +1 @@ +++++ \ No newline at end of file diff --git a/data/layouts/SixIsland_Frlg/map.bin b/data/layouts/SixIsland_Frlg/map.bin new file mode 100644 index 000000000000..a82f268bdaf4 --- /dev/null +++ b/data/layouts/SixIsland_Frlg/map.bin @@ -0,0 +1 @@ +vvvvvvvvvvvvvvtssqqqqqqvvvvvvvvvvvvsstssqqqqqqvvvvvvvvvssssstssqqqqqq]U]U]U]U]sssssstssqqqqqq|ssssstssqqqqqquqsssstsxyyqqqxyyy^3|1}1~1100000HIJK(0)0*0+000$'PQRS&%$'0123XYZ[89:;&%00`ab00 00@Abc00000000000000000000000000000000 00000022222000 0000000000&'000&'000 00000000 00000000000000000000 0$%$'00000000000000000yy000yyy0 00000'&'r0 00000 00p|||z&%$'000phiiiiiikkkkkkkkkk222kklpsqqqqqqssssssss22tssqqqqqqvvvosssstssqkllllvvvvossstssqsqqqqvvvvvvostssqsqqqqvvvvvvvotssqsqqqqvvvvvvvvvvvvvvotssqsqqqq \ No newline at end of file diff --git a/data/layouts/SixIsland_GreenPath_Frlg/border.bin b/data/layouts/SixIsland_GreenPath_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/SixIsland_GreenPath_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_GreenPath_Frlg/map.bin b/data/layouts/SixIsland_GreenPath_Frlg/map.bin new file mode 100644 index 000000000000..647978c02f85 Binary files /dev/null and b/data/layouts/SixIsland_GreenPath_Frlg/map.bin differ diff --git a/data/layouts/SixIsland_OutcastIsland_Frlg/border.bin b/data/layouts/SixIsland_OutcastIsland_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/SixIsland_OutcastIsland_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_OutcastIsland_Frlg/map.bin b/data/layouts/SixIsland_OutcastIsland_Frlg/map.bin new file mode 100644 index 000000000000..53e9333783ad --- /dev/null +++ b/data/layouts/SixIsland_OutcastIsland_Frlg/map.bin @@ -0,0 +1,15 @@ ++++++++++++++++++++++++++  ++++++++  +++++++++++++++++qqq++++klllm++y+sqqqu++++  +++sqqquV+++++++++++sqqqllm 1 1++++{|qqqqu11qq++++ysqqq}qq++++ sqqquqqqq++++sqqquqqqq++++{|||}qqqqq+++qy0yyyyyy++ y1111111+y  2111111qq1+  ++++1111111yy1+++++11211111+++++++++qq+++++++++qqyq++++++++TUqqq+++++++qqqy++++++yyy1  ++++  +++++++y++++++++++++++++  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ++++++++++++++++++++++++++++++++++++  ++++++y+++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++++++++y++++++++++  +++++++++++y++++++++  +++  +++++++++++++++++++++++++++++++++++++  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/data/layouts/SixIsland_PatternBush_Frlg/border.bin b/data/layouts/SixIsland_PatternBush_Frlg/border.bin new file mode 100644 index 000000000000..c1fe47df77bc --- /dev/null +++ b/data/layouts/SixIsland_PatternBush_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_PatternBush_Frlg/map.bin b/data/layouts/SixIsland_PatternBush_Frlg/map.bin new file mode 100644 index 000000000000..7cd07c6c8604 --- /dev/null +++ b/data/layouts/SixIsland_PatternBush_Frlg/map.bin @@ -0,0 +1 @@ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 000 000 000 000 0 0 0 000 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 000 000 0 0 0 0 0 00 00000 0 0 0 00 0 0 000 000 000 000 0 000 0000 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 0 000 000 000 000 0 0 00 0 00 0 0 0 0 00000 00 0 0 00 0 000 000 000 00 0 0 0 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 00000 0 00 0 0 0 0 0 0 0 0 0 0 00 0 0 00 0 0 000 0 0 00 0 0 00 000 0 0 0 0 0 0 00 0 0 0 0 00000 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00 0 0 0 0 00 00000 0 0 000 0 0 000 000 00 0 0 0 0 0 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00000 00 0 00 0 0 0 0 0 0 0 0 0 0 0 0000 000 0 0 00 000 000 000 00 0 0 0 0 0 00 0 00 0 00 00000 0 00 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 00000 00 0 0 000 000 0 00 0 0 0 0 0 0 0 0 0 00 0 00 0 0 000 00 0 0 0 0 000 00 00 0 0 0 0 00 00000 0 00 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 00000 00 0 00 0 000 000 000 000 0 000 0000 000 0 0 0 0 0 0 0 0 00 0 0 00 00 0 0 0 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 000 000 000 00 0 0 0 0 00000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 0 0 00000 00 0 0000 000 000 0 000 000 000 0 000 000 0 0 0 0 00 0 0 0 0 000 00 0 0 0 0 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 00 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02 00 00000000222222 \ No newline at end of file diff --git a/data/layouts/SixIsland_RuinValley_Frlg/border.bin b/data/layouts/SixIsland_RuinValley_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/SixIsland_RuinValley_Frlg/border.bin differ diff --git a/data/layouts/SixIsland_RuinValley_Frlg/map.bin b/data/layouts/SixIsland_RuinValley_Frlg/map.bin new file mode 100644 index 000000000000..848cbec2611d Binary files /dev/null and b/data/layouts/SixIsland_RuinValley_Frlg/map.bin differ diff --git a/data/layouts/SixIsland_WaterPath_Frlg/border.bin b/data/layouts/SixIsland_WaterPath_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/SixIsland_WaterPath_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SixIsland_WaterPath_Frlg/map.bin b/data/layouts/SixIsland_WaterPath_Frlg/map.bin new file mode 100644 index 000000000000..42f48165bc0f Binary files /dev/null and b/data/layouts/SixIsland_WaterPath_Frlg/map.bin differ diff --git a/data/layouts/SootopolisCity_House1_Frlg/border.bin b/data/layouts/SootopolisCity_House1_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/SootopolisCity_House1_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SootopolisCity_House1_Frlg/map.bin b/data/layouts/SootopolisCity_House1_Frlg/map.bin new file mode 100644 index 000000000000..43f11b194e8c --- /dev/null +++ b/data/layouts/SootopolisCity_House1_Frlg/map.bin @@ -0,0 +1 @@ +023333332332772333327723333333333333 333 \ No newline at end of file diff --git a/data/layouts/SootopolisCity_House2_Frlg/border.bin b/data/layouts/SootopolisCity_House2_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/SootopolisCity_House2_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SootopolisCity_House2_Frlg/map.bin b/data/layouts/SootopolisCity_House2_Frlg/map.bin new file mode 100644 index 000000000000..632e1e36aa74 --- /dev/null +++ b/data/layouts/SootopolisCity_House2_Frlg/map.bin @@ -0,0 +1 @@ +vw62223336333277233333772333333333333 333 \ No newline at end of file diff --git a/data/layouts/SootopolisCity_House3_Frlg/border.bin b/data/layouts/SootopolisCity_House3_Frlg/border.bin new file mode 100644 index 000000000000..19d90667980c --- /dev/null +++ b/data/layouts/SootopolisCity_House3_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/SootopolisCity_House3_Frlg/map.bin b/data/layouts/SootopolisCity_House3_Frlg/map.bin new file mode 100644 index 000000000000..8bbd6c517e1b --- /dev/null +++ b/data/layouts/SootopolisCity_House3_Frlg/map.bin @@ -0,0 +1 @@ +62233322333333337723333377333333333 333 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BerryForest_Frlg/border.bin b/data/layouts/ThreeIsland_BerryForest_Frlg/border.bin new file mode 100644 index 000000000000..7797e033b59f --- /dev/null +++ b/data/layouts/ThreeIsland_BerryForest_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BerryForest_Frlg/map.bin b/data/layouts/ThreeIsland_BerryForest_Frlg/map.bin new file mode 100644 index 000000000000..e98d91119691 --- /dev/null +++ b/data/layouts/ThreeIsland_BerryForest_Frlg/map.bin @@ -0,0 +1 @@ +0222 000 00 00 0 00 00 00 02 0 0200 00 00 00 00 0 0 0 0002 0 0 02 000 02 0 0000 00 0 02 0 02 00000 0 0 0 002 0 0 0220 0 0 002 0 0 0 02 00 00 02 0 0 0 0 02 0 0 0 0 00 0 0 00 0 0 0202 02 00 0 0 0 0 0 0 0 0 00 0 0 0 00 00 00 0 0 0 0 0 0 0 0 0 0 0 00000000 0 0 0000002 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 00 00 0 0 0 00 000 00 0 0 0 02 0 02 0000 0 0 00000 0 000 00 0 0 0 0 02000 000 00 000$%%%%%%%&0 00 00 0 00 0 00 0 00 000 00 00000000 02 0 0200 00 00002 00 00 0 000000000 00 00 00 0000000 0202 0 0 0 0 00 0 0 0 00 020 0000000020002020 0 0 02 0 0 0 0 02 0 0 00 0 020222 0 0 02 00 0 0 0 00 0 02 00002 0 0 002222 0 00 0 0 0 0 000000202220 0 00 0 0 0 0 0 02 0202 00 0 002222 00 00 0 0 0 0 0 0000 0 00200000 00222 0 000000 00 0 02 0 0 0 00 0200 020 00 00 00200000 0200 000 00 0 0 000 00000000000000002 02 00000000 0000 02 0 00 00 00 020 000000020000002000000002 000 0 0 0 0 00 00 00000020 00 000$%%%%%%%%& 0 000000 0 00 0020 02 0000 0 00 0 0 0 0 0 0 0 0 0 02 0 00 00 0 0 020000002 00 00 00 0 0 0 0 0 0 0 0 000 0 00 000002000 0 0 0 002 0 02 0 02 0 0 0 00 0 0000222 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 00020 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 0 002 0202$%%%%&0 0 00 00 00 00 02 020 00000 0 0 0000000000000202 002 0 02 0 02 0 0 0 0020020020020 00 0 0 0 0000 0 0 0222 0 0 0 02 0 02 0 02 0 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BondBridge_Frlg/border.bin b/data/layouts/ThreeIsland_BondBridge_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/ThreeIsland_BondBridge_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_BondBridge_Frlg/map.bin b/data/layouts/ThreeIsland_BondBridge_Frlg/map.bin new file mode 100644 index 000000000000..c554c03e3cbb Binary files /dev/null and b/data/layouts/ThreeIsland_BondBridge_Frlg/map.bin differ diff --git a/data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/border.bin b/data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/map.bin b/data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/map.bin new file mode 100644 index 000000000000..ffc668ba529b --- /dev/null +++ b/data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/map.bin @@ -0,0 +1 @@ +2222222 2222222222222222222222222 222222 2222 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_DunsparceTunnel_Frlg/border.bin b/data/layouts/ThreeIsland_DunsparceTunnel_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/ThreeIsland_DunsparceTunnel_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ThreeIsland_DunsparceTunnel_Frlg/map.bin b/data/layouts/ThreeIsland_DunsparceTunnel_Frlg/map.bin new file mode 100644 index 000000000000..4623ea1b3cd2 --- /dev/null +++ b/data/layouts/ThreeIsland_DunsparceTunnel_Frlg/map.bin @@ -0,0 +1 @@ +222222222 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_Frlg/border.bin b/data/layouts/ThreeIsland_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/ThreeIsland_Frlg/border.bin differ diff --git a/data/layouts/ThreeIsland_Frlg/map.bin b/data/layouts/ThreeIsland_Frlg/map.bin new file mode 100644 index 000000000000..523f3e70c73a --- /dev/null +++ b/data/layouts/ThreeIsland_Frlg/map.bin @@ -0,0 +1 @@ +$33333$333332222222222$'&'&%$%$%00 00303000003030000000000000001010000000 00000 00 00 00000033333(0)0*0+00000000000000123 00 00 00 00000089:;00000@Abc 0000000001030300030300010000000000 00000 00 00 0000000000033333 00000 00000000000000 0001003030000100000000000 00 00 0000000{1|1}1~11&%$%$%0000 0HIJKhiiiii00000PQRSpqklll0000 0XYZ[pqsqqq$%$'00000`abpqsqqq0010003030pqsqqq0010000100pqsqqq0000 00 0000pqsqqq000000000pqsqqq303001010000100pqsqqq000000001010000pqsqqq000pqsqqqhiiiiij000hiiiqsqqqpklllmr000pqklllqqqpsqqqur000pqsqqqqqqqpsqqqur000pqsqqqqqqq$'psqqqur000pqsqqqqqqq \ No newline at end of file diff --git a/data/layouts/ThreeIsland_House1_Frlg/border.bin b/data/layouts/ThreeIsland_House1_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/ThreeIsland_House1_Frlg/border.bin differ diff --git a/data/layouts/ThreeIsland_House1_Frlg/map.bin b/data/layouts/ThreeIsland_House1_Frlg/map.bin new file mode 100644 index 000000000000..871205cfab35 --- /dev/null +++ b/data/layouts/ThreeIsland_House1_Frlg/map.bin @@ -0,0 +1 @@ +=>`89EF& h@AM1N1.311111H1I111 1 1 1 1 1 1 1 1 1 1V1 1 1 1o1ef 1 1 1 1^ 1 1 1o1mn 1 1 1 1V1 1 1 1 1 1 1 1 1 1 1^ 1 1?1G1O1 1 1 1 1 1 \ No newline at end of file diff --git a/data/layouts/ThreeIsland_Port_Frlg/border.bin b/data/layouts/ThreeIsland_Port_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/ThreeIsland_Port_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/ThreeIsland_Port_Frlg/map.bin b/data/layouts/ThreeIsland_Port_Frlg/map.bin new file mode 100644 index 000000000000..44f29053c138 Binary files /dev/null and b/data/layouts/ThreeIsland_Port_Frlg/map.bin differ diff --git a/data/layouts/TradeCenter_Frlg/border.bin b/data/layouts/TradeCenter_Frlg/border.bin new file mode 100644 index 000000000000..efef023e6f15 --- /dev/null +++ b/data/layouts/TradeCenter_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/TradeCenter_Frlg/map.bin b/data/layouts/TradeCenter_Frlg/map.bin new file mode 100644 index 000000000000..93050f0f57f6 --- /dev/null +++ b/data/layouts/TradeCenter_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/TrainerTower_1F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_1F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_1F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_1F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_1F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..891ae066e214 Binary files /dev/null and b/data/layouts/TrainerTower_1F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_1F_Frlg/border.bin b/data/layouts/TrainerTower_1F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_1F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_1F_Frlg/map.bin b/data/layouts/TrainerTower_1F_Frlg/map.bin new file mode 100644 index 000000000000..812cea451710 Binary files /dev/null and b/data/layouts/TrainerTower_1F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_1F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_1F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_1F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_1F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_1F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..3e3ebcc9401f Binary files /dev/null and b/data/layouts/TrainerTower_1F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_2F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_2F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_2F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_2F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_2F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..ab44abb18d99 Binary files /dev/null and b/data/layouts/TrainerTower_2F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_2F_Frlg/border.bin b/data/layouts/TrainerTower_2F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_2F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_2F_Frlg/map.bin b/data/layouts/TrainerTower_2F_Frlg/map.bin new file mode 100644 index 000000000000..7ae889af1467 Binary files /dev/null and b/data/layouts/TrainerTower_2F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_2F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_2F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_2F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_2F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_2F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..cfc96995c4c0 Binary files /dev/null and b/data/layouts/TrainerTower_2F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_3F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_3F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_3F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_3F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_3F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..514cb72392ba Binary files /dev/null and b/data/layouts/TrainerTower_3F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_3F_Frlg/border.bin b/data/layouts/TrainerTower_3F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_3F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_3F_Frlg/map.bin b/data/layouts/TrainerTower_3F_Frlg/map.bin new file mode 100644 index 000000000000..c01e70c2f83e Binary files /dev/null and b/data/layouts/TrainerTower_3F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_3F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_3F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_3F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_3F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_3F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..da9cc3f7507f Binary files /dev/null and b/data/layouts/TrainerTower_3F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_4F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_4F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_4F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_4F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_4F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..d9a50b7a1d29 Binary files /dev/null and b/data/layouts/TrainerTower_4F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_4F_Frlg/border.bin b/data/layouts/TrainerTower_4F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_4F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_4F_Frlg/map.bin b/data/layouts/TrainerTower_4F_Frlg/map.bin new file mode 100644 index 000000000000..057d7f955ca7 Binary files /dev/null and b/data/layouts/TrainerTower_4F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_4F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_4F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_4F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_4F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_4F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..cf5e1e94ef22 Binary files /dev/null and b/data/layouts/TrainerTower_4F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_5F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_5F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_5F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_5F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_5F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..37b4aba85eb6 Binary files /dev/null and b/data/layouts/TrainerTower_5F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_5F_Frlg/border.bin b/data/layouts/TrainerTower_5F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_5F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_5F_Frlg/map.bin b/data/layouts/TrainerTower_5F_Frlg/map.bin new file mode 100644 index 000000000000..d580e7d2def6 Binary files /dev/null and b/data/layouts/TrainerTower_5F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_5F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_5F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_5F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_5F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_5F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..1f10bfff1526 Binary files /dev/null and b/data/layouts/TrainerTower_5F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_6F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_6F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_6F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_6F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_6F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..2df5cd891f98 Binary files /dev/null and b/data/layouts/TrainerTower_6F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_6F_Frlg/border.bin b/data/layouts/TrainerTower_6F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_6F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_6F_Frlg/map.bin b/data/layouts/TrainerTower_6F_Frlg/map.bin new file mode 100644 index 000000000000..3c2c3165c003 Binary files /dev/null and b/data/layouts/TrainerTower_6F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_6F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_6F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_6F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_6F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_6F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..fe3d6f90869b Binary files /dev/null and b/data/layouts/TrainerTower_6F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_7F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_7F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_7F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_7F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_7F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..e977b7e26cac Binary files /dev/null and b/data/layouts/TrainerTower_7F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_7F_Frlg/border.bin b/data/layouts/TrainerTower_7F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_7F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_7F_Frlg/map.bin b/data/layouts/TrainerTower_7F_Frlg/map.bin new file mode 100644 index 000000000000..d9bb110cfe64 Binary files /dev/null and b/data/layouts/TrainerTower_7F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_7F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_7F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_7F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_7F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_7F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..241077797fb1 Binary files /dev/null and b/data/layouts/TrainerTower_7F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_8F_Doubles_Frlg/border.bin b/data/layouts/TrainerTower_8F_Doubles_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_8F_Doubles_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_8F_Doubles_Frlg/map.bin b/data/layouts/TrainerTower_8F_Doubles_Frlg/map.bin new file mode 100644 index 000000000000..e358d2f3d760 Binary files /dev/null and b/data/layouts/TrainerTower_8F_Doubles_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_8F_Frlg/border.bin b/data/layouts/TrainerTower_8F_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_8F_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_8F_Frlg/map.bin b/data/layouts/TrainerTower_8F_Frlg/map.bin new file mode 100644 index 000000000000..6ba6588be173 Binary files /dev/null and b/data/layouts/TrainerTower_8F_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_8F_Knockout_Frlg/border.bin b/data/layouts/TrainerTower_8F_Knockout_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_8F_Knockout_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_8F_Knockout_Frlg/map.bin b/data/layouts/TrainerTower_8F_Knockout_Frlg/map.bin new file mode 100644 index 000000000000..bb5ccf05ca9c Binary files /dev/null and b/data/layouts/TrainerTower_8F_Knockout_Frlg/map.bin differ diff --git a/data/layouts/TrainerTower_Elevator_Frlg/border.bin b/data/layouts/TrainerTower_Elevator_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_Elevator_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_Elevator_Frlg/map.bin b/data/layouts/TrainerTower_Elevator_Frlg/map.bin new file mode 100644 index 000000000000..42e08c38debb --- /dev/null +++ b/data/layouts/TrainerTower_Elevator_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222 \ No newline at end of file diff --git a/data/layouts/TrainerTower_Lobby_Frlg/border.bin b/data/layouts/TrainerTower_Lobby_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TrainerTower_Lobby_Frlg/border.bin differ diff --git a/data/layouts/TrainerTower_Lobby_Frlg/map.bin b/data/layouts/TrainerTower_Lobby_Frlg/map.bin new file mode 100644 index 000000000000..b98077279ab8 --- /dev/null +++ b/data/layouts/TrainerTower_Lobby_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222w2v222222b2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/TrainerTower_Roof_Frlg/border.bin b/data/layouts/TrainerTower_Roof_Frlg/border.bin new file mode 100644 index 000000000000..f94adee613f8 --- /dev/null +++ b/data/layouts/TrainerTower_Roof_Frlg/border.bin @@ -0,0 +1 @@ +//// \ No newline at end of file diff --git a/data/layouts/TrainerTower_Roof_Frlg/map.bin b/data/layouts/TrainerTower_Roof_Frlg/map.bin new file mode 100644 index 000000000000..37d57f3feb3b --- /dev/null +++ b/data/layouts/TrainerTower_Roof_Frlg/map.bin @@ -0,0 +1 @@ +pT[[[[[[[[[[[[PzEpT[[[[[[[[[[[[PzEpT[[[[[[[[[[[[PzEpT[[[h[[[[h[[[PzEpJIIIi[[[[jMNOKzEp`abQJIIIIKUVWSzEpcde33RQQQQS3333mEpfg_33Z3333333333tEp33333333333333tExq333333333333s|Cyrrrrrrrrrrrr{@A;!"((((((((((((%&<;)*080808080808-.<;12#$+,#$#$+,#$56<;9:#$34#$#$34#$=><;)F#$kl#$#$kl#$G.< \ No newline at end of file diff --git a/data/layouts/TwoIsland_CapeBrink_Frlg/border.bin b/data/layouts/TwoIsland_CapeBrink_Frlg/border.bin new file mode 100644 index 000000000000..75f2c916c55e --- /dev/null +++ b/data/layouts/TwoIsland_CapeBrink_Frlg/border.bin @@ -0,0 +1 @@ +vvvv \ No newline at end of file diff --git a/data/layouts/TwoIsland_CapeBrink_Frlg/map.bin b/data/layouts/TwoIsland_CapeBrink_Frlg/map.bin new file mode 100644 index 000000000000..d48f75cd44f0 --- /dev/null +++ b/data/layouts/TwoIsland_CapeBrink_Frlg/map.bin @@ -0,0 +1 @@ +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvDEvvvvvvvvvvvDEvvvvvvvvvLMvvvvvvvvvvvLMvvvvvvvvvvvvvDEvvvDEvvv//////////s}vLMvvvLMssz2131313131 3!3!3"3#3|ss}vvvvvvsszs00 00 066666u|ssvDEvszss 00000uqu|s}LMvszsss 00 00 041m|s}vzssss 0 0 00 00 00 00 0uqqu|svpsssss 0 0 000000000uqquu|}tssssx00 00 0uqqu|tssss 000p000uqqlmutssss 0 0 0p00 0uqqqquutssss 0 0 0p031{z3100uqqqquutssss 0 0 0x||'''|||}qqqquutsss{|00y||///|||qqqqtss{|00 0|777||sqqqqqqtssqqs 0 0 0us{qqqqqts{|s 0 0 0u{sqqqqqtsqqss 0 0 0u0sqqqqqtsqqs{ 0 0ussqqqqqtsqqsqs 0 0ussqqqqqtsqq{s 0 0ussqqqqqtsqqqs{00}ssqqqqqtsqqq{33ssqqqqqqqqqs33ssqqqqqqqqqqqs333131313131313131psqqqqqqqqqqqs33}3~3000|3}3}3sqqqqqqqqqqqs3333}3}3}3333qqqqqqqqqqqs3333333333{||qqqqqqqq{||||33333qqq{|| \ No newline at end of file diff --git a/data/layouts/TwoIsland_Frlg/border.bin b/data/layouts/TwoIsland_Frlg/border.bin new file mode 100644 index 000000000000..4531975c765e Binary files /dev/null and b/data/layouts/TwoIsland_Frlg/border.bin differ diff --git a/data/layouts/TwoIsland_Frlg/map.bin b/data/layouts/TwoIsland_Frlg/map.bin new file mode 100644 index 000000000000..60e9c0bc9ba2 Binary files /dev/null and b/data/layouts/TwoIsland_Frlg/map.bin differ diff --git a/data/layouts/TwoIsland_JoyfulGameCorner_Frlg/border.bin b/data/layouts/TwoIsland_JoyfulGameCorner_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/TwoIsland_JoyfulGameCorner_Frlg/border.bin differ diff --git a/data/layouts/TwoIsland_JoyfulGameCorner_Frlg/map.bin b/data/layouts/TwoIsland_JoyfulGameCorner_Frlg/map.bin new file mode 100644 index 000000000000..c445c5cb31f3 Binary files /dev/null and b/data/layouts/TwoIsland_JoyfulGameCorner_Frlg/map.bin differ diff --git a/data/layouts/UndergroundPath_EastWestTunnel_Frlg/border.bin b/data/layouts/UndergroundPath_EastWestTunnel_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/UndergroundPath_EastWestTunnel_Frlg/border.bin differ diff --git a/data/layouts/UndergroundPath_EastWestTunnel_Frlg/map.bin b/data/layouts/UndergroundPath_EastWestTunnel_Frlg/map.bin new file mode 100644 index 000000000000..b6890bacdcd8 --- /dev/null +++ b/data/layouts/UndergroundPath_EastWestTunnel_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UndergroundPath_Entrance_Frlg/border.bin b/data/layouts/UndergroundPath_Entrance_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/UndergroundPath_Entrance_Frlg/border.bin differ diff --git a/data/layouts/UndergroundPath_Entrance_Frlg/map.bin b/data/layouts/UndergroundPath_Entrance_Frlg/map.bin new file mode 100644 index 000000000000..58cc0f850e8c --- /dev/null +++ b/data/layouts/UndergroundPath_Entrance_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222662222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/border.bin b/data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/border.bin differ diff --git a/data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/map.bin b/data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/map.bin new file mode 100644 index 000000000000..4772a43cdbab --- /dev/null +++ b/data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/UnionRoom_Frlg/border.bin b/data/layouts/UnionRoom_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/UnionRoom_Frlg/border.bin differ diff --git a/data/layouts/UnionRoom_Frlg/map.bin b/data/layouts/UnionRoom_Frlg/map.bin new file mode 100644 index 000000000000..829e215544e4 --- /dev/null +++ b/data/layouts/UnionRoom_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/VermilionCity_Frlg/border.bin b/data/layouts/VermilionCity_Frlg/border.bin new file mode 100644 index 000000000000..730aab996458 --- /dev/null +++ b/data/layouts/VermilionCity_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VermilionCity_Frlg/map.bin b/data/layouts/VermilionCity_Frlg/map.bin new file mode 100644 index 000000000000..1c90e0240ac9 --- /dev/null +++ b/data/layouts/VermilionCity_Frlg/map.bin @@ -0,0 +1,2 @@ +,0 00,000++++++,0 00+HIJK000++(PQRS0 00++++,XYZ[0 00&%$%$%$%$%$%++++,`ab000++++,102220000000000 000000000000000000++++,111111100000000000000000000000000++++,111111111111000 000000000000000000++++0#####!111111100000000000001010000++++++++++,111111111000000000000000000++++++++++0#####!111000000000000000000++++++++++++++++,111000000000000000000++++++++++2210000(0)0*0+00000000000++++(222221000001230000000000&%$%$%++++,111111000089:;000000000000000+++,111110000@Abc=>>>>>>>>?+++,111102221110220000000000000000000000000+++,1111000000000000000000000000000000000000+++,1100000000000000000000000001110000000000+++,11091:1:1:1:1:1;10011111002222"#$02220"########+++,110ABBBBBC011111110*+,02220*+++++++++++,11`1IJJJJJK01 ##!110*+,&3222'3*+++++++++++,hPQRSTUV1*++,111*+,01110*(+++,110X1Y1Z[\]1^101*++,1111122*+0#111#1,pqqqqqr++++,1111110 00 001*++0#######1+++111++,pqqqqqr++++,111111111111*++++++++++++++111++,pqqqqqr++++,111111111111*+1111111111111111++,x|||||z++++0############1+1111111111111111++0 #####+++++++++++++++++++1111111111111111++++++++++++++++++++++++111++++++++++++++++++++111+++++++++++++++++++++++++++++++3 3 +3++++++++++++++++++++++++222++++++++++++++++++++++++++++++++++,*++++++++++++++++++++,*+++++++,*++,* \ No newline at end of file diff --git a/data/layouts/VermilionCity_Gym_Frlg/border.bin b/data/layouts/VermilionCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/VermilionCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/VermilionCity_Gym_Frlg/map.bin b/data/layouts/VermilionCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..6389bf60313b --- /dev/null +++ b/data/layouts/VermilionCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222tuv \ No newline at end of file diff --git a/data/layouts/VermilionCity_PokemonFanClub_Frlg/border.bin b/data/layouts/VermilionCity_PokemonFanClub_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/VermilionCity_PokemonFanClub_Frlg/border.bin differ diff --git a/data/layouts/VermilionCity_PokemonFanClub_Frlg/map.bin b/data/layouts/VermilionCity_PokemonFanClub_Frlg/map.bin new file mode 100644 index 000000000000..9e7443ba65d0 --- /dev/null +++ b/data/layouts/VermilionCity_PokemonFanClub_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222BB2222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/VictoryRoad_1F_Frlg/border.bin b/data/layouts/VictoryRoad_1F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/VictoryRoad_1F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VictoryRoad_1F_Frlg/map.bin b/data/layouts/VictoryRoad_1F_Frlg/map.bin new file mode 100644 index 000000000000..fe99f6f05632 --- /dev/null +++ b/data/layouts/VictoryRoad_1F_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222BBBBBBBBBBBBB22222BBBBBBBBBBBBB22222BBBBBBBBBBBBB2222BBBBBBBBBBBBB2222BB2222222222BB2222222BBBB2BB2222BBBBBB22BBBBBB22BBBBBBBBB222222BBBBBBBBB22222222222222222222222222222222222222222222222222226666666666666 \ No newline at end of file diff --git a/data/layouts/VictoryRoad_2F_Frlg/border.bin b/data/layouts/VictoryRoad_2F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/VictoryRoad_2F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VictoryRoad_2F_Frlg/map.bin b/data/layouts/VictoryRoad_2F_Frlg/map.bin new file mode 100644 index 000000000000..fa39935e6713 Binary files /dev/null and b/data/layouts/VictoryRoad_2F_Frlg/map.bin differ diff --git a/data/layouts/VictoryRoad_3F_Frlg/border.bin b/data/layouts/VictoryRoad_3F_Frlg/border.bin new file mode 100644 index 000000000000..a021ddd4ec70 --- /dev/null +++ b/data/layouts/VictoryRoad_3F_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/VictoryRoad_3F_Frlg/map.bin b/data/layouts/VictoryRoad_3F_Frlg/map.bin new file mode 100644 index 000000000000..3ca93972e63c --- /dev/null +++ b/data/layouts/VictoryRoad_3F_Frlg/map.bin @@ -0,0 +1 @@ +222222222226666622262262222222222222222222222222222222222222222222222222222222222222222222222222226BBBBBBBBBBBBBB6222222222222222222226BBBBBBBBBBBBBB62222226662222222222226BBBBBBBBBBBBBB62222226662222222262226BBB666666662222226662222222262226BBB62222222222222222266662BBBBBBBB626BBB6222222222222222222222262BBBBBBBB666BBB62222222262222226222226BBBBBBBB666BBB62222222222222222222226266666BBBBBBBB622222222222226662222262622226BBBBBBBB6222222222222222222622226622226666666666222222222222222222222266622222222222222266666622222222266622222222222222622222222222222222222226666222222222222226662222222222222262222226666222222222222266622222222222222222222666662222222222222222222222222222222222226666666666666666666666666666622266666666666666666666666666666666666666622 \ No newline at end of file diff --git a/data/layouts/ViridianCity_Frlg/border.bin b/data/layouts/ViridianCity_Frlg/border.bin new file mode 100644 index 000000000000..a701312cfff9 Binary files /dev/null and b/data/layouts/ViridianCity_Frlg/border.bin differ diff --git a/data/layouts/ViridianCity_Frlg/map.bin b/data/layouts/ViridianCity_Frlg/map.bin new file mode 100644 index 000000000000..d633641ca37b --- /dev/null +++ b/data/layouts/ViridianCity_Frlg/map.bin @@ -0,0 +1 @@ +qqlmqqr0 00 00qqqqmqr0000kllmquqr 0e1f1g10sqqmmr&%$%$%$%$'0m1n1o1 0$%$%$%$%$%$%$%sqqququr0m1n1o10&%$'0e1f1f1f1f1f1f1f1f1f1f1f1g1sqqququr000000000000m1n1o100 00 00m1n1n1n1n1n1n1n1n1n1n1n1o1sqqququr0 0m1n11f1f1f1f1f1f11n11v12222221n1o1sqqququr 0m1n1n1n1n1n1n1n1n1n1n1o10ABBBBCm1n1o1sqqququr 00m1n11v122222v1v1w10IJJJJKm1n1o1sqq}qur0m1n1o10 00`1PQRSTVm1n1o1sqquqqur 0 0m1n1o10000hX1Y1Z[\^1m1n1o1{||}q}r0m1n1o10 000 00 00 00u1v1w1qqqq}qr00m1n1o10000||||}qqr 0m1n1o100 00 00000000 00 00000qqqqqyz0 0m1n1o1 000000000 000 0 000 00 0yyyyyz0 0 0&%$%$%$'m1n1o10222220 00 00 00 000n1o100 000(0)0*0+000 000000000000000e1f1f1f1f1f1f11n1o100e1f1g1001230e1f1g1000000000 00 00m1n1n1n1n1n1n1n1n1o1 0m1n1o1 089:; 0m1n1o10000000000000u1v1v1v1v1v1v11n1o10202220m1n1o10@Abc0m1n1o1iiiiiij00 00 0000 00 00 0m1n11f1f1f1f1f1f1f11n11f1f1f1n1f1f11n1o1qkllmqr00000 000000 00m1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1o1kqquqr000000000000 0m1n11v122222v11n11v1v1v1v1v1v11n1o1sqqqmr000000000m1n1o10HIJK0m1n1o100 00 0 0m1n1o1sqqqqur&%$' 0000000m1n1o10PQRS0m1n1o1 0 00000m1n1o1sqqqqur00000&' 00 00 00m1n1o10XYZ[0m1n1o100 00 0 0m1n1o1sqqqqur0000000m1n1o10`ab0m1n1o1000000m1n1o1sqqqqur01000 00m1n11f1f1f1n1f1f1f11n11f1f1f1f1f1f11n1o1qqqqur0000000m1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1n1o1qqqqqur000 00 00u1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1w1qqqqqu000qqqq}r0 00 03131313131310 00000 000 00 00 000 00000000qqqquqr00000000000000000000000000000000000qqqqu00000000000000000000000000000000000qqqqrr0000000010010000000000000000qqqqrr0000000000000000000000000000qqqqrr0000qqqqrr0000qqqqrr0000qqqqrr0000 \ No newline at end of file diff --git a/data/layouts/ViridianCity_Gym_Frlg/border.bin b/data/layouts/ViridianCity_Gym_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/ViridianCity_Gym_Frlg/border.bin differ diff --git a/data/layouts/ViridianCity_Gym_Frlg/map.bin b/data/layouts/ViridianCity_Gym_Frlg/map.bin new file mode 100644 index 000000000000..ea13b028027c --- /dev/null +++ b/data/layouts/ViridianCity_Gym_Frlg/map.bin @@ -0,0 +1 @@ +2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/ViridianCity_House_Frlg/border.bin b/data/layouts/ViridianCity_House_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/ViridianCity_House_Frlg/border.bin differ diff --git a/data/layouts/ViridianCity_House_Frlg/map.bin b/data/layouts/ViridianCity_House_Frlg/map.bin new file mode 100644 index 000000000000..888436add5f1 --- /dev/null +++ b/data/layouts/ViridianCity_House_Frlg/map.bin @@ -0,0 +1 @@ +  ./ -  !"1267(5(()*90:0>0?0 0=0 0 0 0 0 0 000C0D0D0D0D0F000 000S0K0LMN0V000 000S0K0TUN0V000W000[0\0\0\0\0^00G0_000000000O44444444 \ No newline at end of file diff --git a/data/layouts/ViridianCity_School_Frlg/border.bin b/data/layouts/ViridianCity_School_Frlg/border.bin new file mode 100644 index 000000000000..a886cd764697 Binary files /dev/null and b/data/layouts/ViridianCity_School_Frlg/border.bin differ diff --git a/data/layouts/ViridianCity_School_Frlg/map.bin b/data/layouts/ViridianCity_School_Frlg/map.bin new file mode 100644 index 000000000000..b6e23003bbda --- /dev/null +++ b/data/layouts/ViridianCity_School_Frlg/map.bin @@ -0,0 +1 @@ +222222222222222222222222222222222222222222222222222222 \ No newline at end of file diff --git a/data/layouts/ViridianForest_Frlg/border.bin b/data/layouts/ViridianForest_Frlg/border.bin new file mode 100644 index 000000000000..7797e033b59f --- /dev/null +++ b/data/layouts/ViridianForest_Frlg/border.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/layouts/ViridianForest_Frlg/map.bin b/data/layouts/ViridianForest_Frlg/map.bin new file mode 100644 index 000000000000..74a9e6f5dbf5 --- /dev/null +++ b/data/layouts/ViridianForest_Frlg/map.bin @@ -0,0 +1 @@ +LMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMN00 00 00 00 00 00 00 00 0 00 00 00 002 02020202 02000000000000000000000000000202 02 02 020 0 0000000000000 000 0002 0020 02 002002 000 00\]0]0]0]0^000100000100 00 000 00000de111ef0000 00 00 0000000 0000 00 021200000 020 00000 00000 00 00000 00 00 00 00 0000 00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000 00020020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02 0 020 0000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0000 00 0 0 0 0 0 0 0 0 0 00 000000000 000000 0 0 0 0 0 0 0 0 0 0 0200000000000000000 00 0 0 0 0 0 0 0 0 0 0000000000000 000000 0 0 0 0 0 0 0 0 0 00200200200200000 002 0202 0 0 0 0 0 0 0 0 0 0 0 0 00000 00202 02 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0000000 00 02 000 00 00 00 00 00 00 00000000000 0000000 00 0000000 0 0 0 0002 00 00 0 000000000000000 0 0 0 0 00 00 000000000000000 00 00 00 0 0 0 0 0 00000000000000000000 00000 0 0 0 0 0 00 00 0020 020 020 020 020002020 0 0 0 0 00000020200 0 0 0 0 00 00 0022020 0 0 0 0 00000 0 0 0 0 00 00 0 0 0 0 0 00000 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 02 0 02 0 02 0 02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0000 00202 0 0 0 0 0 0 02 0 02 0 02 0 0 00 0 0 0 0 0 0 00 000202220 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 00000 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 00000 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 00000 0 0 0 0 0 0000 0 0 0 0 0 00 000 0 0 0 0 00 00 0 0 0 0 0 00 00 0 0 0 0 0 0 020 0 0 0 0 0000 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0 0 0 000 00 00 0 0 0 0 0 0 0 000 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00000000000000 000000 00 00 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000000000000000000000000000 00 0 0 0 0 0 0 0 0 02 0 02 0 02 0020020020020020 000000 02002 002002 0 02 0 02 022y1220DEEEEEEEEEFLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMNLMMMMMMMMMN \ No newline at end of file diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index b8d841f72bcc..defdec54a9f5 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -9,7 +9,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Petalburg", "border_filepath": "data/layouts/PetalburgCity/border.bin", - "blockdata_filepath": "data/layouts/PetalburgCity/map.bin" + "blockdata_filepath": "data/layouts/PetalburgCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SLATEPORT_CITY", @@ -19,7 +20,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Slateport", "border_filepath": "data/layouts/SlateportCity/border.bin", - "blockdata_filepath": "data/layouts/SlateportCity/map.bin" + "blockdata_filepath": "data/layouts/SlateportCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAUVILLE_CITY", @@ -29,7 +31,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/MauvilleCity/border.bin", - "blockdata_filepath": "data/layouts/MauvilleCity/map.bin" + "blockdata_filepath": "data/layouts/MauvilleCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY", @@ -39,7 +42,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/RustboroCity/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FORTREE_CITY", @@ -49,7 +53,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fortree", "border_filepath": "data/layouts/FortreeCity/border.bin", - "blockdata_filepath": "data/layouts/FortreeCity/map.bin" + "blockdata_filepath": "data/layouts/FortreeCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY", @@ -59,7 +64,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/LilycoveCity/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY", @@ -69,7 +75,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/MossdeepCity/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY", @@ -79,7 +86,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Sootopolis", "border_filepath": "data/layouts/SootopolisCity/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY", @@ -89,7 +97,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_EverGrande", "border_filepath": "data/layouts/EverGrandeCity/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN", @@ -99,7 +108,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Petalburg", "border_filepath": "data/layouts/LittlerootTown/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_OLDALE_TOWN", @@ -109,7 +119,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Petalburg", "border_filepath": "data/layouts/OldaleTown/border.bin", - "blockdata_filepath": "data/layouts/OldaleTown/map.bin" + "blockdata_filepath": "data/layouts/OldaleTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_DEWFORD_TOWN", @@ -119,7 +130,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Dewford", "border_filepath": "data/layouts/DewfordTown/border.bin", - "blockdata_filepath": "data/layouts/DewfordTown/map.bin" + "blockdata_filepath": "data/layouts/DewfordTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LAVARIDGE_TOWN", @@ -129,7 +141,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/LavaridgeTown/border.bin", - "blockdata_filepath": "data/layouts/LavaridgeTown/map.bin" + "blockdata_filepath": "data/layouts/LavaridgeTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FALLARBOR_TOWN", @@ -139,7 +152,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fallarbor", "border_filepath": "data/layouts/FallarborTown/border.bin", - "blockdata_filepath": "data/layouts/FallarborTown/map.bin" + "blockdata_filepath": "data/layouts/FallarborTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_VERDANTURF_TOWN", @@ -149,7 +163,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/VerdanturfTown/border.bin", - "blockdata_filepath": "data/layouts/VerdanturfTown/map.bin" + "blockdata_filepath": "data/layouts/VerdanturfTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_PACIFIDLOG_TOWN", @@ -159,7 +174,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/PacifidlogTown/border.bin", - "blockdata_filepath": "data/layouts/PacifidlogTown/map.bin" + "blockdata_filepath": "data/layouts/PacifidlogTown/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE101", @@ -169,7 +185,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Petalburg", "border_filepath": "data/layouts/Route101/border.bin", - "blockdata_filepath": "data/layouts/Route101/map.bin" + "blockdata_filepath": "data/layouts/Route101/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE102", @@ -179,7 +196,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Petalburg", "border_filepath": "data/layouts/Route102/border.bin", - "blockdata_filepath": "data/layouts/Route102/map.bin" + "blockdata_filepath": "data/layouts/Route102/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE103", @@ -189,7 +207,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Petalburg", "border_filepath": "data/layouts/Route103/border.bin", - "blockdata_filepath": "data/layouts/Route103/map.bin" + "blockdata_filepath": "data/layouts/Route103/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE104", @@ -199,7 +218,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/Route104/border.bin", - "blockdata_filepath": "data/layouts/Route104/map.bin" + "blockdata_filepath": "data/layouts/Route104/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE105", @@ -209,7 +229,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Dewford", "border_filepath": "data/layouts/Route105/border.bin", - "blockdata_filepath": "data/layouts/Route105/map.bin" + "blockdata_filepath": "data/layouts/Route105/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE106", @@ -219,7 +240,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Dewford", "border_filepath": "data/layouts/Route106/border.bin", - "blockdata_filepath": "data/layouts/Route106/map.bin" + "blockdata_filepath": "data/layouts/Route106/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE107", @@ -229,7 +251,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Dewford", "border_filepath": "data/layouts/Route107/border.bin", - "blockdata_filepath": "data/layouts/Route107/map.bin" + "blockdata_filepath": "data/layouts/Route107/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE108", @@ -239,7 +262,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Slateport", "border_filepath": "data/layouts/Route108/border.bin", - "blockdata_filepath": "data/layouts/Route108/map.bin" + "blockdata_filepath": "data/layouts/Route108/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE109", @@ -249,7 +273,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Slateport", "border_filepath": "data/layouts/Route109/border.bin", - "blockdata_filepath": "data/layouts/Route109/map.bin" + "blockdata_filepath": "data/layouts/Route109/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110", @@ -259,7 +284,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/Route110/border.bin", - "blockdata_filepath": "data/layouts/Route110/map.bin" + "blockdata_filepath": "data/layouts/Route110/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE111", @@ -269,7 +295,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/Route111/border.bin", - "blockdata_filepath": "data/layouts/Route111/map.bin" + "blockdata_filepath": "data/layouts/Route111/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE112", @@ -279,7 +306,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/Route112/border.bin", - "blockdata_filepath": "data/layouts/Route112/map.bin" + "blockdata_filepath": "data/layouts/Route112/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE113", @@ -289,7 +317,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fallarbor", "border_filepath": "data/layouts/Route113/border.bin", - "blockdata_filepath": "data/layouts/Route113/map.bin" + "blockdata_filepath": "data/layouts/Route113/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE114", @@ -299,7 +328,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fallarbor", "border_filepath": "data/layouts/Route114/border.bin", - "blockdata_filepath": "data/layouts/Route114/map.bin" + "blockdata_filepath": "data/layouts/Route114/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE115", @@ -309,7 +339,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fallarbor", "border_filepath": "data/layouts/Route115/border.bin", - "blockdata_filepath": "data/layouts/Route115/map.bin" + "blockdata_filepath": "data/layouts/Route115/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE116", @@ -319,7 +350,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/Route116/border.bin", - "blockdata_filepath": "data/layouts/Route116/map.bin" + "blockdata_filepath": "data/layouts/Route116/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE117", @@ -329,7 +361,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/Route117/border.bin", - "blockdata_filepath": "data/layouts/Route117/map.bin" + "blockdata_filepath": "data/layouts/Route117/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE118", @@ -339,7 +372,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/Route118/border.bin", - "blockdata_filepath": "data/layouts/Route118/map.bin" + "blockdata_filepath": "data/layouts/Route118/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE119", @@ -349,7 +383,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fortree", "border_filepath": "data/layouts/Route119/border.bin", - "blockdata_filepath": "data/layouts/Route119/map.bin" + "blockdata_filepath": "data/layouts/Route119/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE120", @@ -359,7 +394,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fortree", "border_filepath": "data/layouts/Route120/border.bin", - "blockdata_filepath": "data/layouts/Route120/map.bin" + "blockdata_filepath": "data/layouts/Route120/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE121", @@ -369,7 +405,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/Route121/border.bin", - "blockdata_filepath": "data/layouts/Route121/map.bin" + "blockdata_filepath": "data/layouts/Route121/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE122", @@ -379,7 +416,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/Route122/border.bin", - "blockdata_filepath": "data/layouts/Route122/map.bin" + "blockdata_filepath": "data/layouts/Route122/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE123", @@ -389,7 +427,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/Route123/border.bin", - "blockdata_filepath": "data/layouts/Route123/map.bin" + "blockdata_filepath": "data/layouts/Route123/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE124", @@ -399,7 +438,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/Route124/border.bin", - "blockdata_filepath": "data/layouts/Route124/map.bin" + "blockdata_filepath": "data/layouts/Route124/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE125", @@ -409,7 +449,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/Route125/border.bin", - "blockdata_filepath": "data/layouts/Route125/map.bin" + "blockdata_filepath": "data/layouts/Route125/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE126", @@ -419,7 +460,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/Route126/border.bin", - "blockdata_filepath": "data/layouts/Route126/map.bin" + "blockdata_filepath": "data/layouts/Route126/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE127", @@ -429,7 +471,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/Route127/border.bin", - "blockdata_filepath": "data/layouts/Route127/map.bin" + "blockdata_filepath": "data/layouts/Route127/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE128", @@ -439,7 +482,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/Route128/border.bin", - "blockdata_filepath": "data/layouts/Route128/map.bin" + "blockdata_filepath": "data/layouts/Route128/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE129", @@ -449,7 +493,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mossdeep", "border_filepath": "data/layouts/Route129/border.bin", - "blockdata_filepath": "data/layouts/Route129/map.bin" + "blockdata_filepath": "data/layouts/Route129/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE130_MIRAGE_ISLAND", @@ -459,7 +504,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/Route130_MirageIsland/border.bin", - "blockdata_filepath": "data/layouts/Route130_MirageIsland/map.bin" + "blockdata_filepath": "data/layouts/Route130_MirageIsland/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE131", @@ -469,7 +515,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/Route131/border.bin", - "blockdata_filepath": "data/layouts/Route131/map.bin" + "blockdata_filepath": "data/layouts/Route131/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE132", @@ -479,7 +526,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/Route132/border.bin", - "blockdata_filepath": "data/layouts/Route132/map.bin" + "blockdata_filepath": "data/layouts/Route132/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE133", @@ -489,7 +537,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/Route133/border.bin", - "blockdata_filepath": "data/layouts/Route133/map.bin" + "blockdata_filepath": "data/layouts/Route133/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE134", @@ -499,7 +548,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/Route134/border.bin", - "blockdata_filepath": "data/layouts/Route134/map.bin" + "blockdata_filepath": "data/layouts/Route134/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE126", @@ -509,7 +559,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route126/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route126/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route126/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE127", @@ -519,7 +570,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route127/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route127/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route127/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE128", @@ -529,7 +581,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route128/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route128/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route128/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", @@ -539,7 +592,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BrendansMaysHouse", "border_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", @@ -549,7 +603,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BrendansMaysHouse", "border_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F", @@ -559,7 +614,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BrendansMaysHouse", "border_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F", @@ -569,7 +625,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BrendansMaysHouse", "border_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", @@ -579,7 +636,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Lab", "border_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_HOUSE1", @@ -589,7 +647,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/House1/border.bin", - "blockdata_filepath": "data/layouts/House1/map.bin" + "blockdata_filepath": "data/layouts/House1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_HOUSE2", @@ -599,7 +658,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/House2/border.bin", - "blockdata_filepath": "data/layouts/House2/map.bin" + "blockdata_filepath": "data/layouts/House2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_POKEMON_CENTER_1F", @@ -609,7 +669,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonCenter", "border_filepath": "data/layouts/PokemonCenter_1F/border.bin", - "blockdata_filepath": "data/layouts/PokemonCenter_1F/map.bin" + "blockdata_filepath": "data/layouts/PokemonCenter_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_POKEMON_CENTER_2F", @@ -619,7 +680,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonCenter", "border_filepath": "data/layouts/PokemonCenter_2F/border.bin", - "blockdata_filepath": "data/layouts/PokemonCenter_2F/map.bin" + "blockdata_filepath": "data/layouts/PokemonCenter_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MART", @@ -629,7 +691,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/Mart/border.bin", - "blockdata_filepath": "data/layouts/Mart/map.bin" + "blockdata_filepath": "data/layouts/Mart/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_HOUSE3", @@ -639,7 +702,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/House3/border.bin", - "blockdata_filepath": "data/layouts/House3/map.bin" + "blockdata_filepath": "data/layouts/House3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_DEWFORD_TOWN_GYM", @@ -649,7 +713,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_DewfordGym", "border_filepath": "data/layouts/DewfordTown_Gym/border.bin", - "blockdata_filepath": "data/layouts/DewfordTown_Gym/map.bin" + "blockdata_filepath": "data/layouts/DewfordTown_Gym/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_DEWFORD_TOWN_HALL", @@ -659,7 +724,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/DewfordTown_Hall/border.bin", - "blockdata_filepath": "data/layouts/DewfordTown_Hall/map.bin" + "blockdata_filepath": "data/layouts/DewfordTown_Hall/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_HOUSE4", @@ -669,7 +735,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/House4/border.bin", - "blockdata_filepath": "data/layouts/House4/map.bin" + "blockdata_filepath": "data/layouts/House4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LAVARIDGE_TOWN_HERB_SHOP", @@ -679,7 +746,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LavaridgeTown_HerbShop/border.bin", - "blockdata_filepath": "data/layouts/LavaridgeTown_HerbShop/map.bin" + "blockdata_filepath": "data/layouts/LavaridgeTown_HerbShop/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LAVARIDGE_TOWN_GYM_1F", @@ -689,7 +757,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_LavaridgeGym", "border_filepath": "data/layouts/LavaridgeTown_Gym_1F/border.bin", - "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_1F/map.bin" + "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LAVARIDGE_TOWN_GYM_B1F", @@ -699,7 +768,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_LavaridgeGym", "border_filepath": "data/layouts/LavaridgeTown_Gym_B1F/border.bin", - "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_B1F/map.bin" + "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F", @@ -709,7 +779,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonCenter", "border_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/border.bin", - "blockdata_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/map.bin" + "blockdata_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY", @@ -719,7 +790,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/border.bin", - "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/map.bin" + "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL", @@ -729,7 +801,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/border.bin", - "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/map.bin" + "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_HOUSE2", @@ -739,7 +812,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/LilycoveCity_House2/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_ROOM1", @@ -749,7 +823,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestRoom1/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestRoom1/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestRoom1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", @@ -759,7 +834,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/VerdanturfTown_WandasHouse/border.bin", - "blockdata_filepath": "data/layouts/VerdanturfTown_WandasHouse/map.bin" + "blockdata_filepath": "data/layouts/VerdanturfTown_WandasHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", @@ -769,7 +845,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/PacifidlogTown_House1/border.bin", - "blockdata_filepath": "data/layouts/PacifidlogTown_House1/map.bin" + "blockdata_filepath": "data/layouts/PacifidlogTown_House1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", @@ -779,7 +856,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/PacifidlogTown_House2/border.bin", - "blockdata_filepath": "data/layouts/PacifidlogTown_House2/map.bin" + "blockdata_filepath": "data/layouts/PacifidlogTown_House2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_PETALBURG_CITY_GYM", @@ -789,7 +867,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PetalburgGym", "border_filepath": "data/layouts/PetalburgCity_Gym/border.bin", - "blockdata_filepath": "data/layouts/PetalburgCity_Gym/map.bin" + "blockdata_filepath": "data/layouts/PetalburgCity_Gym/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_HOUSE_WITH_BED", @@ -799,7 +878,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/HouseWithBed/border.bin", - "blockdata_filepath": "data/layouts/HouseWithBed/map.bin" + "blockdata_filepath": "data/layouts/HouseWithBed/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F", @@ -809,7 +889,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/border.bin", - "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/map.bin" + "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F", @@ -819,7 +900,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/border.bin", - "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin" + "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_ROOM2", @@ -829,7 +911,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestRoom2/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestRoom2/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestRoom2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_ROOM3", @@ -839,7 +922,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestRoom3/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestRoom3/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestRoom3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", @@ -849,7 +933,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonFanClub", "border_filepath": "data/layouts/SlateportCity_PokemonFanClub/border.bin", - "blockdata_filepath": "data/layouts/SlateportCity_PokemonFanClub/map.bin" + "blockdata_filepath": "data/layouts/SlateportCity_PokemonFanClub/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", @@ -859,7 +944,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_OceanicMuseum", "border_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/border.bin", - "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/map.bin" + "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", @@ -869,7 +955,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_OceanicMuseum", "border_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/border.bin", - "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/map.bin" + "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_HARBOR", @@ -879,7 +966,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/Harbor/border.bin", - "blockdata_filepath": "data/layouts/Harbor/map.bin" + "blockdata_filepath": "data/layouts/Harbor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAUVILLE_CITY_GYM", @@ -889,7 +977,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MauvilleGym", "border_filepath": "data/layouts/MauvilleCity_Gym/border.bin", - "blockdata_filepath": "data/layouts/MauvilleCity_Gym/map.bin" + "blockdata_filepath": "data/layouts/MauvilleCity_Gym/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAUVILLE_CITY_BIKE_SHOP", @@ -899,17 +988,19 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BikeShop", "border_filepath": "data/layouts/MauvilleCity_BikeShop/border.bin", - "blockdata_filepath": "data/layouts/MauvilleCity_BikeShop/map.bin" + "blockdata_filepath": "data/layouts/MauvilleCity_BikeShop/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAUVILLE_CITY_GAME_CORNER", "name": "MauvilleCity_GameCorner_Layout", - "width": 22, - "height": 11, + "width": 30, + "height": 22, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MauvilleGameCorner", "border_filepath": "data/layouts/MauvilleCity_GameCorner/border.bin", - "blockdata_filepath": "data/layouts/MauvilleCity_GameCorner/map.bin" + "blockdata_filepath": "data/layouts/MauvilleCity_GameCorner/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F", @@ -919,7 +1010,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/RustboroCity_DevonCorp_1F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_1F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F", @@ -929,7 +1021,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/RustboroCity_DevonCorp_2F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_2F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_GYM", @@ -939,7 +1032,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_RustboroGym", "border_filepath": "data/layouts/RustboroCity_Gym/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_Gym/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_Gym/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL", @@ -949,7 +1043,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonSchool", "border_filepath": "data/layouts/RustboroCity_PokemonSchool/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_PokemonSchool/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_PokemonSchool/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_HOUSE", @@ -959,7 +1054,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_House/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_House/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_House/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_HOUSE1", @@ -969,7 +1065,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_House1/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_House1/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_House1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE", @@ -979,7 +1076,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_CuttersHouse/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_CuttersHouse/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_CuttersHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FORTREE_CITY_HOUSE1", @@ -989,7 +1087,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/FortreeCity_House1/border.bin", - "blockdata_filepath": "data/layouts/FortreeCity_House1/map.bin" + "blockdata_filepath": "data/layouts/FortreeCity_House1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FORTREE_CITY_GYM", @@ -999,7 +1098,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_FortreeGym", "border_filepath": "data/layouts/FortreeCity_Gym/border.bin", - "blockdata_filepath": "data/layouts/FortreeCity_Gym/map.bin" + "blockdata_filepath": "data/layouts/FortreeCity_Gym/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FORTREE_CITY_HOUSE2", @@ -1009,7 +1109,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/FortreeCity_House2/border.bin", - "blockdata_filepath": "data/layouts/FortreeCity_House2/map.bin" + "blockdata_filepath": "data/layouts/FortreeCity_House2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE104_MR_BRINEYS_HOUSE", @@ -1019,7 +1120,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route104_MrBrineysHouse/border.bin", - "blockdata_filepath": "data/layouts/Route104_MrBrineysHouse/map.bin" + "blockdata_filepath": "data/layouts/Route104_MrBrineysHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", @@ -1029,7 +1131,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_LilycoveMuseum", "border_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", @@ -1039,7 +1142,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_LilycoveMuseum", "border_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY", @@ -1049,7 +1153,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/LilycoveCity_ContestLobby/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_ContestLobby/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_ContestLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_CONTEST_HALL", @@ -1059,7 +1164,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/LilycoveCity_ContestHall/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_ContestHall/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_ContestHall/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", @@ -1069,7 +1175,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY_GYM", @@ -1079,7 +1186,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MossdeepGym", "border_filepath": "data/layouts/MossdeepCity_Gym/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity_Gym/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity_Gym/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_GYM_1F", @@ -1089,7 +1197,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_SootopolisGym", "border_filepath": "data/layouts/SootopolisCity_Gym_1F/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_Gym_1F/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_Gym_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_GYM_B1F", @@ -1099,7 +1208,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_SootopolisGym", "border_filepath": "data/layouts/SootopolisCity_Gym_B1F/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_Gym_B1F/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_Gym_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM", @@ -1109,7 +1219,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_SidneysRoom/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_SidneysRoom/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_SidneysRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM", @@ -1119,7 +1230,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM", @@ -1129,7 +1241,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM", @@ -1139,7 +1252,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_DrakesRoom/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_DrakesRoom/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_DrakesRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM", @@ -1149,7 +1263,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", @@ -1159,7 +1274,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_ShortHall/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_ShortHall/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_ShortHall/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", @@ -1169,7 +1285,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PrettyPetalFlowerShop", "border_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/border.bin", - "blockdata_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/map.bin" + "blockdata_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CABLE_CAR_STATION", @@ -1179,7 +1296,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/CableCarStation/border.bin", - "blockdata_filepath": "data/layouts/CableCarStation/map.bin" + "blockdata_filepath": "data/layouts/CableCarStation/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE", @@ -1189,7 +1307,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route114_FossilManiacsHouse/border.bin", - "blockdata_filepath": "data/layouts/Route114_FossilManiacsHouse/map.bin" + "blockdata_filepath": "data/layouts/Route114_FossilManiacsHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL", @@ -1199,7 +1318,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fallarbor", "border_filepath": "data/layouts/Route114_FossilManiacsTunnel/border.bin", - "blockdata_filepath": "data/layouts/Route114_FossilManiacsTunnel/map.bin" + "blockdata_filepath": "data/layouts/Route114_FossilManiacsTunnel/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE114_LANETTES_HOUSE", @@ -1209,7 +1329,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Lab", "border_filepath": "data/layouts/Route114_LanettesHouse/border.bin", - "blockdata_filepath": "data/layouts/Route114_LanettesHouse/map.bin" + "blockdata_filepath": "data/layouts/Route114_LanettesHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE", @@ -1219,7 +1340,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route116_TunnelersRestHouse/border.bin", - "blockdata_filepath": "data/layouts/Route116_TunnelersRestHouse/map.bin" + "blockdata_filepath": "data/layouts/Route116_TunnelersRestHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE117_POKEMON_DAY_CARE", @@ -1229,7 +1351,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonDayCare", "border_filepath": "data/layouts/Route117_PokemonDayCare/border.bin", - "blockdata_filepath": "data/layouts/Route117_PokemonDayCare/map.bin" + "blockdata_filepath": "data/layouts/Route117_PokemonDayCare/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE", @@ -1239,7 +1362,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/Route121_SafariZoneEntrance/border.bin", - "blockdata_filepath": "data/layouts/Route121_SafariZoneEntrance/map.bin" + "blockdata_filepath": "data/layouts/Route121_SafariZoneEntrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_METEOR_FALLS_1F_1R", @@ -1249,7 +1373,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MeteorFalls", "border_filepath": "data/layouts/MeteorFalls_1F_1R/border.bin", - "blockdata_filepath": "data/layouts/MeteorFalls_1F_1R/map.bin" + "blockdata_filepath": "data/layouts/MeteorFalls_1F_1R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_METEOR_FALLS_1F_2R", @@ -1259,7 +1384,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MeteorFalls", "border_filepath": "data/layouts/MeteorFalls_1F_2R/border.bin", - "blockdata_filepath": "data/layouts/MeteorFalls_1F_2R/map.bin" + "blockdata_filepath": "data/layouts/MeteorFalls_1F_2R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_METEOR_FALLS_B1F_1R", @@ -1269,7 +1395,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MeteorFalls", "border_filepath": "data/layouts/MeteorFalls_B1F_1R/border.bin", - "blockdata_filepath": "data/layouts/MeteorFalls_B1F_1R/map.bin" + "blockdata_filepath": "data/layouts/MeteorFalls_B1F_1R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_METEOR_FALLS_B1F_2R", @@ -1279,7 +1406,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MeteorFalls", "border_filepath": "data/layouts/MeteorFalls_B1F_2R/border.bin", - "blockdata_filepath": "data/layouts/MeteorFalls_B1F_2R/map.bin" + "blockdata_filepath": "data/layouts/MeteorFalls_B1F_2R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTURF_TUNNEL", @@ -1289,7 +1417,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_RusturfTunnel", "border_filepath": "data/layouts/RusturfTunnel/border.bin", - "blockdata_filepath": "data/layouts/RusturfTunnel/map.bin" + "blockdata_filepath": "data/layouts/RusturfTunnel/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_SOOTOPOLIS_CITY", @@ -1299,7 +1428,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_SootopolisCity/border.bin", - "blockdata_filepath": "data/layouts/Underwater_SootopolisCity/map.bin" + "blockdata_filepath": "data/layouts/Underwater_SootopolisCity/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_DESERT_RUINS", @@ -1309,7 +1439,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/DesertRuins/border.bin", - "blockdata_filepath": "data/layouts/DesertRuins/map.bin" + "blockdata_filepath": "data/layouts/DesertRuins/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_GRANITE_CAVE_1F", @@ -1319,7 +1450,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/GraniteCave_1F/border.bin", - "blockdata_filepath": "data/layouts/GraniteCave_1F/map.bin" + "blockdata_filepath": "data/layouts/GraniteCave_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_GRANITE_CAVE_B1F", @@ -1329,7 +1461,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/GraniteCave_B1F/border.bin", - "blockdata_filepath": "data/layouts/GraniteCave_B1F/map.bin" + "blockdata_filepath": "data/layouts/GraniteCave_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_GRANITE_CAVE_B2F", @@ -1339,7 +1472,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/GraniteCave_B2F/border.bin", - "blockdata_filepath": "data/layouts/GraniteCave_B2F/map.bin" + "blockdata_filepath": "data/layouts/GraniteCave_B2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_PETALBURG_WOODS", @@ -1349,7 +1483,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/PetalburgWoods/border.bin", - "blockdata_filepath": "data/layouts/PetalburgWoods/map.bin" + "blockdata_filepath": "data/layouts/PetalburgWoods/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_CHIMNEY", @@ -1359,7 +1494,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MtChimney/border.bin", - "blockdata_filepath": "data/layouts/MtChimney/map.bin" + "blockdata_filepath": "data/layouts/MtChimney/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_1F", @@ -1369,7 +1505,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_1F/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_1F/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_2F", @@ -1379,7 +1516,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_2F/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_2F/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_3F", @@ -1389,7 +1527,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_3F/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_3F/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_4F", @@ -1399,7 +1538,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_4F/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_4F/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_4F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_5F", @@ -1409,7 +1549,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_5F/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_5F/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_5F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_6F", @@ -1419,7 +1560,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_6F/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_6F/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_6F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_AQUA_HIDEOUT_1F", @@ -1429,7 +1571,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AquaHideout_1F/border.bin", - "blockdata_filepath": "data/layouts/AquaHideout_1F/map.bin" + "blockdata_filepath": "data/layouts/AquaHideout_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_AQUA_HIDEOUT_B1F", @@ -1439,7 +1582,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AquaHideout_B1F/border.bin", - "blockdata_filepath": "data/layouts/AquaHideout_B1F/map.bin" + "blockdata_filepath": "data/layouts/AquaHideout_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_AQUA_HIDEOUT_B2F", @@ -1449,7 +1593,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AquaHideout_B2F/border.bin", - "blockdata_filepath": "data/layouts/AquaHideout_B2F/map.bin" + "blockdata_filepath": "data/layouts/AquaHideout_B2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_SEAFLOOR_CAVERN", @@ -1459,7 +1604,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_SeafloorCavern/border.bin", - "blockdata_filepath": "data/layouts/Underwater_SeafloorCavern/map.bin" + "blockdata_filepath": "data/layouts/Underwater_SeafloorCavern/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ENTRANCE", @@ -1469,7 +1615,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Entrance/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Entrance/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM1", @@ -1479,7 +1626,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room1/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room1/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM2", @@ -1489,7 +1637,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room2/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room2/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM3", @@ -1499,7 +1648,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room3/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room3/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM4", @@ -1509,7 +1659,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room4/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room4/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM5", @@ -1519,7 +1670,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room5/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room5/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room5/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM6", @@ -1529,7 +1681,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SeafloorCavern_Room6/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room6/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room6/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM7", @@ -1539,7 +1692,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SeafloorCavern_Room7/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room7/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room7/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM8", @@ -1549,7 +1703,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room8/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room8/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room8/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM9", @@ -1559,7 +1714,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room9/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room9/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room9/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_ENTRANCE", @@ -1569,7 +1725,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_Entrance/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_Entrance/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_1F", @@ -1579,7 +1736,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_1F/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_1F/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", @@ -1589,7 +1747,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", @@ -1599,7 +1758,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", @@ -1609,7 +1769,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_B1F", @@ -1619,7 +1780,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_B1F/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_B1F/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_VICTORY_ROAD_1F", @@ -1629,7 +1791,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/VictoryRoad_1F/border.bin", - "blockdata_filepath": "data/layouts/VictoryRoad_1F/map.bin" + "blockdata_filepath": "data/layouts/VictoryRoad_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", @@ -1639,7 +1802,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", @@ -1649,7 +1813,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", @@ -1659,7 +1824,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", @@ -1669,7 +1835,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", @@ -1679,7 +1846,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", @@ -1689,7 +1857,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE1", @@ -1699,7 +1868,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave1/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave1/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE2", @@ -1709,7 +1879,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave2/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave2/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE3", @@ -1719,7 +1890,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave3/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave3/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE4", @@ -1729,7 +1901,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave4/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave4/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE5", @@ -1739,7 +1912,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave5/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave5/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave5/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE6", @@ -1749,7 +1923,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave6/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave6/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave6/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE7", @@ -1759,7 +1934,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave7/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave7/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave7/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE8", @@ -1769,7 +1945,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave8/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave8/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave8/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE9", @@ -1779,7 +1956,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave9/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave9/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave9/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE10", @@ -1789,7 +1967,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave10/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave10/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave10/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE11", @@ -1799,7 +1978,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave11/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave11/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave11/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE12", @@ -1809,7 +1989,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave12/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave12/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave12/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE13", @@ -1819,7 +2000,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave13/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave13/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave13/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CAVE14", @@ -1829,7 +2011,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/UnusedCave14/border.bin", - "blockdata_filepath": "data/layouts/UnusedCave14/map.bin" + "blockdata_filepath": "data/layouts/UnusedCave14/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NEW_MAUVILLE_ENTRANCE", @@ -1839,7 +2022,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/NewMauville_Entrance/border.bin", - "blockdata_filepath": "data/layouts/NewMauville_Entrance/map.bin" + "blockdata_filepath": "data/layouts/NewMauville_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NEW_MAUVILLE_INSIDE", @@ -1849,7 +2033,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BikeShop", "border_filepath": "data/layouts/NewMauville_Inside/border.bin", - "blockdata_filepath": "data/layouts/NewMauville_Inside/map.bin" + "blockdata_filepath": "data/layouts/NewMauville_Inside/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_DECK", @@ -1859,7 +2044,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AbandonedShip_Deck/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Deck/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Deck/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_CORRIDORS_1F", @@ -1869,7 +2055,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Corridors_1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_ROOMS_1F", @@ -1879,7 +2066,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Rooms_1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F", @@ -1889,7 +2077,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Corridors_B1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_B1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_ROOMS_B1F", @@ -1899,7 +2088,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Rooms_B1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_B1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_ROOMS2_B1F", @@ -1909,7 +2099,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_UNDERWATER1", @@ -1919,7 +2110,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Underwater1/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Underwater1/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Underwater1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_ROOM_B1F", @@ -1929,7 +2121,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Room_B1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Room_B1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Room_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_ROOMS2_1F", @@ -1939,7 +2132,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Rooms2_1F/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_1F/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE", @@ -1949,7 +2143,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AbandonedShip_CaptainsOffice/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_CaptainsOffice/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_CaptainsOffice/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_UNDERWATER2", @@ -1959,7 +2154,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_Underwater2/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_Underwater2/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_Underwater2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_RED_CAVE1", @@ -1969,7 +2165,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseRedCave", "border_filepath": "data/layouts/SecretBase_RedCave1/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_RedCave1/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_RedCave1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BROWN_CAVE1", @@ -1979,7 +2176,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBrownCave", "border_filepath": "data/layouts/SecretBase_BrownCave1/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BrownCave1/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BrownCave1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BLUE_CAVE1", @@ -1989,7 +2187,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBlueCave", "border_filepath": "data/layouts/SecretBase_BlueCave1/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BlueCave1/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BlueCave1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE1", @@ -1999,7 +2198,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseYellowCave", "border_filepath": "data/layouts/SecretBase_YellowCave1/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_YellowCave1/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_YellowCave1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_TREE1", @@ -2009,7 +2209,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseTree", "border_filepath": "data/layouts/SecretBase_Tree1/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Tree1/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Tree1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_SHRUB1", @@ -2019,7 +2220,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseShrub", "border_filepath": "data/layouts/SecretBase_Shrub1/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Shrub1/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Shrub1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_RED_CAVE2", @@ -2029,7 +2231,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseRedCave", "border_filepath": "data/layouts/SecretBase_RedCave2/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_RedCave2/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_RedCave2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BROWN_CAVE2", @@ -2039,7 +2242,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBrownCave", "border_filepath": "data/layouts/SecretBase_BrownCave2/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BrownCave2/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BrownCave2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BLUE_CAVE2", @@ -2049,7 +2253,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBlueCave", "border_filepath": "data/layouts/SecretBase_BlueCave2/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BlueCave2/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BlueCave2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE2", @@ -2059,7 +2264,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseYellowCave", "border_filepath": "data/layouts/SecretBase_YellowCave2/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_YellowCave2/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_YellowCave2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_TREE2", @@ -2069,7 +2275,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseTree", "border_filepath": "data/layouts/SecretBase_Tree2/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Tree2/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Tree2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_SHRUB2", @@ -2079,7 +2286,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseShrub", "border_filepath": "data/layouts/SecretBase_Shrub2/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Shrub2/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Shrub2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_RED_CAVE3", @@ -2089,7 +2297,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseRedCave", "border_filepath": "data/layouts/SecretBase_RedCave3/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_RedCave3/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_RedCave3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BROWN_CAVE3", @@ -2099,7 +2308,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBrownCave", "border_filepath": "data/layouts/SecretBase_BrownCave3/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BrownCave3/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BrownCave3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BLUE_CAVE3", @@ -2109,7 +2319,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBlueCave", "border_filepath": "data/layouts/SecretBase_BlueCave3/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BlueCave3/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BlueCave3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE3", @@ -2119,7 +2330,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseYellowCave", "border_filepath": "data/layouts/SecretBase_YellowCave3/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_YellowCave3/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_YellowCave3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_TREE3", @@ -2129,7 +2341,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseTree", "border_filepath": "data/layouts/SecretBase_Tree3/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Tree3/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Tree3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_SHRUB3", @@ -2139,7 +2352,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseShrub", "border_filepath": "data/layouts/SecretBase_Shrub3/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Shrub3/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Shrub3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_RED_CAVE4", @@ -2149,7 +2363,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseRedCave", "border_filepath": "data/layouts/SecretBase_RedCave4/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_RedCave4/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_RedCave4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BROWN_CAVE4", @@ -2159,7 +2374,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBrownCave", "border_filepath": "data/layouts/SecretBase_BrownCave4/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BrownCave4/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BrownCave4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_BLUE_CAVE4", @@ -2169,7 +2385,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseBlueCave", "border_filepath": "data/layouts/SecretBase_BlueCave4/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_BlueCave4/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_BlueCave4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE4", @@ -2179,7 +2396,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseYellowCave", "border_filepath": "data/layouts/SecretBase_YellowCave4/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_YellowCave4/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_YellowCave4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_TREE4", @@ -2189,7 +2407,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseTree", "border_filepath": "data/layouts/SecretBase_Tree4/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Tree4/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Tree4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SECRET_BASE_SHRUB4", @@ -2199,7 +2418,8 @@ "primary_tileset": "gTileset_SecretBase", "secondary_tileset": "gTileset_SecretBaseShrub", "border_filepath": "data/layouts/SecretBase_Shrub4/border.bin", - "blockdata_filepath": "data/layouts/SecretBase_Shrub4/map.bin" + "blockdata_filepath": "data/layouts/SecretBase_Shrub4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_COLOSSEUM_2P", @@ -2209,7 +2429,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_CableClub", "border_filepath": "data/layouts/BattleColosseum_2P/border.bin", - "blockdata_filepath": "data/layouts/BattleColosseum_2P/map.bin" + "blockdata_filepath": "data/layouts/BattleColosseum_2P/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRADE_CENTER", @@ -2219,7 +2440,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_CableClub", "border_filepath": "data/layouts/TradeCenter/border.bin", - "blockdata_filepath": "data/layouts/TradeCenter/map.bin" + "blockdata_filepath": "data/layouts/TradeCenter/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RECORD_CORNER", @@ -2229,7 +2451,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_CableClub", "border_filepath": "data/layouts/RecordCorner/border.bin", - "blockdata_filepath": "data/layouts/RecordCorner/map.bin" + "blockdata_filepath": "data/layouts/RecordCorner/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_COLOSSEUM_4P", @@ -2239,7 +2462,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_CableClub", "border_filepath": "data/layouts/BattleColosseum_4P/border.bin", - "blockdata_filepath": "data/layouts/BattleColosseum_4P/map.bin" + "blockdata_filepath": "data/layouts/BattleColosseum_4P/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CONTEST_HALL", @@ -2249,7 +2473,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/ContestHall/border.bin", - "blockdata_filepath": "data/layouts/ContestHall/map.bin" + "blockdata_filepath": "data/layouts/ContestHall/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_HALL1", @@ -2259,7 +2484,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestHall1/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestHall1/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestHall1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_HALL2", @@ -2269,7 +2495,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestHall2/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestHall2/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestHall2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_HALL3", @@ -2279,7 +2506,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestHall3/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestHall3/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestHall3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_HALL4", @@ -2289,7 +2517,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestHall4/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestHall4/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestHall4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_HALL5", @@ -2299,7 +2528,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestHall5/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestHall5/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestHall5/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_CONTEST_HALL6", @@ -2309,7 +2539,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/UnusedContestHall6/border.bin", - "blockdata_filepath": "data/layouts/UnusedContestHall6/map.bin" + "blockdata_filepath": "data/layouts/UnusedContestHall6/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CONTEST_HALL_BEAUTY", @@ -2319,7 +2550,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/ContestHallBeauty/border.bin", - "blockdata_filepath": "data/layouts/ContestHallBeauty/map.bin" + "blockdata_filepath": "data/layouts/ContestHallBeauty/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CONTEST_HALL_TOUGH", @@ -2329,7 +2561,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/ContestHallTough/border.bin", - "blockdata_filepath": "data/layouts/ContestHallTough/map.bin" + "blockdata_filepath": "data/layouts/ContestHallTough/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CONTEST_HALL_COOL", @@ -2339,7 +2572,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/ContestHallCool/border.bin", - "blockdata_filepath": "data/layouts/ContestHallCool/map.bin" + "blockdata_filepath": "data/layouts/ContestHallCool/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CONTEST_HALL_SMART", @@ -2349,7 +2583,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/ContestHallSmart/border.bin", - "blockdata_filepath": "data/layouts/ContestHallSmart/map.bin" + "blockdata_filepath": "data/layouts/ContestHallSmart/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CONTEST_HALL_CUTE", @@ -2359,7 +2594,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Contest", "border_filepath": "data/layouts/ContestHallCute/border.bin", - "blockdata_filepath": "data/layouts/ContestHallCute/map.bin" + "blockdata_filepath": "data/layouts/ContestHallCute/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_INSIDE_OF_TRUCK", @@ -2369,7 +2605,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideOfTruck", "border_filepath": "data/layouts/InsideOfTruck/border.bin", - "blockdata_filepath": "data/layouts/InsideOfTruck/map.bin" + "blockdata_filepath": "data/layouts/InsideOfTruck/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_NORTHWEST", @@ -2379,7 +2616,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/SafariZone_Northwest/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_Northwest/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_Northwest/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_NORTH", @@ -2389,7 +2627,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/SafariZone_North/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_North/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_North/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_SOUTHWEST", @@ -2399,7 +2638,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/SafariZone_Southwest/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_Southwest/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_Southwest/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_SOUTH", @@ -2409,7 +2649,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/SafariZone_South/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_South/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_South/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNUSED_OUTDOOR_AREA", @@ -2419,7 +2660,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "0", "border_filepath": "data/layouts/UnusedOutdoorArea/border.bin", - "blockdata_filepath": "data/layouts/UnusedOutdoorArea/map.bin" + "blockdata_filepath": "data/layouts/UnusedOutdoorArea/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE109_SEASHORE_HOUSE", @@ -2429,7 +2671,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_SeashoreHouse", "border_filepath": "data/layouts/Route109_SeashoreHouse/border.bin", - "blockdata_filepath": "data/layouts/Route109_SeashoreHouse/map.bin" + "blockdata_filepath": "data/layouts/Route109_SeashoreHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE", @@ -2439,7 +2682,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route110_TrickHouseEntrance/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHouseEntrance/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHouseEntrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_END", @@ -2449,7 +2693,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route110_TrickHouseEnd/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHouseEnd/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHouseEnd/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR", @@ -2459,7 +2704,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route110_TrickHouseCorridor/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHouseCorridor/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHouseCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1", @@ -2469,7 +2715,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle1/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle1/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2", @@ -2479,7 +2726,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle2/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle2/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3", @@ -2489,7 +2737,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle3/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle3/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4", @@ -2499,7 +2748,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle4/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle4/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5", @@ -2509,7 +2759,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle5/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle5/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle5/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6", @@ -2519,7 +2770,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle6/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle6/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle6/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7", @@ -2529,7 +2781,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle7/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle7/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle7/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8", @@ -2539,7 +2792,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrickHousePuzzle", "border_filepath": "data/layouts/Route110_TrickHousePuzzle8/border.bin", - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle8/map.bin" + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle8/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FORTREE_CITY_DECORATION_SHOP", @@ -2549,7 +2803,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/FortreeCity_DecorationShop/border.bin", - "blockdata_filepath": "data/layouts/FortreeCity_DecorationShop/map.bin" + "blockdata_filepath": "data/layouts/FortreeCity_DecorationShop/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", @@ -2559,7 +2814,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/border.bin", - "blockdata_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/map.bin" + "blockdata_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F", @@ -2569,7 +2825,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F", @@ -2579,7 +2836,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F", @@ -2589,7 +2847,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F", @@ -2599,7 +2858,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F", @@ -2609,7 +2869,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", @@ -2619,7 +2880,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Shop", "border_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE130", @@ -2629,7 +2891,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/Route130/border.bin", - "blockdata_filepath": "data/layouts/Route130/map.bin" + "blockdata_filepath": "data/layouts/Route130/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", @@ -2639,7 +2902,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST", @@ -2649,7 +2913,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BattleFrontierOutsideWest", "border_filepath": "data/layouts/BattleFrontier_OutsideWest/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_OutsideWest/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_OutsideWest/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_ELEVATOR", @@ -2659,7 +2924,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleElevator/border.bin", - "blockdata_filepath": "data/layouts/BattleElevator/map.bin" + "blockdata_filepath": "data/layouts/BattleElevator/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", @@ -2669,7 +2935,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", @@ -2679,7 +2946,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F", @@ -2689,7 +2957,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/RustboroCity_DevonCorp_3F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_3F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", @@ -2699,7 +2968,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_PokemonCenter", "border_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F", @@ -2709,7 +2979,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Lab", "border_filepath": "data/layouts/Route119_WeatherInstitute_1F/border.bin", - "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_1F/map.bin" + "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F", @@ -2719,7 +2990,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Lab", "border_filepath": "data/layouts/Route119_WeatherInstitute_2F/border.bin", - "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_2F/map.bin" + "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", @@ -2729,7 +3001,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE124", @@ -2739,7 +3012,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route124/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route124/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route124/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F", @@ -2749,7 +3023,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F", @@ -2759,7 +3034,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SS_TIDAL_CORRIDOR", @@ -2769,7 +3045,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/SSTidalCorridor/border.bin", - "blockdata_filepath": "data/layouts/SSTidalCorridor/map.bin" + "blockdata_filepath": "data/layouts/SSTidalCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SS_TIDAL_LOWER_DECK", @@ -2779,7 +3056,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/SSTidalLowerDeck/border.bin", - "blockdata_filepath": "data/layouts/SSTidalLowerDeck/map.bin" + "blockdata_filepath": "data/layouts/SSTidalLowerDeck/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SS_TIDAL_ROOMS", @@ -2789,7 +3067,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/SSTidalRooms/border.bin", - "blockdata_filepath": "data/layouts/SSTidalRooms/map.bin" + "blockdata_filepath": "data/layouts/SSTidalRooms/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ISLAND_CAVE", @@ -2799,7 +3078,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/IslandCave/border.bin", - "blockdata_filepath": "data/layouts/IslandCave/map.bin" + "blockdata_filepath": "data/layouts/IslandCave/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ANCIENT_TOMB", @@ -2809,7 +3089,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/AncientTomb/border.bin", - "blockdata_filepath": "data/layouts/AncientTomb/map.bin" + "blockdata_filepath": "data/layouts/AncientTomb/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE134", @@ -2819,7 +3100,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route134/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route134/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route134/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_SEALED_CHAMBER", @@ -2829,7 +3111,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_SealedChamber/border.bin", - "blockdata_filepath": "data/layouts/Underwater_SealedChamber/map.bin" + "blockdata_filepath": "data/layouts/Underwater_SealedChamber/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEALED_CHAMBER_OUTER_ROOM", @@ -2839,7 +3122,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SealedChamber_OuterRoom/border.bin", - "blockdata_filepath": "data/layouts/SealedChamber_OuterRoom/map.bin" + "blockdata_filepath": "data/layouts/SealedChamber_OuterRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_VICTORY_ROAD_B1F", @@ -2849,7 +3133,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/VictoryRoad_B1F/border.bin", - "blockdata_filepath": "data/layouts/VictoryRoad_B1F/map.bin" + "blockdata_filepath": "data/layouts/VictoryRoad_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_VICTORY_ROAD_B2F", @@ -2859,7 +3144,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/VictoryRoad_B2F/border.bin", - "blockdata_filepath": "data/layouts/VictoryRoad_B2F/map.bin" + "blockdata_filepath": "data/layouts/VictoryRoad_B2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE104_PROTOTYPE", @@ -2869,7 +3155,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/Route104_Prototype/border.bin", - "blockdata_filepath": "data/layouts/Route104_Prototype/map.bin" + "blockdata_filepath": "data/layouts/Route104_Prototype/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_GRANITE_CAVE_STEVENS_ROOM", @@ -2879,7 +3166,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/GraniteCave_StevensRoom/border.bin", - "blockdata_filepath": "data/layouts/GraniteCave_StevensRoom/map.bin" + "blockdata_filepath": "data/layouts/GraniteCave_StevensRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", @@ -2889,7 +3177,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOUTHERN_ISLAND_EXTERIOR", @@ -2899,7 +3188,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/SouthernIsland_Exterior/border.bin", - "blockdata_filepath": "data/layouts/SouthernIsland_Exterior/map.bin" + "blockdata_filepath": "data/layouts/SouthernIsland_Exterior/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOUTHERN_ISLAND_INTERIOR", @@ -2909,7 +3199,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/SouthernIsland_Interior/border.bin", - "blockdata_filepath": "data/layouts/SouthernIsland_Interior/map.bin" + "blockdata_filepath": "data/layouts/SouthernIsland_Interior/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_JAGGED_PASS", @@ -2919,7 +3210,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/JaggedPass/border.bin", - "blockdata_filepath": "data/layouts/JaggedPass/map.bin" + "blockdata_filepath": "data/layouts/JaggedPass/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FIERY_PATH", @@ -2929,7 +3221,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/FieryPath/border.bin", - "blockdata_filepath": "data/layouts/FieryPath/map.bin" + "blockdata_filepath": "data/layouts/FieryPath/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_FLAT2_1F", @@ -2939,7 +3232,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_Flat2_1F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_Flat2_1F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_Flat2_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_FLAT2_2F", @@ -2949,7 +3243,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_Flat2_2F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_Flat2_2F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_Flat2_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_FLAT2_3F", @@ -2959,7 +3254,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_Flat2_3F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_Flat2_3F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_Flat2_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", @@ -2969,7 +3265,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME", @@ -2979,7 +3276,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_CableClub", "border_filepath": "data/layouts/EverGrandeCity_HallOfFame/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_HallOfFame/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_HallOfFame/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", @@ -2989,7 +3287,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", @@ -2999,7 +3298,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/border.bin", - "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/map.bin" + "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", @@ -3009,7 +3309,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/border.bin", - "blockdata_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/map.bin" + "blockdata_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_EXTERIOR", @@ -3019,7 +3320,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_Exterior/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_Exterior/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_Exterior/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MT_PYRE_SUMMIT", @@ -3029,7 +3331,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/MtPyre_Summit/border.bin", - "blockdata_filepath": "data/layouts/MtPyre_Summit/map.bin" + "blockdata_filepath": "data/layouts/MtPyre_Summit/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEALED_CHAMBER_INNER_ROOM", @@ -3039,7 +3342,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SealedChamber_InnerRoom/border.bin", - "blockdata_filepath": "data/layouts/SealedChamber_InnerRoom/map.bin" + "blockdata_filepath": "data/layouts/SealedChamber_InnerRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F", @@ -3049,7 +3353,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MossdeepGameCorner", "border_filepath": "data/layouts/MossdeepCity_GameCorner_1F/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_1F/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F", @@ -3059,7 +3364,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", @@ -3069,7 +3375,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/SootopolisCity_House1/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_House1/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_House1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", @@ -3079,7 +3386,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/SootopolisCity_House2/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_House2/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_House2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", @@ -3089,7 +3397,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/SootopolisCity_House3/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_House3/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_House3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", @@ -3099,7 +3408,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_InsideShip", "border_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/border.bin", - "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/map.bin" + "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SCORCHED_SLAB", @@ -3109,7 +3419,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ScorchedSlab/border.bin", - "blockdata_filepath": "data/layouts/ScorchedSlab/map.bin" + "blockdata_filepath": "data/layouts/ScorchedSlab/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA", @@ -3119,7 +3430,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/border.bin", - "blockdata_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/map.bin" + "blockdata_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_FLAT1_1F", @@ -3129,7 +3441,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_Flat1_1F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_Flat1_1F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_Flat1_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_RUSTBORO_CITY_FLAT1_2F", @@ -3139,7 +3452,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/RustboroCity_Flat1_2F/border.bin", - "blockdata_filepath": "data/layouts/RustboroCity_Flat1_2F/map.bin" + "blockdata_filepath": "data/layouts/RustboroCity_Flat1_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_EVER_GRANDE_CITY_HALL4", @@ -3149,7 +3463,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_EliteFour", "border_filepath": "data/layouts/EverGrandeCity_Hall4/border.bin", - "blockdata_filepath": "data/layouts/EverGrandeCity_Hall4/map.bin" + "blockdata_filepath": "data/layouts/EverGrandeCity_Hall4/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", @@ -3159,7 +3474,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/border.bin", - "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/map.bin" + "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", @@ -3169,7 +3485,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/border.bin", - "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/map.bin" + "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", @@ -3179,7 +3496,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Facility", "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/border.bin", - "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/map.bin" + "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE131_SKY_PILLAR", @@ -3189,7 +3507,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/Route131_SkyPillar/border.bin", - "blockdata_filepath": "data/layouts/Route131_SkyPillar/map.bin" + "blockdata_filepath": "data/layouts/Route131_SkyPillar/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_ENTRANCE", @@ -3199,7 +3518,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SkyPillar_Entrance/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_Entrance/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_OUTSIDE", @@ -3209,7 +3529,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_Outside/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_Outside/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_Outside/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_1F", @@ -3219,7 +3540,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_1F/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_1F/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_2F", @@ -3229,7 +3551,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_2F/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_2F/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_3F", @@ -3239,7 +3562,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_3F/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_3F/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_4F", @@ -3249,7 +3573,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_4F/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_4F/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_4F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA", @@ -3259,7 +3584,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/SeafloorCavern_Room9_Lava/border.bin", - "blockdata_filepath": "data/layouts/SeafloorCavern_Room9_Lava/map.bin" + "blockdata_filepath": "data/layouts/SeafloorCavern_Room9_Lava/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE", @@ -3269,7 +3595,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/MossdeepCity_StevensHouse/border.bin", - "blockdata_filepath": "data/layouts/MossdeepCity_StevensHouse/map.bin" + "blockdata_filepath": "data/layouts/MossdeepCity_StevensHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", @@ -3279,7 +3606,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ShoalCave_LowTideIceRoom/border.bin", - "blockdata_filepath": "data/layouts/ShoalCave_LowTideIceRoom/map.bin" + "blockdata_filepath": "data/layouts/ShoalCave_LowTideIceRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_REST_HOUSE", @@ -3289,7 +3617,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_GenericBuilding", "border_filepath": "data/layouts/SafariZone_RestHouse/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_RestHouse/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_RestHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_5F", @@ -3299,7 +3628,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_5F/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_5F/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_5F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_TOP", @@ -3309,7 +3639,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_Top/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_Top/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_Top/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", @@ -3319,7 +3650,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleDome", "border_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", @@ -3329,7 +3661,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleDome", "border_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM", @@ -3339,7 +3672,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleDome", "border_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM", @@ -3349,7 +3683,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleDome", "border_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_1F", @@ -3359,7 +3694,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_1F/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_1F/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_2F_1R", @@ -3369,7 +3705,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_2F_1R/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_2F_1R/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_2F_1R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_2F_2R", @@ -3379,7 +3716,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_2F_2R/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_2F_2R/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_2F_2R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_3F_1R", @@ -3389,7 +3727,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_3F_1R/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_3F_1R/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_3F_1R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_3F_2R", @@ -3399,7 +3738,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_3F_2R/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_3F_2R/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_3F_2R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_4F", @@ -3409,7 +3749,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_4F/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_4F/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_4F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY", @@ -3419,7 +3760,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePalace", "border_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR", @@ -3429,7 +3771,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BattlePalace", "border_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM", @@ -3439,7 +3782,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BattlePalace", "border_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST", @@ -3449,7 +3793,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BattleFrontierOutsideEast", "border_filepath": "data/layouts/BattleFrontier_OutsideEast/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_OutsideEast/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_OutsideEast/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY", @@ -3459,7 +3804,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFactory", "border_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM", @@ -3469,7 +3815,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFactory", "border_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM", @@ -3479,7 +3826,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFactory", "border_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", @@ -3489,7 +3837,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", @@ -3499,7 +3848,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", @@ -3509,7 +3859,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", @@ -3519,7 +3870,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", @@ -3529,7 +3881,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY", @@ -3539,7 +3892,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleArena", "border_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR", @@ -3549,7 +3903,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleArena", "border_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM", @@ -3559,7 +3914,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleArena", "border_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE", @@ -3569,7 +3925,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Sootopolis", "border_filepath": "data/layouts/SootopolisCity_LegendsBattle/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", @@ -3579,7 +3936,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED", @@ -3589,7 +3947,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", @@ -3599,7 +3958,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR", @@ -3609,7 +3969,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE01", @@ -3619,7 +3980,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare01/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare01/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare01/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE02", @@ -3629,7 +3991,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare02/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare02/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare02/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE03", @@ -3639,7 +4002,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare03/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare03/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare03/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE04", @@ -3649,7 +4013,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare04/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare04/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare04/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE05", @@ -3659,7 +4024,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare05/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare05/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare05/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE06", @@ -3669,7 +4035,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare06/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare06/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare06/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE07", @@ -3679,7 +4046,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare07/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare07/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare07/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE08", @@ -3689,7 +4057,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare08/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare08/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare08/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE09", @@ -3699,7 +4068,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare09/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare09/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare09/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE10", @@ -3709,7 +4079,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare10/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare10/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare10/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE11", @@ -3719,7 +4090,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare11/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare11/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare11/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE12", @@ -3729,7 +4101,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare12/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare12/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare12/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE13", @@ -3739,7 +4112,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare13/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare13/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare13/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE14", @@ -3749,7 +4123,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare14/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare14/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare14/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE15", @@ -3759,7 +4134,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare15/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare15/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare15/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_PYRAMID_SQUARE16", @@ -3769,7 +4145,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattlePyramidSquare16/border.bin", - "blockdata_filepath": "data/layouts/BattlePyramidSquare16/map.bin" + "blockdata_filepath": "data/layouts/BattlePyramidSquare16/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP", @@ -3779,7 +4156,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePyramid", "border_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_3F_3R", @@ -3789,7 +4167,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_3F_3R/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_3F_3R/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_3F_3R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MAGMA_HIDEOUT_2F_3R", @@ -3799,7 +4178,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lavaridge", "border_filepath": "data/layouts/MagmaHideout_2F_3R/border.bin", - "blockdata_filepath": "data/layouts/MagmaHideout_2F_3R/map.bin" + "blockdata_filepath": "data/layouts/MagmaHideout_2F_3R/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MIRAGE_TOWER_1F", @@ -3809,7 +4189,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MirageTower", "border_filepath": "data/layouts/MirageTower_1F/border.bin", - "blockdata_filepath": "data/layouts/MirageTower_1F/map.bin" + "blockdata_filepath": "data/layouts/MirageTower_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MIRAGE_TOWER_2F", @@ -3819,7 +4200,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MirageTower", "border_filepath": "data/layouts/MirageTower_2F/border.bin", - "blockdata_filepath": "data/layouts/MirageTower_2F/map.bin" + "blockdata_filepath": "data/layouts/MirageTower_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MIRAGE_TOWER_3F", @@ -3829,7 +4211,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MirageTower", "border_filepath": "data/layouts/MirageTower_3F/border.bin", - "blockdata_filepath": "data/layouts/MirageTower_3F/map.bin" + "blockdata_filepath": "data/layouts/MirageTower_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_TENT_LOBBY", @@ -3839,7 +4222,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleTent", "border_filepath": "data/layouts/BattleTentLobby/border.bin", - "blockdata_filepath": "data/layouts/BattleTentLobby/map.bin" + "blockdata_filepath": "data/layouts/BattleTentLobby/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_TENT_CORRIDOR", @@ -3849,7 +4233,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleTent", "border_filepath": "data/layouts/BattleTentCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleTentCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleTentCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", @@ -3859,7 +4244,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleTent", "border_filepath": "data/layouts/BattleTentBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleTentBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleTentBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", @@ -3869,7 +4255,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BattleTent", "border_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/border.bin", - "blockdata_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/map.bin" + "blockdata_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MIRAGE_TOWER_4F", @@ -3879,7 +4266,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MirageTower", "border_filepath": "data/layouts/MirageTower_4F/border.bin", - "blockdata_filepath": "data/layouts/MirageTower_4F/map.bin" + "blockdata_filepath": "data/layouts/MirageTower_4F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_DESERT_UNDERPASS", @@ -3889,7 +4277,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/DesertUnderpass/border.bin", - "blockdata_filepath": "data/layouts/DesertUnderpass/map.bin" + "blockdata_filepath": "data/layouts/DesertUnderpass/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", @@ -3899,7 +4288,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", @@ -3909,7 +4299,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ROUTE111_NO_MIRAGE_TOWER", @@ -3919,7 +4310,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Mauville", "border_filepath": "data/layouts/Route111_NoMirageTower/border.bin", - "blockdata_filepath": "data/layouts/Route111_NoMirageTower/map.bin" + "blockdata_filepath": "data/layouts/Route111_NoMirageTower/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNION_ROOM", @@ -3929,7 +4321,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_UnionRoom", "border_filepath": "data/layouts/UnionRoom/border.bin", - "blockdata_filepath": "data/layouts/UnionRoom/map.bin" + "blockdata_filepath": "data/layouts/UnionRoom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_NORTHEAST", @@ -3939,7 +4332,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/SafariZone_Northeast/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_Northeast/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_Northeast/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SAFARI_ZONE_SOUTHEAST", @@ -3949,7 +4343,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Lilycove", "border_filepath": "data/layouts/SafariZone_Southeast/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_Southeast/map.bin" + "blockdata_filepath": "data/layouts/SafariZone_Southeast/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_RANKING_HALL", @@ -3959,7 +4354,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontierRankingHall", "border_filepath": "data/layouts/BattleFrontier_RankingHall/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_RankingHall/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_RankingHall/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", @@ -3969,7 +4365,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_Lounge1/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_Lounge1/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_Lounge1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", @@ -3979,7 +4376,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE", @@ -3989,7 +4387,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_ReceptionGate/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_ReceptionGate/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_ReceptionGate/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ARTISAN_CAVE_B1F", @@ -3999,7 +4398,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ArtisanCave_B1F/border.bin", - "blockdata_filepath": "data/layouts/ArtisanCave_B1F/map.bin" + "blockdata_filepath": "data/layouts/ArtisanCave_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ARTISAN_CAVE_1F", @@ -4009,7 +4409,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/ArtisanCave_1F/border.bin", - "blockdata_filepath": "data/layouts/ArtisanCave_1F/map.bin" + "blockdata_filepath": "data/layouts/ArtisanCave_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FARAWAY_ISLAND_ENTRANCE", @@ -4019,7 +4420,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Rustboro", "border_filepath": "data/layouts/FarawayIsland_Entrance/border.bin", - "blockdata_filepath": "data/layouts/FarawayIsland_Entrance/map.bin" + "blockdata_filepath": "data/layouts/FarawayIsland_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_FARAWAY_ISLAND_INTERIOR", @@ -4029,7 +4431,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Fortree", "border_filepath": "data/layouts/FarawayIsland_Interior/border.bin", - "blockdata_filepath": "data/layouts/FarawayIsland_Interior/map.bin" + "blockdata_filepath": "data/layouts/FarawayIsland_Interior/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BIRTH_ISLAND_EXTERIOR", @@ -4039,7 +4442,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Dewford", "border_filepath": "data/layouts/BirthIsland_Exterior/border.bin", - "blockdata_filepath": "data/layouts/BirthIsland_Exterior/map.bin" + "blockdata_filepath": "data/layouts/BirthIsland_Exterior/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ISLAND_HARBOR", @@ -4049,7 +4453,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_IslandHarbor", "border_filepath": "data/layouts/IslandHarbor/border.bin", - "blockdata_filepath": "data/layouts/IslandHarbor/map.bin" + "blockdata_filepath": "data/layouts/IslandHarbor/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_MARINE_CAVE", @@ -4059,7 +4464,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_MarineCave/border.bin", - "blockdata_filepath": "data/layouts/Underwater_MarineCave/map.bin" + "blockdata_filepath": "data/layouts/Underwater_MarineCave/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MARINE_CAVE_ENTRANCE", @@ -4069,7 +4475,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/MarineCave_Entrance/border.bin", - "blockdata_filepath": "data/layouts/MarineCave_Entrance/map.bin" + "blockdata_filepath": "data/layouts/MarineCave_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TERRA_CAVE_ENTRANCE", @@ -4079,7 +4486,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/TerraCave_Entrance/border.bin", - "blockdata_filepath": "data/layouts/TerraCave_Entrance/map.bin" + "blockdata_filepath": "data/layouts/TerraCave_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TERRA_CAVE_END", @@ -4089,7 +4497,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/TerraCave_End/border.bin", - "blockdata_filepath": "data/layouts/TerraCave_End/map.bin" + "blockdata_filepath": "data/layouts/TerraCave_End/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE105", @@ -4099,7 +4508,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route105/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route105/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route105/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE125", @@ -4109,7 +4519,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route125/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route125/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route125/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_UNDERWATER_ROUTE129", @@ -4119,7 +4530,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Underwater", "border_filepath": "data/layouts/Underwater_Route129/border.bin", - "blockdata_filepath": "data/layouts/Underwater_Route129/map.bin" + "blockdata_filepath": "data/layouts/Underwater_Route129/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_MARINE_CAVE_END", @@ -4129,7 +4541,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/MarineCave_End/border.bin", - "blockdata_filepath": "data/layouts/MarineCave_End/map.bin" + "blockdata_filepath": "data/layouts/MarineCave_End/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRAINER_HILL_ENTRANCE", @@ -4139,7 +4552,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrainerHill", "border_filepath": "data/layouts/TrainerHill_Entrance/border.bin", - "blockdata_filepath": "data/layouts/TrainerHill_Entrance/map.bin" + "blockdata_filepath": "data/layouts/TrainerHill_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRAINER_HILL_1F", @@ -4149,7 +4563,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrainerHill", "border_filepath": "data/layouts/TrainerHill_1F/border.bin", - "blockdata_filepath": "data/layouts/TrainerHill_1F/map.bin" + "blockdata_filepath": "data/layouts/TrainerHill_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRAINER_HILL_2F", @@ -4159,7 +4574,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrainerHill", "border_filepath": "data/layouts/TrainerHill_2F/border.bin", - "blockdata_filepath": "data/layouts/TrainerHill_2F/map.bin" + "blockdata_filepath": "data/layouts/TrainerHill_2F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRAINER_HILL_3F", @@ -4169,7 +4585,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrainerHill", "border_filepath": "data/layouts/TrainerHill_3F/border.bin", - "blockdata_filepath": "data/layouts/TrainerHill_3F/map.bin" + "blockdata_filepath": "data/layouts/TrainerHill_3F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRAINER_HILL_4F", @@ -4179,7 +4596,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrainerHill", "border_filepath": "data/layouts/TrainerHill_4F/border.bin", - "blockdata_filepath": "data/layouts/TrainerHill_4F/map.bin" + "blockdata_filepath": "data/layouts/TrainerHill_4F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_TRAINER_HILL_ROOF", @@ -4189,7 +4607,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_TrainerHill", "border_filepath": "data/layouts/TrainerHill_Roof/border.bin", - "blockdata_filepath": "data/layouts/TrainerHill_Roof/map.bin" + "blockdata_filepath": "data/layouts/TrainerHill_Roof/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_ALTERING_CAVE", @@ -4199,7 +4618,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", "border_filepath": "data/layouts/AlteringCave/border.bin", - "blockdata_filepath": "data/layouts/AlteringCave/map.bin" + "blockdata_filepath": "data/layouts/AlteringCave/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_EXTERIOR", @@ -4209,7 +4629,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Dewford", "border_filepath": "data/layouts/NavelRock_Exterior/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_Exterior/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_Exterior/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_ENTRANCE", @@ -4219,7 +4640,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_Entrance/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_Entrance/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_Entrance/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_TOP", @@ -4229,7 +4651,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_Top/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_Top/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_Top/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_BOTTOM", @@ -4239,7 +4662,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_Bottom/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_Bottom/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_Bottom/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", @@ -4249,7 +4673,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_LadderRoom1/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_LadderRoom1/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_LadderRoom1/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", @@ -4259,7 +4684,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_LadderRoom2/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_LadderRoom2/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_LadderRoom2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_B1F", @@ -4269,7 +4695,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_B1F/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_B1F/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_NAVEL_ROCK_FORK", @@ -4279,7 +4706,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_NavelRock", "border_filepath": "data/layouts/NavelRock_Fork/border.bin", - "blockdata_filepath": "data/layouts/NavelRock_Fork/map.bin" + "blockdata_filepath": "data/layouts/NavelRock_Fork/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", @@ -4289,7 +4717,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_Lounge2/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_Lounge2/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_Lounge2/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE", @@ -4299,7 +4728,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattleFrontier", "border_filepath": "data/layouts/BattleFrontier_ScottsHouse/border.bin", - "blockdata_filepath": "data/layouts/BattleFrontier_ScottsHouse/map.bin" + "blockdata_filepath": "data/layouts/BattleFrontier_ScottsHouse/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_METEOR_FALLS_STEVENS_CAVE", @@ -4309,7 +4739,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_MeteorFalls", "border_filepath": "data/layouts/MeteorFalls_StevensCave/border.bin", - "blockdata_filepath": "data/layouts/MeteorFalls_StevensCave/map.bin" + "blockdata_filepath": "data/layouts/MeteorFalls_StevensCave/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE", @@ -4319,7 +4750,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Lab", "border_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/border.bin", - "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/map.bin" + "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_1F_CLEAN", @@ -4329,7 +4761,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_1F_Clean/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_1F_Clean/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_1F_Clean/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_2F_CLEAN", @@ -4339,7 +4772,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_2F_Clean/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_2F_Clean/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_2F_Clean/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_3F_CLEAN", @@ -4349,7 +4783,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_3F_Clean/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_3F_Clean/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_3F_Clean/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_4F_CLEAN", @@ -4359,7 +4794,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_4F_Clean/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_4F_Clean/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_4F_Clean/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_5F_CLEAN", @@ -4369,7 +4805,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_5F_Clean/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_5F_Clean/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_5F_Clean/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SKY_PILLAR_TOP_CLEAN", @@ -4379,7 +4816,8 @@ "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Pacifidlog", "border_filepath": "data/layouts/SkyPillar_Top_Clean/border.bin", - "blockdata_filepath": "data/layouts/SkyPillar_Top_Clean/map.bin" + "blockdata_filepath": "data/layouts/SkyPillar_Top_Clean/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", @@ -4389,7 +4827,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MysteryEventsHouse", "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", @@ -4399,7 +4838,8 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MysteryEventsHouse", "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/map.bin", + "layout_version": "emerald" }, { "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED", @@ -4409,7 +4849,4480 @@ "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_MysteryEventsHouse", "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/border.bin", - "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/map.bin" + "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/map.bin", + "layout_version": "emerald" + }, + { + "id": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_1F_FRLG", + "name": "PalletTown_PlayersHouse_1F_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding1", + "border_filepath": "data/layouts/PalletTown_PlayersHouse_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_PlayersHouse_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_2F_FRLG", + "name": "PalletTown_PlayersHouse_2F_FRLG_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding1", + "border_filepath": "data/layouts/PalletTown_PlayersHouse_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_PlayersHouse_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PALLET_TOWN_RIVALS_HOUSE", + "name": "PalletTown_RivalsHouse_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/PalletTown_RivalsHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_RivalsHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "name": "PalletTown_ProfessorOaksLab_Layout", + "width": 13, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Lab_Frlg", + "border_filepath": "data/layouts/PalletTown_ProfessorOaksLab_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_ProfessorOaksLab_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_HOUSE1_FRLG", + "name": "House1_FRLG_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding1", + "border_filepath": "data/layouts/House1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/House1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_HOUSE2_FRLG", + "name": "House2_FRLG_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/House2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/House2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "name": "PokemonCenter_1F_FRLG_Layout", + "width": 15, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonCenterFrlg", + "border_filepath": "data/layouts/PokemonCenter_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonCenter_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "name": "PokemonCenter_2F_FRLG_Layout", + "width": 15, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonCenterFrlg", + "border_filepath": "data/layouts/PokemonCenter_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonCenter_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MART_FRLG", + "name": "Mart_Layout_FRLG", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Mart", + "border_filepath": "data/layouts/Mart_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Mart_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_HOUSE3_FRLG", + "name": "House3_FRLG_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/House3_Frlg/border.bin", + "blockdata_filepath": "data/layouts/House3_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CITY_GYM", + "name": "CeruleanCity_Gym_Layout", + "width": 17, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CeruleanGym", + "border_filepath": "data/layouts/CeruleanCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_HOUSE4_FRLG", + "name": "House4_FRLG_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/House4_Frlg/border.bin", + "blockdata_filepath": "data/layouts/House4_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_GYM", + "name": "CeladonCity_Gym_Layout", + "width": 13, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CeladonGym", + "border_filepath": "data/layouts/CeladonCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_POKEMON_CENTER_1F", + "name": "RS_PokemonCenter_1F_Layout", + "width": 14, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonCenterFrlg", + "border_filepath": "data/layouts/RS_PokemonCenter_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_PokemonCenter_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "name": "FiveIsland_ResortGorgeous_House_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Museum", + "border_filepath": "data/layouts/FiveIsland_ResortGorgeous_House_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_ResortGorgeous_House_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_GYM", + "name": "FuchsiaCity_Gym_Layout", + "width": 15, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_FuchsiaGym", + "border_filepath": "data/layouts/FuchsiaCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_HOUSE5_FRLG", + "name": "House5_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding1", + "border_filepath": "data/layouts/House5_Frlg/border.bin", + "blockdata_filepath": "data/layouts/House5_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VERMILION_CITY_GYM", + "name": "VermilionCity_Gym_Layout", + "width": 11, + "height": 21, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_VermilionGym", + "border_filepath": "data/layouts/VermilionCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/VermilionCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CITY_BIKE_SHOP", + "name": "CeruleanCity_BikeShop_Layout", + "width": 11, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_BikeShop_Frlg", + "border_filepath": "data/layouts/CeruleanCity_BikeShop_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_BikeShop_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_GAME_CORNER", + "name": "CeladonCity_GameCorner_Layout", + "width": 18, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GameCorner", + "border_filepath": "data/layouts/CeladonCity_GameCorner_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_GameCorner_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PEWTER_CITY_GYM", + "name": "PewterCity_Gym_Layout", + "width": 13, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PewterGym", + "border_filepath": "data/layouts/PewterCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND_LORELEIS_HOUSE", + "name": "FourIsland_LoreleisHouse_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SafariZoneBuilding", + "border_filepath": "data/layouts/FourIsland_LoreleisHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_LoreleisHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND_HOUSE1", + "name": "ThreeIsland_House1_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Lab_Frlg", + "border_filepath": "data/layouts/ThreeIsland_House1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_House1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_GYM", + "name": "SaffronCity_Gym_Layout", + "width": 29, + "height": 25, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SaffronGym", + "border_filepath": "data/layouts/SaffronCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_GYM", + "name": "CinnabarIsland_Gym_Layout", + "width": 30, + "height": 25, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CinnabarGym", + "border_filepath": "data/layouts/CinnabarIsland_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY_GYM", + "name": "ViridianCity_Gym_Layout", + "width": 20, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_ViridianGym", + "border_filepath": "data/layouts/ViridianCity_Gym_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_Gym_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_SAFARI_ZONE_ENTRANCE", + "name": "RS_SafariZone_Entrance_Layout", + "width": 18, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Mart", + "border_filepath": "data/layouts/RS_SafariZone_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_SafariZone_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_BATTLE_COLOSSEUM_2P_FRLG", + "name": "BattleColosseum_2P_FRLG_Layout", + "width": 14, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CableClub_Frlg", + "border_filepath": "data/layouts/BattleColosseum_2P_Frlg/border.bin", + "blockdata_filepath": "data/layouts/BattleColosseum_2P_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRADE_CENTER_FRLG", + "name": "TradeCenter_FRLG_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CableClub_Frlg", + "border_filepath": "data/layouts/TradeCenter_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TradeCenter_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RECORD_CORNER_FRLG", + "name": "RecordCorner_FRLG_Layout", + "width": 20, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CableClub_Frlg", + "border_filepath": "data/layouts/RecordCorner_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RecordCorner_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_BATTLE_COLOSSEUM_4P_FRLG", + "name": "BattleColosseum_4P_FRLG_Layout", + "width": 14, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_CableClub_Frlg", + "border_filepath": "data/layouts/BattleColosseum_4P_Frlg/border.bin", + "blockdata_filepath": "data/layouts/BattleColosseum_4P_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "name": "FuchsiaCity_SafariZone_Entrance_Layout", + "width": 9, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SafariZoneBuilding", + "border_filepath": "data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_SafariZone_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_SAFARI_ZONE_NORTHEAST", + "name": "RS_SafariZone_Northeast_Layout", + "width": 40, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CinnabarIsland", + "border_filepath": "data/layouts/RS_SafariZone_Northeast_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_SafariZone_Northeast_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_SAFARI_ZONE_SOUTHWEST", + "name": "RS_SafariZone_Southwest_Layout", + "width": 40, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CinnabarIsland", + "border_filepath": "data/layouts/RS_SafariZone_Southwest_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_SafariZone_Southwest_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_SAFARI_ZONE_SOUTHEAST", + "name": "RS_SafariZone_Southeast_Layout", + "width": 40, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CinnabarIsland", + "border_filepath": "data/layouts/RS_SafariZone_Southeast_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_SafariZone_Southeast_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_BATTLE_TOWER", + "name": "RS_BattleTower_Layout", + "width": 29, + "height": 30, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PewterCity", + "border_filepath": "data/layouts/RS_BattleTower_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_BattleTower_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_EREADER_TRAINER_HOUSE_1F", + "name": "MossdeepCity_EReaderTrainerHouse_1F_Layout", + "width": 11, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_HoennBuilding", + "border_filepath": "data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_EReaderTrainerHouse_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_EREADER_TRAINER_HOUSE_2F", + "name": "MossdeepCity_EReaderTrainerHouse_2F_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_HoennBuilding", + "border_filepath": "data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_EReaderTrainerHouse_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_RS_SAFARI_ZONE_REST_HOUSE", + "name": "RS_SafariZone_RestHouse_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_HoennBuilding", + "border_filepath": "data/layouts/RS_SafariZone_RestHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RS_SafariZone_RestHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PALLET_TOWN", + "name": "PalletTown_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/PalletTown_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PalletTown_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY", + "name": "ViridianCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_ViridianCity", + "border_filepath": "data/layouts/ViridianCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PEWTER_CITY", + "name": "PewterCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PewterCity", + "border_filepath": "data/layouts/PewterCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CITY", + "name": "CeruleanCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCity", + "border_filepath": "data/layouts/CeruleanCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_LAVENDER_TOWN", + "name": "LavenderTown_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_LavenderTown", + "border_filepath": "data/layouts/LavenderTown_Frlg/border.bin", + "blockdata_filepath": "data/layouts/LavenderTown_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VERMILION_CITY", + "name": "VermilionCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_VermilionCity", + "border_filepath": "data/layouts/VermilionCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/VermilionCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY", + "name": "CeladonCity_Layout", + "width": 60, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/CeladonCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FUCHSIA_CITY", + "name": "FuchsiaCity_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/FuchsiaCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND", + "name": "CinnabarIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CinnabarIsland", + "border_filepath": "data/layouts/CinnabarIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_INDIGO_PLATEAU_EXTERIOR", + "name": "IndigoPlateau_Exterior_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_IndigoPlateau", + "border_filepath": "data/layouts/IndigoPlateau_Exterior_Frlg/border.bin", + "blockdata_filepath": "data/layouts/IndigoPlateau_Exterior_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_CONNECTION", + "name": "SaffronCity_Connection_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SaffronCity", + "border_filepath": "data/layouts/SaffronCity_Connection_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Connection_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE1", + "name": "Route1_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/Route1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE2", + "name": "Route2_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_ViridianCity", + "border_filepath": "data/layouts/Route2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE3", + "name": "Route3_Layout", + "width": 84, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PewterCity", + "border_filepath": "data/layouts/Route3_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route3_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE4", + "name": "Route4_Layout", + "width": 108, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCity", + "border_filepath": "data/layouts/Route4_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route4_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE5", + "name": "Route5_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCity", + "border_filepath": "data/layouts/Route5_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route5_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE6", + "name": "Route6_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_VermilionCity", + "border_filepath": "data/layouts/Route6_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route6_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE7", + "name": "Route7_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Route7_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route7_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE8", + "name": "Route8_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_LavenderTown", + "border_filepath": "data/layouts/Route8_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route8_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE9", + "name": "Route9_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCity", + "border_filepath": "data/layouts/Route9_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route9_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE10", + "name": "Route10_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_LavenderTown", + "border_filepath": "data/layouts/Route10_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route10_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE11", + "name": "Route11_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_VermilionCity", + "border_filepath": "data/layouts/Route11_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route11_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE12", + "name": "Route12_Layout", + "width": 24, + "height": 120, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_LavenderTown", + "border_filepath": "data/layouts/Route12_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route12_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE13", + "name": "Route13_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_LavenderTown", + "border_filepath": "data/layouts/Route13_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route13_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE14", + "name": "Route14_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_LavenderTown", + "border_filepath": "data/layouts/Route14_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route14_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE15", + "name": "Route15_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/Route15_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route15_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE16", + "name": "Route16_Layout", + "width": 48, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Route16_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route16_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE17", + "name": "Route17_Layout", + "width": 24, + "height": 160, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Route17_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route17_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE18", + "name": "Route18_Layout", + "width": 60, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Route18_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route18_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE19", + "name": "Route19_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/Route19_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route19_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE20", + "name": "Route20_Layout", + "width": 120, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CinnabarIsland", + "border_filepath": "data/layouts/Route20_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route20_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE21_NORTH", + "name": "Route21_North_Layout", + "width": 24, + "height": 50, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/Route21_North_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route21_North_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE22", + "name": "Route22_Layout", + "width": 48, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_ViridianCity", + "border_filepath": "data/layouts/Route22_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route22_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE23", + "name": "Route23_Layout", + "width": 24, + "height": 160, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_IndigoPlateau", + "border_filepath": "data/layouts/Route23_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route23_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE24", + "name": "Route24_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCity", + "border_filepath": "data/layouts/Route24_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route24_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE25", + "name": "Route25_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCity", + "border_filepath": "data/layouts/Route25_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route25_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_MOON_1F", + "name": "MtMoon_1F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/MtMoon_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtMoon_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_MOON_B1F", + "name": "MtMoon_B1F_Layout", + "width": 49, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/MtMoon_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtMoon_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_MOON_B2F", + "name": "MtMoon_B2F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/MtMoon_B2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtMoon_B2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VIRIDIAN_FOREST", + "name": "ViridianForest_Layout", + "width": 54, + "height": 69, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_ViridianForest", + "border_filepath": "data/layouts/ViridianForest_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ViridianForest_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_EXTERIOR", + "name": "SSAnne_Exterior_Layout", + "width": 70, + "height": 32, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_VermilionCity", + "border_filepath": "data/layouts/SSAnne_Exterior_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Exterior_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_1F_CORRIDOR", + "name": "SSAnne_1F_Corridor_Layout", + "width": 31, + "height": 21, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_1F_Corridor_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_1F_Corridor_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_2F_CORRIDOR", + "name": "SSAnne_2F_Corridor_Layout", + "width": 34, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_2F_Corridor_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_2F_Corridor_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_3F_CORRIDOR", + "name": "SSAnne_3F_Corridor_Layout", + "width": 22, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_3F_Corridor_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_3F_Corridor_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_B1F_CORRIDOR", + "name": "SSAnne_B1F_Corridor_Layout", + "width": 23, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_B1F_Corridor_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_B1F_Corridor_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_DECK", + "name": "SSAnne_Deck_Layout", + "width": 24, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_Deck_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Deck_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_DIGLETTS_CAVE_B1F", + "name": "DiglettsCave_B1F_Layout", + "width": 85, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_DiglettsCave", + "border_filepath": "data/layouts/DiglettsCave_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/DiglettsCave_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VICTORY_ROAD_1F_FRLG", + "name": "VictoryRoad_1F_FRLG_Layout", + "width": 48, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/VictoryRoad_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VICTORY_ROAD_2F", + "name": "VictoryRoad_2F_Layout", + "width": 51, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/VictoryRoad_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VICTORY_ROAD_3F", + "name": "VictoryRoad_3F_Layout", + "width": 45, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/VictoryRoad_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B1F", + "name": "RocketHideout_B1F_Layout", + "width": 28, + "height": 34, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/RocketHideout_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B2F", + "name": "RocketHideout_B2F_Layout", + "width": 32, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/RocketHideout_B2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B3F", + "name": "RocketHideout_B3F_Layout", + "width": 22, + "height": 27, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/RocketHideout_B3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_B4F", + "name": "RocketHideout_B4F_Layout", + "width": 24, + "height": 26, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/RocketHideout_B4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_B4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_1F", + "name": "SilphCo_1F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_2F", + "name": "SilphCo_2F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_3F", + "name": "SilphCo_3F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_4F", + "name": "SilphCo_4F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_5F", + "name": "SilphCo_5F_Layout", + "width": 36, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_6F", + "name": "SilphCo_6F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_6F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_6F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_7F", + "name": "SilphCo_7F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_7F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_7F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_8F", + "name": "SilphCo_8F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_8F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_8F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_9F", + "name": "SilphCo_9F_Layout", + "width": 31, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_9F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_9F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_10F", + "name": "SilphCo_10F_Layout", + "width": 17, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_10F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_10F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_11F", + "name": "SilphCo_11F_Layout", + "width": 17, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_11F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_11F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_MANSION_1F", + "name": "PokemonMansion_1F_Layout", + "width": 38, + "height": 35, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonMansion", + "border_filepath": "data/layouts/PokemonMansion_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_MANSION_2F", + "name": "PokemonMansion_2F_Layout", + "width": 38, + "height": 38, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonMansion", + "border_filepath": "data/layouts/PokemonMansion_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_MANSION_3F", + "name": "PokemonMansion_3F_Layout", + "width": 38, + "height": 35, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonMansion", + "border_filepath": "data/layouts/PokemonMansion_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_MANSION_B1F", + "name": "PokemonMansion_B1F_Layout", + "width": 38, + "height": 35, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonMansion", + "border_filepath": "data/layouts/PokemonMansion_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonMansion_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFARI_ZONE_CENTER", + "name": "SafariZone_Center_Layout", + "width": 51, + "height": 36, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/SafariZone_Center_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Center_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFARI_ZONE_EAST", + "name": "SafariZone_East_Layout", + "width": 54, + "height": 35, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/SafariZone_East_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_East_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFARI_ZONE_NORTH_FRLG", + "name": "SafariZone_North_FRLG_Layout", + "width": 57, + "height": 40, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/SafariZone_North_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_North_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFARI_ZONE_WEST", + "name": "SafariZone_West_Layout", + "width": 48, + "height": 36, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_FuchsiaCity", + "border_filepath": "data/layouts/SafariZone_West_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_West_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CAVE_1F", + "name": "CeruleanCave_1F_Layout", + "width": 40, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCave", + "border_filepath": "data/layouts/CeruleanCave_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCave_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CAVE_2F", + "name": "CeruleanCave_2F_Layout", + "width": 40, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCave", + "border_filepath": "data/layouts/CeruleanCave_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCave_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CAVE_B1F", + "name": "CeruleanCave_B1F_Layout", + "width": 40, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeruleanCave", + "border_filepath": "data/layouts/CeruleanCave_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCave_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCK_TUNNEL_1F", + "name": "RockTunnel_1F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_RockTunnel", + "border_filepath": "data/layouts/RockTunnel_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RockTunnel_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCK_TUNNEL_B1F", + "name": "RockTunnel_B1F_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_RockTunnel", + "border_filepath": "data/layouts/RockTunnel_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RockTunnel_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_1F", + "name": "SeafoamIslands_1F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B1F", + "name": "SeafoamIslands_B1F_Layout", + "width": 38, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B2F", + "name": "SeafoamIslands_B2F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_B2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B3F", + "name": "SeafoamIslands_B3F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_B3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B4F", + "name": "SeafoamIslands_B4F_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_B4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_1F", + "name": "PokemonTower_1F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_2F", + "name": "PokemonTower_2F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_3F", + "name": "PokemonTower_3F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_4F", + "name": "PokemonTower_4F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_5F", + "name": "PokemonTower_5F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_6F", + "name": "PokemonTower_6F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_6F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_6F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_TOWER_7F", + "name": "PokemonTower_7F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonTower", + "border_filepath": "data/layouts/PokemonTower_7F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonTower_7F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POWER_PLANT", + "name": "PowerPlant_Layout", + "width": 49, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PowerPlant", + "border_filepath": "data/layouts/PowerPlant_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PowerPlant_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE25_SEA_COTTAGE", + "name": "Route25_SeaCottage_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SeaCottage", + "border_filepath": "data/layouts/Route25_SeaCottage_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route25_SeaCottage_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_KITCHEN", + "name": "SSAnne_Kitchen_Layout", + "width": 16, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_Kitchen_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Kitchen_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_CAPTAINS_OFFICE", + "name": "SSAnne_CaptainsOffice_Layout", + "width": 9, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_CaptainsOffice_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_CaptainsOffice_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "name": "UndergroundPath_Entrance_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/UndergroundPath_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/UndergroundPath_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "name": "UndergroundPath_EastWestTunnel_Layout", + "width": 80, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_UndergroundPath", + "border_filepath": "data/layouts/UndergroundPath_EastWestTunnel_Frlg/border.bin", + "blockdata_filepath": "data/layouts/UndergroundPath_EastWestTunnel_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "name": "UndergroundPath_NorthSouthTunnel_Layout", + "width": 8, + "height": 63, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_UndergroundPath", + "border_filepath": "data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/border.bin", + "blockdata_filepath": "data/layouts/UndergroundPath_NorthSouthTunnel_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE12_NORTH_ENTRANCE_1F", + "name": "Route12_NorthEntrance_1F_Layout", + "width": 11, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/Route12_NorthEntrance_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route12_NorthEntrance_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_ROOM1", + "name": "SSAnne_Room1_Layout", + "width": 6, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_Room1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Room1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SSANNE_ROOM2", + "name": "SSAnne_Room2_Layout", + "width": 6, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SSAnne", + "border_filepath": "data/layouts/SSAnne_Room2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SSAnne_Room2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "name": "CeladonCity_DepartmentStore_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_Elevator_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PEWTER_CITY_MUSEUM_1F", + "name": "PewterCity_Museum_1F_Layout", + "width": 28, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Museum", + "border_filepath": "data/layouts/PewterCity_Museum_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Museum_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PEWTER_CITY_MUSEUM_2F", + "name": "PewterCity_Museum_2F_Layout", + "width": 19, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Museum", + "border_filepath": "data/layouts/PewterCity_Museum_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PewterCity_Museum_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CITY_HOUSE2", + "name": "CeruleanCity_House2_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_BurgledHouse", + "border_filepath": "data/layouts/CeruleanCity_House2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_House2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CITY_HOUSE1", + "name": "CeruleanCity_House1_Layout", + "width": 10, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/CeruleanCity_House1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_House1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_1F", + "name": "CeladonCity_Condominiums_1F_Layout", + "width": 15, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Condominiums", + "border_filepath": "data/layouts/CeladonCity_Condominiums_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_2F", + "name": "CeladonCity_Condominiums_2F_Layout", + "width": 15, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Condominiums", + "border_filepath": "data/layouts/CeladonCity_Condominiums_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_3F", + "name": "CeladonCity_Condominiums_3F_Layout", + "width": 15, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Condominiums", + "border_filepath": "data/layouts/CeladonCity_Condominiums_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF", + "name": "CeladonCity_Condominiums_Roof_Layout", + "width": 14, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Condominiums", + "border_filepath": "data/layouts/CeladonCity_Condominiums_Roof_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_Roof_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "name": "CeladonCity_Condominiums_RoofRoom_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_School", + "border_filepath": "data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Condominiums_RoofRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "name": "CeladonCity_GameCorner_PrizeRoom_Layout", + "width": 9, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GameCorner", + "border_filepath": "data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_GameCorner_PrizeRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_RESTAURANT", + "name": "CeladonCity_Restaurant_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_RestaurantHotel", + "border_filepath": "data/layouts/CeladonCity_Restaurant_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Restaurant_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_HOTEL", + "name": "CeladonCity_Hotel_Layout", + "width": 17, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_RestaurantHotel", + "border_filepath": "data/layouts/CeladonCity_Hotel_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Hotel_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_1F", + "name": "CeladonCity_DepartmentStore_1F_Layout", + "width": 13, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_DepartmentStore", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_2F", + "name": "CeladonCity_DepartmentStore_2F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_DepartmentStore", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_3F", + "name": "CeladonCity_DepartmentStore_3F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_DepartmentStore", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F", + "name": "CeladonCity_DepartmentStore_4F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_DepartmentStore", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F", + "name": "CeladonCity_DepartmentStore_5F_Layout", + "width": 13, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_DepartmentStore", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "name": "CeladonCity_DepartmentStore_Roof_Layout", + "width": 19, + "height": 14, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_DepartmentStore", + "border_filepath": "data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_Roof_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFARI_ZONE_REST_HOUSE_FRLG", + "name": "SafariZone_RestHouse_FRLG_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SafariZoneBuilding", + "border_filepath": "data/layouts/SafariZone_RestHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_RestHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFARI_ZONE_SECRET_HOUSE", + "name": "SafariZone_SecretHouse_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SafariZoneBuilding", + "border_filepath": "data/layouts/SafariZone_SecretHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_SecretHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", + "name": "FuchsiaCity_SafariZone_Office_Layout", + "width": 20, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SafariZoneBuilding", + "border_filepath": "data/layouts/FuchsiaCity_SafariZone_Office_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_SafariZone_Office_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE", + "name": "FuchsiaCity_WardensHouse_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Museum", + "border_filepath": "data/layouts/FuchsiaCity_WardensHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_WardensHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FUCHSIA_CITY_HOUSE2", + "name": "FuchsiaCity_House2_Layout", + "width": 10, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Museum", + "border_filepath": "data/layouts/FuchsiaCity_House2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_House2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "name": "CinnabarIsland_PokemonLab_Entrance_Layout", + "width": 28, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Lab_Frlg", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "name": "CinnabarIsland_PokemonLab_Lounge_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Lab_Frlg", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_Lounge_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "name": "CinnabarIsland_PokemonLab_ResearchRoom_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Lab_Frlg", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "name": "CinnabarIsland_PokemonLab_ExperimentRoom_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_Lab_Frlg", + "border_filepath": "data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY", + "name": "SaffronCity_Layout", + "width": 66, + "height": 55, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SaffronCity", + "border_filepath": "data/layouts/SaffronCity_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE", + "name": "SaffronCity_NorthSouthEntrance_Layout", + "width": 9, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/SaffronCity_NorthSouthEntrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_NorthSouthEntrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE", + "name": "SaffronCity_EastWestEntrance_Layout", + "width": 13, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/SaffronCity_EastWestEntrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_EastWestEntrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_DIGLETTS_CAVE_NORTH_ENTRANCE", + "name": "DiglettsCave_NorthEntrance_Layout", + "width": 10, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_DiglettsCave", + "border_filepath": "data/layouts/DiglettsCave_NorthEntrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/DiglettsCave_NorthEntrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "name": "DiglettsCave_SouthEntrance_Layout", + "width": 10, + "height": 8, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_DiglettsCave", + "border_filepath": "data/layouts/DiglettsCave_SouthEntrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/DiglettsCave_SouthEntrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "name": "IndigoPlateau_PokemonCenter_1F_Layout", + "width": 25, + "height": 18, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonCenterFrlg", + "border_filepath": "data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/IndigoPlateau_PokemonCenter_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_LORELEIS_ROOM", + "name": "PokemonLeague_LoreleisRoom_Layout", + "width": 13, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonLeague", + "border_filepath": "data/layouts/PokemonLeague_LoreleisRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_LoreleisRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_BRUNOS_ROOM", + "name": "PokemonLeague_BrunosRoom_Layout", + "width": 13, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonLeague", + "border_filepath": "data/layouts/PokemonLeague_BrunosRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_BrunosRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_AGATHAS_ROOM", + "name": "PokemonLeague_AgathasRoom_Layout", + "width": 13, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonLeague", + "border_filepath": "data/layouts/PokemonLeague_AgathasRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_AgathasRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_LANCES_ROOM", + "name": "PokemonLeague_LancesRoom_Layout", + "width": 28, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonLeague", + "border_filepath": "data/layouts/PokemonLeague_LancesRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_LancesRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "name": "PokemonLeague_ChampionsRoom_Layout", + "width": 13, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonLeague", + "border_filepath": "data/layouts/PokemonLeague_ChampionsRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_ChampionsRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_POKEMON_LEAGUE_HALL_OF_FAME", + "name": "PokemonLeague_HallOfFame_Layout", + "width": 11, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_HallOfFame", + "border_filepath": "data/layouts/PokemonLeague_HallOfFame_Frlg/border.bin", + "blockdata_filepath": "data/layouts/PokemonLeague_HallOfFame_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE21_SOUTH", + "name": "Route21_South_Layout", + "width": 24, + "height": 50, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CinnabarIsland", + "border_filepath": "data/layouts/Route21_South_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route21_South_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ENTRANCE_2F", + "name": "Entrance_2F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/Entrance_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Entrance_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE2_ENTRANCE", + "name": "Route2_Entrance_Layout", + "width": 15, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/Route2_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route2_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE22_NORTH_ENTRANCE", + "name": "Route22_NorthEntrance_Layout", + "width": 15, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/Route22_NorthEntrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route22_NorthEntrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE16_NORTH_ENTRANCE_1F", + "name": "Route16_NorthEntrance_1F_Layout", + "width": 13, + "height": 18, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/Route16_NorthEntrance_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route16_NorthEntrance_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ENTRANCE_1F", + "name": "Entrance_1F_Layout", + "width": 13, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/Entrance_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Entrance_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROCKET_HIDEOUT_ELEVATOR", + "name": "RocketHideout_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/RocketHideout_Elevator_Frlg/border.bin", + "blockdata_filepath": "data/layouts/RocketHideout_Elevator_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_COPYCATS_HOUSE_1F", + "name": "SaffronCity_CopycatsHouse_1F_Layout", + "width": 13, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding1", + "border_filepath": "data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_CopycatsHouse_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_COPYCATS_HOUSE_2F", + "name": "SaffronCity_CopycatsHouse_2F_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding1", + "border_filepath": "data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_CopycatsHouse_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_DOJO", + "name": "SaffronCity_Dojo_Layout", + "width": 13, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PewterGym", + "border_filepath": "data/layouts/SaffronCity_Dojo_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_Dojo_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SILPH_CO_ELEVATOR", + "name": "SilphCo_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/SilphCo_Elevator_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SilphCo_Elevator_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ONE_ISLAND", + "name": "OneIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/OneIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TWO_ISLAND", + "name": "TwoIsland_Layout", + "width": 48, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/TwoIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TwoIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND", + "name": "ThreeIsland_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/ThreeIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND", + "name": "FourIsland_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands45", + "border_filepath": "data/layouts/FourIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND", + "name": "FiveIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands45", + "border_filepath": "data/layouts/FiveIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND", + "name": "SevenIsland_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SevenIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND", + "name": "SixIsland_Layout", + "width": 24, + "height": 30, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SixIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ONE_ISLAND_KINDLE_ROAD", + "name": "OneIsland_KindleRoad_Layout", + "width": 24, + "height": 140, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/OneIsland_KindleRoad_Frlg/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_KindleRoad_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ONE_ISLAND_TREASURE_BEACH", + "name": "OneIsland_TreasureBeach_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/OneIsland_TreasureBeach_Frlg/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_TreasureBeach_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TWO_ISLAND_CAPE_BRINK", + "name": "TwoIsland_CapeBrink_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/TwoIsland_CapeBrink_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TwoIsland_CapeBrink_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND_BOND_BRIDGE", + "name": "ThreeIsland_BondBridge_Layout", + "width": 96, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/ThreeIsland_BondBridge_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_BondBridge_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND_PORT", + "name": "ThreeIsland_Port_Layout", + "width": 48, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/ThreeIsland_Port_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_Port_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_6", + "name": "Prototype_SeviiIsle_6_Layout", + "width": 1, + "height": 1, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Prototype_SeviiIsle_6_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_6_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_7", + "name": "Prototype_SeviiIsle_7_Layout", + "width": 1, + "height": 1, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Prototype_SeviiIsle_7_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_7_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_8", + "name": "Prototype_SeviiIsle_8_Layout", + "width": 84, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Prototype_SeviiIsle_8_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_8_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_9", + "name": "Prototype_SeviiIsle_9_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_CeladonCity", + "border_filepath": "data/layouts/Prototype_SeviiIsle_9_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_9_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS", + "name": "FiveIsland_ResortGorgeous_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands45", + "border_filepath": "data/layouts/FiveIsland_ResortGorgeous_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_ResortGorgeous_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_WATER_LABYRINTH", + "name": "FiveIsland_WaterLabyrinth_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands45", + "border_filepath": "data/layouts/FiveIsland_WaterLabyrinth_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_WaterLabyrinth_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_MEADOW", + "name": "FiveIsland_Meadow_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands45", + "border_filepath": "data/layouts/FiveIsland_Meadow_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_Meadow_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_MEMORIAL_PILLAR", + "name": "FiveIsland_MemorialPillar_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands45", + "border_filepath": "data/layouts/FiveIsland_MemorialPillar_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_MemorialPillar_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_OUTCAST_ISLAND", + "name": "SixIsland_OutcastIsland_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SixIsland_OutcastIsland_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_OutcastIsland_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_GREEN_PATH", + "name": "SixIsland_GreenPath_Layout", + "width": 72, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SixIsland_GreenPath_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_GreenPath_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_WATER_PATH", + "name": "SixIsland_WaterPath_Layout", + "width": 24, + "height": 100, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SixIsland_WaterPath_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_WaterPath_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_RUIN_VALLEY", + "name": "SixIsland_RuinValley_Layout", + "width": 48, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SixIsland_RuinValley_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_RuinValley_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER", + "name": "SevenIsland_TrainerTower_Layout", + "width": 120, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SevenIsland_TrainerTower_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TrainerTower_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "name": "SevenIsland_SevaultCanyon_Entrance_Layout", + "width": 24, + "height": 40, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SevaultCanyon_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON", + "name": "SevenIsland_SevaultCanyon_Layout", + "width": 24, + "height": 80, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SevenIsland_SevaultCanyon_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SevaultCanyon_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS", + "name": "SevenIsland_TanobyRuins_Layout", + "width": 144, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_22", + "name": "Prototype_SeviiIsle_22_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/Prototype_SeviiIsle_22_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_22_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_23_EAST", + "name": "Prototype_SeviiIsle_23_East_Layout", + "width": 144, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/Prototype_SeviiIsle_23_East_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_23_East_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_23_WEST", + "name": "Prototype_SeviiIsle_23_West_Layout", + "width": 24, + "height": 60, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/Prototype_SeviiIsle_23_West_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_23_West_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_PROTOTYPE_SEVII_ISLE_24", + "name": "Prototype_SeviiIsle_24_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_PalletTown", + "border_filepath": "data/layouts/Prototype_SeviiIsle_24_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Prototype_SeviiIsle_24_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_UNION_ROOM_FRLG", + "name": "UnionRoom_FRLG_Layout", + "width": 15, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_HallOfFame", + "border_filepath": "data/layouts/UnionRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/UnionRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "name": "SaffronCity_PokemonTrainerFanClub_Layout", + "width": 11, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_FanClubDaycare", + "border_filepath": "data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SaffronCity_PokemonTrainerFanClub_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1_DOOR_OPEN", + "name": "SevenIsland_House_Room1_DoorOpen_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_House_Room1_DoorOpen_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2", + "name": "SevenIsland_House_Room2_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/SevenIsland_House_Room2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_House_Room2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY_SCHOOL", + "name": "ViridianCity_School_Layout", + "width": 10, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_School", + "border_filepath": "data/layouts/ViridianCity_School_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_School_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_RESTAURANT_DUPLICATE", + "name": "CeladonCity_Restaurant_Duplicate_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_RestaurantHotel", + "border_filepath": "data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Restaurant_Duplicate_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CELADON_CITY_HOTEL_DUPLICATE", + "name": "CeladonCity_Hotel_Duplicate_Layout", + "width": 17, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_RestaurantHotel", + "border_filepath": "data/layouts/CeladonCity_Hotel_Duplicate_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeladonCity_Hotel_Duplicate_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B4F", + "name": "MtEmber_RubyPath_B4F_Layout", + "width": 18, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND_BERRY_FOREST", + "name": "ThreeIsland_BerryForest_Layout", + "width": 57, + "height": 47, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_BerryForest", + "border_filepath": "data/layouts/ThreeIsland_BerryForest_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_BerryForest_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_1F", + "name": "OneIsland_PokemonCenter_1F_Layout", + "width": 19, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonCenterFrlg", + "border_filepath": "data/layouts/OneIsland_PokemonCenter_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_PokemonCenter_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TWO_ISLAND_JOYFUL_GAME_CORNER", + "name": "TwoIsland_JoyfulGameCorner_Layout", + "width": 12, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GameCorner", + "border_filepath": "data/layouts/TwoIsland_JoyfulGameCorner_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TwoIsland_JoyfulGameCorner_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB", + "name": "VermilionCity_PokemonFanClub_Layout", + "width": 12, + "height": 12, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_FanClubDaycare", + "border_filepath": "data/layouts/VermilionCity_PokemonFanClub_Frlg/border.bin", + "blockdata_filepath": "data/layouts/VermilionCity_PokemonFanClub_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "name": "LavenderTown_VolunteerPokemonHouse_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_FanClubDaycare", + "border_filepath": "data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/LavenderTown_VolunteerPokemonHouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ROUTE5_POKEMON_DAY_CARE", + "name": "Route5_PokemonDayCare_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_FanClubDaycare", + "border_filepath": "data/layouts/Route5_PokemonDayCare_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Route5_PokemonDayCare_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_VIRIDIAN_CITY_HOUSE", + "name": "ViridianCity_House_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/ViridianCity_House_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ViridianCity_House_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE", + "name": "FourIsland_PokemonDayCare_Layout", + "width": 12, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_FanClubDaycare", + "border_filepath": "data/layouts/FourIsland_PokemonDayCare_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_PokemonDayCare_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED", + "name": "SeafoamIslands_B3F_CurrentStopped_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B3F_CurrentStopped_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED", + "name": "SeafoamIslands_B4F_CurrentStopped_Layout", + "width": 38, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SeafoamIslands_B4F_CurrentStopped_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_EXTERIOR", + "name": "MtEmber_Exterior_Layout", + "width": 57, + "height": 54, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/MtEmber_Exterior_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_Exterior_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT", + "name": "MtEmber_Summit_Layout", + "width": 19, + "height": 22, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/MtEmber_Summit_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_Summit_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT_PATH_1F", + "name": "MtEmber_SummitPath_1F_Layout", + "width": 15, + "height": 18, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_SummitPath_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_SummitPath_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT_PATH_2F", + "name": "MtEmber_SummitPath_2F_Layout", + "width": 48, + "height": 46, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_SummitPath_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_SummitPath_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_SUMMIT_PATH_3F", + "name": "MtEmber_SummitPath_3F_Layout", + "width": 15, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_SummitPath_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_SummitPath_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_1F", + "name": "MtEmber_RubyPath_1F_Layout", + "width": 27, + "height": 19, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B1F", + "name": "MtEmber_RubyPath_B1F_Layout", + "width": 11, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B2F", + "name": "MtEmber_RubyPath_B2F_Layout", + "width": 16, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B3F", + "name": "MtEmber_RubyPath_B3F_Layout", + "width": 31, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "name": "MtEmber_RubyPath_B1F_Stairs_Layout", + "width": 6, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B1F_Stairs_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "name": "MtEmber_RubyPath_B2F_Stairs_Layout", + "width": 8, + "height": 6, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B2F_Stairs_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_MT_EMBER_RUBY_PATH_B5F", + "name": "MtEmber_RubyPath_B5F_Layout", + "width": 16, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/MtEmber_RubyPath_B5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/MtEmber_RubyPath_B5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_ROCKET_WAREHOUSE", + "name": "FiveIsland_RocketWarehouse_Layout", + "width": 29, + "height": 27, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/FiveIsland_RocketWarehouse_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_RocketWarehouse_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "name": "FourIsland_IcefallCave_Entrance_Layout", + "width": 30, + "height": 36, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/FourIsland_IcefallCave_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_1F", + "name": "FourIsland_IcefallCave_1F_Layout", + "width": 20, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/FourIsland_IcefallCave_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "name": "FourIsland_IcefallCave_B1F_Layout", + "width": 24, + "height": 20, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/FourIsland_IcefallCave_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "name": "FourIsland_IcefallCave_Back_Layout", + "width": 25, + "height": 26, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/FourIsland_IcefallCave_Back_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FourIsland_IcefallCave_Back_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_LOBBY", + "name": "TrainerTower_Lobby_Layout", + "width": 19, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_Lobby_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_Lobby_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_1F", + "name": "TrainerTower_1F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_2F", + "name": "TrainerTower_2F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_3F", + "name": "TrainerTower_3F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_4F", + "name": "TrainerTower_4F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_5F", + "name": "TrainerTower_5F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_6F", + "name": "TrainerTower_6F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_6F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_6F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_7F", + "name": "TrainerTower_7F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_7F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_7F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_8F", + "name": "TrainerTower_8F_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_8F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_8F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_ROOF", + "name": "TrainerTower_Roof_Layout", + "width": 18, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_Roof_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_Roof_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_ELEVATOR", + "name": "TrainerTower_Elevator_Layout", + "width": 5, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SilphCo", + "border_filepath": "data/layouts/TrainerTower_Elevator_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_Elevator_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_CERULEAN_CITY_HOUSE5", + "name": "CeruleanCity_House5_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_GenericBuilding2", + "border_filepath": "data/layouts/CeruleanCity_House5_Frlg/border.bin", + "blockdata_filepath": "data/layouts/CeruleanCity_House5_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_1F", + "name": "SixIsland_DottedHole_1F_Layout", + "width": 16, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/SixIsland_DottedHole_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B1F", + "name": "SixIsland_DottedHole_B1F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/SixIsland_DottedHole_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B2F", + "name": "SixIsland_DottedHole_B2F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/SixIsland_DottedHole_B2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B3F", + "name": "SixIsland_DottedHole_B3F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/SixIsland_DottedHole_B3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B4F", + "name": "SixIsland_DottedHole_B4F_Layout", + "width": 13, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/SixIsland_DottedHole_B4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_B4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "name": "SixIsland_DottedHole_SapphireRoom_Layout", + "width": 16, + "height": 15, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_DottedHole_SapphireRoom_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ISLAND_HARBOR_FRLG", + "name": "Island_Harbor_FRLG_Layout", + "width": 17, + "height": 13, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_IslandHarbor_Frlg", + "border_filepath": "data/layouts/Island_Harbor_Frlg/border.bin", + "blockdata_filepath": "data/layouts/Island_Harbor_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_2F", + "name": "OneIsland_PokemonCenter_2F_Layout", + "width": 15, + "height": 10, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_PokemonCenterFrlg", + "border_filepath": "data/layouts/OneIsland_PokemonCenter_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_PokemonCenter_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_PATTERN_BUSH", + "name": "SixIsland_PatternBush_Layout", + "width": 60, + "height": 32, + "border_width": 3, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_ViridianForest", + "border_filepath": "data/layouts/SixIsland_PatternBush_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_PatternBush_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL", + "name": "ThreeIsland_DunsparceTunnel_Layout", + "width": 30, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/ThreeIsland_DunsparceTunnel_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_DunsparceTunnel_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL_DUG_OUT", + "name": "ThreeIsland_DunsparceTunnel_DugOut_Layout", + "width": 30, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/border.bin", + "blockdata_filepath": "data/layouts/ThreeIsland_DunsparceTunnel_DugOut_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "name": "FiveIsland_LostCave_Entrance_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Entrance_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Entrance_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM1", + "name": "FiveIsland_LostCave_Room1_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM2", + "name": "FiveIsland_LostCave_Room2_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room2_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room2_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM3", + "name": "FiveIsland_LostCave_Room3_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room3_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room3_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM4", + "name": "FiveIsland_LostCave_Room4_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room4_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room4_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM5", + "name": "FiveIsland_LostCave_Room5_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room5_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room5_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM6", + "name": "FiveIsland_LostCave_Room6_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room6_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room6_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM7", + "name": "FiveIsland_LostCave_Room7_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room7_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room7_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM8", + "name": "FiveIsland_LostCave_Room8_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room8_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room8_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM9", + "name": "FiveIsland_LostCave_Room9_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room9_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room9_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM10", + "name": "FiveIsland_LostCave_Room10_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room10_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room10_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM11", + "name": "FiveIsland_LostCave_Room11_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room11_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room11_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM12", + "name": "FiveIsland_LostCave_Room12_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room12_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room12_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM13", + "name": "FiveIsland_LostCave_Room13_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room13_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room13_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM14", + "name": "FiveIsland_LostCave_Room14_Layout", + "width": 11, + "height": 11, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_Cave_Frlg", + "border_filepath": "data/layouts/FiveIsland_LostCave_Room14_Frlg/border.bin", + "blockdata_filepath": "data/layouts/FiveIsland_LostCave_Room14_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "name": "SevenIsland_TanobyRuins_MoneanChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "name": "SevenIsland_TanobyRuins_LiptooChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "name": "SevenIsland_TanobyRuins_WeepthChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "name": "SevenIsland_TanobyRuins_DilfordChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "name": "SevenIsland_TanobyRuins_ScufibChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SIX_ISLAND_ALTERING_CAVE", + "name": "SixIsland_AlteringCave_Layout", + "width": 32, + "height": 24, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_RockTunnel", + "border_filepath": "data/layouts/SixIsland_AlteringCave_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SixIsland_AlteringCave_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY", + "name": "SevenIsland_SevaultCanyon_TanobyKey_Layout", + "width": 15, + "height": 16, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_DiglettsCave", + "border_filepath": "data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_BIRTH_ISLAND_EXTERIOR_FRLG", + "name": "BirthIsland_Exterior_FRLG_Layout", + "width": 30, + "height": 30, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands67", + "border_filepath": "data/layouts/BirthIsland_Exterior_Frlg/border.bin", + "blockdata_filepath": "data/layouts/BirthIsland_Exterior_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_EXTERIOR_FRLG", + "name": "NavelRock_Exterior_FRLG_Layout", + "width": 20, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_SeviiIslands123", + "border_filepath": "data/layouts/NavelRock_Exterior_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Exterior_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_1F", + "name": "NavelRock_1F_Layout", + "width": 17, + "height": 26, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT", + "name": "NavelRock_Summit_Layout", + "width": 19, + "height": 25, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_Summit_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Summit_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_FRLG", + "name": "NavelRock_Base_Frlg_Layout", + "width": 21, + "height": 23, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_Base_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Base_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_2F", + "name": "NavelRock_SummitPath_2F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_SummitPath_2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_3F", + "name": "NavelRock_SummitPath_3F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_SummitPath_3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_4F", + "name": "NavelRock_SummitPath_4F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_SummitPath_4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_5F", + "name": "NavelRock_SummitPath_5F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_SummitPath_5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_SummitPath_5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B1F", + "name": "NavelRock_BasePath_B1F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B2F", + "name": "NavelRock_BasePath_B2F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B2F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B2F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B3F", + "name": "NavelRock_BasePath_B3F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B3F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B3F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B4F", + "name": "NavelRock_BasePath_B4F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B4F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B4F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B5F", + "name": "NavelRock_BasePath_B5F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B5F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B5F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B6F", + "name": "NavelRock_BasePath_B6F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B6F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B6F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B7F", + "name": "NavelRock_BasePath_B7F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B7F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B7F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B8F", + "name": "NavelRock_BasePath_B8F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B8F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B8F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B9F", + "name": "NavelRock_BasePath_B9F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B9F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B9F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B10F", + "name": "NavelRock_BasePath_B10F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B10F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B10F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BASE_PATH_B11F", + "name": "NavelRock_BasePath_B11F_Layout", + "width": 7, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_BasePath_B11F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_BasePath_B11F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "name": "SevenIsland_TanobyRuins_RixyChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "name": "SevenIsland_TanobyRuins_ViapoisChamber_Layout", + "width": 23, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TanobyRuins", + "border_filepath": "data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_B1F_FRLG", + "name": "NavelRock_B1F_FRLG_Layout", + "width": 17, + "height": 7, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_B1F_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_B1F_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_NAVEL_ROCK_FORK_FRLG", + "name": "NavelRock_Fork_FRLG_Layout", + "width": 30, + "height": 100, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_NavelRock_Frlg", + "border_filepath": "data/layouts/NavelRock_Fork_Frlg/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Fork_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_1F_DOUBLES", + "name": "TrainerTower_1F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_1F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_1F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_2F_DOUBLES", + "name": "TrainerTower_2F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_2F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_2F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_3F_DOUBLES", + "name": "TrainerTower_3F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_3F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_3F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_4F_DOUBLES", + "name": "TrainerTower_4F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_4F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_4F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_5F_DOUBLES", + "name": "TrainerTower_5F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_5F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_5F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_6F_DOUBLES", + "name": "TrainerTower_6F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_6F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_6F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_7F_DOUBLES", + "name": "TrainerTower_7F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_7F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_7F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_8F_DOUBLES", + "name": "TrainerTower_8F_Doubles_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_8F_Doubles_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_8F_Doubles_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_1F_KNOCKOUT", + "name": "TrainerTower_1F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_1F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_1F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_2F_KNOCKOUT", + "name": "TrainerTower_2F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_2F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_2F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_3F_KNOCKOUT", + "name": "TrainerTower_3F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_3F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_3F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_4F_KNOCKOUT", + "name": "TrainerTower_4F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_4F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_4F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_5F_KNOCKOUT", + "name": "TrainerTower_5F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_5F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_5F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_6F_KNOCKOUT", + "name": "TrainerTower_6F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_6F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_6F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_7F_KNOCKOUT", + "name": "TrainerTower_7F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_7F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_7F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_TRAINER_TOWER_8F_KNOCKOUT", + "name": "TrainerTower_8F_Knockout_Layout", + "width": 18, + "height": 17, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_TrainerTower", + "border_filepath": "data/layouts/TrainerTower_8F_Knockout_Frlg/border.bin", + "blockdata_filepath": "data/layouts/TrainerTower_8F_Knockout_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1", + "name": "SevenIsland_House_Room1_Layout", + "width": 11, + "height": 9, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_BuildingFrlg", + "secondary_tileset": "gTileset_SeafoamIslands", + "border_filepath": "data/layouts/SevenIsland_House_Room1_Frlg/border.bin", + "blockdata_filepath": "data/layouts/SevenIsland_House_Room1_Frlg/map.bin", + "layout_version": "frlg" + }, + { + "id": "LAYOUT_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "name": "OneIsland_KindleRoad_EmberSpa_Layout", + "width": 27, + "height": 39, + "border_width": 2, + "border_height": 2, + "primary_tileset": "gTileset_General_Frlg", + "secondary_tileset": "gTileset_MtEmber", + "border_filepath": "data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/border.bin", + "blockdata_filepath": "data/layouts/OneIsland_KindleRoad_EmberSpa_Frlg/map.bin", + "layout_version": "frlg" } ] } diff --git a/data/maps/BattleColosseum_2P_Frlg/map.json b/data/maps/BattleColosseum_2P_Frlg/map.json new file mode 100644 index 000000000000..558361381fc1 --- /dev/null +++ b/data/maps/BattleColosseum_2P_Frlg/map.json @@ -0,0 +1,71 @@ +{ + "id": "MAP_BATTLE_COLOSSEUM_2P_FRLG", + "name": "BattleColosseum_2P_Frlg", + "layout": "LAYOUT_BATTLE_COLOSSEUM_2P_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_LINK", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "BattleColosseum_2P_EventScript_Attendant_Frlg", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 5, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "BattleColosseum_2P_EventScript_PlayerSpot0" + }, + { + "type": "trigger", + "x": 10, + "y": 5, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "BattleColosseum_2P_EventScript_PlayerSpot1" + } + ], + "bg_events": [] +} diff --git a/data/maps/BattleColosseum_2P_Frlg/scripts.inc b/data/maps/BattleColosseum_2P_Frlg/scripts.inc new file mode 100644 index 000000000000..71a21162495e --- /dev/null +++ b/data/maps/BattleColosseum_2P_Frlg/scripts.inc @@ -0,0 +1,2 @@ +BattleColosseum_2P_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/BattleColosseum_4P_Frlg/map.json b/data/maps/BattleColosseum_4P_Frlg/map.json new file mode 100644 index 000000000000..16beacb42c22 --- /dev/null +++ b/data/maps/BattleColosseum_4P_Frlg/map.json @@ -0,0 +1,88 @@ +{ + "id": "MAP_BATTLE_COLOSSEUM_4P_FRLG", + "name": "BattleColosseum_4P_Frlg", + "layout": "LAYOUT_BATTLE_COLOSSEUM_4P_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_LINK", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "BattleColosseum_4P_EventScript_PlayerSpot0" + }, + { + "type": "trigger", + "x": 3, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "BattleColosseum_4P_EventScript_PlayerSpot2" + }, + { + "type": "trigger", + "x": 10, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "BattleColosseum_4P_EventScript_PlayerSpot1" + }, + { + "type": "trigger", + "x": 10, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "BattleColosseum_4P_EventScript_PlayerSpot3" + } + ], + "bg_events": [] +} diff --git a/data/maps/BattleColosseum_4P_Frlg/scripts.inc b/data/maps/BattleColosseum_4P_Frlg/scripts.inc new file mode 100644 index 000000000000..5397fd4ecd6e --- /dev/null +++ b/data/maps/BattleColosseum_4P_Frlg/scripts.inc @@ -0,0 +1,2 @@ +BattleColosseum_4P_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc index 1dec6328d6e9..725783a1ec14 100644 --- a/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleArenaBattleRoom/scripts.inc @@ -364,9 +364,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle:: setvar VAR_TEMP_2, 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_ARENA - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_ARENA waitstate frontier_restorehelditems special HealPlayerParty diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 9f5a5f4d77f2..bcd2a482aa7e 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -445,10 +445,8 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw:: BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle:: frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_DOME - setvar VAR_0x8005, 0 setvar VAR_TEMP_9, 1 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_DOME waitstate setvar VAR_TEMP_9, 0 dome_restorehelditems diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc index e6da4070f7b2..80ac23075e8f 100644 --- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc @@ -80,9 +80,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_BattleOpponent:: closemessage frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FRONTIER_FACILITY_FACTORY waitstate switch VAR_RESULT case 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_DefeatedOpponent @@ -171,9 +169,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_DoNolandBattle:: closemessage frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_FACTORY waitstate return diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc index 7223b14f3d09..4c4b01c592f4 100644 --- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc @@ -274,9 +274,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_DoPalaceBattle:: setvar VAR_TEMP_2, 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_PALACE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_PALACE waitstate frontier_restorehelditems special HealPlayerParty diff --git a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc index 44da68a6d79c..fca494981817 100644 --- a/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc +++ b/data/maps/BattleFrontier_BattlePikeRoomNormal/scripts.inc @@ -31,9 +31,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterSingleBattleRoom:: waitmessage closemessage releaseall - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_PIKE_SINGLE waitstate switch VAR_RESULT case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_WonSingleBattle @@ -61,9 +59,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterHardBattleRoom:: waitmessage closemessage releaseall - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_PIKE_SINGLE waitstate switch VAR_RESULT case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_WonHardBattle @@ -252,9 +248,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_EnterDoubleBattleRoom:: pike_gettrainerintro 1 msgbox gStringVar4, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_DOUBLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_PIKE_DOUBLE waitstate switch VAR_RESULT case 1, BattleFrontier_BattlePikeRoomNormal_EventScript_WonDoubleBattle @@ -380,9 +374,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DoPikeQueenBattle:: closemessage applymovement LOCALID_PLAYER, BattleFrontier_BattlePikeRoomNormal_Movement_PlayerWalkUp2 waitmovement 0 - setvar VAR_0x8004, SPECIAL_BATTLE_PIKE_SINGLE - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_PIKE_SINGLE waitstate return diff --git a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc index 791f29f6e746..a9473d87501c 100644 --- a/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc @@ -105,7 +105,7 @@ BattlePyramid_WarpToTop:: @ TRAINER_PHILLIP is used as a placeholder BattlePyramid_TrainerBattle:: - trainerbattle TRAINER_BATTLE_HILL, LOCALID_NONE, TRAINER_PHILLIP, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText, NULL, LOCALID_NONE, TRAINER_NONE, NULL, NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, FALSE + facilitytrainerbattle FACILITY_BATTLE_PYRAMID pyramid_showhint waitmessage waitbuttonpress diff --git a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc index 3bf7b7b17e60..db2add717ca4 100644 --- a/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc +++ b/data/maps/BattleFrontier_BattlePyramidTop/scripts.inc @@ -180,9 +180,7 @@ BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold:: BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle:: closemessage - setvar VAR_0x8004, SPECIAL_BATTLE_PYRAMID - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_PYRAMID waitstate return diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc index bfa94f04b80a..24caccc783a5 100644 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc @@ -296,9 +296,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_DoTowerBattle:: setvar VAR_TEMP_2, 0 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_TOWER - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_TOWER waitstate copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE goto_if_eq VAR_0x8004, FRONTIER_MODE_LINK_MULTIS, BattleFrontier_BattleTowerBattleRoom_EventScript_EndTowerBattle diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc index 703b1ec900fc..0e98cbe9b24b 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc @@ -1,6 +1,11 @@ BattleFrontier_ExchangeServiceCorner_MapScripts:: .byte 0 +.macro setitemandprice item:req, price:req + setvar VAR_0x8009, \item + setvar VAR_0x8008, \price +.endm + BattleFrontier_ExchangeServiceCorner_EventScript_ClerkWelcome:: msgbox BattleFrontier_ExchangeServiceCorner_Text_WelcomePleaseChoosePrize, MSGBOX_DEFAULT special ShowBattlePointsWindow @@ -95,85 +100,52 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor1:: case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissPoster, MSGBOX_YESNO +BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1:: + bufferdecorationname STR_VAR_1, VAR_0x8009 + msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmPurchase, MSGBOX_YESNO 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 end +BattleFrontier_ExchangeServiceCorner_EventScript_KissPoster:: + setitemandprice DECOR_KISS_POSTER, 16 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 + BattleFrontier_ExchangeServiceCorner_EventScript_KissCushion:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissCushion, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_KISS_CUSHION, 32 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_SmoochumDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmSmoochumDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_SMOOCHUM_DOLL, 32 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_TogepiDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmTogepiDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_TOGEPI_DOLL, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_MeowthDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmMeowthDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_MEOWTH_DOLL, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_ClefairyDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmClefairyDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_CLEFAIRY_DOLL, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_DittoDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmDittoDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_DITTO_DOLL, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_CyndaquilDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCyndaquilDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_CYNDAQUIL_DOLL, 80 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_ChikoritaDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmChikoritaDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_CHIKORITA_DOLL, 80 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_TotodileDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmTotodileDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_TOTODILE_DOLL, 80 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor1 BattleFrontier_ExchangeServiceCorner_EventScript_DecorClerk2:: lock @@ -199,45 +171,32 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseDecor2:: case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmLaprasDoll, MSGBOX_YESNO +BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor2:: + bufferdecorationname STR_VAR_1, VAR_0x8009 + msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmPurchase, MSGBOX_YESNO 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 end +BattleFrontier_ExchangeServiceCorner_EventScript_LaprasDoll:: + setitemandprice DECOR_LAPRAS_DOLL, 128 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor2 + BattleFrontier_ExchangeServiceCorner_EventScript_SnorlaxDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmSnorlaxDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_SNORLAX_DOLL, 128 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor2 BattleFrontier_ExchangeServiceCorner_EventScript_VenusaurDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmVenusaurDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_VENUSAUR_DOLL, 256 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor2 BattleFrontier_ExchangeServiceCorner_EventScript_CharizardDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCharizardDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_CHARIZARD_DOLL, 256 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor2 BattleFrontier_ExchangeServiceCorner_EventScript_BlastoiseDoll:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmBlastoiseDoll, MSGBOX_YESNO - 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 - end + setitemandprice DECOR_BLASTOISE_DOLL, 256 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseDecor2 BattleFrontier_ExchangeServiceCorner_EventScript_VitaminClerk:: lock @@ -264,53 +223,37 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin:: case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmProtein, MSGBOX_YESNO +BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin:: + bufferitemname STR_VAR_1, VAR_0x8009 + msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmPurchase, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin - setvar VAR_0x8008, 1 - setvar VAR_0x8009, ITEM_PROTEIN goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end +BattleFrontier_ExchangeServiceCorner_EventScript_Protein:: + setitemandprice ITEM_PROTEIN, 1 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin + BattleFrontier_ExchangeServiceCorner_EventScript_Calcium:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCalcium, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin - setvar VAR_0x8008, 1 - setvar VAR_0x8009, ITEM_CALCIUM - goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize - end + setitemandprice ITEM_CALCIUM, 1 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin BattleFrontier_ExchangeServiceCorner_EventScript_Iron:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmIron, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin - setvar VAR_0x8008, 1 - setvar VAR_0x8009, ITEM_IRON - goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize - end + setitemandprice ITEM_IRON, 1 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin BattleFrontier_ExchangeServiceCorner_EventScript_Zinc:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmZinc, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin - setvar VAR_0x8008, 1 - setvar VAR_0x8009, ITEM_ZINC - goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize - end + setitemandprice ITEM_ZINC, 1 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin BattleFrontier_ExchangeServiceCorner_EventScript_Carbos:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmCarbos, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseVitamin - setvar VAR_0x8008, 1 - setvar VAR_0x8009, ITEM_CARBOS - goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize - end + setitemandprice ITEM_CARBOS, 1 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin BattleFrontier_ExchangeServiceCorner_EventScript_HPUp:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmHPUp, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_HP_UP, 1 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseVitamin + BattleFrontier_ExchangeServiceCorner_EventScript_HoldItemClerk:: lock @@ -340,77 +283,48 @@ BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem:: case MULTI_B_PRESSED, BattleFrontier_ExchangeServiceCorner_EventScript_ClerkGoodbye end -BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmLeftovers, MSGBOX_YESNO +BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem:: + bufferitemname STR_VAR_1, VAR_0x8009 + msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmPurchase, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, BattleFrontier_ExchangeServiceCorner_EventScript_ChooseHoldItem - setvar VAR_0x8008, 48 - setvar VAR_0x8009, ITEM_LEFTOVERS goto BattleFrontier_ExchangeServiceCorner_EventScript_TryPurchasePrize end +BattleFrontier_ExchangeServiceCorner_EventScript_Leftovers:: + setitemandprice ITEM_LEFTOVERS, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem + BattleFrontier_ExchangeServiceCorner_EventScript_WhiteHerb:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmWhiteHerb, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_WHITE_HERB, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_QuickClaw:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmQuickClaw, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_QUICK_CLAW, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_MentalHerb:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmMentalHerb, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_MENTAL_HERB, 48 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_Brightpowder:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmBrightpowder, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_BRIGHT_POWDER, 64 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_ChoiceBand:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmChoiceBand, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_CHOICE_BAND, 64 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_KingsRock:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmKingsRock, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_KINGS_ROCK, 64 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_FocusBand:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmFocusBand, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_FOCUS_BAND, 64 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_ScopeLens:: - msgbox BattleFrontier_ExchangeServiceCorner_Text_ConfirmScopeLens, MSGBOX_YESNO - 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 - end + setitemandprice ITEM_SCOPE_LENS, 64 + goto BattleFrontier_ExchangeServiceCorner_EventScript_PurchaseHoldItem BattleFrontier_ExchangeServiceCorner_EventScript_Man:: msgbox BattleFrontier_ExchangeServiceCorner_Text_GoGetYourOwnDoll, MSGBOX_NPC @@ -445,124 +359,8 @@ BattleFrontier_ExchangeServiceCorner_Text_WelcomePleaseChoosePrize: BattleFrontier_ExchangeServiceCorner_Text_PleaseChoosePrize: .string "Please choose a prize from this list.$" -BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissPoster: - .string "You've chosen the KISS POSTER.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmKissCushion: - .string "You've chosen the KISS CUSHION.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmSmoochumDoll: - .string "You've chosen the SMOOCHUM DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmTogepiDoll: - .string "You've chosen the TOGEPI DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmMeowthDoll: - .string "You've chosen the MEOWTH DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmClefairyDoll: - .string "You've chosen the CLEFAIRY DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmDittoDoll: - .string "You've chosen the DITTO DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCyndaquilDoll: - .string "You've chosen the CYNDAQUIL DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmChikoritaDoll: - .string "You've chosen the CHIKORITA DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmTotodileDoll: - .string "You've chosen the TOTODILE DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmLaprasDoll: - .string "You've chosen the LAPRAS DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmSnorlaxDoll: - .string "You've chosen the SNORLAX DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmVenusaurDoll: - .string "You've chosen the VENUSAUR DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCharizardDoll: - .string "You've chosen the CHARIZARD DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmBlastoiseDoll: - .string "You've chosen the BLASTOISE DOLL.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmProtein: - .string "You've chosen the PROTEIN.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCalcium: - .string "You've chosen the CALCIUM.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmIron: - .string "You've chosen the IRON.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmZinc: - .string "You've chosen the ZINC.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmCarbos: - .string "You've chosen the CARBOS.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmHPUp: - .string "You've chosen the HP UP.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmBrightpowder: - .string "You've chosen the BRIGHTPOWDER.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmWhiteHerb: - .string "You've chosen the WHITE HERB.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmQuickClaw: - .string "You've chosen the QUICK CLAW.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmMentalHerb: - .string "You've chosen the MENTAL HERB.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmChoiceBand: - .string "You've chosen the CHOICE BAND.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmKingsRock: - .string "You've chosen the KING'S ROCK.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmFocusBand: - .string "You've chosen the FOCUS BAND.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmScopeLens: - .string "You've chosen the SCOPE LENS.\n" - .string "Is that correct?$" - -BattleFrontier_ExchangeServiceCorner_Text_ConfirmLeftovers: - .string "You've chosen the LEFTOVERS.\n" +BattleFrontier_ExchangeServiceCorner_Text_ConfirmPurchase: + .string "You've chosen the {STR_VAR_1}.\n" .string "Is that correct?$" BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC: diff --git a/data/maps/BattleFrontier_Lounge1/scripts.inc b/data/maps/BattleFrontier_Lounge1/scripts.inc index 6aca2b4ced78..e37139cfbd22 100644 --- a/data/maps/BattleFrontier_Lounge1/scripts.inc +++ b/data/maps/BattleFrontier_Lounge1/scripts.inc @@ -12,7 +12,7 @@ BattleFrontier_Lounge1_EventScript_Breeder:: end BattleFrontier_Lounge1_EventScript_ChooseMonToShowBreeder:: - special ChoosePartyMon + chooseboxmon waitstate goto_if_ne VAR_0x8004, PARTY_NOTHING_CHOSEN, BattleFrontier_Lounge1_EventScript_ShowMonToBreeder goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, BattleFrontier_Lounge1_EventScript_CancelMonSelect diff --git a/data/maps/BattleFrontier_Lounge5/scripts.inc b/data/maps/BattleFrontier_Lounge5/scripts.inc index 7dc4251fcc01..71839832608d 100644 --- a/data/maps/BattleFrontier_Lounge5/scripts.inc +++ b/data/maps/BattleFrontier_Lounge5/scripts.inc @@ -6,7 +6,7 @@ BattleFrontier_Lounge5_EventScript_NatureGirl:: faceplayer msgbox BattleFrontier_Lounge5_Text_NatureGirlGreeting, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown - special ChoosePartyMon + chooseboxmon waitstate lock faceplayer diff --git a/data/maps/BattleFrontier_Lounge6/scripts.inc b/data/maps/BattleFrontier_Lounge6/scripts.inc index 0b01b32e3e22..df8787918c54 100644 --- a/data/maps/BattleFrontier_Lounge6/scripts.inc +++ b/data/maps/BattleFrontier_Lounge6/scripts.inc @@ -5,26 +5,7 @@ BattleFrontier_Lounge6_EventScript_Trader:: lock faceplayer goto_if_set FLAG_BATTLE_FRONTIER_TRADE_DONE, BattleFrontier_Lounge6_EventScript_TradeCompleted - setvar VAR_0x8008, INGAME_TRADE_MEOWTH - copyvar VAR_0x8004, VAR_0x8008 - specialvar VAR_RESULT, GetInGameTradeSpeciesInfo - copyvar VAR_0x8009, VAR_RESULT - msgbox BattleFrontier_Lounge6_Text_WouldYouLikeToTrade, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge6_EventScript_DeclineTrade - special ChoosePartyMon - waitstate - copyvar VAR_0x800A, VAR_0x8004 - 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 - goto_if_ne VAR_RESULT, VAR_0x8009, BattleFrontier_Lounge6_EventScript_NotRequestedMon - copyvar VAR_0x8004, VAR_0x8008 - copyvar VAR_0x8005, VAR_0x800A - special CreateInGameTradePokemon - special DoInGameTradeScene - waitstate - msgbox BattleFrontier_Lounge6_Text_PromiseIllBeGoodToIt, MSGBOX_DEFAULT + ingame_trade INGAME_TRADE_MEOWTH, BattleFrontier_Lounge6_Text_WouldYouLikeToTrade, BattleFrontier_Lounge6_EventScript_DeclineTrade, BattleFrontier_Lounge6_EventScript_NotRequestedMon, BattleFrontier_Lounge6_Text_PromiseIllBeGoodToIt setflag FLAG_BATTLE_FRONTIER_TRADE_DONE release end diff --git a/data/maps/BattleFrontier_Lounge7/scripts.inc b/data/maps/BattleFrontier_Lounge7/scripts.inc index 3ff8005e1dd7..22d75d579e8d 100644 --- a/data/maps/BattleFrontier_Lounge7/scripts.inc +++ b/data/maps/BattleFrontier_Lounge7/scripts.inc @@ -1,6 +1,7 @@ BattleFrontier_Lounge7_MapScripts:: .byte 0 +@special ChooseMonForMoveTutor BattleFrontier_Lounge7_EventScript_LeftMoveTutor:: lock faceplayer @@ -276,12 +277,13 @@ BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: goto BattleFrontier_Lounge7_EventScript_ChooseNewMove end + BattleFrontier_Lounge7_EventScript_TeachTutorMove:: msgbox BattleFrontier_Lounge7_Text_TeachMoveToWhichMon, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK special CloseBattlePointsWindow special CloseBattleFrontierTutorWindow - special ChooseMonForMoveTutor + chooseboxmon SELECT_PC_MON_MOVE_TUTOR waitstate goto_if_eq VAR_RESULT, FALSE, BattleFrontier_Lounge7_EventScript_CancelChooseMon msgbox BattleFrontier_Lounge7_Text_IllTakeBattlePoints, MSGBOX_DEFAULT diff --git a/data/maps/BirthIsland_Exterior_Frlg/map.json b/data/maps/BirthIsland_Exterior_Frlg/map.json new file mode 100644 index 000000000000..22a80d140830 --- /dev/null +++ b/data/maps/BirthIsland_Exterior_Frlg/map.json @@ -0,0 +1,65 @@ +{ + "id": "MAP_BIRTH_ISLAND_EXTERIOR_FRLG", + "name": "BirthIsland_Exterior_Frlg", + "layout": "LAYOUT_BIRTH_ISLAND_EXTERIOR_FRLG", + "music": "MUS_NONE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_BIRTH_ISLAND_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_METEORITE", + "x": 15, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "BirthIsland_Exterior_Frlg_EventScript_Triangle", + "flag": "FLAG_HIDE_BIRTH_ISLAND_METEORITE" + }, + { + "local_id": "LOCALID_BIRTH_ISLAND_DEOXYS", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 15, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_DEOXYS" + } + ], + "warp_events": [ + { + "x": 15, + "y": 24, + "elevation": 3, + "dest_map": "MAP_BIRTH_ISLAND_HARBOR_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/BirthIsland_Exterior_Frlg/scripts.inc b/data/maps/BirthIsland_Exterior_Frlg/scripts.inc new file mode 100644 index 000000000000..88979724f48c --- /dev/null +++ b/data/maps/BirthIsland_Exterior_Frlg/scripts.inc @@ -0,0 +1,113 @@ +BirthIsland_Exterior_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, BirthIsland_Exterior_Frlg_OnTransition + map_script MAP_SCRIPT_ON_RESUME, BirthIsland_Exterior_Frlg_OnResume + map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, BirthIsland_Exterior_Frlg_OnReturnToField + .byte 0 + +BirthIsland_Exterior_Frlg_OnReturnToField:: + special SetDeoxysRockPalette + end + +BirthIsland_Exterior_Frlg_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR + setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_DEOXYS_N + setvar VAR_DEOXYS_INTERACTION_STEP_COUNTER, 0 + setvar VAR_DEOXYS_INTERACTION_NUM, 0 + call_if_set FLAG_FOUGHT_DEOXYS, BirthIsland_Exterior_Frlg_EventScript_HideDeoxysAndPuzzle + call_if_unset FLAG_FOUGHT_DEOXYS, BirthIsland_Exterior_Frlg_EventScript_TryShowDeoxysPuzzle + end + +BirthIsland_Exterior_Frlg_EventScript_HideDeoxysAndPuzzle:: + setflag FLAG_HIDE_DEOXYS + setflag FLAG_HIDE_BIRTH_ISLAND_METEORITE + return + +BirthIsland_Exterior_Frlg_EventScript_TryShowDeoxysPuzzle:: + goto_if_set FLAG_DEOXYS_FLEW_AWAY, Common_EventScript_NopReturn + clearflag FLAG_HIDE_BIRTH_ISLAND_METEORITE + clearflag FLAG_DEOXYS_ROCK_COMPLETE + return + +BirthIsland_Exterior_Frlg_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, BirthIsland_Exterior_Frlg_EventScript_TryRemoveDeoxys + end + +BirthIsland_Exterior_Frlg_EventScript_TryRemoveDeoxys:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject LOCALID_BIRTH_ISLAND_DEOXYS + return + +BirthIsland_Exterior_Frlg_EventScript_Triangle:: + lock + faceplayer + special DoDeoxysRockInteraction + waitstate + switch VAR_RESULT + case 0, BirthIsland_Exterior_EventScript_NotSolved1 + case 1, BirthIsland_Exterior_EventScript_NotSolved2 + case 2, BirthIsland_Exterior_Frlg_EventScript_Deoxys + case 3, BirthIsland_Exterior_EventScript_NotSolved3 + end + +BirthIsland_Exterior_EventScript_NotSolved1:: + release + end + +BirthIsland_Exterior_EventScript_NotSolved2:: + release + end + +BirthIsland_Exterior_EventScript_NotSolved3:: + release + end + +BirthIsland_Exterior_Frlg_EventScript_Deoxys:: + addobject LOCALID_BIRTH_ISLAND_DEOXYS + waitse + setfieldeffectargument 0, LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK + setfieldeffectargument 1, MAP_NUM(MAP_BIRTH_ISLAND_EXTERIOR_FRLG) + setfieldeffectargument 2, MAP_GROUP(MAP_BIRTH_ISLAND_EXTERIOR_FRLG) + dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK + playbgm MUS_RG_ENCOUNTER_DEOXYS, 0 + waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK + applymovement LOCALID_BIRTH_ISLAND_DEOXYS, Movement_DeoxysApproach + waitmovement 0 + waitse + playmoncry SPECIES_DEOXYS, CRY_MODE_ENCOUNTER + delay 40 + waitmoncry + setvar VAR_LAST_TALKED, LOCALID_BIRTH_ISLAND_DEOXYS + seteventmon SPECIES_DEOXYS, 30 + setflag FLAG_SYS_CTRL_OBJ_DELETE + special BattleSetup_StartLegendaryBattle + waitstate + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, BirthIsland_Exterior_Frlg_EventScript_DefeatedDeoxys + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, BirthIsland_Exterior_Frlg_EventScript_RanFromDeoxys + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, BirthIsland_Exterior_Frlg_EventScript_RanFromDeoxys + setflag FLAG_FOUGHT_DEOXYS + release + end + +BirthIsland_Exterior_Frlg_EventScript_DefeatedDeoxys:: + setflag FLAG_DEOXYS_FLEW_AWAY + setvar VAR_0x8004, SPECIES_DEOXYS + goto EventScript_MonFlewAway + end + +BirthIsland_Exterior_Frlg_EventScript_RanFromDeoxys:: + setvar VAR_0x8004, SPECIES_DEOXYS + goto EventScript_MonFlewAway + end + +Movement_DeoxysApproach: + walk_slow_down + walk_slow_down + walk_slow_down + walk_slow_down + walk_slow_down + walk_slow_down + walk_slow_down + step_end diff --git a/data/maps/BirthIsland_Harbor_Frlg/map.json b/data/maps/BirthIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..3ac3e0cb15ff --- /dev/null +++ b/data/maps/BirthIsland_Harbor_Frlg/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_BIRTH_ISLAND_HARBOR_FRLG", + "name": "BirthIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_NONE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_BIRTH_ISLAND_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "BirthIsland_Harbor_EventScript_Sailor_Frlg", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_BIRTH_ISLAND_EXTERIOR_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/BirthIsland_Harbor_Frlg/scripts.inc b/data/maps/BirthIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..327229815cb8 --- /dev/null +++ b/data/maps/BirthIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,15 @@ +BirthIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +BirthIsland_Harbor_EventScript_Sailor_Frlg:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_BIRTH_ISLAND + multichoice 20, 8, MULTI_SEAGALLOP_VERMILION, FALSE + switch VAR_RESULT + case 0, EventScript_SailToVermilionCity + case 1, EventScript_CancelSail + case 127, EventScript_CancelSail + end diff --git a/data/maps/CeladonCity_Condominiums_1F_Frlg/map.json b/data/maps/CeladonCity_Condominiums_1F_Frlg/map.json new file mode 100644 index 000000000000..14317a8c520c --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_1F_Frlg/map.json @@ -0,0 +1,139 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "name": "CeladonCity_Condominiums_1F_Frlg", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_1F", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MEOWTH", + "x": 1, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_1F_EventScript_Meowth", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLEFAIRY", + "x": 5, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_1F_EventScript_Clefairy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", + "x": 5, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_1F_EventScript_Nidoran", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 2, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_1F_EventScript_TeaWoman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 19, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "3" + }, + { + "x": 12, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "3" + }, + { + "x": 13, + "y": 19, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "3" + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": "3" + }, + { + "x": 2, + "y": 1, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "11" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_1F_EventScript_SuiteSign" + }, + { + "type": "sign", + "x": 7, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_1F_EventScript_SuiteSign" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_1F_Frlg/scripts.inc b/data/maps/CeladonCity_Condominiums_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..0646dcedd988 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_1F_Frlg/scripts.inc @@ -0,0 +1,100 @@ +CeladonCity_Condominiums_1F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Condominiums_1F_EventScript_TeaWoman:: + lock + faceplayer + goto_if_set FLAG_TALKED_TO_TEA_LADY_AFTER_HOF, CeladonCity_Condominiums_1F_EventScript_TeaWomanAfterTea + goto_if_set FLAG_SYS_GAME_CLEAR, CeladonCity_Condominiums_1F_EventScript_TeaWomanMentionDaisy + goto_if_set FLAG_GOT_TEA, CeladonCity_Condominiums_1F_EventScript_TeaWomanAfterTea + msgbox CeladonCity_Condominiums_1F_Text_TryThisDrinkInstead + setflag FLAG_GOT_TEA + giveitem ITEM_TEA + goto_if_eq VAR_RESULT, FALSE, EventScript_BagIsFull + msgbox CeladonCity_Condominiums_1F_Text_NothingBeatsThirstLikeTea + release + end + +CeladonCity_Condominiums_1F_EventScript_TeaWomanAfterTea:: + msgbox CeladonCity_Condominiums_1F_Text_MyDearMonsKeepMeCompany + release + end + +CeladonCity_Condominiums_1F_EventScript_TeaWomanMentionDaisy:: + famechecker FAMECHECKER_DAISY, 4 + setflag FLAG_TALKED_TO_TEA_LADY_AFTER_HOF + msgbox CeladonCity_Condominiums_1F_Text_DaisyComesToBuyTea + release + end + +CeladonCity_Condominiums_1F_EventScript_Meowth:: + lock + faceplayer + waitse + playmoncry SPECIES_MEOWTH, CRY_MODE_NORMAL + msgbox CeladonCity_Condominiums_1F_Text_Meowth + waitmoncry + release + end + +CeladonCity_Condominiums_1F_EventScript_Clefairy:: + lock + faceplayer + waitse + playmoncry SPECIES_CLEFAIRY, CRY_MODE_NORMAL + msgbox CeladonCity_Condominiums_1F_Text_Clefairy + waitmoncry + release + end + +CeladonCity_Condominiums_1F_EventScript_Nidoran:: + lock + faceplayer + waitse + playmoncry SPECIES_NIDORAN_F, CRY_MODE_NORMAL + msgbox CeladonCity_Condominiums_1F_Text_Nidoran + waitmoncry + release + end + +CeladonCity_Condominiums_1F_EventScript_SuiteSign:: + msgbox CeladonCity_Condominiums_1F_Text_ManagersSuite, MSGBOX_SIGN + end + +CeladonCity_Condominiums_1F_Text_Meowth:: + .string "MEOWTH: Meow!$" + +CeladonCity_Condominiums_1F_Text_TryThisDrinkInstead:: + .string "You shouldn't spend all your money\n" + .string "on drinks.\p" + .string "Try this instead.$" + +CeladonCity_Condominiums_1F_Text_NothingBeatsThirstLikeTea:: + .string "Nothing beats thirst like some hot\n" + .string "TEA.\p" + .string "It really is the best.$" + +CeladonCity_Condominiums_1F_Text_MyDearMonsKeepMeCompany:: + .string "My dear POKéMON keep me company.\n" + .string "MEOWTH even brings money home!$" + +CeladonCity_Condominiums_1F_Text_DaisyComesToBuyTea:: + .string "Oh, hello, dearie.\n" + .string "Did you enjoy my TEA?\p" + .string "By the way, dear. Are you, by any\n" + .string "chance, from PALLET TOWN?\p" + .string "A girl from PALLET TOWN, DAISY,\n" + .string "she enjoys TEA every day.\p" + .string "She visits the CELADON DEPT. STORE\n" + .string "to buy some TEA.$" + +CeladonCity_Condominiums_1F_Text_Clefairy:: + .string "CLEFAIRY: Pi pippippi!$" + +CeladonCity_Condominiums_1F_Text_Nidoran:: + .string "NIDORAN♀: Kya kyaoo!$" + +CeladonCity_Condominiums_1F_Text_ManagersSuite:: + .string "CELADON MANSION\n" + .string "Manager's Suite$" + diff --git a/data/maps/CeladonCity_Condominiums_2F_Frlg/map.json b/data/maps/CeladonCity_Condominiums_2F_Frlg/map.json new file mode 100644 index 000000000000..dc47e1ba7ab6 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_2F_Frlg/map.json @@ -0,0 +1,97 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "name": "CeladonCity_Condominiums_2F_Frlg", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_2F", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "0", + "x": 6, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_2F_EventScript_PokemonJournalErika", + "flag": "FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 5, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_2F_EventScript_PokemonJournalErika", + "flag": "FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS" + } + ], + "warp_events": [ + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": "3" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": "3" + }, + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_2F_EventScript_MeetingRoomSign" + }, + { + "type": "sign", + "x": 7, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_2F_EventScript_MeetingRoomSign" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_2F_Frlg/scripts.inc b/data/maps/CeladonCity_Condominiums_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..567b8fa772ef --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_2F_Frlg/scripts.inc @@ -0,0 +1,10 @@ +CeladonCity_Condominiums_2F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Condominiums_2F_EventScript_MeetingRoomSign:: + msgbox CeladonCity_Condominiums_2F_Text_GameFreakMeetingRoom, MSGBOX_SIGN + end + +CeladonCity_Condominiums_2F_Text_GameFreakMeetingRoom:: + .string "GAME FREAK Meeting Room$" + diff --git a/data/maps/CeladonCity_Condominiums_3F_Frlg/map.json b/data/maps/CeladonCity_Condominiums_3F_Frlg/map.json new file mode 100644 index 000000000000..5c8a24f214d6 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_3F_Frlg/map.json @@ -0,0 +1,173 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "name": "CeladonCity_Condominiums_3F_Frlg", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_3F", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 0, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_3F_EventScript_Programmer", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 3, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_3F_EventScript_Designer", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 4, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_3F_EventScript_GraphicArtist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 0, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_3F_EventScript_Writer", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_3F_EventScript_DevelopmentRoomSign" + }, + { + "type": "sign", + "x": 1, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_Condominiums_3F_EventScript_Computer1" + }, + { + "type": "sign", + "x": 5, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_Condominiums_3F_EventScript_Computer2" + }, + { + "type": "sign", + "x": 1, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_Condominiums_3F_EventScript_Computer3" + }, + { + "type": "sign", + "x": 7, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_3F_EventScript_DevelopmentRoomSign" + }, + { + "type": "sign", + "x": 0, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_Condominiums_3F_EventScript_Computer3" + }, + { + "type": "sign", + "x": 0, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_Condominiums_3F_EventScript_Computer1" + }, + { + "type": "sign", + "x": 4, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_Condominiums_3F_EventScript_Computer2" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_3F_Frlg/scripts.inc b/data/maps/CeladonCity_Condominiums_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..3705e7ad4172 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_3F_Frlg/scripts.inc @@ -0,0 +1,95 @@ +CeladonCity_Condominiums_3F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Condominiums_3F_EventScript_Programmer:: + msgbox CeladonCity_Condominiums_3F_Text_ImTheProgrammer, MSGBOX_NPC + end + +CeladonCity_Condominiums_3F_EventScript_GraphicArtist:: + msgbox CeladonCity_Condominiums_3F_Text_ImTheGraphicArtist, MSGBOX_NPC + end + +CeladonCity_Condominiums_3F_EventScript_Writer:: + msgbox CeladonCity_Condominiums_3F_Text_IWroteTheStory, MSGBOX_NPC + end + +CeladonCity_Condominiums_3F_EventScript_Designer:: + lock + faceplayer + specialvar VAR_RESULT, HasAllKantoMons + goto_if_eq VAR_RESULT, TRUE, CeladonCity_Condominiums_3F_EventScript_CompletedPokedex + msgbox CeladonCity_Condominiums_3F_Text_ImGameDesignerShowMeFinishedPokedex + release + end + +CeladonCity_Condominiums_3F_EventScript_CompletedPokedex:: + goto CeladonCity_Condominiums_3F_EventScript_ShowDiploma + end + +CeladonCity_Condominiums_3F_EventScript_ShowDiploma:: + message CeladonCity_Condominiums_3F_Text_CompletedPokedexCongratulations + waitmessage + delay 60 + special Special_ShowDiploma + waitstate + release + end + +CeladonCity_Condominiums_3F_EventScript_DevelopmentRoomSign:: + msgbox CeladonCity_Condominiums_3F_Text_GameFreakDevelopmentRoom, MSGBOX_SIGN + end + +CeladonCity_Condominiums_3F_EventScript_Computer1:: + msgbox CeladonCity_Condominiums_3F_Text_ItsTheGameProgram, MSGBOX_SIGN + end + +CeladonCity_Condominiums_3F_EventScript_Computer2:: + msgbox CeladonCity_Condominiums_3F_Text_SomeonesPlayingGame, MSGBOX_SIGN + end + +CeladonCity_Condominiums_3F_EventScript_Computer3:: + msgbox CeladonCity_Condominiums_3F_Text_ItsScriptBetterNotLookAtEnding, MSGBOX_SIGN + end + +CeladonCity_Condominiums_3F_Text_ImTheProgrammer:: + .string "Me?\n" + .string "I'm the programmer!$" + +CeladonCity_Condominiums_3F_Text_ImTheGraphicArtist:: + .string "I'm the graphic artist!\n" + .string "I drew you!$" + +CeladonCity_Condominiums_3F_Text_IWroteTheStory:: + .string "I wrote the story!\n" + .string "Isn't ERIKA cute?\p" + .string "I like MISTY a lot, too!\n" + .string "Oh, and SABRINA, I like her!$" + +CeladonCity_Condominiums_3F_Text_ImGameDesignerShowMeFinishedPokedex:: + .string "Is that right?\p" + .string "I'm the game designer!\p" + .string "Filling up your POKéDEX is tough,\n" + .string "but don't quit!\p" + .string "When you finish, come tell me!$" + +CeladonCity_Condominiums_3F_Text_CompletedPokedexCongratulations:: + .string "Wow! Excellent!\n" + .string "You completed your POKéDEX!\l" + .string "Congratulations!\l" + .string "…$" + +CeladonCity_Condominiums_3F_Text_ItsTheGameProgram:: + .string "It's the game program! Messing with\n" + .string "it could bug out the game!$" + +CeladonCity_Condominiums_3F_Text_SomeonesPlayingGame:: + .string "Someone's playing a game instead of\n" + .string "working!$" + +CeladonCity_Condominiums_3F_Text_ItsScriptBetterNotLookAtEnding:: + .string "It's the script!\n" + .string "Better not look at the ending!$" + +CeladonCity_Condominiums_3F_Text_GameFreakDevelopmentRoom:: + .string "GAME FREAK Development Room$" + diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/map.json b/data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/map.json new file mode 100644 index 000000000000..3da82a1bfb86 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/map.json @@ -0,0 +1,99 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "name": "CeladonCity_Condominiums_RoofRoom_Frlg", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_BlackBelt", + "flag": "0" + }, + { + "local_id": "LOCALID_EEVEE_POKEBALL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 7, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_EeveeBall", + "flag": "FLAG_HIDE_EEVEE_BALL" + } + ], + "warp_events": [ + { + "x": 3, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_Blackboard" + }, + { + "type": "sign", + "x": 5, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_Blackboard" + }, + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_RoofRoom_EventScript_TMsPamphlet" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/scripts.inc b/data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..4dd8cc24869a --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/scripts.inc @@ -0,0 +1,157 @@ +CeladonCity_Condominiums_RoofRoom_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Condominiums_RoofRoom_EventScript_BlackBelt:: + msgbox CeladonCity_Condominiums_RoofRoom_Text_TheresNothingIDontKnow, MSGBOX_NPC + end + +CeladonCity_Condominiums_RoofRoom_EventScript_EeveeBall:: + lock + faceplayer + setvar VAR_TEMP_1, SPECIES_EEVEE + givemon SPECIES_EEVEE, 25 + goto_if_eq VAR_RESULT, 0, CeladonCity_Condominiums_RoofRoom_EventScript_GetEeveeParty + goto_if_eq VAR_RESULT, 1, CeladonCity_Condominiums_RoofRoom_EventScript_GetEeveePC + goto_if_eq VAR_RESULT, 2, Common_EventScript_NoMoreRoomForPokemon + release + end + +CeladonCity_Condominiums_RoofRoom_EventScript_GetEeveeParty:: + removeobject LOCALID_EEVEE_POKEBALL + playfanfare MUS_LEVEL_UP + message CeladonCity_Condominiums_RoofRoom_Text_ObtainedAnEevee + waitmessage + waitfanfare + bufferspeciesname STR_VAR_1, SPECIES_EEVEE + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_Condominiums_RoofRoom_EventScript_SetGotEevee + call Common_EventScript_GetGiftMonPartySlot + call Common_EventScript_NameReceivedPartyMon + goto CeladonCity_Condominiums_RoofRoom_EventScript_SetGotEevee + end + +CeladonCity_Condominiums_RoofRoom_EventScript_GetEeveePC:: + removeobject LOCALID_EEVEE_POKEBALL + playfanfare MUS_LEVEL_UP + message CeladonCity_Condominiums_RoofRoom_Text_ObtainedAnEevee + waitmessage + waitfanfare + bufferspeciesname STR_VAR_1, SPECIES_EEVEE + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_Condominiums_RoofRoom_EventScript_TransferEeveeToPC + call Common_EventScript_NameReceivedBoxMon + goto CeladonCity_Condominiums_RoofRoom_EventScript_TransferEeveeToPC + end + +CeladonCity_Condominiums_RoofRoom_EventScript_TransferEeveeToPC:: + call Common_EventScript_TransferredToPC + goto CeladonCity_Condominiums_RoofRoom_EventScript_SetGotEevee + end + +CeladonCity_Condominiums_RoofRoom_EventScript_SetGotEevee:: + setflag FLAG_GOT_EEVEE + release + end + +CeladonCity_Condominiums_RoofRoom_EventScript_TMsPamphlet:: + msgbox CeladonCity_Condominiums_RoofRoom_Text_PamphletOnTMs, MSGBOX_SIGN + end + +CeladonCity_Condominiums_RoofRoom_EventScript_Blackboard:: + lockall + msgbox CeladonCity_Condominiums_RoofRoom_Text_WirelessAdapterLecture + message CeladonCity_Condominiums_RoofRoom_Text_ReadWhichHeading + waitmessage + setvar VAR_0x8004, 4 + multichoice 0, 0, MULTI_LINKED_DIRECT_UNION, FALSE + switch VAR_RESULT + case 0, CeladonCity_Condominiums_RoofRoom_EventScript_WirelessClub + case 1, CeladonCity_Condominiums_RoofRoom_EventScript_DirectCorner + case 2, CeladonCity_Condominiums_RoofRoom_EventScript_UnionRoom + case 3, CeladonCity_Condominiums_RoofRoom_EventScript_ExitBlackboard + case 127, CeladonCity_Condominiums_RoofRoom_EventScript_ExitBlackboard + end + +CeladonCity_Condominiums_RoofRoom_EventScript_ReadAnotherHeading:: + message CeladonCity_Condominiums_RoofRoom_Text_ReadWhichHeading + waitmessage + multichoice 0, 0, MULTI_LINKED_DIRECT_UNION, FALSE + switch VAR_RESULT + case 0, CeladonCity_Condominiums_RoofRoom_EventScript_WirelessClub + case 1, CeladonCity_Condominiums_RoofRoom_EventScript_DirectCorner + case 2, CeladonCity_Condominiums_RoofRoom_EventScript_UnionRoom + case 3, CeladonCity_Condominiums_RoofRoom_EventScript_ExitBlackboard + case 127, CeladonCity_Condominiums_RoofRoom_EventScript_ExitBlackboard + end + +CeladonCity_Condominiums_RoofRoom_EventScript_WirelessClub:: + msgbox CeladonCity_Condominiums_RoofRoom_Text_ExplainWirelessClub + goto CeladonCity_Condominiums_RoofRoom_EventScript_ReadAnotherHeading + end + +CeladonCity_Condominiums_RoofRoom_EventScript_DirectCorner:: + msgbox CeladonCity_Condominiums_RoofRoom_Text_ExplainDirectCorner + goto CeladonCity_Condominiums_RoofRoom_EventScript_ReadAnotherHeading + end + +CeladonCity_Condominiums_RoofRoom_EventScript_UnionRoom:: + msgbox CeladonCity_Condominiums_RoofRoom_Text_ExplainUnionRoom + goto CeladonCity_Condominiums_RoofRoom_EventScript_ReadAnotherHeading + end + +CeladonCity_Condominiums_RoofRoom_EventScript_ExitBlackboard:: + releaseall + end + +CeladonCity_Condominiums_RoofRoom_Text_TheresNothingIDontKnow:: + .string "There is nothing that I don't know,\n" + .string "like I wrote on the blackboard.\p" + .string "I know about the world of POKéMON\n" + .string "in your GAME BOY ADVANCE!\p" + .string "Get together with your friends and\n" + .string "enjoy trading POKéMON!$" + +CeladonCity_Condominiums_RoofRoom_Text_ObtainedAnEevee:: + .string "{PLAYER} obtained an EEVEE!$" + +CeladonCity_Condominiums_RoofRoom_Text_BoxIsFull:: + .string "ポケモンが いっぱいだ\n" + .string "ボックスを かえて きなさい$" + +CeladonCity_Condominiums_RoofRoom_Text_WirelessAdapterLecture:: + .string "POKéMON Lecture\p" + .string "Playing with the Wireless Adapter$" + +CeladonCity_Condominiums_RoofRoom_Text_ReadWhichHeading:: + .string "Which heading do you want to read?$" + +CeladonCity_Condominiums_RoofRoom_Text_ExplainWirelessClub:: + .string "The POKéMON WIRELESS CLUB is\n" + .string "upstairs at any POKéMON CENTER.\p" + .string "Visit one to link up with friend(s)\n" + .string "using your Wireless Adapter.$" + +CeladonCity_Condominiums_RoofRoom_Text_ExplainDirectCorner:: + .string "To link only with a friend, go to\n" + .string "the DIRECT CORNER.\p" + .string "It is the right counter at the\n" + .string "POKéMON WIRELESS CLUB.\p" + .string "Go into the TRADE CORNER or the\n" + .string "COLOSSEUM with your friend.$" + +CeladonCity_Condominiums_RoofRoom_Text_ExplainUnionRoom:: + .string "To link and communicate with\n" + .string "anyone, go to the UNION ROOM.\p" + .string "It is the left counter at the\n" + .string "POKéMON WIRELESS CLUB.\p" + .string "Go to the UNION ROOM and enjoy\n" + .string "meeting other TRAINERS.$" + +CeladonCity_Condominiums_RoofRoom_Text_PamphletOnTMs:: + .string "It's a pamphlet on TMs.\p" + .string "… …\p" + .string "There are fifty TMs in all.\p" + .string "There are also seven HMs that\n" + .string "can be used repeatedly.\p" + .string "SILPH CO.$" + diff --git a/data/maps/CeladonCity_Condominiums_Roof_Frlg/map.json b/data/maps/CeladonCity_Condominiums_Roof_Frlg/map.json new file mode 100644 index 000000000000..54edc480a006 --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_Roof_Frlg/map.json @@ -0,0 +1,61 @@ +{ + "id": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", + "name": "CeladonCity_Condominiums_Roof_Frlg", + "layout": "LAYOUT_CELADON_CITY_CONDOMINIUMS_ROOF", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": "1" + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", + "dest_warp_id": "2" + }, + { + "x": 2, + "y": 12, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_Roof_EventScript_Sign" + }, + { + "type": "sign", + "x": 3, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Condominiums_Roof_EventScript_Sign" + } + ] +} diff --git a/data/maps/CeladonCity_Condominiums_Roof_Frlg/scripts.inc b/data/maps/CeladonCity_Condominiums_Roof_Frlg/scripts.inc new file mode 100644 index 000000000000..d39c192b516f --- /dev/null +++ b/data/maps/CeladonCity_Condominiums_Roof_Frlg/scripts.inc @@ -0,0 +1,10 @@ +CeladonCity_Condominiums_Roof_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Condominiums_Roof_EventScript_Sign:: + msgbox CeladonCity_Condominiums_Roof_Text_IKnowEverything, MSGBOX_SIGN + end + +CeladonCity_Condominiums_Roof_Text_IKnowEverything:: + .string "I KNOW EVERYTHING!$" + diff --git a/data/maps/CeladonCity_DepartmentStore_1F_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_1F_Frlg/map.json new file mode 100644 index 000000000000..2614530fbdc4 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_1F_Frlg/map.json @@ -0,0 +1,111 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "name": "CeladonCity_DepartmentStore_1F_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_1F", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": true, + "floor_number": 1, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 6, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_1F_EventScript_Receptionist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 14, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "1" + }, + { + "x": 3, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "2" + }, + { + "x": 10, + "y": 14, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "2" + }, + { + "x": 11, + "y": 15, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_1F_EventScript_LayoutSign" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_1F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_1F_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d1a8bed8fbe7 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_1F_Frlg/scripts.inc @@ -0,0 +1,32 @@ +CeladonCity_DepartmentStore_1F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_1F_EventScript_Receptionist:: + msgbox CeladonCity_DepartmentStore_1F_Text_WelcomeToDeptStore, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_1F_EventScript_LayoutSign:: + msgbox CeladonCity_DepartmentStore_1F_Text_FloorDescriptions, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_1F_EventScript_FloorSign:: + msgbox CeladonCity_DepartmentStore_1F_Text_ServiceCounter, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_1F_Text_WelcomeToDeptStore:: + .string "Hello!\n" + .string "Welcome to CELADON DEPT. STORE.\p" + .string "The board on the right describes\n" + .string "the store layout.$" + +CeladonCity_DepartmentStore_1F_Text_FloorDescriptions:: + .string "1F: SERVICE COUNTER\p" + .string "2F: TRAINER'S MARKET\p" + .string "3F: TV GAME SHOP\p" + .string "4F: WISE MAN GIFTS\p" + .string "5F: DRUGSTORE\p" + .string "ROOFTOP SQUARE: VENDING MACHINES$" + +CeladonCity_DepartmentStore_1F_Text_ServiceCounter:: + .string "1F: SERVICE COUNTER$" + diff --git a/data/maps/CeladonCity_DepartmentStore_2F_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_2F_Frlg/map.json new file mode 100644 index 000000000000..80c8768194e5 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_2F_Frlg/map.json @@ -0,0 +1,110 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", + "name": "CeladonCity_DepartmentStore_2F_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_2F", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": true, + "floor_number": 2, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 5, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_2F_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 1, + "y": 8, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_2F_EventScript_ClerkItems", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_2F_EventScript_ClerkTMs", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_2F_EventScript_Woman", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "dest_warp_id": "7" + }, + { + "x": 9, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_2F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_2F_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..05657111352e --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_2F_Frlg/scripts.inc @@ -0,0 +1,81 @@ +CeladonCity_DepartmentStore_2F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_2F_EventScript_UnusedNPC:: + msgbox CeladonCity_DepartmentStore_2F_Text_SuperRepelMorePowerfulRepel, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_2F_EventScript_Lass:: + msgbox CeladonCity_DepartmentStore_2F_Text_BuyReviveForLongOutings, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_2F_EventScript_FloorSign:: + msgbox CeladonCity_DepartmentStore_2F_Text_FloorSign, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_2F_EventScript_ClerkItems:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CeladonCity_DepartmentStore_2F_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CeladonCity_DepartmentStore_2F_Items:: + .2byte ITEM_GREAT_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_BURN_HEAL + .2byte ITEM_ICE_HEAL + .2byte ITEM_SUPER_REPEL + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_2F_EventScript_ClerkTMs:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CeladonCity_DepartmentStore_2F_TMs + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CeladonCity_DepartmentStore_2F_TMs:: + .2byte ITEM_TM05 + .2byte ITEM_TM15 + .2byte ITEM_TM28 + .2byte ITEM_TM31 + .2byte ITEM_TM43 + .2byte ITEM_TM45 + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_2F_Text_SuperRepelMorePowerfulRepel:: + .string "SUPER REPEL keeps weak POKéMON at\n" + .string "bay…\p" + .string "Hmm, it's a more powerful REPEL.$" + +CeladonCity_DepartmentStore_2F_Text_BuyReviveForLongOutings:: + .string "For long outings, you should buy\n" + .string "REVIVE.$" + +CeladonCity_DepartmentStore_2F_Text_FloorSign:: + .string "Top-Grade Items for TRAINERS!\p" + .string "2F: TRAINER'S MARKET$" + +CeladonCity_DepartmentStore_2F_Text_LanceComesToBuyCapes:: + .string "We have a customer, LANCE, who\n" + .string "occasionally comes.\p" + .string "He always buys capes.\p" + .string "I wonder… Does he have many\n" + .string "identical capes at home?$" diff --git a/data/maps/CeladonCity_DepartmentStore_3F_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_3F_Frlg/map.json new file mode 100644 index 000000000000..4ebd200844a6 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_3F_Frlg/map.json @@ -0,0 +1,204 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", + "name": "CeladonCity_DepartmentStore_3F_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_3F", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": true, + "floor_number": 3, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 10, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_3F_EventScript_CounterTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_3F_EventScript_GBAKid1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_3F_EventScript_GBAKid3", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 1, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_3F_EventScript_GBAKid2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 9, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_3F_EventScript_LittleGirl", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", + "dest_warp_id": "2" + }, + { + "x": 3, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_3F_EventScript_FloorSign" + }, + { + "type": "sign", + "x": 2, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_DepartmentStore_3F_EventScript_TV1" + }, + { + "type": "sign", + "x": 5, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_DepartmentStore_3F_EventScript_TV2" + }, + { + "type": "sign", + "x": 2, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_DepartmentStore_3F_EventScript_TV3" + }, + { + "type": "sign", + "x": 5, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_DepartmentStore_3F_EventScript_TV4" + }, + { + "type": "sign", + "x": 1, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_3F_EventScript_SuperNES" + }, + { + "type": "sign", + "x": 1, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_3F_EventScript_SuperNES" + }, + { + "type": "sign", + "x": 4, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_3F_EventScript_SuperNES" + }, + { + "type": "sign", + "x": 4, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_3F_EventScript_SuperNES" + }, + { + "type": "sign", + "x": 2, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_DepartmentStore_3F_EventScript_Poster" + }, + { + "type": "sign", + "x": 0, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CeladonCity_DepartmentStore_3F_EventScript_Poster" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_3F_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..bd22e62f2e65 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_3F_Frlg/scripts.inc @@ -0,0 +1,121 @@ +CeladonCity_DepartmentStore_3F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_3F_EventScript_CounterTutor:: + goto EventScript_CounterTutor + end + +CeladonCity_DepartmentStore_3F_EventScript_GBAKid1:: + msgbox CeladonCity_DepartmentStore_3F_Text_OTStandsForOriginalTrainer, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_3F_EventScript_GBAKid2:: + msgbox CeladonCity_DepartmentStore_3F_Text_BuddyTradingKangaskhanForHaunter, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_3F_EventScript_GBAKid3:: + msgbox CeladonCity_DepartmentStore_3F_Text_HaunterEvolvedOnTrade, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_3F_EventScript_LittleGirl:: + msgbox CeladonCity_DepartmentStore_3F_Text_CanIdentifyTradeMonsByID, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_3F_EventScript_SuperNES:: + msgbox CeladonCity_DepartmentStore_3F_Text_ItsSuperNES, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_EventScript_TV1:: + msgbox CeladonCity_DepartmentStore_3F_Text_AnRPG, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_EventScript_TV2:: + msgbox CeladonCity_DepartmentStore_3F_Text_SportsGame, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_EventScript_TV3:: + msgbox CeladonCity_DepartmentStore_3F_Text_PuzzleGame, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_EventScript_TV4:: + msgbox CeladonCity_DepartmentStore_3F_Text_FightingGame, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_EventScript_FloorSign:: + msgbox CeladonCity_DepartmentStore_3F_Text_TVGameShop, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_EventScript_Poster:: + msgbox CeladonCity_DepartmentStore_3F_Text_RedGreenBothArePokemon, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_3F_Text_OTStandsForOriginalTrainer:: + .string "Captured POKéMON are registered\n" + .string "with an ID No. and the OT.\p" + .string "OT stands for “Original TRAINER” -\n" + .string "the TRAINER that caught it first.$" + +CeladonCity_DepartmentStore_3F_Text_BuddyTradingKangaskhanForHaunter:: + .string "All right!\p" + .string "My buddy's going to trade me his\n" + .string "KANGASKHAN for my HAUNTER!$" + +CeladonCity_DepartmentStore_3F_Text_HaunterEvolvedOnTrade:: + .string "Come on, HAUNTER!\p" + .string "I love HAUNTER!\n" + .string "I collect them!\p" + .string "Huh?\p" + .string "HAUNTER turned into a different\n" + .string "POKéMON while being traded!$" + +CeladonCity_DepartmentStore_3F_Text_CanIdentifyTradeMonsByID:: + .string "You can identify POKéMON you get\n" + .string "in trades by their ID Numbers.$" + +CeladonCity_DepartmentStore_3F_Text_ItsSuperNES:: + .string "It's a Super NES.$" + +CeladonCity_DepartmentStore_3F_Text_AnRPG:: + .string "An RPG!\n" + .string "There's no time for that!$" + +CeladonCity_DepartmentStore_3F_Text_SportsGame:: + .string "A sports game!\n" + .string "Dad'll like that!$" + +CeladonCity_DepartmentStore_3F_Text_PuzzleGame:: + .string "A puzzle game!\n" + .string "Looks addictive!$" + +CeladonCity_DepartmentStore_3F_Text_FightingGame:: + .string "A fighting game!\n" + .string "Looks tough!$" + +CeladonCity_DepartmentStore_3F_Text_TVGameShop:: + .string "3F: TV GAME SHOP$" + +CeladonCity_DepartmentStore_3F_Text_RedGreenBothArePokemon:: + .string "Red and Green!\n" + .string "Both are POKéMON!$" + +Text_CounterTeach:: + .string "Oh, hi!\n" + .string "I finally finished POKéMON.\p" + .string "Not done yet? How about I teach\n" + .string "you a good move?\p" + .string "The move I have in mind is\n" + .string "COUNTER.\p" + .string "Not like the one I'm leaning on,\n" + .string "mind you!$" + +Text_CounterDeclined:: + .string "You're not interested? Come see\n" + .string "me if you change your mind.$" + +Text_CounterWhichMon:: + .string "Which POKéMON should I teach\n" + .string "COUNTER to?$" + +Text_CounterTaught:: + .string "Are you using that COUNTER move\n" + .string "I taught your POKéMON?$" diff --git a/data/maps/CeladonCity_DepartmentStore_4F_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_4F_Frlg/map.json new file mode 100644 index 000000000000..bd9e3bcac534 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_4F_Frlg/map.json @@ -0,0 +1,96 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", + "name": "CeladonCity_DepartmentStore_4F_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": true, + "floor_number": 4, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_4F_EventScript_Man", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 10, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_4F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 3, + "y": 13, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_4F_EventScript_Clerk", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", + "dest_warp_id": "2" + }, + { + "x": 9, + "y": 2, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_4F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_4F_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_4F_Frlg/scripts.inc new file mode 100644 index 000000000000..ec69a5baf97a --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_4F_Frlg/scripts.inc @@ -0,0 +1,55 @@ +CeladonCity_DepartmentStore_4F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_4F_EventScript_Man:: + msgbox CeladonCity_DepartmentStore_4F_Text_GettingPokeDollAsPresent, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_4F_EventScript_Youngster:: + msgbox CeladonCity_DepartmentStore_4F_Text_CanRunAwayWithPokeDoll, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_4F_EventScript_FloorSign:: + msgbox CeladonCity_DepartmentStore_4F_Text_FloorSign, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_4F_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CeladonCity_DepartmentStore_4F_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CeladonCity_DepartmentStore_4F_Items:: + .2byte ITEM_POKE_DOLL + .2byte ITEM_RETRO_MAIL + .2byte ITEM_FIRE_STONE + .2byte ITEM_THUNDER_STONE + .2byte ITEM_WATER_STONE + .2byte ITEM_LEAF_STONE + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_4F_Text_GettingPokeDollAsPresent:: + .string "I'm getting a present for my\n" + .string "girlfriend.\p" + .string "I guess a POKé DOLL will be it.\n" + .string "It's the popular thing.$" + +CeladonCity_DepartmentStore_4F_Text_CanRunAwayWithPokeDoll:: + .string "I heard something useful.\p" + .string "If a wild POKéMON appears, you can\n" + .string "distract it with a POKé DOLL.\p" + .string "You can run away while the wild\n" + .string "POKéMON is distracted.$" + +CeladonCity_DepartmentStore_4F_Text_FloorSign:: + .string "Express yourself with gifts!\n" + .string "4F: WISE MAN GIFTS\p" + .string "Evolution Special!\n" + .string "Element STONES on sale now!$" diff --git a/data/maps/CeladonCity_DepartmentStore_5F_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_5F_Frlg/map.json new file mode 100644 index 000000000000..36eb29a6a2c8 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_5F_Frlg/map.json @@ -0,0 +1,110 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", + "name": "CeladonCity_DepartmentStore_5F_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": true, + "floor_number": 5, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_5F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_5F_EventScript_Sailor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 1, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_5F_EventScript_ClerkXItems", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_5F_EventScript_ClerkVitamins", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", + "dest_warp_id": "2" + }, + { + "x": 3, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_5F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_5F_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_5F_Frlg/scripts.inc new file mode 100644 index 000000000000..54d5ffebbed7 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_5F_Frlg/scripts.inc @@ -0,0 +1,83 @@ +CeladonCity_DepartmentStore_5F_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_5F_EventScript_Gentleman:: + msgbox CeladonCity_DepartmentStore_5F_Text_ExplainStatEnhancers, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_5F_EventScript_Sailor:: + msgbox CeladonCity_DepartmentStore_5F_Text_HereForStatEnhancers, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_5F_EventScript_FloorSign:: + msgbox CeladonCity_DepartmentStore_5F_Text_Drugstore, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_5F_EventScript_ClerkXItems:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CeladonCity_DepartmentStore_5F_XItems + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CeladonCity_DepartmentStore_5F_XItems:: + .2byte ITEM_X_ATTACK + .2byte ITEM_X_DEFEND + .2byte ITEM_X_SPEED + .2byte ITEM_X_SPECIAL + .2byte ITEM_X_ACCURACY + .2byte ITEM_GUARD_SPEC + .2byte ITEM_DIRE_HIT + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_5F_EventScript_ClerkVitamins:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CeladonCity_DepartmentStore_5F_Vitamins + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CeladonCity_DepartmentStore_5F_Vitamins:: + .2byte ITEM_HP_UP + .2byte ITEM_PROTEIN + .2byte ITEM_IRON + .2byte ITEM_CALCIUM + .2byte ITEM_ZINC + .2byte ITEM_CARBOS + .2byte ITEM_NONE + release + end + +CeladonCity_DepartmentStore_5F_Text_ExplainStatEnhancers:: + .string "POKéMON stat enhancers can be\n" + .string "bought only here.\p" + .string "HP UP increases the base HP of a\n" + .string "POKéMON.\p" + .string "CALCIUM raises the base SP. ATK\n" + .string "stat of one POKéMON.\p" + .string "ZINC boosts the base SP. DEF stat\n" + .string "of one POKéMON.\p" + .string "CARBOS enhances the base SPEED\n" + .string "stat.$" + +CeladonCity_DepartmentStore_5F_Text_HereForStatEnhancers:: + .string "I'm here for POKéMON stat\n" + .string "enhancers.\p" + .string "PROTEIN increases the base ATTACK\n" + .string "power.\p" + .string "IRON increases the base DEFENSE\n" + .string "stat.$" + +CeladonCity_DepartmentStore_5F_Text_Drugstore:: + .string "5F: DRUGSTORE$" + diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/map.json new file mode 100644 index 000000000000..34b3731b4806 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "name": "CeladonCity_DepartmentStore_Elevator_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 2, + "y": 6, + "elevation": 0, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 0, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelect" + }, + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelect" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/scripts.inc new file mode 100644 index 000000000000..a9c844a7aee6 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/scripts.inc @@ -0,0 +1,115 @@ +CeladonCity_DepartmentStore_Elevator_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelect:: + lockall + setvar VAR_0x8004, 3 + call_if_unset FLAG_TEMP_2, EventScript_GetElevatorFloor + copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR + special DrawElevatorCurrentFloorWindow + message gText_WantWhichFloor + waitmessage + setvar VAR_0x8004, 3 + specialvar VAR_RESULT, InitElevatorFloorSelectMenuPos + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom5F + case 1, CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom4F + case 2, CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom3F + case 3, CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom2F + case 4, CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom1F + end + +CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom5F:: + multichoicedefault 0, 0, MULTI_DEPT_STORE_ELEVATOR, 0, FALSE + goto CeladonCity_DepartmentStore_Elevator_EventScript_ChooseFloor + end + +CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom4F:: + multichoicedefault 0, 0, MULTI_DEPT_STORE_ELEVATOR, 1, FALSE + goto CeladonCity_DepartmentStore_Elevator_EventScript_ChooseFloor + end + +CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom3F:: + multichoicedefault 0, 0, MULTI_DEPT_STORE_ELEVATOR, 2, FALSE + goto CeladonCity_DepartmentStore_Elevator_EventScript_ChooseFloor + end + +CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom2F:: + multichoicedefault 0, 0, MULTI_DEPT_STORE_ELEVATOR, 3, FALSE + goto CeladonCity_DepartmentStore_Elevator_EventScript_ChooseFloor + end + +CeladonCity_DepartmentStore_Elevator_EventScript_FloorSelectFrom1F:: + multichoicedefault 0, 0, MULTI_DEPT_STORE_ELEVATOR, 4, FALSE + goto CeladonCity_DepartmentStore_Elevator_EventScript_ChooseFloor + end + +CeladonCity_DepartmentStore_Elevator_EventScript_ChooseFloor:: + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Elevator_EventScript_To5F + case 1, CeladonCity_DepartmentStore_Elevator_EventScript_To4F + case 2, CeladonCity_DepartmentStore_Elevator_EventScript_To3F + case 3, CeladonCity_DepartmentStore_Elevator_EventScript_To2F + case 4, CeladonCity_DepartmentStore_Elevator_EventScript_To1F + case 5, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + case 127, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + end + +CeladonCity_DepartmentStore_Elevator_EventScript_To1F:: + setvar VAR_0x8006, 4 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_1F, 255, 6, 1 + goto_if_eq VAR_ELEVATOR_FLOOR, 4, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + call CeladonCity_DepartmentStore_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 4 + goto CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + end + +CeladonCity_DepartmentStore_Elevator_EventScript_To2F:: + setvar VAR_0x8006, 5 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_2F, 255, 6, 1 + goto_if_eq VAR_ELEVATOR_FLOOR, 5, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + call CeladonCity_DepartmentStore_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 5 + goto CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + end + +CeladonCity_DepartmentStore_Elevator_EventScript_To3F:: + setvar VAR_0x8006, 6 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_3F, 255, 6, 1 + goto_if_eq VAR_ELEVATOR_FLOOR, 6, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + call CeladonCity_DepartmentStore_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 6 + goto CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + end + +CeladonCity_DepartmentStore_Elevator_EventScript_To4F:: + setvar VAR_0x8006, 7 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_4F, 255, 6, 1 + goto_if_eq VAR_ELEVATOR_FLOOR, 7, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + call CeladonCity_DepartmentStore_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 7 + goto CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + end + +CeladonCity_DepartmentStore_Elevator_EventScript_To5F:: + setvar VAR_0x8006, 8 + setdynamicwarp MAP_CELADON_CITY_DEPARTMENT_STORE_5F, 255, 6, 1 + goto_if_eq VAR_ELEVATOR_FLOOR, 8, CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + call CeladonCity_DepartmentStore_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 8 + goto CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect + end + +CeladonCity_DepartmentStore_Elevator_EventScript_ExitFloorSelect:: + special CloseElevatorCurrentFloorWindow + releaseall + end + +CeladonCity_DepartmentStore_Elevator_EventScript_MoveElevator:: + special CloseElevatorCurrentFloorWindow + closemessage + waitse + special AnimateElevator + waitstate + setflag FLAG_TEMP_2 + return diff --git a/data/maps/CeladonCity_DepartmentStore_Roof_Frlg/map.json b/data/maps/CeladonCity_DepartmentStore_Roof_Frlg/map.json new file mode 100644 index 000000000000..d1c436d9d6de --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Roof_Frlg/map.json @@ -0,0 +1,92 @@ +{ + "id": "MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "name": "CeladonCity_DepartmentStore_Roof_Frlg", + "layout": "LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": true, + "floor_number": 127, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_Roof_EventScript_CooltrainerM", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_DepartmentStore_Roof_EventScript_ThirstyGirl", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 14, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_Roof_EventScript_FloorSign" + }, + { + "type": "sign", + "x": 10, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_Roof_EventScript_VendingMachine" + }, + { + "type": "sign", + "x": 11, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_Roof_EventScript_VendingMachine" + }, + { + "type": "sign", + "x": 12, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_DepartmentStore_Roof_EventScript_VendingMachine" + } + ] +} diff --git a/data/maps/CeladonCity_DepartmentStore_Roof_Frlg/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Roof_Frlg/scripts.inc new file mode 100644 index 000000000000..323535addb31 --- /dev/null +++ b/data/maps/CeladonCity_DepartmentStore_Roof_Frlg/scripts.inc @@ -0,0 +1,364 @@ +CeladonCity_DepartmentStore_Roof_Frlg_MapScripts:: + .byte 0 + +CeladonCity_DepartmentStore_Roof_EventScript_ThirstyGirl:: + lock + faceplayer + call CeladonCity_DepartmentStore_Roof_EventScript_CheckPlayerHasDrinks + goto_if_eq VAR_TEMP_1, 0, CeladonCity_DepartmentStore_Roof_EventScript_IWantDrink + goto CeladonCity_DepartmentStore_Roof_EventScript_AskGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_CheckPlayerHasDrinks:: + setvar VAR_TEMP_1, 0 + checkitem ITEM_FRESH_WATER + call_if_eq VAR_RESULT, TRUE, CeladonCity_DepartmentStore_Roof_EventScript_SetHasFreshWater + checkitem ITEM_SODA_POP + call_if_eq VAR_RESULT, TRUE, CeladonCity_DepartmentStore_Roof_EventScript_SetHasSodaPop + checkitem ITEM_LEMONADE + call_if_eq VAR_RESULT, TRUE, CeladonCity_DepartmentStore_Roof_EventScript_SetHasLemonade + return + +CeladonCity_DepartmentStore_Roof_EventScript_SetHasFreshWater:: + addvar VAR_TEMP_1, 1 + return + +CeladonCity_DepartmentStore_Roof_EventScript_SetHasSodaPop:: + addvar VAR_TEMP_1, 2 + return + +CeladonCity_DepartmentStore_Roof_EventScript_SetHasLemonade:: + addvar VAR_TEMP_1, 4 + return + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveDrink:: + msgbox CeladonCity_DepartmentStore_Roof_Text_ImThirstyGiveHerDrink, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + textcolor NPC_TEXT_COLOR_NEUTRAL + message CeladonCity_DepartmentStore_Roof_Text_GiveWhichDrink + waitmessage + textcolor NPC_TEXT_COLOR_FEMALE + switch VAR_TEMP_1 + case 1, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveFreshWater + case 2, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveSodaPop + case 3, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveFreshWaterSodaPop + case 4, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveLemonade + case 5, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveFreshWaterLemonade + case 6, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveSodaPopLemonade + case 7, CeladonCity_DepartmentStore_Roof_EventScript_AskGiveAllDrinks + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveFreshWater:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_FRESH_WATER, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveFreshWater + case 1, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveSodaPop:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_SODA_POP, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveSodaPop + case 1, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveFreshWaterSodaPop:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_FRESH_WATER_SODA_POP, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveFreshWater + case 1, CeladonCity_DepartmentStore_Roof_EventScript_GiveSodaPop + case 2, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveLemonade:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_LEMONADE, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveLemonade + case 1, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveFreshWaterLemonade:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_FRESH_WATER_LEMONADE, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveFreshWater + case 1, CeladonCity_DepartmentStore_Roof_EventScript_GiveLemonade + case 2, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveSodaPopLemonade:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_SODA_POP_LEMONADE, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveSodaPop + case 1, CeladonCity_DepartmentStore_Roof_EventScript_GiveLemonade + case 2, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_AskGiveAllDrinks:: + multichoice 0, 0, MULTI_THIRSTY_GIRL_FRESH_WATER_SODA_POP_LEMONADE, FALSE + switch VAR_RESULT + case 0, CeladonCity_DepartmentStore_Roof_EventScript_GiveFreshWater + case 1, CeladonCity_DepartmentStore_Roof_EventScript_GiveSodaPop + case 2, CeladonCity_DepartmentStore_Roof_EventScript_GiveLemonade + case 3, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + case 127, CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_GiveFreshWater:: + setvar VAR_0x8008, ITEM_FRESH_WATER + setvar VAR_0x8009, ITEM_TM16 + goto_if_set FLAG_GOT_TM16_FROM_THIRSTY_GIRL, CeladonCity_DepartmentStore_Roof_EventScript_NotThirstyAfterAll + msgbox CeladonCity_DepartmentStore_Roof_Text_YayFreshWaterHaveThis + goto CeladonCity_DepartmentStore_Roof_EventScript_GiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_GiveSodaPop:: + setvar VAR_0x8008, ITEM_SODA_POP + setvar VAR_0x8009, ITEM_TM20 + goto_if_set FLAG_GOT_TM20_FROM_THIRSTY_GIRL, CeladonCity_DepartmentStore_Roof_EventScript_NotThirstyAfterAll + msgbox CeladonCity_DepartmentStore_Roof_Text_YaySodaPopHaveThis + goto CeladonCity_DepartmentStore_Roof_EventScript_GiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_GiveLemonade:: + setvar VAR_0x8008, ITEM_LEMONADE + setvar VAR_0x8009, ITEM_TM33 + goto_if_set FLAG_GOT_TM33_FROM_THIRSTY_GIRL, CeladonCity_DepartmentStore_Roof_EventScript_NotThirstyAfterAll + msgbox CeladonCity_DepartmentStore_Roof_Text_YayLemonadeHaveThis + goto CeladonCity_DepartmentStore_Roof_EventScript_GiveDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_GiveDrink:: + bufferitemname STR_VAR_1, VAR_0x8008 + bufferitemname STR_VAR_2, VAR_0x8009 + removeitem VAR_0x8008 + checkitemspace VAR_0x8009 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_DepartmentStore_Roof_EventScript_NoRoomForReward + additem VAR_0x8009 + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message Text_ReceivedItemFromLittleGirl + waitmessage + waitfanfare + putitemaway VAR_0x8009 + call EventScript_RestorePrevTextColor + call_if_eq VAR_0x8008, ITEM_FRESH_WATER, CeladonCity_DepartmentStore_Roof_EventScript_ExplainTM16 + call_if_eq VAR_0x8008, ITEM_SODA_POP, CeladonCity_DepartmentStore_Roof_EventScript_ExplainTM20 + call_if_eq VAR_0x8008, ITEM_LEMONADE, CeladonCity_DepartmentStore_Roof_EventScript_ExplainTM33 + release + end + +CeladonCity_DepartmentStore_Roof_EventScript_ExplainTM16:: + setflag FLAG_GOT_TM16_FROM_THIRSTY_GIRL + msgbox CeladonCity_DepartmentStore_Roof_Text_ExplainTM16 + return + +CeladonCity_DepartmentStore_Roof_EventScript_ExplainTM20:: + setflag FLAG_GOT_TM20_FROM_THIRSTY_GIRL + msgbox CeladonCity_DepartmentStore_Roof_Text_ExplainTM20 + return + +CeladonCity_DepartmentStore_Roof_EventScript_ExplainTM33:: + setflag FLAG_GOT_TM33_FROM_THIRSTY_GIRL + msgbox CeladonCity_DepartmentStore_Roof_Text_ExplainTM33 + return + +CeladonCity_DepartmentStore_Roof_EventScript_NoRoomForReward:: + msgbox CeladonCity_DepartmentStore_Roof_Text_DontHaveSpaceForThis + release + end + +CeladonCity_DepartmentStore_Roof_EventScript_DontGiveDrink:: + release + end + +CeladonCity_DepartmentStore_Roof_EventScript_IWantDrink:: + msgbox CeladonCity_DepartmentStore_Roof_Text_ImThirstyIWantDrink + release + end + +CeladonCity_DepartmentStore_Roof_EventScript_NotThirstyAfterAll:: + msgbox CeladonCity_DepartmentStore_Roof_Text_ImNotThirstyAfterAll + release + end + +CeladonCity_DepartmentStore_Roof_EventScript_CooltrainerM:: + msgbox CeladonCity_DepartmentStore_Roof_Text_MySisterIsImmature, MSGBOX_NPC + end + +CeladonCity_DepartmentStore_Roof_EventScript_FloorSign:: + msgbox CeladonCity_DepartmentStore_Roof_Text_FloorSign, MSGBOX_SIGN + end + +CeladonCity_DepartmentStore_Roof_EventScript_VendingMachine:: + lockall + message CeladonCity_DepartmentStore_Roof_Text_VendingMachineWhatDoesItHave + waitmessage + showmoneybox 0, 0 + goto CeladonCity_DepartmentStore_Roof_EventScript_ChooseDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_ChooseDrink:: + multichoice 12, 0, MULTI_CELADON_VENDING_MACHINE, FALSE + copyvar VAR_TEMP_1, VAR_RESULT + switch VAR_TEMP_1 + case 0, CeladonCity_DepartmentStore_Roof_EventScript_BuyFreshWater + case 1, CeladonCity_DepartmentStore_Roof_EventScript_BuySodaPop + case 2, CeladonCity_DepartmentStore_Roof_EventScript_BuyLemonade + msgbox CeladonCity_DepartmentStore_Roof_Text_NotThirsty + goto CeladonCity_DepartmentStore_Roof_EventScript_ExitVendingMachine + end + +CeladonCity_DepartmentStore_Roof_EventScript_BuyFreshWater:: + setvar VAR_TEMP_0, ITEM_FRESH_WATER + checkmoney 200 + goto CeladonCity_DepartmentStore_Roof_EventScript_TryBuyDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_BuySodaPop:: + setvar VAR_TEMP_0, ITEM_SODA_POP + checkmoney 300 + goto CeladonCity_DepartmentStore_Roof_EventScript_TryBuyDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_BuyLemonade:: + setvar VAR_TEMP_0, ITEM_LEMONADE + checkmoney 350 + goto CeladonCity_DepartmentStore_Roof_EventScript_TryBuyDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_RemoveMoneyFreshWater:: + removemoney 200 + return + +CeladonCity_DepartmentStore_Roof_EventScript_RemoveMoneySodaPop:: + removemoney 300 + return + +CeladonCity_DepartmentStore_Roof_EventScript_RemoveMoneyLemonade:: + removemoney 350 + return + +CeladonCity_DepartmentStore_Roof_EventScript_TryBuyDrink:: + goto_if_eq VAR_RESULT, FALSE, CeladonCity_DepartmentStore_Roof_EventScript_NotEnoughMoney + checkitemspace VAR_TEMP_0 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_DepartmentStore_Roof_EventScript_NoRoomForDrink + call_if_eq VAR_TEMP_1, 0, CeladonCity_DepartmentStore_Roof_EventScript_RemoveMoneyFreshWater + call_if_eq VAR_TEMP_1, 1, CeladonCity_DepartmentStore_Roof_EventScript_RemoveMoneySodaPop + call_if_eq VAR_TEMP_1, 2, CeladonCity_DepartmentStore_Roof_EventScript_RemoveMoneyLemonade + updatemoneybox + bufferitemname STR_VAR_1, VAR_TEMP_0 + playse SE_VEND + msgbox CeladonCity_DepartmentStore_Roof_Text_DrinkCanPoppedOut + additem VAR_TEMP_0 + goto CeladonCity_DepartmentStore_Roof_EventScript_ChooseNewDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_ChooseNewDrink:: + message CeladonCity_DepartmentStore_Roof_Text_VendingMachineWhatDoesItHave + waitmessage + goto CeladonCity_DepartmentStore_Roof_EventScript_ChooseDrink + end + +CeladonCity_DepartmentStore_Roof_EventScript_NotEnoughMoney:: + msgbox CeladonCity_DepartmentStore_Roof_Text_NotEnoughMoney + goto CeladonCity_DepartmentStore_Roof_EventScript_ExitVendingMachine + end + +CeladonCity_DepartmentStore_Roof_EventScript_NoRoomForDrink:: + msgbox CeladonCity_DepartmentStore_Roof_Text_NoMoreRoomForStuff + goto CeladonCity_DepartmentStore_Roof_EventScript_ExitVendingMachine + end + +CeladonCity_DepartmentStore_Roof_EventScript_ExitVendingMachine:: + hidemoneybox + releaseall + end + +CeladonCity_DepartmentStore_Roof_Text_ImThirstyGiveHerDrink:: + .string "I'm thirsty!\n" + .string "I want something to drink!\p" + .string "{FONT_NORMAL}Give her a drink?$" + +CeladonCity_DepartmentStore_Roof_Text_GiveWhichDrink:: + .string "Give her which drink?$" + +CeladonCity_DepartmentStore_Roof_Text_YayFreshWaterHaveThis:: + .string "Yay!\p" + .string "FRESH WATER!\p" + .string "Thank you!\n" + .string "You can have this from me!$" + +Text_ReceivedItemFromLittleGirl:: + .string "{PLAYER} received a {STR_VAR_2}\n" + .string "from the little girl.$" + +CeladonCity_DepartmentStore_Roof_Text_ExplainTM16:: + .string "TM16 contains LIGHT SCREEN.\p" + .string "It's a move that weakens the power\n" + .string "of special attacks by your foe.$" + +CeladonCity_DepartmentStore_Roof_Text_YaySodaPopHaveThis:: + .string "Yay!\p" + .string "SODA POP!\p" + .string "Thank you!\n" + .string "You can have this from me!$" + +CeladonCity_DepartmentStore_Roof_Text_ExplainTM20:: + .string "TM20 contains SAFEGUARD.\p" + .string "It's a move that prevents status\n" + .string "problems among your POKéMON.$" + +CeladonCity_DepartmentStore_Roof_Text_YayLemonadeHaveThis:: + .string "Yay!\p" + .string "LEMONADE!\p" + .string "Thank you!\n" + .string "You can have this from me!$" + +CeladonCity_DepartmentStore_Roof_Text_ExplainTM33:: + .string "TM33 contains REFLECT.\p" + .string "It's a move that weakens the power\n" + .string "of physical attacks by your foe.$" + +CeladonCity_DepartmentStore_Roof_Text_DontHaveSpaceForThis:: + .string "You don't have space for this!$" + +CeladonCity_DepartmentStore_Roof_Text_ImNotThirstyAfterAll:: + .string "No, thank you!\n" + .string "I'm not thirsty after all!$" + +CeladonCity_DepartmentStore_Roof_Text_MySisterIsImmature:: + .string "My sister is a TRAINER, believe it\n" + .string "or not.\p" + .string "But, she's so immature, she drives\n" + .string "me nuts!$" + +CeladonCity_DepartmentStore_Roof_Text_ImThirstyIWantDrink:: + .string "I'm thirsty!\n" + .string "I want something to drink!$" + +CeladonCity_DepartmentStore_Roof_Text_FloorSign:: + .string "ROOFTOP SQUARE:\n" + .string "VENDING MACHINES$" + +CeladonCity_DepartmentStore_Roof_Text_VendingMachineWhatDoesItHave:: + .string "A vending machine!\n" + .string "What does it have?$" + +CeladonCity_DepartmentStore_Roof_Text_NotEnoughMoney:: + .string "Oops, not enough money!$" + +CeladonCity_DepartmentStore_Roof_Text_DrinkCanPoppedOut:: + .string "A can of {STR_VAR_1} popped out!$" + +CeladonCity_DepartmentStore_Roof_Text_NoMoreRoomForStuff:: + .string "There's no more room for stuff!$" + +CeladonCity_DepartmentStore_Roof_Text_NotThirsty:: + .string "Not thirsty!$" + diff --git a/data/maps/CeladonCity_Frlg/map.json b/data/maps/CeladonCity_Frlg/map.json new file mode 100644 index 000000000000..a5d20c257542 --- /dev/null +++ b/data/maps/CeladonCity_Frlg/map.json @@ -0,0 +1,408 @@ +{ + "id": "MAP_CELADON_CITY", + "name": "CeladonCity_Frlg", + "layout": "LAYOUT_CELADON_CITY", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE16", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE7", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 48, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_RocketGrunt1", + "flag": "FLAG_HIDE_CELADON_ROCKETS" + }, + { + "local_id": "LOCALID_CELADON_FAT_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 38, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_FatMan", + "flag": "0" + }, + { + "local_id": "LOCALID_CELADON_POLIWRATH", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLIWRATH", + "x": 36, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_Poliwrath", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 11, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP", + "movement_range_x": 4, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_LittleGirl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 18, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 30, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_OldMan2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 26, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_SoftboiledTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 38, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_RocketGrunt2", + "flag": "FLAG_HIDE_CELADON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 9, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_OldMan1", + "flag": "0" + }, + { + "local_id": "LOCALID_CELADON_BORDER_TREE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 52, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 40, + "y": 35, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 25, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_Boy", + "flag": "0" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": -7, + "y": 21, + "target_local_id": "LOCALID_ROUTE16_CUT_TREE", + "target_map": "MAP_ROUTE16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_ItemEther", + "flag": "FLAG_HIDE_CELADON_CITY_ETHER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 47, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_EventScript_SilphCoScientist", + "flag": "FLAG_HIDE_CELADON_ROCKETS" + } + ], + "warp_events": [ + { + "x": 34, + "y": 21, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_GAME_CORNER", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 14, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 14, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", + "dest_warp_id": "4" + }, + { + "x": 30, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": "1" + }, + { + "x": 48, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 39, + "y": 20, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 30, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_GYM", + "dest_warp_id": "1" + }, + { + "x": 37, + "y": 29, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_RESTAURANT", + "dest_warp_id": "1" + }, + { + "x": 41, + "y": 29, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_HOUSE1", + "dest_warp_id": "1" + }, + { + "x": 49, + "y": 29, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_HOTEL", + "dest_warp_id": "1" + }, + { + "x": 29, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": "5" + }, + { + "x": 30, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": "5" + }, + { + "x": 31, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 45, + "y": 23, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 38, + "y": 23, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_PrizeExchangeSign" + }, + { + "type": "sign", + "x": 33, + "y": 23, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_GameCornerSign" + }, + { + "type": "sign", + "x": 22, + "y": 18, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_CitySign" + }, + { + "type": "sign", + "x": 26, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_MansionSign" + }, + { + "type": "sign", + "x": 33, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_TrainerTips1" + }, + { + "type": "sign", + "x": 18, + "y": 14, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_DeptStoreSign" + }, + { + "type": "sign", + "x": 16, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_EventScript_GymSign" + }, + { + "type": "hidden_item", + "x": 55, + "y": 20, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/CeladonCity_Frlg/scripts.inc b/data/maps/CeladonCity_Frlg/scripts.inc new file mode 100644 index 000000000000..ecc6ee347ccd --- /dev/null +++ b/data/maps/CeladonCity_Frlg/scripts.inc @@ -0,0 +1,218 @@ +CeladonCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CeladonCity_OnTransition + .byte 0 + +CeladonCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_CELADON_CITY + end + +CeladonCity_EventScript_LittleGirl:: + msgbox CeladonCity_Text_GotMyKoffingInCinnabar, MSGBOX_NPC + end + +CeladonCity_EventScript_OldMan1:: + lock + msgbox CeladonCity_Text_GymIsGreatFullOfWomen + release + end + +CeladonCity_EventScript_Woman:: + msgbox CeladonCity_Text_GameCornerIsBadForCitysImage, MSGBOX_NPC + end + +CeladonCity_EventScript_OldMan2:: + msgbox CeladonCity_Text_BlewItAllAtSlots, MSGBOX_NPC + end + +CeladonCity_EventScript_SoftboiledTutor:: + goto EventScript_SoftboiledTutor + end + +CeladonCity_EventScript_FatMan:: + lock + faceplayer + msgbox CeladonCity_Text_MyTrustedPalPoliwrath + closemessage + applymovement LOCALID_CELADON_FAT_MAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +CeladonCity_EventScript_Poliwrath:: + lock + faceplayer + waitse + playmoncry SPECIES_POLIWRATH, CRY_MODE_NORMAL + msgbox CeladonCity_Text_Poliwrath + closemessage + waitmoncry + applymovement LOCALID_CELADON_POLIWRATH, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +CeladonCity_EventScript_RocketGrunt1:: + msgbox CeladonCity_Text_KeepOutOfTeamRocketsWay, MSGBOX_NPC + end + +CeladonCity_EventScript_RocketGrunt2:: + msgbox CeladonCity_Text_GetLostOrIllPunchYou, MSGBOX_NPC + end + +CeladonCity_EventScript_Boy:: + msgbox CeladonCity_Text_ScaldedTongueOnTea, MSGBOX_NPC + end + +CeladonCity_EventScript_SilphCoScientist:: + msgbox CeladonCity_Text_SomeoneStoleSilphScope, MSGBOX_NPC + end + +CeladonCity_EventScript_TrainerTips1:: + msgbox CeladonCity_Text_ExplainXAccuracyDireHit, MSGBOX_SIGN + end + +CeladonCity_EventScript_CitySign:: + msgbox CeladonCity_Text_CitySign, MSGBOX_SIGN + end + +CeladonCity_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_ERIKA, 0 + msgbox CeladonCity_Text_GymSign + releaseall + end + +CeladonCity_EventScript_MansionSign:: + msgbox CeladonCity_Text_MansionSign, MSGBOX_SIGN + end + +CeladonCity_EventScript_DeptStoreSign:: + msgbox CeladonCity_Text_DeptStoreSign, MSGBOX_SIGN + end + +CeladonCity_EventScript_TrainerTips2:: + msgbox CeladonCity_Text_GuardSpecProtectsFromStatus, MSGBOX_SIGN + end + +CeladonCity_EventScript_PrizeExchangeSign:: + msgbox CeladonCity_Text_PrizeExchangeSign, MSGBOX_SIGN + end + +CeladonCity_EventScript_GameCornerSign:: + msgbox CeladonCity_Text_GameCornerSign, MSGBOX_SIGN + end + +CeladonCity_Text_GotMyKoffingInCinnabar:: + .string "I got my KOFFING in CINNABAR.\p" + .string "It's usually nice, but it breathes\n" + .string "poison when it's angry.$" + +CeladonCity_Text_GymIsGreatFullOfWomen:: + .string "Heheh! This GYM is great!\n" + .string "It's full of women!$" + +CeladonCity_Text_GameCornerIsBadForCitysImage:: + .string "CELADON takes pride in its efforts\n" + .string "to keep the city beautiful.\p" + .string "That's why the new GAME CORNER is\n" + .string "bad for our city's image.$" + +CeladonCity_Text_BlewItAllAtSlots:: + .string "Moan…\n" + .string "I blew it all at the slots!\p" + .string "I knew I should have cashed in my\n" + .string "COINS for prizes!$" + +CeladonCity_Text_MyTrustedPalPoliwrath:: + .string "This is my trusted pal, POLIWRATH.\p" + .string "It evolved from a POLIWHIRL when\n" + .string "I used a WATER STONE.$" + +CeladonCity_Text_Poliwrath:: + .string "POLIWRATH: Ribi ribit!$" + +CeladonCity_Text_GetLostOrIllPunchYou:: + .string "What are you staring at?\n" + .string "Get lost, or I'll punch you.$" + +CeladonCity_Text_KeepOutOfTeamRocketsWay:: + .string "Keep out of TEAM ROCKET's way!$" + +CeladonCity_Text_ExplainXAccuracyDireHit:: + .string "TRAINER TIPS\p" + .string "X ACCURACY boosts the accuracy of\n" + .string "techniques.\p" + .string "DIRE HIT jacks up the likelihood\n" + .string "of critical hits.\p" + .string "Get your items at the CELADON\n" + .string "DEPT. STORE!$" + +CeladonCity_Text_CitySign:: + .string "CELADON CITY\n" + .string "The City of Rainbow Dreams$" + +CeladonCity_Text_GymSign:: + .string "CELADON CITY POKéMON GYM\n" + .string "LEADER: ERIKA\l" + .string "The Nature-Loving Princess!$" + +CeladonCity_Text_MansionSign:: + .string "CELADON MANSION$" + +CeladonCity_Text_DeptStoreSign:: + .string "Find what you need at the\n" + .string "CELADON DEPT. STORE!$" + +CeladonCity_Text_GuardSpecProtectsFromStatus:: + .string "TRAINER TIPS\p" + .string "GUARD SPEC. protects POKéMON\n" + .string "from status-reduction moves during\l" + .string "battle.\p" + .string "Get your items at the\n" + .string "CELADON DEPT. STORE!$" + +CeladonCity_Text_PrizeExchangeSign:: + .string "COINS exchanged for prizes!\n" + .string "PRIZE EXCHANGE$" + +CeladonCity_Text_GameCornerSign:: + .string "ROCKET GAME CORNER\n" + .string "The playground for grown-ups!$" + +CeladonCity_Text_ScaldedTongueOnTea:: + .string "Aaaagh, ow…\n" + .string "I scalded my tongue!\p" + .string "This nice old lady in the MANSION\n" + .string "gave me some TEA.\p" + .string "But it was boiling hot!\n" + .string "Gotta cool it to drink it.$" + +Text_SoftboiledTeach:: + .string "Hello, there!\p" + .string "I've seen you about, but I never\n" + .string "had a chance to chat.\p" + .string "It must be good luck that brought\n" + .string "us together finally.\p" + .string "I'd like to celebrate by teaching\n" + .string "you the move SOFTBOILED.$" + +Text_SoftboiledDeclined:: + .string "I'll always be keeping an eye out\n" + .string "for you.\p" + .string "I hope we can chat again.$" + +Text_SoftboiledWhichMon:: + .string "So, who's the POKéMON that gets\n" + .string "the chance to learn SOFTBOILED?$" + +Text_SoftboiledTaught:: + .string "I wish you the best of luck!$" + +CeladonCity_Text_SomeoneStoleSilphScope:: + .string "Oh, what am I to do…\p" + .string "Someone stole our SILPH SCOPE.\p" + .string "The thief came running this way,\n" + .string "I'm sure of it.\p" + .string "But I lost sight of him!\n" + .string "Where'd he go?$" + diff --git a/data/maps/CeladonCity_GameCorner_Frlg/map.json b/data/maps/CeladonCity_GameCorner_Frlg/map.json new file mode 100644 index 000000000000..0341a0141bd6 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_Frlg/map.json @@ -0,0 +1,520 @@ +{ + "id": "MAP_CELADON_CITY_GAME_CORNER", + "name": "CeladonCity_GameCorner_Frlg", + "layout": "LAYOUT_CELADON_CITY_GAME_CORNER", + "music": "MUS_GAME_CORNER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_InfoClerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_CoinsClerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_Woman1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_Fisher", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 7, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_GymGuy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_Woman2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 10, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 16, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_Gentleman", + "flag": "0" + }, + { + "local_id": "LOCALID_GAME_CORNER_GRUNT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 11, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_EventScript_RocketGrunt", + "flag": "FLAG_HIDE_GAME_CORNER_ROCKET" + } + ], + "warp_events": [ + { + "x": 9, + "y": 13, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 13, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 13, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "0" + }, + { + "x": 15, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B1F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 2, + "y": 4, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 3, + "y": 8, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 2, + "y": 11, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3", + "quantity": 20, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 6, + "y": 12, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 9, + "y": 9, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 8, + "y": 5, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6", + "quantity": 20, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 10, + "y": 4, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 13, + "y": 3, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 15, + "y": 5, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9", + "quantity": 10, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 17, + "y": 5, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10", + "quantity": 40, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 15, + "y": 13, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11", + "quantity": 100, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 12, + "y": 12, + "elevation": 3, + "item": "ITEM_NONE", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12", + "quantity": 10, + "underfoot": false + }, + { + "type": "sign", + "x": 0, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine0" + }, + { + "type": "sign", + "x": 0, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine1" + }, + { + "type": "sign", + "x": 0, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine2" + }, + { + "type": "sign", + "x": 5, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine3" + }, + { + "type": "sign", + "x": 5, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_UnusableSlotMachine1" + }, + { + "type": "sign", + "x": 5, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine5" + }, + { + "type": "sign", + "x": 5, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine6" + }, + { + "type": "sign", + "x": 6, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine7" + }, + { + "type": "sign", + "x": 6, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine8" + }, + { + "type": "sign", + "x": 6, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine9" + }, + { + "type": "sign", + "x": 11, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine10" + }, + { + "type": "sign", + "x": 11, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine11" + }, + { + "type": "sign", + "x": 11, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine12" + }, + { + "type": "sign", + "x": 11, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine13" + }, + { + "type": "sign", + "x": 12, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine14" + }, + { + "type": "sign", + "x": 12, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_UnusableSlotMachine2" + }, + { + "type": "sign", + "x": 12, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine16" + }, + { + "type": "sign", + "x": 12, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine17" + }, + { + "type": "sign", + "x": 17, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_UnusableSlotMachine3" + }, + { + "type": "sign", + "x": 17, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine19" + }, + { + "type": "sign", + "x": 17, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine20" + }, + { + "type": "sign", + "x": 17, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_SlotMachine21" + }, + { + "type": "sign", + "x": 11, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_GameCorner_EventScript_Poster" + }, + { + "type": "sign", + "x": 17, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "CeladonCity_GameCorner_EventScript_PhotoPrinter" + } + ] +} diff --git a/data/maps/CeladonCity_GameCorner_Frlg/scripts.inc b/data/maps/CeladonCity_GameCorner_Frlg/scripts.inc new file mode 100644 index 000000000000..738d037d9306 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_Frlg/scripts.inc @@ -0,0 +1,614 @@ +CeladonCity_GameCorner_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, CeladonCity_GameCorner_OnLoad + .byte 0 + +CeladonCity_GameCorner_OnLoad:: + call_if_unset FLAG_OPENED_ROCKET_HIDEOUT, CeladonCity_GameCorner_EventScript_HideRocketHideout + end + +CeladonCity_GameCorner_EventScript_HideRocketHideout:: + setmetatile 15, 2, METATILE_GameCorner_Floor_ShadeFull, 0 + setmetatile 16, 2, METATILE_GameCorner_Floor_ShadeFull, 0 + setmetatile 17, 2, METATILE_GameCorner_Floor_ShadeFull, 0 + setmetatile 16, 3, METATILE_GameCorner_PurpleWall_Floor, 1 + setmetatile 17, 3, METATILE_GameCorner_PurpleWall_Floor, 1 + return + +CeladonCity_GameCorner_EventScript_InfoClerk:: + msgbox CeladonCity_GameCorner_Text_CanExchangeCoinsNextDoor, MSGBOX_NPC + end + +CeladonCity_GameCorner_EventScript_CoinsClerk:: + lock + faceplayer + showmoneybox 0, 0 + showcoinsbox 1, 6 + message CeladonCity_GameCorner_Text_WelcomeBuySomeCoins + waitmessage + multichoice 13, 0, MULTI_GAME_CORNER_COIN_PURCHASE_COUNTER, FALSE + copyvar VAR_0x8009, VAR_RESULT + switch VAR_RESULT + case 0, CeladonCity_GameCorner_EventScript_BuyCoins + case 1, CeladonCity_GameCorner_EventScript_BuyCoins + case 2, CeladonCity_GameCorner_EventScript_ClerkDeclineBuy + case 127, CeladonCity_GameCorner_EventScript_ClerkDeclineBuy + end + +CeladonCity_GameCorner_EventScript_BuyCoins:: + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_ClerkNoCoinCase + goto_if_eq VAR_0x8009, 0, CeladonCity_GameCorner_EventScript_Buy50Coins + goto_if_eq VAR_0x8009, 1, CeladonCity_GameCorner_EventScript_Buy500Coins + end + +CeladonCity_GameCorner_EventScript_Buy500Coins:: + checkcoins VAR_TEMP_1 + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 500, CeladonCity_GameCorner_EventScript_ClerkNoRoomForCoins + checkmoney 10000 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_GameCorner_EventScript_ClerkNotEnoughMoney + addcoins 500 + removemoney 10000 + goto CeladonCity_GameCorner_EventScript_BoughtCoins + end + +CeladonCity_GameCorner_EventScript_Buy50Coins:: + checkcoins VAR_TEMP_1 + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 50, CeladonCity_GameCorner_EventScript_ClerkNoRoomForCoins + checkmoney 1000 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_GameCorner_EventScript_ClerkNotEnoughMoney + addcoins 50 + removemoney 1000 + goto CeladonCity_GameCorner_EventScript_BoughtCoins + end + +CeladonCity_GameCorner_EventScript_BoughtCoins:: + updatemoneybox + updatecoinsbox 0, 5 + playse SE_SHOP + msgbox CeladonCity_GameCorner_Text_HereAreYourCoins + goto CeladonCity_GameCorner_EventScript_ClerkEnd + end + +CeladonCity_GameCorner_EventScript_ClerkEnd:: + hidemoneybox + hidecoinsbox 0, 5 + release + end + +CeladonCity_GameCorner_EventScript_ClerkDeclineBuy:: + msgbox CeladonCity_GameCorner_Text_ComePlaySometime + goto CeladonCity_GameCorner_EventScript_ClerkEnd + end + +CeladonCity_GameCorner_EventScript_ClerkNoCoinCase:: + msgbox CeladonCity_GameCorner_Text_SorryDontHaveCoinCase + goto CeladonCity_GameCorner_EventScript_ClerkEnd + end + +CeladonCity_GameCorner_EventScript_ClerkNoRoomForCoins:: + msgbox CeladonCity_GameCorner_Text_CoinCaseIsFull + goto CeladonCity_GameCorner_EventScript_ClerkEnd + end + +CeladonCity_GameCorner_EventScript_ClerkNotEnoughMoney:: + msgbox CeladonCity_GameCorner_Text_CantAffordCoins + goto CeladonCity_GameCorner_EventScript_ClerkEnd + end + +CeladonCity_GameCorner_EventScript_BaldingMan:: + lock + faceplayer + msgbox CeladonCity_GameCorner_Text_RumoredTeamRocketRunsThisPlace + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_FaceSlotMachine:: + closemessage + applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +CeladonCity_GameCorner_EventScript_Woman1:: + lock + faceplayer + msgbox CeladonCity_GameCorner_Text_ThinkMachinesHaveDifferentOdds + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_Fisher:: + lock + faceplayer + goto_if_set FLAG_GOT_10_COINS_FROM_GAMBLER, CeladonCity_GameCorner_EventScript_FisherAlreadyGotCoins + msgbox CeladonCity_GameCorner_Text_DoYouWantToPlay + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_GamblerNoCoinCase + checkcoins VAR_TEMP_1 + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 10, CeladonCity_GameCorner_EventScript_FisherNoRoomForCoins + addcoins 10 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox CeladonCity_GameCorner_Text_Received10CoinsFromMan + playse SE_SHOP + waitse + setflag FLAG_GOT_10_COINS_FROM_GAMBLER + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_FisherNoRoomForCoins:: + msgbox CeladonCity_GameCorner_Text_DontNeedMyCoins + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_GamblerNoCoinCase:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox CeladonCity_GameCorner_Text_DontHaveCoinCase + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_FisherAlreadyGotCoins:: + msgbox CeladonCity_GameCorner_Text_WinsComeAndGo + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_ERIKA, CeladonCity_GameCorner_EventScript_GymGuyPostVictory + msgbox CeladonCity_GameCorner_Text_GymGuyAdvice + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_GymGuyPostVictory:: + msgbox CeladonCity_GameCorner_Text_RareMonsForCoins + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_Woman2:: + lock + faceplayer + msgbox CeladonCity_GameCorner_Text_WinOrLoseItsOnlyLuck + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_OldMan:: + lock + faceplayer + msgbox CeladonCity_GameCorner_Text_SoEasyToGetHooked + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_Scientist:: + lock + faceplayer + goto_if_set FLAG_GOT_20_COINS_FROM_GAMBLER, CeladonCity_GameCorner_EventScript_ScientistAlreadyGotCoins + msgbox CeladonCity_GameCorner_Text_WantSomeCoins + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_GamblerNoCoinCase + checkcoins VAR_TEMP_1 + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 20, CeladonCity_GameCorner_EventScript_ScientistNoRoomForCoins + addcoins 20 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox CeladonCity_GameCorner_Text_Received20CoinsFromNiceGuy + playse SE_SHOP + waitse + setflag FLAG_GOT_20_COINS_FROM_GAMBLER + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_ScientistNoRoomForCoins:: + msgbox CeladonCity_GameCorner_Text_YouHaveLotsOfCoins + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_ScientistAlreadyGotCoins:: + msgbox CeladonCity_GameCorner_Text_NeedMoreCoinsForMonIWant + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_Gentleman:: + lock + faceplayer + goto_if_set FLAG_GOT_20_COINS_FROM_GAMBLER_2, CeladonCity_GameCorner_EventScript_GentlemanAlreadyGotCoins + msgbox CeladonCity_GameCorner_Text_HereAreSomeCoinsShoo + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_GamblerNoCoinCase + checkcoins VAR_TEMP_1 + goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 20, CeladonCity_GameCorner_EventScript_GentlemanNoRoomForCoins + addcoins 20 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox CeladonCity_GameCorner_Text_Received20CoinsFromMan + playse SE_SHOP + waitse + setflag FLAG_GOT_20_COINS_FROM_GAMBLER_2 + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_GentlemanNoRoomForCoins:: + msgbox CeladonCity_GameCorner_Text_YouveGotPlentyCoins + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_GentlemanAlreadyGotCoins:: + msgbox CeladonCity_GameCorner_Text_WatchReelsClosely + goto CeladonCity_GameCorner_EventScript_FaceSlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine0:: + lockall + setvar VAR_0x8004, 0 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_DontPlaySlotMachine:: + releaseall + end + +CeladonCity_GameCorner_EventScript_SlotMachine:: + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_SlotMachineNoCoinCase + msgbox CeladonCity_GameCorner_Text_SlotMachineWantToPlay, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_EventScript_DontPlaySlotMachine + setfieldeffectargument 0, LOCALID_PLAYER +#ifdef BUGFIX + setfieldeffectargument 1, MAP_NUM(MAP_CELADON_CITY_GAME_CORNER) + setfieldeffectargument 2, MAP_GROUP(MAP_CELADON_CITY_GAME_CORNER) +#else + @ Map num/group were provided in the wrong order + setfieldeffectargument 1, MAP_GROUP(MAP_CELADON_CITY_GAME_CORNER) + setfieldeffectargument 2, MAP_NUM(MAP_CELADON_CITY_GAME_CORNER) +#endif + dofieldeffect FLDEFF_SMILEY_FACE_ICON + waitfieldeffect FLDEFF_SMILEY_FACE_ICON + specialvar VAR_RESULT, GetRandomSlotMachineId + playslotmachine VAR_RESULT + releaseall + end + +CeladonCity_GameCorner_EventScript_SlotMachine1:: + lockall + setvar VAR_0x8004, 1 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine2:: + lockall + setvar VAR_0x8004, 2 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine3:: + lockall + setvar VAR_0x8004, 3 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine4:: + lockall + setvar VAR_0x8004, 4 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine5:: + lockall + setvar VAR_0x8004, 5 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine6:: + lockall + setvar VAR_0x8004, 6 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine7:: + lockall + setvar VAR_0x8004, 7 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine8:: + lockall + setvar VAR_0x8004, 8 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine9:: + lockall + setvar VAR_0x8004, 9 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine10:: + lockall + setvar VAR_0x8004, 10 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine11:: + lockall + setvar VAR_0x8004, 11 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine12:: + lockall + setvar VAR_0x8004, 12 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine13:: + lockall + setvar VAR_0x8004, 13 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine14:: + lockall + setvar VAR_0x8004, 14 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine15:: + lockall + setvar VAR_0x8004, 15 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine16:: + lockall + setvar VAR_0x8004, 16 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine17:: + lockall + setvar VAR_0x8004, 17 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine18:: + lockall + setvar VAR_0x8004, 18 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine19:: + lockall + setvar VAR_0x8004, 19 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine20:: + lockall + setvar VAR_0x8004, 20 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachine21:: + lockall + setvar VAR_0x8004, 21 + goto CeladonCity_GameCorner_EventScript_SlotMachine + end + +CeladonCity_GameCorner_EventScript_SlotMachineNoCoinCase:: + msgbox CeladonCity_GameCorner_Text_CoinCaseIsRequired + releaseall + end + +CeladonCity_GameCorner_EventScript_Poster:: + lockall + msgbox CeladonCity_GameCorner_Text_SwitchBehindPosterPushIt + call_if_unset FLAG_OPENED_ROCKET_HIDEOUT, CeladonCity_GameCorner_EventScript_OpenRocketHideout + releaseall + end + +CeladonCity_GameCorner_EventScript_OpenRocketHideout:: + playse SE_UNLOCK + setmetatile 15, 2, METATILE_GameCorner_Floor_StairsTop, 0 + setmetatile 16, 2, METATILE_GameCorner_StairsTop, 1 + setmetatile 17, 2, METATILE_GameCorner_StairsBottom, 1 + setmetatile 16, 3, METATILE_GameCorner_PurpleWall_StairsTop, 1 + setmetatile 17, 3, METATILE_GameCorner_PurpleWall_stairsBottom, 1 + special DrawWholeMapView + setflag FLAG_OPENED_ROCKET_HIDEOUT + return + +CeladonCity_GameCorner_EventScript_RocketGrunt:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_7, CeladonCity_GameCorner_Text_GruntIntro, CeladonCity_GameCorner_Text_GruntDefeat, CeladonCity_GameCorner_Text_DefeatedGrunt + msgbox CeladonCity_GameCorner_Text_GruntPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_GameCorner_Text_DefeatedGrunt:: + msgbox CeladonCity_GameCorner_Text_GruntPostBattle + closemessage + call_if_eq VAR_FACING, DIR_WEST, CeladonCity_GameCorner_Text_GruntExitWest + call_if_ne VAR_FACING, DIR_WEST, CeladonCity_GameCorner_Text_GruntExit + removeobject LOCALID_GAME_CORNER_GRUNT + release + end + +CeladonCity_GameCorner_Text_GruntExitWest:: + applymovement LOCALID_GAME_CORNER_GRUNT, CeladonCity_GameCorner_Movement_GruntExitWest + waitmovement 0 + return + +CeladonCity_GameCorner_Text_GruntExit:: + applymovement LOCALID_GAME_CORNER_GRUNT, CeladonCity_GameCorner_Movement_GruntExit + waitmovement 0 + return + +CeladonCity_GameCorner_Movement_GruntExitWest:: + walk_down + walk_right + walk_right + walk_up + walk_right + walk_right + walk_right + walk_right + step_end + +CeladonCity_GameCorner_Movement_GruntExit:: + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + step_end + +CeladonCity_GameCorner_EventScript_UnusableSlotMachine1:: + msgbox CeladonCity_GameCorner_Text_OutOfOrder, MSGBOX_SIGN + end + +CeladonCity_GameCorner_EventScript_UnusableSlotMachine2:: + msgbox CeladonCity_GameCorner_Text_OutToLunch, MSGBOX_SIGN + end + +CeladonCity_GameCorner_EventScript_UnusableSlotMachine3:: + msgbox CeladonCity_GameCorner_Text_SomeonesKeys, MSGBOX_SIGN + end + +CeladonCity_GameCorner_Text_CanExchangeCoinsNextDoor:: + .string "Welcome!\p" + .string "You can exchange your COINS for\n" + .string "fabulous prizes next door.$" + +CeladonCity_GameCorner_Text_WelcomeBuySomeCoins:: + .string "Welcome to ROCKET GAME CORNER!\p" + .string "Do you need some game COINS?\n" + .string "Would you like to buy some?$" + +CeladonCity_GameCorner_Text_ComePlaySometime:: + .string "No?\n" + .string "Please come play sometime!$" + +CeladonCity_GameCorner_Text_SorryDontHaveCoinCase:: + .string "Oh, I'm sorry.\n" + .string "You don't have a COIN CASE.$" + +CeladonCity_GameCorner_Text_CoinCaseIsFull:: + .string "Whoops!\n" + .string "Your COIN CASE is full.$" + +CeladonCity_GameCorner_Text_CantAffordCoins:: + .string "You can't afford the COINS.$" + +CeladonCity_GameCorner_Text_HereAreYourCoins:: + .string "Thank you.\n" + .string "Here are your COINS!$" + +CeladonCity_GameCorner_Text_RumoredTeamRocketRunsThisPlace:: + .string "Keep this quiet.\p" + .string "It's rumored that this place is run\n" + .string "by TEAM ROCKET.$" + +CeladonCity_GameCorner_Text_ThinkMachinesHaveDifferentOdds:: + .string "I think these machines have\n" + .string "different odds.$" + +CeladonCity_GameCorner_Text_DoYouWantToPlay:: + .string "Kid, do you want to play?$" + +CeladonCity_GameCorner_Text_Received10CoinsFromMan:: + .string "{PLAYER} received 10 COINS\n" + .string "from the man.$" + +CeladonCity_GameCorner_Text_DontNeedMyCoins:: + .string "You don't need my COINS!$" + +CeladonCity_GameCorner_Text_WinsComeAndGo:: + .string "Wins seem to come and go.\n" + .string "Nothing's a sure thing.$" + +CeladonCity_GameCorner_Text_WinOrLoseItsOnlyLuck:: + .string "These slot games…\n" + .string "Win or lose, it's only by luck.$" + +CeladonCity_GameCorner_Text_GymGuyAdvice:: + .string "Hey!\p" + .string "You have better things to do,\n" + .string "champ in the making!\p" + .string "CELADON GYM's LEADER is ERIKA.\p" + .string "She is a user of GRASS-type\n" + .string "POKéMON, and at one with nature.\p" + .string "She might appear docile because of\n" + .string "her flower arranging…\p" + .string "But she's not one to be taken\n" + .string "lightly!$" + +CeladonCity_GameCorner_Text_RareMonsForCoins:: + .string "They offer rare POKéMON that can\n" + .string "be exchanged for your COINS.\p" + .string "But, I just can't seem to win!$" + +CeladonCity_GameCorner_Text_SoEasyToGetHooked:: + .string "Games are scary!\n" + .string "It's so easy to get hooked!$" + +CeladonCity_GameCorner_Text_WantSomeCoins:: + .string "What's up?\n" + .string "Want some COINS?$" + +CeladonCity_GameCorner_Text_Received20CoinsFromNiceGuy:: + .string "{PLAYER} received 20 COINS\n" + .string "from the nice guy.$" + +CeladonCity_GameCorner_Text_YouHaveLotsOfCoins:: + .string "You have lots of COINS!$" + +CeladonCity_GameCorner_Text_NeedMoreCoinsForMonIWant:: + .string "Darn! I need more COINS for the\n" + .string "POKéMON I want!$" + +CeladonCity_GameCorner_Text_HereAreSomeCoinsShoo:: + .string "Hey, what? You're throwing me off!\n" + .string "Here are some COINS, so shoo!$" + +CeladonCity_GameCorner_Text_Received20CoinsFromMan:: + .string "{PLAYER} received 20 COINS\n" + .string "from the man.$" + +CeladonCity_GameCorner_Text_YouveGotPlentyCoins:: + .string "You've got plenty of your own\n" + .string "COINS!$" + +CeladonCity_GameCorner_Text_WatchReelsClosely:: + .string "The trick is to watch the reels\n" + .string "closely.$" + +CeladonCity_GameCorner_Text_GruntIntro:: + .string "I'm guarding this poster!\n" + .string "Go away, or else!$" + +CeladonCity_GameCorner_Text_GruntDefeat:: + .string "Dang!$" + +CeladonCity_GameCorner_Text_GruntPostBattle:: + .string "The TEAM ROCKET HIDEOUT might\n" + .string "be discovered!\p" + .string "I better tell BOSS!$" + +CeladonCity_GameCorner_Text_SwitchBehindPosterPushIt:: + .string "Hey!\p" + .string "A switch behind the poster!?\n" + .string "Let's push it!$" + +CeladonCity_GameCorner_Text_CoinCaseIsRequired:: + .string "A COIN CASE is required…$" + +CeladonCity_GameCorner_Text_DontHaveCoinCase:: + .string "Oops!\n" + .string "Don't have the COIN CASE!$" + +CeladonCity_GameCorner_Text_SlotMachineWantToPlay:: + .string "A slot machine!\n" + .string "Want to play?$" + +CeladonCity_GameCorner_Text_OutOfOrder:: + .string "OUT OF ORDER\n" + .string "This is broken.$" + +CeladonCity_GameCorner_Text_OutToLunch:: + .string "OUT TO LUNCH\n" + .string "This is reserved.$" + +CeladonCity_GameCorner_Text_SomeonesKeys:: + .string "Someone's keys!\n" + .string "They'll be back.$" + diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/map.json b/data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/map.json new file mode 100644 index 000000000000..0b78e0916218 --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/map.json @@ -0,0 +1,115 @@ +{ + "id": "MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "name": "CeladonCity_GameCorner_PrizeRoom_Frlg", + "layout": "LAYOUT_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 6, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_PrizeClerkMons", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_PrizeClerkTMs", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_GameCorner_PrizeRoom_EventScript_PrizeClerkItems", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "5" + }, + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/scripts.inc b/data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..e374fc92183d --- /dev/null +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/scripts.inc @@ -0,0 +1,418 @@ +CeladonCity_GameCorner_PrizeRoom_Frlg_MapScripts:: + .byte 0 + +CeladonCity_GameCorner_PrizeRoom_EventScript_BaldingMan:: + msgbox CeladonCity_GameCorner_PrizeRoom_Text_FancyThatPorygon, MSGBOX_NPC + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_OldMan:: + msgbox CeladonCity_GameCorner_PrizeRoom_Text_RakedItInToday, MSGBOX_NPC + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_PrizeClerkMons:: + lock + faceplayer + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_PrizeRoom_EventScript_NeedCoinCase + showcoinsbox 1, 1 + msgbox CeladonCity_GameCorner_PrizeRoom_Text_WeExchangeCoinsForPrizes + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ChoosePrizeMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ChoosePrizeMon:: + message CeladonCity_GameCorner_PrizeRoom_Text_WhichPrize + waitmessage + multichoice 11, 0, MULTI_GAME_CORNER_POKEMON_PRIZES, FALSE + switch VAR_RESULT + case 0, CeladonCity_GameCorner_PrizeRoom_EventScript_Abra + case 1, CeladonCity_GameCorner_PrizeRoom_EventScript_Clefairy + case 2, CeladonCity_GameCorner_PrizeRoom_EventScript_DratiniPinsir + case 3, CeladonCity_GameCorner_PrizeRoom_EventScript_ScytherDratini + case 4, CeladonCity_GameCorner_PrizeRoom_EventScript_Porygon + case 5, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + case 127, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange:: + hidecoinsbox 0, 0 + release + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_Abra:: + #ifdef FIRERED + setvar VAR_TEMP_1, SPECIES_ABRA + setvar VAR_TEMP_2, 180 + #else + #ifdef LEAFGREEN + setvar VAR_TEMP_1, SPECIES_ABRA + setvar VAR_TEMP_2, 120 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_Clefairy:: + #ifdef FIRERED + setvar VAR_TEMP_1, SPECIES_CLEFAIRY + setvar VAR_TEMP_2, 500 + #else + #ifdef LEAFGREEN + setvar VAR_TEMP_1, SPECIES_CLEFAIRY + setvar VAR_TEMP_2, 750 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_DratiniPinsir:: + #ifdef FIRERED + setvar VAR_TEMP_1, SPECIES_DRATINI + setvar VAR_TEMP_2, 2800 + #else + #ifdef LEAFGREEN + setvar VAR_TEMP_1, SPECIES_PINSIR + setvar VAR_TEMP_2, 2500 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ScytherDratini:: + #ifdef FIRERED + setvar VAR_TEMP_1, SPECIES_SCYTHER + setvar VAR_TEMP_2, 5500 + #else + #ifdef LEAFGREEN + setvar VAR_TEMP_1, SPECIES_DRATINI + setvar VAR_TEMP_2, 4600 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_Porygon:: + #ifdef FIRERED + setvar VAR_TEMP_1, SPECIES_PORYGON + setvar VAR_TEMP_2, 9999 + #else + #ifdef LEAFGREEN + setvar VAR_TEMP_1, SPECIES_PORYGON + setvar VAR_TEMP_2, 6500 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeMon:: + bufferspeciesname STR_VAR_1, VAR_TEMP_1 + msgbox CeladonCity_GameCorner_PrizeRoom_Text_YouWantPrize, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + checkcoins VAR_RESULT + goto_if_lt VAR_RESULT, VAR_TEMP_2, CeladonCity_GameCorner_PrizeRoom_EventScript_NotEnoughCoins + textcolor NPC_TEXT_COLOR_NEUTRAL + switch VAR_TEMP_1 + case SPECIES_ABRA, CeladonCity_GameCorner_PrizeRoom_EventScript_GiveAbra + case SPECIES_CLEFAIRY, CeladonCity_GameCorner_PrizeRoom_EventScript_GiveClefairy + case SPECIES_DRATINI, CeladonCity_GameCorner_PrizeRoom_EventScript_GiveDratini + case SPECIES_SCYTHER, CeladonCity_GameCorner_PrizeRoom_EventScript_GiveScyther + case SPECIES_PORYGON, CeladonCity_GameCorner_PrizeRoom_EventScript_GivePorygon + case SPECIES_PINSIR, CeladonCity_GameCorner_PrizeRoom_EventScript_GivePinsir + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_GiveAbra:: + #ifdef FIRERED + givemon VAR_TEMP_1, 9 + #else + #ifdef LEAFGREEN + givemon VAR_TEMP_1, 7 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_GiveClefairy:: + #ifdef FIRERED + givemon VAR_TEMP_1, 8 + #else + #ifdef LEAFGREEN + givemon VAR_TEMP_1, 12 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_GiveDratini:: + #ifdef FIRERED + givemon VAR_TEMP_1, 18 + #else + #ifdef LEAFGREEN + givemon VAR_TEMP_1, 24 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_GiveScyther:: + givemon VAR_TEMP_1, 25 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_GivePorygon:: + #ifdef FIRERED + givemon VAR_TEMP_1, 26 + #else + #ifdef LEAFGREEN + givemon VAR_TEMP_1, 18 + #endif + #endif + goto CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_GivePinsir:: + givemon VAR_TEMP_1, 18 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_CheckReceivedMon:: + goto_if_eq VAR_RESULT, 0, CeladonCity_GameCorner_PrizeRoom_EventScript_ReceivedMonParty + goto_if_eq VAR_RESULT, 1, CeladonCity_GameCorner_PrizeRoom_EventScript_ReceivedMonPC + goto_if_eq VAR_RESULT, 2, CeladonCity_GameCorner_PrizeRoom_EventScript_PartyFull + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_PartyFull:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox gText_NoMoreRoomForPokemon + hidecoinsbox 0, 0 + release + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_NicknamePartyMon:: + getpartysize + subvar VAR_RESULT, 1 + copyvar VAR_0x8004, VAR_RESULT + call Common_EventScript_NameReceivedPartyMon + goto CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_NeedCoinCase:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox CeladonCity_GameCorner_PrizeRoom_Text_CoinCaseRequired + release + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_NotEnoughCoins:: + msgbox CeladonCity_GameCorner_PrizeRoom_Text_NeedMoreCoins + goto CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ReceivedMonParty:: + removecoins VAR_TEMP_2 + updatecoinsbox 0, 5 + bufferspeciesname STR_VAR_1, VAR_TEMP_1 + playfanfare MUS_LEVEL_UP + message gText_PlayerObtainedTheMon + waitmessage + waitfanfare + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CeladonCity_GameCorner_PrizeRoom_EventScript_NicknamePartyMon + goto CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ReceivedMonPC:: + removecoins VAR_TEMP_2 + updatecoinsbox 0, 5 + bufferspeciesname STR_VAR_1, VAR_TEMP_1 + playfanfare MUS_LEVEL_UP + message gText_PlayerObtainedTheMon + waitmessage + waitfanfare + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_PrizeRoom_EventScript_TransferredToPC + call Common_EventScript_NameReceivedBoxMon + goto CeladonCity_GameCorner_PrizeRoom_EventScript_TransferredToPC + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TransferredToPC:: + call Common_EventScript_TransferredToPC + goto CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_PrizeClerkTMs:: + lock + faceplayer + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_PrizeRoom_EventScript_NeedCoinCase + showcoinsbox 1, 1 + msgbox CeladonCity_GameCorner_PrizeRoom_Text_WeExchangeCoinsForPrizes + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ChoosePrizeTM + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ChoosePrizeTM:: + message CeladonCity_GameCorner_PrizeRoom_Text_WhichPrize + waitmessage + multichoice 11, 0, MULTI_GAME_CORNER_TMPRIZES, FALSE + switch VAR_RESULT + case 0, CeladonCity_GameCorner_PrizeRoom_EventScript_TM13 + case 1, CeladonCity_GameCorner_PrizeRoom_EventScript_TM23 + case 2, CeladonCity_GameCorner_PrizeRoom_EventScript_TM24 + case 3, CeladonCity_GameCorner_PrizeRoom_EventScript_TM30 + case 4, CeladonCity_GameCorner_PrizeRoom_EventScript_TM35 + case 5, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + case 127, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TM13:: + setvar VAR_TEMP_1, ITEM_TM13 + setvar VAR_TEMP_2, 4000 + buffermovename STR_VAR_2, MOVE_ICE_BEAM + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeTM + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TM23:: + setvar VAR_TEMP_1, ITEM_TM23 + setvar VAR_TEMP_2, 3500 + buffermovename STR_VAR_2, MOVE_IRON_TAIL + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeTM + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TM24:: + setvar VAR_TEMP_1, ITEM_TM24 + setvar VAR_TEMP_2, 4000 + buffermovename STR_VAR_2, MOVE_THUNDERBOLT + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeTM + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TM30:: + setvar VAR_TEMP_1, ITEM_TM30 + setvar VAR_TEMP_2, 4500 + buffermovename STR_VAR_2, MOVE_SHADOW_BALL + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeTM + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TM35:: + setvar VAR_TEMP_1, ITEM_TM35 + setvar VAR_TEMP_2, 4000 + buffermovename STR_VAR_2, MOVE_FLAMETHROWER + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeTM + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeTM:: + msgbox CeladonCity_GameCorner_PrizeRoom_Text_YouWantTM, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + goto CeladonCity_GameCorner_PrizeRoom_EventScript_TryGivePrize + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeItem:: + bufferitemname STR_VAR_1, VAR_TEMP_1 + msgbox CeladonCity_GameCorner_PrizeRoom_Text_YouWantPrize, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + goto CeladonCity_GameCorner_PrizeRoom_EventScript_TryGivePrize + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_TryGivePrize:: + bufferitemname STR_VAR_1, VAR_TEMP_1 + checkcoins VAR_RESULT + goto_if_lt VAR_RESULT, VAR_TEMP_2, CeladonCity_GameCorner_PrizeRoom_EventScript_NotEnoughCoins + checkitemspace VAR_TEMP_1 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_GameCorner_PrizeRoom_EventScript_BagFull + removecoins VAR_TEMP_2 + updatecoinsbox 0, 5 + giveitem VAR_TEMP_1 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_BagFull:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox gText_TooBadBagIsFull + hidecoinsbox 0, 0 + release + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_PrizeClerkItems:: + lock + faceplayer + goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_PrizeRoom_EventScript_NeedCoinCase + showcoinsbox 1, 1 + msgbox CeladonCity_GameCorner_PrizeRoom_Text_WeExchangeCoinsForPrizes + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ChoosePrizeItem + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_ChoosePrizeItem:: + message CeladonCity_GameCorner_PrizeRoom_Text_WhichPrize + waitmessage + multichoice 10, 0, MULTI_GAME_CORNER_BATTLE_ITEM_PRIZES, FALSE + switch VAR_RESULT + case 0, CeladonCity_GameCorner_PrizeRoom_EventScript_SmokeBall + case 1, CeladonCity_GameCorner_PrizeRoom_EventScript_MiracleSeed + case 2, CeladonCity_GameCorner_PrizeRoom_EventScript_Charcoal + case 3, CeladonCity_GameCorner_PrizeRoom_EventScript_MysticWater + case 4, CeladonCity_GameCorner_PrizeRoom_EventScript_YellowFlute + case 5, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + case 127, CeladonCity_GameCorner_PrizeRoom_EventScript_EndPrizeExchange + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_SmokeBall:: + setvar VAR_TEMP_1, ITEM_SMOKE_BALL + setvar VAR_TEMP_2, 800 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeItem + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_MiracleSeed:: + setvar VAR_TEMP_1, ITEM_MIRACLE_SEED + setvar VAR_TEMP_2, 1000 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeItem + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_Charcoal:: + setvar VAR_TEMP_1, ITEM_CHARCOAL + setvar VAR_TEMP_2, 1000 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeItem + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_MysticWater:: + setvar VAR_TEMP_1, ITEM_MYSTIC_WATER + setvar VAR_TEMP_2, 1000 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeItem + end + +CeladonCity_GameCorner_PrizeRoom_EventScript_YellowFlute:: + setvar VAR_TEMP_1, ITEM_YELLOW_FLUTE + setvar VAR_TEMP_2, 1600 + goto CeladonCity_GameCorner_PrizeRoom_EventScript_ConfirmPrizeItem + end + +CeladonCity_GameCorner_PrizeRoom_Text_FancyThatPorygon:: + .string "I sure do fancy that PORYGON!\n" + .string "But, it's hard to win at slots!$" + +CeladonCity_GameCorner_PrizeRoom_Text_RakedItInToday:: + .string "Gahaha! I raked it in today!\n" + .string "If only every day were like this…$" + +CeladonCity_GameCorner_PrizeRoom_Text_CoinCaseRequired:: + .string "A COIN CASE is required…$" + +CeladonCity_GameCorner_PrizeRoom_Text_WeExchangeCoinsForPrizes:: + .string "We exchange your COINS for prizes.$" + +CeladonCity_GameCorner_PrizeRoom_Text_WhichPrize:: + .string "Which prize would you like?$" + +CeladonCity_GameCorner_PrizeRoom_Text_HereYouGo:: + .string "はい どうぞ$" + +CeladonCity_GameCorner_PrizeRoom_Text_YouWantPrize:: + .string "So, you want the {STR_VAR_1}?$" + +CeladonCity_GameCorner_PrizeRoom_Text_YouWantTM:: + .string "Okay, a TM of {STR_VAR_2}\n" + .string "is what you want?$" + +CeladonCity_GameCorner_PrizeRoom_Text_NeedMoreCoins:: + .string "Sorry, you'll need more COINS\n" + .string "than that.$" + +CeladonCity_GameCorner_PrizeRoom_Text_OopsNotEnoughRoom:: + .string "おきゃくさん もう もてないよ$" + +CeladonCity_GameCorner_PrizeRoom_Text_OhFineThen:: + .string "あっ そう$" + diff --git a/data/maps/CeladonCity_Gym_Frlg/map.json b/data/maps/CeladonCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..25236f992c3e --- /dev/null +++ b/data/maps/CeladonCity_Gym_Frlg/map.json @@ -0,0 +1,216 @@ +{ + "id": "MAP_CELADON_CITY_GYM", + "name": "CeladonCity_Gym_Frlg", + "layout": "LAYOUT_CELADON_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "CeladonCity_Gym_EventScript_Kay", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 9, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "CeladonCity_Gym_EventScript_Bridget", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 10, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "CeladonCity_Gym_EventScript_Tina", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "CeladonCity_Gym_EventScript_Tamia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "CeladonCity_Gym_EventScript_Lori", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "CeladonCity_Gym_EventScript_Lisa", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ERIKA", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Gym_EventScript_Erika", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 8, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "CeladonCity_Gym_EventScript_Mary", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + } + ], + "warp_events": [ + { + "x": 5, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "6" + }, + { + "x": 6, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "6" + }, + { + "x": 7, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 8, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeladonCity_Gym_EventScript_GymStatue" + } + ] +} diff --git a/data/maps/CeladonCity_Gym_Frlg/scripts.inc b/data/maps/CeladonCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..79e8a5d1a326 --- /dev/null +++ b/data/maps/CeladonCity_Gym_Frlg/scripts.inc @@ -0,0 +1,237 @@ +CeladonCity_Gym_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Gym_EventScript_Erika:: + famechecker FAMECHECKER_ERIKA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_ERIKA, CeladonCity_Gym_Text_ErikaIntro, CeladonCity_Gym_Text_ErikaDefeat, CeladonCity_Gym_EventScript_DefeatedErika, NO_MUSIC + goto_if_unset FLAG_GOT_TM19_FROM_ERIKA, CeladonCity_Gym_EventScript_GiveTM19 + famechecker FAMECHECKER_ERIKA, 4 + msgbox CeladonCity_Gym_Text_ErikaPostBattle + release + end + +CeladonCity_Gym_EventScript_DefeatedErika:: + famechecker FAMECHECKER_ERIKA, 1 + clearflag FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS + setflag FLAG_DEFEATED_ERIKA + setflag FLAG_BADGE04_GET + set_gym_trainers_frlg 4 + goto CeladonCity_Gym_EventScript_GiveTM19 + end + +CeladonCity_Gym_EventScript_GiveTM19:: + msgbox CeladonCity_Gym_Text_ExplainRainbowBadgeTakeThis + checkitemspace ITEM_TM19 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_Gym_EventScript_NoRoomForTM19 + giveitem_msg CeladonCity_Gym_Text_ReceivedTM19FromErika, ITEM_TM19 + setflag FLAG_GOT_TM19_FROM_ERIKA + msgbox CeladonCity_Gym_Text_ExplainTM19 + release + end + +CeladonCity_Gym_EventScript_NoRoomForTM19:: + msgbox CeladonCity_Gym_Text_ShouldMakeRoomForThis + release + end + +CeladonCity_Gym_EventScript_Kay:: + trainerbattle_single TRAINER_LASS_KAY, CeladonCity_Gym_Text_KayIntro, CeladonCity_Gym_Text_KayDefeat + msgbox CeladonCity_Gym_Text_KayPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_Lisa:: + trainerbattle_single TRAINER_LASS_LISA, CeladonCity_Gym_Text_LisaIntro, CeladonCity_Gym_Text_LisaDefeat + famechecker FAMECHECKER_ERIKA, 2 + msgbox CeladonCity_Gym_Text_LisaPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_Tina:: + trainerbattle_single TRAINER_PICNICKER_TINA, CeladonCity_Gym_Text_TinaIntro, CeladonCity_Gym_Text_TinaDefeat + msgbox CeladonCity_Gym_Text_TinaPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_Bridget:: + trainerbattle_single TRAINER_BEAUTY_BRIDGET, CeladonCity_Gym_Text_BridgetIntro, CeladonCity_Gym_Text_BridgetDefeat + msgbox CeladonCity_Gym_Text_BridgetPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_Tamia:: + trainerbattle_single TRAINER_BEAUTY_TAMIA, CeladonCity_Gym_Text_TamiaIntro, CeladonCity_Gym_Text_TamiaDefeat + famechecker FAMECHECKER_ERIKA, 3 + msgbox CeladonCity_Gym_Text_TamiaPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_Lori:: + trainerbattle_single TRAINER_BEAUTY_LORI, CeladonCity_Gym_Text_LoriIntro, CeladonCity_Gym_Text_LoriDefeat + msgbox CeladonCity_Gym_Text_LoriPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_Mary:: + trainerbattle_single TRAINER_COOLTRAINER_MARY, CeladonCity_Gym_Text_MaryIntro, CeladonCity_Gym_Text_MaryDefeat + msgbox CeladonCity_Gym_Text_MaryPostBattle, MSGBOX_AUTOCLOSE + end + +CeladonCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE04_GET, CeladonCity_Gym_EventScript_GymStatuePostVictory + msgbox CeladonCity_Gym_Text_GymStatue + releaseall + end + +CeladonCity_Gym_EventScript_GymStatuePostVictory:: + msgbox CeladonCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +CeladonCity_Gym_Text_ErikaIntro:: + .string "Hello…\n" + .string "Lovely weather, isn't it?\l" + .string "It's so pleasant…\p" + .string "…Oh, dear…\n" + .string "I must have dozed off. Welcome.\p" + .string "My name is ERIKA.\n" + .string "I am the LEADER of CELADON GYM.\p" + .string "I am a student of the art of\n" + .string "flower arranging.\p" + .string "My POKéMON are solely of the\n" + .string "GRASS type.\p" + .string "…Oh, I'm sorry, I had no idea that\n" + .string "you wished to challenge me.\p" + .string "Very well, but I shall not lose.{PLAY_BGM MUS_RG_ENCOUNTER_GYM_LEADER}$" + +CeladonCity_Gym_Text_ErikaDefeat:: + .string "Oh!\n" + .string "I concede defeat.\l" + .string "You are remarkably strong.\p" + .string "I must confer on you the\n" + .string "RAINBOWBADGE.$" + +CeladonCity_Gym_Text_ErikaPostBattle:: + .string "You are cataloging POKéMON?\n" + .string "I must say I'm impressed.\p" + .string "I would never collect POKéMON if\n" + .string "they were unattractive.$" + +CeladonCity_Gym_Text_ExplainRainbowBadgeTakeThis:: + .string "The RAINBOWBADGE will make\n" + .string "POKéMON up to Lv. 50 obey.\p" + .string "It also allows POKéMON to use\n" + .string "STRENGTH in and out of battle.\p" + .string "Please also take this with you.$" + +CeladonCity_Gym_Text_ReceivedTM19FromErika:: + .string "{PLAYER} received TM19\n" + .string "from ERIKA.$" + +CeladonCity_Gym_Text_ExplainTM19:: + .string "TM19 contains GIGA DRAIN.\p" + .string "Half the damage it inflicts is\n" + .string "drained to heal your POKéMON.\p" + .string "Wouldn't you agree that it's a\n" + .string "wonderful move?$" + +CeladonCity_Gym_Text_ShouldMakeRoomForThis:: + .string "You should make room for this.$" + +CeladonCity_Gym_Text_KayIntro:: + .string "I should tell you about this GYM.\p" + .string "Only real ladies are allowed in\n" + .string "here!$" + +CeladonCity_Gym_Text_KayDefeat:: + .string "You're too rough!$" + +CeladonCity_Gym_Text_KayPostBattle:: + .string "Bleaah!\n" + .string "I hope ERIKA wipes you out!$" + +CeladonCity_Gym_Text_BridgetIntro:: + .string "Oh, welcome.\n" + .string "I was getting bored.$" + +CeladonCity_Gym_Text_BridgetDefeat:: + .string "My makeup!$" + +CeladonCity_Gym_Text_BridgetPostBattle:: + .string "GRASS-type POKéMON are tough\n" + .string "against the WATER type.\p" + .string "They also have an edge on ROCK-\n" + .string "and GROUND-type POKéMON.$" + +CeladonCity_Gym_Text_TinaIntro:: + .string "…Weren't you peeking in here\n" + .string "earlier?$" + +CeladonCity_Gym_Text_TinaDefeat:: + .string "You're an eye-opener!$" + +CeladonCity_Gym_Text_TinaPostBattle:: + .string "Oh, you were looking at ERIKA…\n" + .string "You weren't looking at me…$" + +CeladonCity_Gym_Text_TamiaIntro:: + .string "Look, look!\n" + .string "See my POKéMON!\p" + .string "I like the GRASS type.\n" + .string "I like how they're easy to raise.$" + +CeladonCity_Gym_Text_TamiaDefeat:: + .string "No!$" + +CeladonCity_Gym_Text_TamiaPostBattle:: + .string "We only use GRASS-type POKéMON at\n" + .string "our GYM.\p" + .string "Why? We also use them for making\n" + .string "flower arrangements!$" + +CeladonCity_Gym_Text_LisaIntro:: + .string "Oh, hey!\p" + .string "We don't like BUG- or FIRE-type\n" + .string "POKéMON in here!$" + +CeladonCity_Gym_Text_LisaDefeat:: + .string "Oh!\n" + .string "You!$" + +CeladonCity_Gym_Text_LisaPostBattle:: + .string "Our LEADER ERIKA might be quiet,\n" + .string "but she's famous around here.$" + +CeladonCity_Gym_Text_LoriIntro:: + .string "Pleased to meet you.\n" + .string "My hobby is POKéMON training.$" + +CeladonCity_Gym_Text_LoriDefeat:: + .string "Oh!\n" + .string "Splendid!$" + +CeladonCity_Gym_Text_LoriPostBattle:: + .string "I have a blind date coming up.\n" + .string "I have to learn to be polite,\l" + .string "especially if I have to battle.$" + +CeladonCity_Gym_Text_MaryIntro:: + .string "Welcome to CELADON GYM!\p" + .string "You'd better not underestimate\n" + .string "the nice ladies here.$" + +CeladonCity_Gym_Text_MaryDefeat:: + .string "Oh!\n" + .string "Beaten!$" + +CeladonCity_Gym_Text_MaryPostBattle:: + .string "I didn't bring my best POKéMON.\n" + .string "Wait until next time!$" + +CeladonCity_Gym_Text_GymStatue:: + .string "CELADON POKéMON GYM\n" + .string "LEADER: ERIKA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +CeladonCity_Gym_Text_GymStatuePlayerWon:: + .string "CELADON POKéMON GYM\n" + .string "LEADER: ERIKA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/CeladonCity_Hotel_Frlg/map.json b/data/maps/CeladonCity_Hotel_Frlg/map.json new file mode 100644 index 000000000000..d6a023b9a1c9 --- /dev/null +++ b/data/maps/CeladonCity_Hotel_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_CELADON_CITY_HOTEL", + "name": "CeladonCity_Hotel_Frlg", + "layout": "LAYOUT_CELADON_CITY_HOTEL", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Hotel_EventScript_Receptionist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 3, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Hotel_EventScript_Beauty", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Hotel_EventScript_BeautyBoyfriend", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Hotel_EventScript_BeautyBrother", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 10, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "9" + }, + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "9" + }, + { + "x": 5, + "y": 10, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "9" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_Hotel_Frlg/scripts.inc b/data/maps/CeladonCity_Hotel_Frlg/scripts.inc new file mode 100644 index 000000000000..50d777af5ee3 --- /dev/null +++ b/data/maps/CeladonCity_Hotel_Frlg/scripts.inc @@ -0,0 +1,37 @@ +CeladonCity_Hotel_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Hotel_EventScript_Receptionist:: + msgbox CeladonCity_Hotel_Text_ThisHotelIsForPeople, MSGBOX_NPC + end + +CeladonCity_Hotel_EventScript_Beauty:: + msgbox CeladonCity_Hotel_Text_OnVacationWithBrotherAndBoyfriend, MSGBOX_NPC + end + +CeladonCity_Hotel_EventScript_BeautyBoyfriend:: + msgbox CeladonCity_Hotel_Text_WhyDidSheBringBrother, MSGBOX_NPC + end + +CeladonCity_Hotel_EventScript_BeautyBrother:: + msgbox CeladonCity_Hotel_Text_SisBroughtMeOnVacation, MSGBOX_NPC + end + +CeladonCity_Hotel_Text_ThisHotelIsForPeople:: + .string "POKéMON?\n" + .string "No, this is a hotel for people.\p" + .string "We're full up, unfortunately.$" + +CeladonCity_Hotel_Text_OnVacationWithBrotherAndBoyfriend:: + .string "I'm on vacation with my brother and\n" + .string "boyfriend.\p" + .string "CELADON is such a pretty city!$" + +CeladonCity_Hotel_Text_WhyDidSheBringBrother:: + .string "Why?\n" + .string "Why did she bring her brother?$" + +CeladonCity_Hotel_Text_SisBroughtMeOnVacation:: + .string "Yippee! I'm on vacation!\n" + .string "My sis brought me along! Awesome!$" + diff --git a/data/maps/CeladonCity_House1_Frlg/map.json b/data/maps/CeladonCity_House1_Frlg/map.json new file mode 100644 index 000000000000..8a80654fb499 --- /dev/null +++ b/data/maps/CeladonCity_House1_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_CELADON_CITY_HOUSE1", + "name": "CeladonCity_House1_Frlg", + "layout": "LAYOUT_HOUSE5_FRLG", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_House1_EventScript_RocketChief", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_House1_EventScript_Rocket1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 8, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_House1_EventScript_Rocket2", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "8" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "8" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "8" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_House1_Frlg/scripts.inc b/data/maps/CeladonCity_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..34f1a3637ba2 --- /dev/null +++ b/data/maps/CeladonCity_House1_Frlg/scripts.inc @@ -0,0 +1,31 @@ +CeladonCity_House1_Frlg_MapScripts:: + .byte 0 + +CeladonCity_House1_EventScript_RocketChief:: + msgbox CeladonCity_House1_Text_SlotsReelInTheDough, MSGBOX_NPC + end + +CeladonCity_House1_EventScript_Rocket1:: + msgbox CeladonCity_House1_Text_ShippedMonsAsSlotPrizes, MSGBOX_NPC + end + +CeladonCity_House1_EventScript_Rocket2:: + msgbox CeladonCity_House1_Text_DontTouchGameCornerPoster, MSGBOX_NPC + end + +CeladonCity_House1_Text_SlotsReelInTheDough:: + .string "Hehehe!\p" + .string "The slots just reel in the dough,\n" + .string "big-time!$" + +CeladonCity_House1_Text_ShippedMonsAsSlotPrizes:: + .string "CHIEF!\p" + .string "We just shipped two thousand\n" + .string "more POKéMON as slot prizes\l" + .string "again today!$" + +CeladonCity_House1_Text_DontTouchGameCornerPoster:: + .string "Don't touch the poster at the GAME\n" + .string "CORNER!\p" + .string "There's no secret switch behind it!$" + diff --git a/data/maps/CeladonCity_PokemonCenter_1F_Frlg/map.json b/data/maps/CeladonCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..087859a1e2cc --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,109 @@ +{ + "id": "MAP_CELADON_CITY_POKEMON_CENTER_1F", + "name": "CeladonCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_CELADON_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_PokemonCenter_1F_EventScript_CooltrainerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "4" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "4" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "4" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/CeladonCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..90dcd16ccd29 --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,43 @@ +CeladonCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CeladonCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +CeladonCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_CELADON_CITY + end + +CeladonCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +CeladonCity_PokemonCenter_1F_EventScript_Gentleman:: + msgbox CeladonCity_PokemonCenter_1F_Text_PokeFluteAwakensSleepingMons, MSGBOX_NPC + end + +CeladonCity_PokemonCenter_1F_EventScript_CooltrainerF:: + msgbox CeladonCity_PokemonCenter_1F_Text_RodeHereFromFuchsia, MSGBOX_NPC + end + +CeladonCity_PokemonCenter_1F_EventScript_Youngster:: + msgbox CeladonCity_PokemonCenter_1F_Text_GoToCyclingRoadIfIHadBike, MSGBOX_NPC + end + +CeladonCity_PokemonCenter_1F_Text_PokeFluteAwakensSleepingMons:: + .string "A POKé FLUTE awakens sleeping\n" + .string "POKéMON. You know that.\p" + .string "It does so with a sound that only\n" + .string "they can hear.$" + +CeladonCity_PokemonCenter_1F_Text_RodeHereFromFuchsia:: + .string "I rode here from FUCHSIA.\p" + .string "It's an uphill ride on CYCLING\n" + .string "ROAD, so I'm exhausted.$" + +CeladonCity_PokemonCenter_1F_Text_GoToCyclingRoadIfIHadBike:: + .string "If I had a BIKE, I would go to\n" + .string "CYCLING ROAD!$" + diff --git a/data/maps/CeladonCity_PokemonCenter_2F_Frlg/map.json b/data/maps/CeladonCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..27632b222234 --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_CELADON_CITY_POKEMON_CENTER_2F", + "name": "CeladonCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/CeladonCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..e095ae4cbec8 --- /dev/null +++ b/data/maps/CeladonCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +CeladonCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +CeladonCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +CeladonCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +CeladonCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/CeladonCity_Restaurant_Frlg/map.json b/data/maps/CeladonCity_Restaurant_Frlg/map.json new file mode 100644 index 000000000000..3add733111e9 --- /dev/null +++ b/data/maps/CeladonCity_Restaurant_Frlg/map.json @@ -0,0 +1,115 @@ +{ + "id": "MAP_CELADON_CITY_RESTAURANT", + "name": "CeladonCity_Restaurant_Frlg", + "layout": "LAYOUT_CELADON_CITY_RESTAURANT", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CELADON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 12, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Restaurant_EventScript_Chef", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Restaurant_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Restaurant_EventScript_FatMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 1, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Restaurant_EventScript_CoinCaseMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 3, + "y": 7, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeladonCity_Restaurant_EventScript_WorkerM", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "7" + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "7" + }, + { + "x": 7, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CELADON_CITY", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeladonCity_Restaurant_Frlg/scripts.inc b/data/maps/CeladonCity_Restaurant_Frlg/scripts.inc new file mode 100644 index 000000000000..976645cbc908 --- /dev/null +++ b/data/maps/CeladonCity_Restaurant_Frlg/scripts.inc @@ -0,0 +1,78 @@ +CeladonCity_Restaurant_Frlg_MapScripts:: + .byte 0 + +CeladonCity_Restaurant_EventScript_Chef:: + msgbox CeladonCity_Restaurant_Text_TakingBreakRightNow, MSGBOX_NPC + end + +CeladonCity_Restaurant_EventScript_Woman:: + msgbox CeladonCity_Restaurant_Text_OftenGoToDrugstore, MSGBOX_NPC + end + +CeladonCity_Restaurant_EventScript_CoinCaseMan:: + lock + faceplayer + goto_if_set FLAG_GOT_COIN_CASE, CeladonCity_Restaurant_EventScript_AlreadyGotCoinCase + msgbox CeladonCity_Restaurant_Text_TakeThisImBusted + checkitemspace ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, CeladonCity_Restaurant_EventScript_NoRoomForCoinCase + giveitem_msg CeladonCity_Restaurant_Text_ReceivedCoinCaseFromMan, ITEM_COIN_CASE + setflag FLAG_GOT_COIN_CASE + release + end + +CeladonCity_Restaurant_EventScript_NoRoomForCoinCase:: + msgbox CeladonCity_Restaurant_Text_MakeRoomForThis + release + end + +CeladonCity_Restaurant_EventScript_AlreadyGotCoinCase:: + msgbox CeladonCity_Restaurant_Text_ThoughtIdWinItBack + release + end + +CeladonCity_Restaurant_EventScript_WorkerM:: + msgbox CeladonCity_Restaurant_Text_PsstBasementUnderGameCorner, MSGBOX_NPC + end + +CeladonCity_Restaurant_EventScript_FatMan:: + msgbox CeladonCity_Restaurant_Text_ManLostItAllAtSlots, MSGBOX_NPC + end + +CeladonCity_Restaurant_Text_TakingBreakRightNow:: + .string "Hi!\p" + .string "Sorry, but we're taking a break\n" + .string "right now.$" + +CeladonCity_Restaurant_Text_OftenGoToDrugstore:: + .string "My POKéMON are weak, so I often\n" + .string "have to go to the DRUGSTORE.$" + +CeladonCity_Restaurant_Text_PsstBasementUnderGameCorner:: + .string "Psst! There's a basement under the\n" + .string "GAME CORNER, I hear.$" + +CeladonCity_Restaurant_Text_ManLostItAllAtSlots:: + .string "Munch…\p" + .string "The man at that table lost it all\n" + .string "at the slots.$" + +CeladonCity_Restaurant_Text_TakeThisImBusted:: + .string "Go ahead! Laugh!\n" + .string "I'm flat-out busted!\p" + .string "No more slots for me!\n" + .string "I'm going straight!\p" + .string "Here!\n" + .string "I won't be needing this anymore!$" + +CeladonCity_Restaurant_Text_ReceivedCoinCaseFromMan:: + .string "{PLAYER} received a COIN CASE\n" + .string "from the man.$" + +CeladonCity_Restaurant_Text_MakeRoomForThis:: + .string "Make room for this!$" + +CeladonCity_Restaurant_Text_ThoughtIdWinItBack:: + .string "I always thought I was going to\n" + .string "win it back…$" + diff --git a/data/maps/CeruleanCave_1F_Frlg/map.json b/data/maps/CeruleanCave_1F_Frlg/map.json new file mode 100644 index 000000000000..84e39740dc53 --- /dev/null +++ b/data/maps/CeruleanCave_1F_Frlg/map.json @@ -0,0 +1,219 @@ +{ + "id": "MAP_CERULEAN_CAVE_1F", + "name": "CeruleanCave_1F_Frlg", + "layout": "LAYOUT_CERULEAN_CAVE_1F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_1F_EventScript_ItemNugget", + "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_NUGGET" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_1F_EventScript_ItemFullRestore", + "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_FULL_RESTORE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 25, + "y": 5, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_1F_EventScript_ItemMaxElixir", + "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_MAX_ELIXIR" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 7, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 13, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 5, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 14, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 11, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 9, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + } + ], + "warp_events": [ + { + "x": 33, + "y": 21, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "7" + }, + { + "x": 34, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": "0" + }, + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_B1F", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 15, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": "2" + }, + { + "x": 30, + "y": 10, + "elevation": 4, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": "3" + }, + { + "x": 24, + "y": 11, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": "4" + }, + { + "x": 2, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_2F", + "dest_warp_id": "5" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 12, + "y": 2, + "elevation": 3, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/CeruleanCave_1F_Frlg/scripts.inc b/data/maps/CeruleanCave_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..16dd879c59e1 --- /dev/null +++ b/data/maps/CeruleanCave_1F_Frlg/scripts.inc @@ -0,0 +1,7 @@ +CeruleanCave_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CeruleanCave_1F_OnTransition + .byte 0 + +CeruleanCave_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_CERULEAN_CAVE_1F + end diff --git a/data/maps/CeruleanCave_2F_Frlg/map.json b/data/maps/CeruleanCave_2F_Frlg/map.json new file mode 100644 index 000000000000..717f2193d708 --- /dev/null +++ b/data/maps/CeruleanCave_2F_Frlg/map.json @@ -0,0 +1,248 @@ +{ + "id": "MAP_CERULEAN_CAVE_2F", + "name": "CeruleanCave_2F_Frlg", + "layout": "LAYOUT_CERULEAN_CAVE_2F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 9, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_2F_EventScript_ItemPPUp", + "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_PP_UP" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 29, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_2F_EventScript_ItemUltraBall", + "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 33, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_2F_EventScript_ItemFullRestore", + "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_FULL_RESTORE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 33, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 33, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 25, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 28, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 30, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 9, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 23, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 13, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_19" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1A" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 10, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1B" + } + ], + "warp_events": [ + { + "x": 33, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "1" + }, + { + "x": 13, + "y": 4, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "3" + }, + { + "x": 7, + "y": 14, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "4" + }, + { + "x": 26, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "5" + }, + { + "x": 23, + "y": 10, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "6" + }, + { + "x": 5, + "y": 6, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCave_2F_Frlg/scripts.inc b/data/maps/CeruleanCave_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..1e4924adee88 --- /dev/null +++ b/data/maps/CeruleanCave_2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +CeruleanCave_2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/CeruleanCave_B1F_Frlg/map.json b/data/maps/CeruleanCave_B1F_Frlg/map.json new file mode 100644 index 000000000000..d204d58d42ce --- /dev/null +++ b/data/maps/CeruleanCave_B1F_Frlg/map.json @@ -0,0 +1,199 @@ +{ + "id": "MAP_CERULEAN_CAVE_B1F", + "name": "CeruleanCave_B1F_Frlg", + "layout": "LAYOUT_CERULEAN_CAVE_B1F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 31, + "y": 9, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_B1F_EventScript_ItemUltraBall", + "flag": "FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 32, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_B1F_EventScript_ItemMaxRevive", + "flag": "FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MEWTWO", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCave_B1F_EventScript_Mewtwo", + "flag": "FLAG_HIDE_MEWTWO" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 37, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 38, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 35, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 37, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 35, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 6, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_19" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1A" + } + ], + "warp_events": [ + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCave_B1F_Frlg/scripts.inc b/data/maps/CeruleanCave_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..1f84bbe95fbf --- /dev/null +++ b/data/maps/CeruleanCave_B1F_Frlg/scripts.inc @@ -0,0 +1,60 @@ +CeruleanCave_B1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, CeruleanCave_B1F_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, CeruleanCave_B1F_OnTransition + .byte 0 + +CeruleanCave_B1F_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, CeruleanCave_B1F_EventScript_TryRemoveMewtwo + end + +CeruleanCave_B1F_EventScript_TryRemoveMewtwo:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject VAR_LAST_TALKED + return + +CeruleanCave_B1F_OnTransition:: + call_if_unset FLAG_FOUGHT_MEWTWO, CeruleanCave_B1F_EventScript_ShowMewtwo + end + +CeruleanCave_B1F_EventScript_ShowMewtwo:: + clearflag FLAG_HIDE_MEWTWO + return + +CeruleanCave_B1F_EventScript_Mewtwo:: + lock + faceplayer + waitse + playmoncry SPECIES_MEWTWO, CRY_MODE_ENCOUNTER + message CeruleanCave_B1F_Text_Mew + waitmessage + waitmoncry + delay 20 + playbgm MUS_RG_ENCOUNTER_GYM_LEADER, 0 + waitbuttonpress + setwildbattle SPECIES_MEWTWO, 70 + setflag FLAG_SYS_CTRL_OBJ_DELETE + special BattleSetup_StartLegendaryBattle + waitstate + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, CeruleanCave_B1F_EventScript_DefeatedMewtwo + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, CeruleanCave_B1F_EventScript_RanFromMewtwo + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, CeruleanCave_B1F_EventScript_RanFromMewtwo + setflag FLAG_FOUGHT_MEWTWO + release + end + +CeruleanCave_B1F_EventScript_DefeatedMewtwo:: + setflag FLAG_FOUGHT_MEWTWO + goto EventScript_RemoveStaticMon + end + +CeruleanCave_B1F_EventScript_RanFromMewtwo:: + setvar VAR_0x8004, SPECIES_MEWTWO + goto EventScript_MonFlewAway + end + +CeruleanCave_B1F_Text_Mew:: + .string "Mew!$" + diff --git a/data/maps/CeruleanCity_BikeShop_Frlg/map.json b/data/maps/CeruleanCity_BikeShop_Frlg/map.json new file mode 100644 index 000000000000..b8c587505f07 --- /dev/null +++ b/data/maps/CeruleanCity_BikeShop_Frlg/map.json @@ -0,0 +1,152 @@ +{ + "id": "MAP_CERULEAN_CITY_BIKE_SHOP", + "name": "CeruleanCity_BikeShop_Frlg", + "layout": "LAYOUT_CERULEAN_CITY_BIKE_SHOP", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_BikeShop_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_BikeShop_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_BikeShop_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "5" + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 4, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 2, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 1, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 2, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 2, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 2, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + } + ] +} diff --git a/data/maps/CeruleanCity_BikeShop_Frlg/scripts.inc b/data/maps/CeruleanCity_BikeShop_Frlg/scripts.inc new file mode 100644 index 000000000000..ea8581bcf5fa --- /dev/null +++ b/data/maps/CeruleanCity_BikeShop_Frlg/scripts.inc @@ -0,0 +1,131 @@ +CeruleanCity_BikeShop_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_BikeShop_EventScript_Clerk:: + lock + faceplayer + goto_if_set FLAG_GOT_BICYCLE, CeruleanCity_BikeShop_EventScript_AlreadyGotBicycle + goto_if_set FLAG_GOT_BIKE_VOUCHER, CeruleanCity_BikeShop_EventScript_ExchangeBikeVoucher + showmoneybox 0, 0 + message CeruleanCity_BikeShop_Text_WelcomeToBikeShop + waitmessage + multichoice 11, 0, MULTI_BIKE_SHOP, FALSE + hidemoneybox + showmoneybox 0, 0 + switch VAR_RESULT + case 0, CeruleanCity_BikeShop_EventScript_TryPurchaseBicycle + case 1, CeruleanCity_BikeShop_EventScript_ClerkGoodbye + case 127, CeruleanCity_BikeShop_EventScript_ClerkGoodbye + end + +@ The Bicycle price / players money is never actually checked +CeruleanCity_BikeShop_EventScript_TryPurchaseBicycle:: + msgbox CeruleanCity_BikeShop_Text_SorryYouCantAffordIt + goto CeruleanCity_BikeShop_EventScript_ClerkGoodbye + end + +CeruleanCity_BikeShop_EventScript_ClerkGoodbye:: + msgbox CeruleanCity_BikeShop_Text_ThankYouComeAgain + hidemoneybox + release + end + +CeruleanCity_BikeShop_EventScript_ExchangeBikeVoucher:: + msgbox CeruleanCity_BikeShop_Text_OhBikeVoucherHereYouGo + msgreceiveditem CeruleanCity_BikeShop_Text_ExchangedVoucherForBicycle, ITEM_BICYCLE, 1, MUS_RG_OBTAIN_KEY_ITEM + setflag FLAG_GOT_BICYCLE + additem ITEM_BICYCLE + removeitem ITEM_BIKE_VOUCHER + msgbox CeruleanCity_BikeShop_Text_ThankYouComeAgain + release + end + +CeruleanCity_BikeShop_EventScript_AlreadyGotBicycle:: + msgbox CeruleanCity_BikeShop_Text_HowDoYouLikeNewBicycle + release + end + +@ Unused +CeruleanCity_BikeShop_EventScript_NoRoomForBicycle:: + msgbox CeruleanCity_BikeShop_Text_MakeRoomForBicycle + release + end + +CeruleanCity_BikeShop_EventScript_Woman:: + msgbox CeruleanCity_BikeShop_Text_CityBikeGoodEnoughForMe, MSGBOX_NPC + end + +CeruleanCity_BikeShop_EventScript_Youngster:: + lock + faceplayer + goto_if_set FLAG_GOT_BICYCLE, CeruleanCity_BikeShop_EventScript_YoungsterHaveBike + msgbox CeruleanCity_BikeShop_Text_BikesCoolButExpensive + release + end + +CeruleanCity_BikeShop_EventScript_YoungsterHaveBike:: + msgbox CeruleanCity_BikeShop_Text_WowYourBikeIsCool + release + end + +CeruleanCity_BikeShop_EventScript_Bicycle:: + msgbox CeruleanCity_BikeShop_Text_ShinyNewBicycle, MSGBOX_SIGN + end + +CeruleanCity_BikeShop_Text_WelcomeToBikeShop:: + .string "Hi!\n" + .string "Welcome to our BIKE SHOP.\p" + .string "Have we got just the BIKE for\n" + .string "you!$" + +CeruleanCity_BikeShop_Text_SorryYouCantAffordIt:: + .string "Sorry!\n" + .string "You can't afford it!$" + +CeruleanCity_BikeShop_Text_OhBikeVoucherHereYouGo:: + .string "Oh, that's…\p" + .string "A BIKE VOUCHER!\p" + .string "Okay!\n" + .string "Here you go!$" + +CeruleanCity_BikeShop_Text_ExchangedVoucherForBicycle:: + .string "{PLAYER} exchanged the\n" + .string "BIKE VOUCHER for a BICYCLE.$" + +CeruleanCity_BikeShop_Text_ThankYouComeAgain:: + .string "Thank you!\n" + .string "Come back again sometime!$" + +CeruleanCity_BikeShop_Text_HowDoYouLikeNewBicycle:: + .string "How do you like your new BICYCLE?\n" + .string "Do you like how it rides?\p" + .string "You can take it out on CYCLING\n" + .string "ROAD and even into caves!$" + +CeruleanCity_BikeShop_Text_MakeRoomForBicycle:: + .string "You better make room for your\n" + .string "BICYCLE!$" + +CeruleanCity_BikeShop_Text_CityBikeGoodEnoughForMe:: + .string "A plain city bike is good enough\n" + .string "for me.\p" + .string "After all, you can't put a shopping\n" + .string "basket on a mountain bike.$" + +CeruleanCity_BikeShop_Text_BikesCoolButExpensive:: + .string "These bikes are cool, but they're\n" + .string "way expensive!$" + +CeruleanCity_BikeShop_Text_WowYourBikeIsCool:: + .string "Wow.\n" + .string "Your BIKE is really cool!$" + +@ Unused +CeruleanCity_BikeShop_Text_GermanFoldableBicyleFinallyOnMarket:: + .string "ついに はつばい!\p" + .string "ドイツ せい さいこうきゅう\n" + .string "おりたたみ じてんしゃ!$" + +CeruleanCity_BikeShop_Text_ShinyNewBicycle:: + .string "A shiny new BICYCLE!$" + diff --git a/data/maps/CeruleanCity_Frlg/map.json b/data/maps/CeruleanCity_Frlg/map.json new file mode 100644 index 000000000000..a18a7e3c4722 --- /dev/null +++ b/data/maps/CeruleanCity_Frlg/map.json @@ -0,0 +1,425 @@ +{ + "id": "MAP_CERULEAN_CITY", + "name": "CeruleanCity_Frlg", + "layout": "LAYOUT_CERULEAN_CITY", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE24", + "offset": 12, + "direction": "up" + }, + { + "map": "MAP_ROUTE5", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ROUTE4", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE9", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "local_id": "LOCALID_CERULEAN_POLICEMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 31, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_Policeman", + "flag": "0" + }, + { + "local_id": "LOCALID_CERULEAN_GRUNT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 33, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_Grunt", + "flag": "FLAG_HIDE_CERULEAN_ROCKET" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 16, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 9, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_BaldingMan", + "flag": "0" + }, + { + "local_id": "LOCALID_CERULEAN_SLOWBRO", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SLOWBRO", + "x": 32, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_Slowbro", + "flag": "0" + }, + { + "local_id": "LOCALID_CERULEAN_LASS", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 33, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 34, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_Youngster", + "flag": "0" + }, + { + "local_id": "LOCALID_CERULEAN_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 22, + "y": 0, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_CERULEAN_RIVAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 26, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 50, + "y": 18, + "target_local_id": "LOCALID_ROUTE9_CUT_TREE", + "target_map": "MAP_ROUTE9" + }, + { + "local_id": "LOCALID_CERULEAN_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 12, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_Woman", + "flag": "0" + }, + { + "local_id": "LOCALID_CERULEAN_CAVE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 1, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_EventScript_CeruleanCaveGuard", + "flag": "FLAG_HIDE_CERULEAN_CAVE_GUARD" + } + ], + "warp_events": [ + { + "x": 10, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE1", + "dest_warp_id": "1" + }, + { + "x": 30, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE2", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 17, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE3", + "dest_warp_id": "1" + }, + { + "x": 22, + "y": 19, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 31, + "y": 21, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_GYM", + "dest_warp_id": "1" + }, + { + "x": 13, + "y": 28, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", + "dest_warp_id": "1" + }, + { + "x": 29, + "y": 28, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_MART", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 12, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CAVE_1F", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_HOUSE1", + "dest_warp_id": "3" + }, + { + "x": 31, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_HOUSE2", + "dest_warp_id": "3" + }, + { + "x": 31, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_HOUSE2", + "dest_warp_id": "3" + }, + { + "x": 14, + "y": 28, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", + "dest_warp_id": "1" + }, + { + "x": 23, + "y": 28, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE4", + "dest_warp_id": "0" + }, + { + "x": 17, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY_HOUSE5", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_CERULEAN_CITY_RIVAL", + "var_value": "0", + "script": "CeruleanCity_EventScript_RivalTriggerLeft" + }, + { + "type": "trigger", + "x": 23, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_CERULEAN_CITY_RIVAL", + "var_value": "0", + "script": "CeruleanCity_EventScript_RivalTriggerMid" + }, + { + "type": "trigger", + "x": 24, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_CERULEAN_CITY_RIVAL", + "var_value": "0", + "script": "CeruleanCity_EventScript_RivalTriggerRight" + }, + { + "type": "trigger", + "x": 33, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_CERULEAN_CITY_ROCKET", + "var_value": "0", + "script": "CeruleanCity_EventScript_GruntTriggerTop" + }, + { + "type": "trigger", + "x": 33, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_CERULEAN_CITY_ROCKET", + "var_value": "0", + "script": "CeruleanCity_EventScript_GruntTriggerBottom" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 20, + "y": 25, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_EventScript_CitySign" + }, + { + "type": "sign", + "x": 27, + "y": 21, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_EventScript_GymSign" + }, + { + "type": "sign", + "x": 11, + "y": 28, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_EventScript_BikeShopSign" + }, + { + "type": "sign", + "x": 19, + "y": 32, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_EventScript_TrainerTips" + }, + { + "type": "hidden_item", + "x": 18, + "y": 7, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 11, + "y": 25, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 11, + "y": 27, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + }, + { + "type": "sign", + "x": 11, + "y": 26, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_BikeShop_EventScript_Bicycle" + } + ] +} diff --git a/data/maps/CeruleanCity_Frlg/scripts.inc b/data/maps/CeruleanCity_Frlg/scripts.inc new file mode 100644 index 000000000000..dae271fa5477 --- /dev/null +++ b/data/maps/CeruleanCity_Frlg/scripts.inc @@ -0,0 +1,536 @@ +CeruleanCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CeruleanCity_OnTransition + .byte 0 + +CeruleanCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_CERULEAN_CITY + call_if_unset FLAG_GOT_SS_TICKET, CeruleanCity_EventScript_BlockExits + end + +CeruleanCity_EventScript_BlockExits:: + setobjectxyperm LOCALID_CERULEAN_POLICEMAN, 30, 12 + setobjectxyperm LOCALID_CERULEAN_SLOWBRO, 26, 31 + setobjectxyperm LOCALID_CERULEAN_LASS, 27, 31 + return + +CeruleanCity_EventScript_RivalTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto CeruleanCity_EventScript_Rival + end + +CeruleanCity_EventScript_RivalTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + setobjectxyperm LOCALID_CERULEAN_RIVAL, 23, 0 + goto CeruleanCity_EventScript_Rival + end + +CeruleanCity_EventScript_RivalTriggerRight:: + lockall + setvar VAR_TEMP_1, 2 + setobjectxyperm LOCALID_CERULEAN_RIVAL, 24, 0 + goto CeruleanCity_EventScript_Rival + end + +CeruleanCity_EventScript_Rival:: + textcolor NPC_TEXT_COLOR_MALE + setvar VAR_MAP_SCENE_ROUTE22, 2 + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + addobject LOCALID_CERULEAN_RIVAL + applymovement LOCALID_CERULEAN_RIVAL, CeruleanCity_Movement_RivalEnter + waitmovement 0 + msgbox CeruleanCity_Text_RivalIntro + setvar VAR_LAST_TALKED, LOCALID_CERULEAN_RIVAL + call_if_eq VAR_STARTER_MON, 2, CeruleanCity_EventScript_RivalSquirtle + call_if_eq VAR_STARTER_MON, 1, CeruleanCity_EventScript_RivalBulbasaur + call_if_eq VAR_STARTER_MON, 0, CeruleanCity_EventScript_RivalCharmander + famechecker FAMECHECKER_BILL, 0 + msgbox CeruleanCity_Text_RivalPostBattle + closemessage + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_TEMP_1, 0, CeruleanCity_EventScript_RivalStartExit + call_if_eq VAR_TEMP_1, 1, CeruleanCity_EventScript_RivalStartExit + call_if_eq VAR_TEMP_1, 2, CeruleanCity_EventScript_RivalStartExitRight + msgbox CeruleanCity_Text_OhRightLittlePresentAsFavor + setvar VAR_MAP_SCENE_CERULEAN_CITY_RIVAL, 1 + setflag FLAG_GOT_FAME_CHECKER + giveitem ITEM_FAME_CHECKER + msgbox CeruleanCity_Text_ExplainFameCheckerSmellYa + closemessage + applymovement LOCALID_CERULEAN_RIVAL, CeruleanCity_Movement_RivalExit + waitmovement 0 + fadedefaultbgm + removeobject LOCALID_CERULEAN_RIVAL + releaseall + end + +CeruleanCity_EventScript_RivalSquirtle:: + trainerbattle_no_intro TRAINER_RIVAL_CERULEAN_SQUIRTLE, CeruleanCity_Text_RivalDefeat + return + +CeruleanCity_EventScript_RivalBulbasaur:: + trainerbattle_no_intro TRAINER_RIVAL_CERULEAN_BULBASAUR, CeruleanCity_Text_RivalDefeat + return + +CeruleanCity_EventScript_RivalCharmander:: + trainerbattle_no_intro TRAINER_RIVAL_CERULEAN_CHARMANDER, CeruleanCity_Text_RivalDefeat + return + +CeruleanCity_EventScript_RivalStartExit:: + applymovement LOCALID_PLAYER, CeruleanCity_Movement_PlayerWatchRivalExit + applymovement LOCALID_CERULEAN_RIVAL, CeruleanCity_Movement_RivalStartExit + waitmovement 0 + return + +CeruleanCity_EventScript_RivalStartExitRight:: + applymovement LOCALID_PLAYER, CeruleanCity_Movement_PlayerWatchRivalExitRight + applymovement LOCALID_CERULEAN_RIVAL, CeruleanCity_Movement_RivalStartExitRight + waitmovement 0 + return + +CeruleanCity_Movement_PlayerWatchRivalExit:: + delay_16 + delay_8 + walk_in_place_faster_right + delay_16 + walk_in_place_faster_down + step_end + +CeruleanCity_Movement_PlayerWatchRivalExitRight:: + delay_16 + delay_8 + walk_in_place_faster_left + delay_16 + walk_in_place_faster_down + step_end + +CeruleanCity_Movement_RivalEnter:: + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +CeruleanCity_Movement_RivalStartExit:: + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + delay_16 + delay_16 + walk_left + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +CeruleanCity_Movement_RivalStartExitRight:: + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + delay_16 + delay_16 + walk_right + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +CeruleanCity_Movement_RivalExit:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +CeruleanCity_EventScript_Grunt:: + lock + faceplayer + goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_5, CeruleanCity_EventScript_GruntDefeated + message CeruleanCity_Text_GruntIntro + waitmessage + playbgm MUS_RG_ENCOUNTER_ROCKET, 0 + waitbuttonpress + trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_5, CeruleanCity_Text_GruntDefeat + setvar VAR_MAP_SCENE_CERULEAN_CITY_ROCKET, 1 + goto CeruleanCity_EventScript_GruntDefeated + end + +CeruleanCity_EventScript_GruntDefeated:: + msgbox CeruleanCity_Text_OkayIllReturnStolenTM + checkitemspace ITEM_TM28 + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_EventScript_NoRoomForTM28 + giveitem_msg CeruleanCity_Text_RecoveredTM28FromGrunt, ITEM_TM28 + msgbox CeruleanCity_Text_BetterGetMovingBye + closemessage + fadescreenswapbuffers FADE_TO_BLACK + removeobject LOCALID_CERULEAN_GRUNT + fadescreenswapbuffers FADE_FROM_BLACK + setflag FLAG_GOT_TM28_FROM_ROCKET + release + end + +CeruleanCity_EventScript_NoRoomForTM28:: + textcolor NPC_TEXT_COLOR_MALE + msgbox CeruleanCity_Text_MakeRoomForThisCantRun + release + end + +CeruleanCity_EventScript_GruntTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + applymovement LOCALID_CERULEAN_GRUNT, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + goto CeruleanCity_EventScript_GruntTrigger + end + +CeruleanCity_EventScript_GruntTriggerBottom:: + lockall + setvar VAR_TEMP_1, 1 + applymovement LOCALID_CERULEAN_GRUNT, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + goto CeruleanCity_EventScript_GruntTrigger + end + +CeruleanCity_EventScript_GruntTrigger:: + textcolor NPC_TEXT_COLOR_MALE + msgbox CeruleanCity_Text_GruntIntro + setvar VAR_LAST_TALKED, LOCALID_CERULEAN_GRUNT + trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_5, CeruleanCity_Text_GruntDefeat + setvar VAR_MAP_SCENE_CERULEAN_CITY_ROCKET, 1 + goto CeruleanCity_EventScript_GruntDefeated + end + +CeruleanCity_EventScript_Policeman:: + lock + faceplayer + msgbox CeruleanCity_Text_PeopleHereWereRobbed + closemessage + applymovement LOCALID_CERULEAN_POLICEMAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +CeruleanCity_EventScript_LittleBoy:: + lock + faceplayer + goto_if_set FLAG_GOT_SS_TICKET, CeruleanCity_EventScript_LittleBoySlowbroMoved + msgbox CeruleanCity_Text_IfSlowbroWasntThereCouldCutTree + release + end + +CeruleanCity_EventScript_LittleBoySlowbroMoved:: + msgbox CeruleanCity_Text_YouCanCutDownSmallTrees + release + end + +CeruleanCity_EventScript_BaldingMan:: + msgbox CeruleanCity_Text_PokemonEncyclopediaAmusing, MSGBOX_NPC + end + +CeruleanCity_EventScript_Youngster:: + msgbox CeruleanCity_Text_TrainerLifeIsToughIsntIt, MSGBOX_NPC + end + +CeruleanCity_EventScript_CeruleanCaveGuard:: + msgbox CeruleanCity_Text_ThisIsCeruleanCave, MSGBOX_NPC + end + +CeruleanCity_EventScript_Woman:: + lock + faceplayer + msgbox CeruleanCity_Text_WantBrightRedBicycle + closemessage + applymovement LOCALID_CERULEAN_WOMAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +CeruleanCity_EventScript_Lass:: + lock + random 3 + copyvar VAR_0x8008, VAR_RESULT + call_if_eq VAR_0x8008, 0, CeruleanCity_EventScript_SlowbroCommand1 + call_if_eq VAR_0x8008, 1, CeruleanCity_EventScript_SlowbroCommand2 + call_if_eq VAR_0x8008, 2, CeruleanCity_EventScript_SlowbroCommand3 + waitmessage + delay 40 + playse SE_PIN + applymovement LOCALID_CERULEAN_SLOWBRO, Common_Movement_QuestionMark + waitmovement 0 + delay 30 + call_if_eq VAR_0x8008, 0, CeruleanCity_EventScript_SlowbroFailed1 + call_if_eq VAR_0x8008, 1, CeruleanCity_EventScript_SlowbroFailed2 + call_if_eq VAR_0x8008, 2, CeruleanCity_EventScript_SlowbroFailed3 + release + end + +CeruleanCity_EventScript_SlowbroCommand1:: + message CeruleanCity_Text_SlowbroUseSonicboom + return + +CeruleanCity_EventScript_SlowbroCommand2:: + message CeruleanCity_Text_SlowbroPunch + return + +CeruleanCity_EventScript_SlowbroCommand3:: + message CeruleanCity_Text_SlowbroWithdraw + return + +CeruleanCity_EventScript_SlowbroFailed1:: + msgbox CeruleanCity_Text_SlowbroPayAttention + return + +CeruleanCity_EventScript_SlowbroFailed2:: + msgbox CeruleanCity_Text_NoYouBlewItAgain + return + +CeruleanCity_EventScript_SlowbroFailed3:: + msgbox CeruleanCity_Text_HardToControlMonsObedience + return + +CeruleanCity_EventScript_Slowbro:: + lock + random 4 + copyvar VAR_0x8008, VAR_RESULT + call_if_eq VAR_0x8008, 0, CeruleanCity_EventScript_SlowbroText1 + call_if_eq VAR_0x8008, 1, CeruleanCity_EventScript_SlowbroText2 + call_if_eq VAR_0x8008, 2, CeruleanCity_EventScript_SlowbroText3 + call_if_eq VAR_0x8008, 3, CeruleanCity_EventScript_SlowbroText4 + release + end + +CeruleanCity_EventScript_SlowbroText1:: + msgbox CeruleanCity_Text_SlowbroTookSnooze + return + +CeruleanCity_EventScript_SlowbroText2:: + msgbox CeruleanCity_Text_SlowbroLoafingAround + return + +CeruleanCity_EventScript_SlowbroText3:: + msgbox CeruleanCity_Text_SlowbroTurnedAway + return + +CeruleanCity_EventScript_SlowbroText4:: + msgbox CeruleanCity_Text_SlowbroIgnoredOrders + return + +CeruleanCity_EventScript_CitySign:: + msgbox CeruleanCity_Text_CitySign, MSGBOX_SIGN + end + +CeruleanCity_EventScript_TrainerTips:: + msgbox CeruleanCity_Text_TrainerTipsHeldItems, MSGBOX_SIGN + end + +CeruleanCity_EventScript_BikeShopSign:: + msgbox CeruleanCity_Text_BikeShopSign, MSGBOX_SIGN + end + +CeruleanCity_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_MISTY, 0 + msgbox CeruleanCity_Text_GymSign + releaseall + end + +CeruleanCity_Text_RivalIntro:: + .string "{RIVAL}: Yo! {PLAYER}!\p" + .string "You're still struggling along back\n" + .string "here?\p" + .string "I'm doing great! I caught a bunch\n" + .string "of strong and smart POKéMON!\p" + .string "Here, let me see what you caught,\n" + .string "{PLAYER}!$" + +CeruleanCity_Text_RivalDefeat:: + .string "Hey!\n" + .string "Take it easy!\l" + .string "You won already!$" + +CeruleanCity_Text_RivalPostBattle:: + .string "{RIVAL}: Hey, guess what?\p" + .string "I went to BILL's and got him to\n" + .string "show me his rare POKéMON.\p" + .string "That added a lot of pages to my\n" + .string "POKéDEX!\p" + .string "After all, BILL's world famous as a\n" + .string "POKéMANIAC.\p" + .string "He invented the POKéMON Storage\n" + .string "System on PC, too.\p" + .string "Since you're using his system,\n" + .string "you should go thank him.\p" + .string "Well, I better get rolling!\n" + .string "Smell ya later!$" + +CeruleanCity_Text_OhRightLittlePresentAsFavor:: + .string "Oh, yeah, right.\p" + .string "I feel sorry for you. No, really.\n" + .string "You're always plodding behind me.\p" + .string "So here, I'll give you a little\n" + .string "present as a favor.$" + +CeruleanCity_Text_ExplainFameCheckerSmellYa:: + .string "A chatty gossip like you…\n" + .string "That thing's perfect.\p" + .string "I don't need it because I don't\n" + .string "give a hoot about others.\p" + .string "All right, this time I really am\n" + .string "gone. Smell ya!$" + +CeruleanCity_Text_GruntIntro:: + .string "Hey! Stay out!\n" + .string "It's not your yard!\p" + .string "…Huh?\n" + .string "Me?\p" + .string "I'm an innocent bystander!\n" + .string "Don't you believe me?{PLAY_BGM}{MUS_RG_ENCOUNTER_ROCKET}$" + +CeruleanCity_Text_GruntDefeat:: + .string "GRUNT: Stop! I give up!\n" + .string "I'll leave quietly!$" + +CeruleanCity_Text_OkayIllReturnStolenTM:: + .string "…Okay.\n" + .string "I'll return the TM I stole.$" + +CeruleanCity_Text_RecoveredTM28FromGrunt:: + .string "{PLAYER} recovered TM28 from\n" + .string "the TEAM ROCKET GRUNT.$" + +CeruleanCity_Text_BetterGetMovingBye:: + .string "I better get moving!\n" + .string "Bye!$" + +CeruleanCity_Text_MakeRoomForThisCantRun:: + .string "Make room for this!\n" + .string "I can't run until I give it to you!$" + +CeruleanCity_Text_TrainerLifeIsToughIsntIt:: + .string "You're a TRAINER, too?\p" + .string "Collecting, battling…\n" + .string "It's a tough life, isn't it?$" + +CeruleanCity_Text_YouCanCutDownSmallTrees:: + .string "Did you know that you can CUT down\n" + .string "small trees?\p" + .string "Even that small tree in front of\n" + .string "the shop can be CUT down.\p" + .string "I think there's a way around it,\n" + .string "though.$" + +CeruleanCity_Text_IfSlowbroWasntThereCouldCutTree:: + .string "If that SLOWBRO wasn't there, you\n" + .string "could CUT down the small tree.\p" + .string "That way, you could get to the\n" + .string "other side.\p" + .string "I think there's a way around it,\n" + .string "though.$" + +CeruleanCity_Text_PokemonEncyclopediaAmusing:: + .string "You're making an encyclopedia on\n" + .string "POKéMON? That sounds amusing.$" + +CeruleanCity_Text_PeopleHereWereRobbed:: + .string "The people here were robbed.\p" + .string "It's obvious that TEAM ROCKET is\n" + .string "behind this most heinous crime!\p" + .string "Even our POLICE FORCE has\n" + .string "trouble with the ROCKETS!$" + +CeruleanCity_Text_SlowbroUseSonicboom:: + .string "Okay! SLOWBRO!\n" + .string "Use SONICBOOM!$" + +CeruleanCity_Text_SlowbroPayAttention:: + .string "Come on, SLOWBRO, pay attention!$" + +CeruleanCity_Text_SlowbroPunch:: + .string "SLOWBRO, punch!$" + +CeruleanCity_Text_NoYouBlewItAgain:: + .string "No!\n" + .string "You blew it again!$" + +CeruleanCity_Text_SlowbroWithdraw:: + .string "SLOWBRO, WITHDRAW!$" + +CeruleanCity_Text_HardToControlMonsObedience:: + .string "No! That's wrong!\n" + .string "It's so hard to control POKéMON!\p" + .string "Your POKéMON's obedience depends\n" + .string "on your abilities as a TRAINER.$" + +CeruleanCity_Text_SlowbroTookSnooze:: + .string "SLOWBRO took a snooze…$" + +CeruleanCity_Text_SlowbroLoafingAround:: + .string "SLOWBRO is loafing around…$" + +CeruleanCity_Text_SlowbroTurnedAway:: + .string "SLOWBRO turned away…$" + +CeruleanCity_Text_SlowbroIgnoredOrders:: + .string "SLOWBRO ignored orders…$" + +CeruleanCity_Text_WantBrightRedBicycle:: + .string "I want a bright red bicycle.\p" + .string "I'll keep it at home, so it won't\n" + .string "get dirty.$" + +CeruleanCity_Text_ThisIsCeruleanCave:: + .string "This is CERULEAN CAVE.\p" + .string "Horribly strong POKéMON live inside\n" + .string "there.\p" + .string "It takes a very special TRAINER to\n" + .string "be allowed inside there.\p" + .string "You'd have to be strong enough to\n" + .string "become the POKéMON LEAGUE\l" + .string "CHAMPION for starters.\p" + .string "And, you would have to have\n" + .string "made a great achievement.$" + +CeruleanCity_Text_CitySign:: + .string "CERULEAN CITY\n" + .string "A Mysterious, Blue Aura Surrounds\l" + .string "It$" + +CeruleanCity_Text_TrainerTipsHeldItems:: + .string "TRAINER TIPS\p" + .string "A POKéMON can be made to hold\n" + .string "an item.\p" + .string "Some items can even be used by\n" + .string "the holding POKéMON in battle.$" + +CeruleanCity_Text_BikeShopSign:: + .string "Grass and caves handled easily!\n" + .string "BIKE SHOP$" + +CeruleanCity_Text_GymSign:: + .string "CERULEAN CITY POKéMON GYM\n" + .string "LEADER: MISTY\l" + .string "The Tomboyish Mermaid!$" + diff --git a/data/maps/CeruleanCity_Gym_Frlg/map.json b/data/maps/CeruleanCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..9ae1a6734372 --- /dev/null +++ b/data/maps/CeruleanCity_Gym_Frlg/map.json @@ -0,0 +1,118 @@ +{ + "id": "MAP_CERULEAN_CITY_GYM", + "name": "CeruleanCity_Gym_Frlg", + "layout": "LAYOUT_CERULEAN_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 10, + "y": 12, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "CeruleanCity_Gym_EventScript_Luis", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "CeruleanCity_Gym_EventScript_Diana", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MISTY", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_Gym_EventScript_Misty", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 7, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_Gym_EventScript_GymGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "4" + }, + { + "x": 8, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "4" + }, + { + "x": 9, + "y": 18, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 10, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_Gym_EventScript_GymStatue" + } + ] +} diff --git a/data/maps/CeruleanCity_Gym_Frlg/scripts.inc b/data/maps/CeruleanCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..ee8079f85ea8 --- /dev/null +++ b/data/maps/CeruleanCity_Gym_Frlg/scripts.inc @@ -0,0 +1,163 @@ +CeruleanCity_Gym_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_Gym_EventScript_Misty:: + famechecker FAMECHECKER_MISTY, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_MISTY, CeruleanCity_Gym_Text_MistyIntro, CeruleanCity_Gym_Text_MistyDefeat, CeruleanCity_Gym_EventScript_MistyDefeated, NO_MUSIC + goto_if_unset FLAG_GOT_TM03_FROM_MISTY, CeruleanCity_Gym_EventScript_GiveTM03 + msgbox CeruleanCity_Gym_Text_ExplainTM03 + release + end + +CeruleanCity_Gym_EventScript_MistyDefeated:: + famechecker FAMECHECKER_MISTY, 1 + setflag FLAG_DEFEATED_MISTY + setflag FLAG_BADGE02_GET + setrespawn HEAL_LOCATION_CERULEAN_CITY + set_gym_trainers_frlg 2 + goto CeruleanCity_Gym_EventScript_GiveTM03 + end + +CeruleanCity_Gym_EventScript_GiveTM03:: + msgbox CeruleanCity_Gym_Text_ExplainCascadeBadge + checkitemspace ITEM_TM03 + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_Gym_EventScript_NoRoomForTM03 + giveitem_msg CeruleanCity_Gym_Text_ReceivedTM03FromMisty, ITEM_TM03 + setflag FLAG_GOT_TM03_FROM_MISTY + msgbox CeruleanCity_Gym_Text_ExplainTM03 + release + end + +CeruleanCity_Gym_EventScript_NoRoomForTM03:: + msgbox CeruleanCity_Gym_Text_BetterMakeRoomForThis + release + end + +CeruleanCity_Gym_EventScript_Diana:: + trainerbattle_single TRAINER_PICNICKER_DIANA, CeruleanCity_Gym_Text_DianaIntro, CeruleanCity_Gym_Text_DianaDefeat + msgbox CeruleanCity_Gym_Text_DianaPostBattle, MSGBOX_AUTOCLOSE + end + +CeruleanCity_Gym_EventScript_Luis:: + trainerbattle_single TRAINER_SWIMMER_MALE_LUIS, CeruleanCity_Gym_Text_LuisIntro, CeruleanCity_Gym_Text_LuisDefeat + famechecker FAMECHECKER_MISTY, 2 + msgbox CeruleanCity_Gym_Text_LuisPostBattle, MSGBOX_AUTOCLOSE + end + +CeruleanCity_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_MISTY, CeruleanCity_Gym_EventScript_GymGuyPostVictory + msgbox CeruleanCity_Gym_Text_GymGuyAdvice + release + end + +CeruleanCity_Gym_EventScript_GymGuyPostVictory:: + msgbox CeruleanCity_Gym_Text_WeMakePrettyGoodTeam + release + end + +CeruleanCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE02_GET, CeruleanCity_Gym_EventScript_GymStatuePostVictory + msgbox CeruleanCity_Gym_Text_GymStatue + releaseall + end + +CeruleanCity_Gym_EventScript_GymStatuePostVictory:: + msgbox CeruleanCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +CeruleanCity_Gym_Text_MistyIntro:: + .string "Hi, you're a new face!\p" + .string "Only those TRAINERS who have a\n" + .string "policy about POKéMON can turn pro.\p" + .string "What is your approach when you\n" + .string "catch and train POKéMON?\p" + .string "My policy is an all-out offensive\n" + .string "with WATER-type POKéMON!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +CeruleanCity_Gym_Text_ExplainTM03:: + .string "TM03 teaches WATER PULSE.\p" + .string "Use it on an aquatic POKéMON!$" + +CeruleanCity_Gym_Text_ExplainCascadeBadge:: + .string "The CASCADEBADGE makes all\n" + .string "POKéMON up to Lv. 30 obey.\p" + .string "That includes even outsiders you\n" + .string "got in trades.\p" + .string "There's more. You can now use CUT\n" + .string "anytime, even out of battle.\p" + .string "You can CUT down small trees to\n" + .string "open new pathways.\p" + .string "You can also have my favorite TM.$" + +CeruleanCity_Gym_Text_ReceivedTM03FromMisty:: + .string "{PLAYER} received TM03\n" + .string "from MISTY.$" + +CeruleanCity_Gym_Text_BetterMakeRoomForThis:: + .string "You better make room for this!$" + +CeruleanCity_Gym_Text_MistyDefeat:: + .string "Wow!\n" + .string "You're too much!\p" + .string "All right!\p" + .string "You can have the CASCADEBADGE to\n" + .string "show you beat me.$" + +CeruleanCity_Gym_Text_DianaIntro:: + .string "What? You?\n" + .string "I'm more than good enough for you!\p" + .string "MISTY won't have to be bothered.$" + +CeruleanCity_Gym_Text_DianaDefeat:: + .string "You overwhelmed me!$" + +CeruleanCity_Gym_Text_DianaPostBattle:: + .string "You have to face other TRAINERS\n" + .string "to see how good you really are.$" + +CeruleanCity_Gym_Text_LuisIntro:: + .string "Splash!\p" + .string "I'm first up!\n" + .string "Let's do it!$" + +CeruleanCity_Gym_Text_LuisDefeat:: + .string "That can't be!$" + +CeruleanCity_Gym_Text_LuisPostBattle:: + .string "MISTY is a TRAINER who's going to\n" + .string "keep improving.\p" + .string "She won't lose to someone like you!$" + +CeruleanCity_Gym_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "Let me give you some advice!\p" + .string "The LEADER, MISTY, is a pro who\n" + .string "uses WATER-type POKéMON.\p" + .string "You can drain all their water with\n" + .string "GRASS-type POKéMON.\p" + .string "Or, you might use ELECTRIC-type\n" + .string "POKéMON and zap them!$" + +CeruleanCity_Gym_Text_WeMakePrettyGoodTeam:: + .string "You beat MISTY!\n" + .string "See, what'd I tell ya?\p" + .string "You and me, kid, we make a pretty\n" + .string "darn-good team!$" + +CeruleanCity_Gym_Text_GymStatue:: + .string "CERULEAN POKéMON GYM\n" + .string "LEADER: MISTY\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +CeruleanCity_Gym_Text_GymStatuePlayerWon:: + .string "CERULEAN POKéMON GYM\n" + .string "LEADER: MISTY\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/CeruleanCity_House1_Frlg/map.json b/data/maps/CeruleanCity_House1_Frlg/map.json new file mode 100644 index 000000000000..84945472fd2c --- /dev/null +++ b/data/maps/CeruleanCity_House1_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE1", + "name": "CeruleanCity_House1_Frlg", + "layout": "LAYOUT_CERULEAN_CITY_HOUSE1", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House1_EventScript_BadgeGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 1, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "8" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_House1_Frlg/scripts.inc b/data/maps/CeruleanCity_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..731750d38ee8 --- /dev/null +++ b/data/maps/CeruleanCity_House1_Frlg/scripts.inc @@ -0,0 +1,146 @@ +CeruleanCity_House1_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_House1_EventScript_BadgeGuy:: + lock + faceplayer + msgbox CeruleanCity_House1_Text_BadgesHaveAmazingSecrets + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeAnotherBadge:: + message CeruleanCity_House1_Text_DescribeWhichBadge + waitmessage + setvar VAR_0x8004, SCROLL_MULTI_BADGES + special ShowScrollableMultichoice + waitstate + switch VAR_RESULT + case 0, CeruleanCity_House1_EventScript_DescribeBoulderBadge + case 1, CeruleanCity_House1_EventScript_DescribeCascadeBadge + case 2, CeruleanCity_House1_EventScript_DescribeThunderBadge + case 3, CeruleanCity_House1_EventScript_DescribeRainbowBadge + case 4, CeruleanCity_House1_EventScript_DescribeSoulBadge + case 5, CeruleanCity_House1_EventScript_DescribeMarshBadge + case 6, CeruleanCity_House1_EventScript_DescribeVolcanoBadge + case 7, CeruleanCity_House1_EventScript_DescribeEarthBadge + case 8, CeruleanCity_House1_EventScript_StopDescribingBadges + case 127, CeruleanCity_House1_EventScript_StopDescribingBadges + end + +CeruleanCity_House1_EventScript_DescribeBoulderBadge:: + msgbox CeruleanCity_House1_Text_AttackStatFlash + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeCascadeBadge:: + msgbox CeruleanCity_House1_Text_ObeyLv30Cut + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeThunderBadge:: + msgbox CeruleanCity_House1_Text_SpeedStatFly + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeRainbowBadge:: + msgbox CeruleanCity_House1_Text_ObeyLv50Strength + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeSoulBadge:: + msgbox CeruleanCity_House1_Text_DefenseStatSurf + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeMarshBadge:: + msgbox CeruleanCity_House1_Text_ObeyLv70RockSmash + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeVolcanoBadge:: + msgbox CeruleanCity_House1_Text_SpStatsWaterfall + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_DescribeEarthBadge:: + msgbox CeruleanCity_House1_Text_AllMonsWillObeyYou + goto CeruleanCity_House1_EventScript_DescribeAnotherBadge + end + +CeruleanCity_House1_EventScript_StopDescribingBadges:: + msgbox CeruleanCity_House1_Text_ComeVisitAnytime + release + end + +CeruleanCity_House1_Text_BadgesHaveAmazingSecrets:: + .string "Only skilled TRAINERS can collect\n" + .string "POKéMON BADGES.\p" + .string "I see you have at least one.\p" + .string "Those BADGES have amazing secrets,\n" + .string "did you know?$" + +CeruleanCity_House1_Text_DescribeWhichBadge:: + .string "Now then…\p" + .string "Which of the eight BADGES should\n" + .string "I describe?$" + +CeruleanCity_House1_Text_ComeVisitAnytime:: + .string "Come visit me anytime you wish.$" + +CeruleanCity_House1_Text_AttackStatFlash:: + .string "The ATTACK stat of all your\n" + .string "POKéMON increases a little bit.\p" + .string "It also lets you use the move\n" + .string "FLASH outside of battle.$" + +CeruleanCity_House1_Text_ObeyLv30Cut:: + .string "POKéMON up to Lv. 30 will obey\n" + .string "you.\p" + .string "That includes even outsiders you\n" + .string "obtain in trades.\p" + .string "POKéMON of higher levels will\n" + .string "be unruly in battle, however.\p" + .string "It also lets you use the move\n" + .string "CUT outside of battle.$" + +CeruleanCity_House1_Text_SpeedStatFly:: + .string "The SPEED stat of all your\n" + .string "POKéMON increases a little bit.\p" + .string "It also lets you use the move\n" + .string "FLY outside of battle.$" + +CeruleanCity_House1_Text_ObeyLv50Strength:: + .string "POKéMON up to Lv. 50 will obey\n" + .string "you.\p" + .string "That includes even outsiders you\n" + .string "obtain in trades.\p" + .string "POKéMON of higher levels will\n" + .string "be unruly in battle, however.\p" + .string "It also lets you use the move\n" + .string "STRENGTH outside of battle.$" + +CeruleanCity_House1_Text_DefenseStatSurf:: + .string "The DEFENSE stat of all your\n" + .string "POKéMON increases a little bit.\p" + .string "It also lets you use the move\n" + .string "SURF outside of battle.$" + +CeruleanCity_House1_Text_ObeyLv70RockSmash:: + .string "POKéMON up to Lv. 70 will obey\n" + .string "you.\p" + .string "That includes even outsiders you\n" + .string "obtain in trades.\p" + .string "POKéMON of higher levels will\n" + .string "be unruly in battle, however.\p" + .string "It also lets you use the move\n" + .string "ROCK SMASH outside of battle.$" + +CeruleanCity_House1_Text_SpStatsWaterfall:: + .string "The SP. ATK and SP. DEF stats of\n" + .string "all your POKéMON rise a little bit.\p" + .string "It also lets you use the move\n" + .string "WATERFALL outside of battle.$" + +CeruleanCity_House1_Text_AllMonsWillObeyYou:: + .string "All POKéMON will obey you!$" + diff --git a/data/maps/CeruleanCity_House2_Frlg/map.json b/data/maps/CeruleanCity_House2_Frlg/map.json new file mode 100644 index 000000000000..a8ab7fc7171f --- /dev/null +++ b/data/maps/CeruleanCity_House2_Frlg/map.json @@ -0,0 +1,89 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE2", + "name": "CeruleanCity_House2_Frlg", + "layout": "LAYOUT_CERULEAN_CITY_HOUSE2", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House2_EventScript_Hiker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House2_EventScript_Lass", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "1" + }, + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 7, + "elevation": 1, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "9" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_House2_EventScript_WallHole" + } + ] +} diff --git a/data/maps/CeruleanCity_House2_Frlg/scripts.inc b/data/maps/CeruleanCity_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..492c5e26124d --- /dev/null +++ b/data/maps/CeruleanCity_House2_Frlg/scripts.inc @@ -0,0 +1,46 @@ +CeruleanCity_House2_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_House2_EventScript_Hiker:: + lock + faceplayer + goto_if_set FLAG_GOT_TM28_FROM_ROCKET, CeruleanCity_House2_EventScript_HikerGotTM28 + msgbox CeruleanCity_House2_Text_RocketsStoleTMForDig + release + end + +CeruleanCity_House2_EventScript_HikerGotTM28:: + msgbox CeruleanCity_House2_Text_TeachDiglettDigWithoutTM + release + end + +CeruleanCity_House2_EventScript_Lass:: + msgbox CeruleanCity_House2_Text_TeamRocketTryingToDigIntoNoGood, MSGBOX_NPC + end + +CeruleanCity_House2_EventScript_WallHole:: + msgbox CeruleanCity_House2_Text_TeamRocketLeftWayOut, MSGBOX_SIGN + end + +CeruleanCity_House2_Text_RocketsStoleTMForDig:: + .string "Those miserable ROCKETS!\p" + .string "Look what they've done to my\n" + .string "house!\p" + .string "They stole a TM for teaching\n" + .string "POKéMON how to DIG holes!\p" + .string "I was going to use it on a\n" + .string "MANKEY or a SANDSHREW…\p" + .string "That cost me a bundle, it did!$" + +CeruleanCity_House2_Text_TeachDiglettDigWithoutTM:: + .string "I figure what's lost is lost.\p" + .string "I decided to teach DIGLETT how to\n" + .string "DIG without a TM.$" + +CeruleanCity_House2_Text_TeamRocketTryingToDigIntoNoGood:: + .string "TEAM ROCKET must be trying to DIG\n" + .string "their way into no good!$" + +CeruleanCity_House2_Text_TeamRocketLeftWayOut:: + .string "TEAM ROCKET left a way out!$" + diff --git a/data/maps/CeruleanCity_House3_Frlg/map.json b/data/maps/CeruleanCity_House3_Frlg/map.json new file mode 100644 index 000000000000..590c57340b02 --- /dev/null +++ b/data/maps/CeruleanCity_House3_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE3", + "name": "CeruleanCity_House3_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House3_EventScript_Dontae", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House3_EventScript_OldWoman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_House3_Frlg/scripts.inc b/data/maps/CeruleanCity_House3_Frlg/scripts.inc new file mode 100644 index 000000000000..398294f47171 --- /dev/null +++ b/data/maps/CeruleanCity_House3_Frlg/scripts.inc @@ -0,0 +1,47 @@ +CeruleanCity_House3_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_House3_EventScript_OldWoman:: + msgbox CeruleanCity_House3_Text_PleaseTradeWithMyHusband, MSGBOX_NPC + end + +CeruleanCity_House3_EventScript_Dontae:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_JYNX + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_ZYNX_TRADE, CeruleanCity_House3_EventScript_AlreadyTraded + msgbox Trade_Text_DoYouHaveMonWouldYouTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeruleanCity_House3_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, CeruleanCity_House3_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, CeruleanCity_House3_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_Thanks + setflag FLAG_DID_ZYNX_TRADE + release + end + +CeruleanCity_House3_EventScript_DeclineTrade:: + msgbox Trade_Text_WellIfYouDontWantTo + release + end + +CeruleanCity_House3_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_ThisIsntMon + release + end + +CeruleanCity_House3_EventScript_AlreadyTraded:: + msgbox Trade_Text_HasTradedMonGrownStronger + release + end + +CeruleanCity_House3_Text_PleaseTradeWithMyHusband:: + .string "My husband likes trading POKéMON.\p" + .string "You're collecting POKéMON for your\n" + .string "POKéDEX, aren't you?\p" + .string "Would you please trade with him?$" + diff --git a/data/maps/CeruleanCity_House4_Frlg/map.json b/data/maps/CeruleanCity_House4_Frlg/map.json new file mode 100644 index 000000000000..56f584dbc84f --- /dev/null +++ b/data/maps/CeruleanCity_House4_Frlg/map.json @@ -0,0 +1,46 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE4", + "name": "CeruleanCity_House4_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_WONDER_NEWS_BERRY_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House4_EventScript_WonderNewsBerryMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "12" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_House4_Frlg/scripts.inc b/data/maps/CeruleanCity_House4_Frlg/scripts.inc new file mode 100644 index 000000000000..fb522d73b194 --- /dev/null +++ b/data/maps/CeruleanCity_House4_Frlg/scripts.inc @@ -0,0 +1,154 @@ +.set REWARD_TYPE, VAR_0x8004 +.set REWARD_ITEM, VAR_0x8008 + +CeruleanCity_House4_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_House4_EventScript_WonderNewsBerryMan:: + lock + specialvar REWARD_TYPE, WonderNews_GetRewardInfo + copyvar REWARD_ITEM, VAR_RESULT + goto_if_eq REWARD_TYPE, NEWS_REWARD_NONE, CeruleanCity_House4_EventScript_NoNews + goto_if_eq REWARD_TYPE, NEWS_REWARD_RECV_SMALL, CeruleanCity_House4_EventScript_Reward_RecvSmall + goto_if_eq REWARD_TYPE, NEWS_REWARD_RECV_BIG, CeruleanCity_House4_EventScript_Reward_RecvBig + goto_if_eq REWARD_TYPE, NEWS_REWARD_WAITING, CeruleanCity_House4_EventScript_Waiting + goto_if_eq REWARD_TYPE, NEWS_REWARD_SENT_SMALL, CeruleanCity_House4_EventScript_Reward_SentSmall + goto_if_eq REWARD_TYPE, NEWS_REWARD_SENT_BIG, CeruleanCity_House4_EventScript_Reward_SentBig + goto_if_eq REWARD_TYPE, NEWS_REWARD_AT_MAX, CeruleanCity_House4_EventScript_AtMax + end + +@ Mystery Gift is not enabled, or the player has no saved Wonder News +CeruleanCity_House4_EventScript_NoNews:: + msgbox CeruleanCity_House4_Text_NothingEntertaining + release + end + +@ Small reward for receiving Wonder News from friend +CeruleanCity_House4_EventScript_Reward_RecvSmall:: + call CeruleanCity_House4_EventScript_MovementReactionToNews + msgbox CeruleanCity_House4_Text_NewNewsInformativeHaveThis + giveitem REWARD_ITEM + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_House4_EventScript_NoRoomForBerries + release + end + +@ Big reward for receiving Wonder News from non-friend source +CeruleanCity_House4_EventScript_Reward_RecvBig:: + call CeruleanCity_House4_EventScript_MovementReactionToNews + msgbox CeruleanCity_House4_Text_IncredibleNewsHaveBerries + giveitem REWARD_ITEM, 4 + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_House4_EventScript_NoRoomForBerries + release + end + +@ Player has not recently sent Wonder News +CeruleanCity_House4_EventScript_Waiting:: + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer + waitmovement 0 + msgbox CeruleanCity_House4_Text_WishCouldShareNewsWithOthers + release + end + +@ Small reward for sending Wonder News every 1-3 times +CeruleanCity_House4_EventScript_Reward_SentSmall:: + call CeruleanCity_House4_EventScript_MovementReactionToNews + msgbox CeruleanCity_House4_Text_ThanksForSpreadingNewsTakeThis + giveitem REWARD_ITEM + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_House4_EventScript_NoRoomForBerries + release + end + +@ Big reward for sending Wonder News every 4th time +CeruleanCity_House4_EventScript_Reward_SentBig:: + call CeruleanCity_House4_EventScript_MovementReactionToNews + msgbox CeruleanCity_House4_Text_MagnificentNewsSpreadHaveBerries + giveitem REWARD_ITEM, 4 + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_House4_EventScript_NoRoomForBerries + release + end + +@ Player has hit reward limit and must wait to receive new rewards +CeruleanCity_House4_EventScript_AtMax:: + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer + waitmovement 0 + msgbox CeruleanCity_House4_Text_EnjoyingMyselfWithAllSortsOfNews + release + end + +CeruleanCity_House4_EventScript_MovementReactionToNews:: + playse SE_PIN + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer + waitmovement 0 + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_Delay48 + waitmovement 0 + return + +CeruleanCity_House4_EventScript_NoRoomForBerries:: + msgbox CeruleanCity_House4_Text_YourBerryPouchIsFull + release + end + +CeruleanCity_House4_Text_NothingEntertaining:: + .string "Sigh…\n" + .string "Too much time, too little to do…\p" + .string "Is nothing entertaining happening\n" + .string "anywhere?$" + +CeruleanCity_House4_Text_NewNewsInformativeHaveThis:: + .string "Ah!\n" + .string "A new news report!\p" + .string "Hmm…\p" + .string "I see!\n" + .string "That was quite informative!\p" + .string "I applaud you for taking interest\n" + .string "in the news at your young age.\p" + .string "As my thanks for sharing the news\n" + .string "with me, I want you to have this.$" + +CeruleanCity_House4_Text_IncredibleNewsHaveBerries:: + .string "Oh, oh!\n" + .string "Th-this news report!\p" + .string "Hmm…\p" + .string "Amazing!\n" + .string "What an incredible piece of news!\p" + .string "I haven't seen a news story this\n" + .string "incredible in too long a time!\p" + .string "Thanks for sharing this fantastic\n" + .string "news. Have a bunch of BERRIES!$" + +CeruleanCity_House4_Text_WishCouldShareNewsWithOthers:: + .string "It seems such a shame to not share\n" + .string "this news with other folks…\p" + .string "I wish I could tell someone…\n" + .string "Let others know the news…$" + +CeruleanCity_House4_Text_ThanksForSpreadingNewsTakeThis:: + .string "Ah, you've spread the news for me?\p" + .string "Good news becomes worthwhile when\n" + .string "all sorts of people share it.\p" + .string "As my thanks for your spreading\n" + .string "the news, take this!$" + +CeruleanCity_House4_Text_MagnificentNewsSpreadHaveBerries:: + .string "You've spread the news some more?\n" + .string "Magnificent!\p" + .string "That piece of news must be\n" + .string "delighted to be passed around so.\p" + .string "Yes, indeed!\p" + .string "Consider this a show of\n" + .string "appreciation from me and the news.\p" + .string "I'll give you more BERRIES than\n" + .string "I usually do.$" + +CeruleanCity_House4_Text_EnjoyingMyselfWithAllSortsOfNews:: + .string "I'm quite enjoying myself with all\n" + .string "sorts of news.\p" + .string "Yes, I am satisfied!\n" + .string "I won't be bored for a while.$" + +CeruleanCity_House4_Text_YourBerryPouchIsFull:: + .string "Hm? Your BERRY POUCH is full.\n" + .string "My gift remains ungiven, then.$" + diff --git a/data/maps/CeruleanCity_House5_Frlg/map.json b/data/maps/CeruleanCity_House5_Frlg/map.json new file mode 100644 index 000000000000..f9762e3df2c1 --- /dev/null +++ b/data/maps/CeruleanCity_House5_Frlg/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_CERULEAN_CITY_HOUSE5", + "name": "CeruleanCity_House5_Frlg", + "layout": "LAYOUT_CERULEAN_CITY_HOUSE5", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_House5_EventScript_BerryPowderMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "13" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CeruleanCity_House5_EventScript_BerryCrushRankings" + } + ] +} diff --git a/data/maps/CeruleanCity_House5_Frlg/scripts.inc b/data/maps/CeruleanCity_House5_Frlg/scripts.inc new file mode 100644 index 000000000000..91cd34dee3b9 --- /dev/null +++ b/data/maps/CeruleanCity_House5_Frlg/scripts.inc @@ -0,0 +1,245 @@ +CeruleanCity_House5_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_House5_EventScript_BerryPowderMan:: + lock + faceplayer + goto_if_set FLAG_GOT_POWDER_JAR, CeruleanCity_House5_EventScript_AskToExchangePowder + msgbox CeruleanCity_House1_Text_AnyInterestInBerries, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeruleanCity_House5_EventScript_NoInterestInBerries + goto_if_unset FLAG_SYS_GOT_BERRY_POUCH, CeruleanCity_House5_EventScript_NoBerries + msgbox CeruleanCity_House1_Text_HaveJustTheThing + setflag FLAG_GOT_POWDER_JAR + giveitem ITEM_POWDER_JAR + goto_if_eq VAR_RESULT, FALSE, EventScript_BagIsFull + msgbox CeruleanCity_House1_Text_GoCrushBerriesAtDirectCorner + release + end + +CeruleanCity_House5_EventScript_NoBerries:: + msgbox CeruleanCity_House1_Text_WhyMustYouLieNoBerries + release + end + +CeruleanCity_House5_EventScript_NoInterestInBerries:: + msgbox CeruleanCity_House1_Text_TakeInterestInAllSortsOfThings + release + end + +CeruleanCity_House5_EventScript_AskToExchangePowder:: + special DisplayBerryPowderVendorMenu + msgbox CeruleanCity_House1_Text_HaveYouBroughtBerryPowder + goto CeruleanCity_House5_EventScript_ChooseExchangeItem + end + +CeruleanCity_House5_EventScript_ChooseExchangeItem:: + message CeruleanCity_House5_Text_ExchangeWithWhat + waitmessage + setvar VAR_0x8004, SCROLL_MULTI_BERRY_POWDER_VENDOR + special ShowScrollableMultichoice + waitstate + switch VAR_RESULT + case 0, CeruleanCity_House5_EventScript_EnergyPowder + case 1, CeruleanCity_House5_EventScript_EnergyRoot + case 2, CeruleanCity_House5_EventScript_HealPowder + case 3, CeruleanCity_House5_EventScript_RevivalHerb + case 4, CeruleanCity_House5_EventScript_Protein + case 5, CeruleanCity_House5_EventScript_Iron + case 6, CeruleanCity_House5_EventScript_Carbos + case 7, CeruleanCity_House5_EventScript_Calcium + case 8, CeruleanCity_House5_EventScript_Zinc + case 9, CeruleanCity_House5_EventScript_HPUp + case 10, CeruleanCity_House5_EventScript_PPUp + case 11, CeruleanCity_House5_EventScript_ExitMenu + case 127, CeruleanCity_House5_EventScript_ExitMenu + end + +CeruleanCity_House5_EventScript_EnergyPowder:: + bufferitemname STR_VAR_1, ITEM_ENERGY_POWDER + setvar VAR_0x8008, ITEM_ENERGY_POWDER + setvar VAR_0x8009, 50 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_EnergyRoot:: + bufferitemname STR_VAR_1, ITEM_ENERGY_ROOT + setvar VAR_0x8008, ITEM_ENERGY_ROOT + setvar VAR_0x8009, 80 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_HealPowder:: + bufferitemname STR_VAR_1, ITEM_HEAL_POWDER + setvar VAR_0x8008, ITEM_HEAL_POWDER + setvar VAR_0x8009, 50 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_RevivalHerb:: + bufferitemname STR_VAR_1, ITEM_REVIVAL_HERB + setvar VAR_0x8008, ITEM_REVIVAL_HERB + setvar VAR_0x8009, 300 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_Protein:: + bufferitemname STR_VAR_1, ITEM_PROTEIN + setvar VAR_0x8008, ITEM_PROTEIN + setvar VAR_0x8009, 1000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_Iron:: + bufferitemname STR_VAR_1, ITEM_IRON + setvar VAR_0x8008, ITEM_IRON + setvar VAR_0x8009, 1000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_Carbos:: + bufferitemname STR_VAR_1, ITEM_CARBOS + setvar VAR_0x8008, ITEM_CARBOS + setvar VAR_0x8009, 1000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_Calcium:: + bufferitemname STR_VAR_1, ITEM_CALCIUM + setvar VAR_0x8008, ITEM_CALCIUM + setvar VAR_0x8009, 1000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_Zinc:: + bufferitemname STR_VAR_1, ITEM_ZINC + setvar VAR_0x8008, ITEM_ZINC + setvar VAR_0x8009, 1000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_HPUp:: + bufferitemname STR_VAR_1, ITEM_HP_UP + setvar VAR_0x8008, ITEM_HP_UP + setvar VAR_0x8009, 1000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_PPUp:: + bufferitemname STR_VAR_1, ITEM_PP_UP + setvar VAR_0x8008, ITEM_PP_UP + setvar VAR_0x8009, 3000 + goto CeruleanCity_House5_EventScript_ExchangePowderForItem + end + +CeruleanCity_House5_EventScript_ExitMenu:: + msgbox CeruleanCity_House1_Text_SeeMeIfYoudLikeToTradePowder + special RemoveBerryPowderVendorMenu + release + end + +CeruleanCity_House5_EventScript_ExchangePowderForItem:: + msgbox CeruleanCity_House1_Text_YoullExchangeBerryPowderForItem, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeruleanCity_House5_EventScript_ChooseExchangeItem + copyvar VAR_0x8004, VAR_0x8009 + specialvar VAR_RESULT, HasEnoughBerryPowder + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_House5_EventScript_NotEnoughBerryPowder + giveitem VAR_0x8008 + goto_if_eq VAR_RESULT, FALSE, CeruleanCity_House5_EventScript_BagIsFull + copyvar VAR_0x8004, VAR_0x8009 + special TakeBerryPowder + special PrintPlayerBerryPowderAmount + msgbox CeruleanCity_House1_Text_TradeMoreBerryPowder, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CeruleanCity_House5_EventScript_ChooseExchangeItem + msgbox CeruleanCity_House1_Text_HopeToSeeYouAgain + special RemoveBerryPowderVendorMenu + release + end + +CeruleanCity_House5_EventScript_BagIsFull:: + msgbox gText_TheBagIsFull + special RemoveBerryPowderVendorMenu + release + end + +CeruleanCity_House5_EventScript_NotEnoughBerryPowder:: + msgbox CeruleanCity_House1_Text_DontHaveEnoughBerryPowder + goto CeruleanCity_House5_EventScript_ChooseExchangeItem + end + +CeruleanCity_House5_EventScript_BerryCrushRankings:: + lockall + special ShowBerryCrushRankings + waitstate + releaseall + end + +CeruleanCity_House1_Text_AnyInterestInBerries:: + .string "I concoct a variety of medicine\n" + .string "from BERRY POWDER.\p" + .string "Using good BERRY POWDER, I can\n" + .string "make any kind of medicine.\p" + .string "Now tell me, have you any interest\n" + .string "in BERRIES?$" + +CeruleanCity_House1_Text_HaveJustTheThing:: + .string "Ah, good! For you, then, I have\n" + .string "just the thing.$" + +CeruleanCity_House1_Text_GoCrushBerriesAtDirectCorner:: + .string "There's something new on the second\n" + .string "floor of POKéMON CENTERS, at the\l" + .string "DIRECT CORNER.\p" + .string "They installed a Wireless Adapter\n" + .string "machine for crushing BERRIES.\p" + .string "This is where you come in.\p" + .string "I have a favor to ask, one that\n" + .string "I can entrust only to you.\p" + .string "Could you make BERRY POWDER for\n" + .string "me using that machine?\p" + .string "Don't forget, the machine is at the\n" + .string "DIRECT CORNER of POKéMON CENTERS.\p" + .string "I'll concoct medicine for you if\n" + .string "you bring me some BERRY POWDER.\p" + .string "Don't forget, crush BERRIES into\n" + .string "BERRY POWDER and bring it to me.$" + +CeruleanCity_House1_Text_WhyMustYouLieNoBerries:: + .string "Why must you lie to me?\p" + .string "How many BERRIES do you have?\n" + .string "Not a one!$" + +CeruleanCity_House1_Text_TakeInterestInAllSortsOfThings:: + .string "You have no interest in BERRIES?\p" + .string "Young one, it's important to take an\n" + .string "interest in all sorts of things.$" + +CeruleanCity_House1_Text_HaveYouBroughtBerryPowder:: + .string "Er-hem! Have you brought me some\n" + .string "BERRY POWDER?$" + +CeruleanCity_House5_Text_ExchangeWithWhat:: + .string "With what would you like to \n" + .string "exchange it?$" + +CeruleanCity_House1_Text_YoullExchangeBerryPowderForItem:: + .string "Fine, you'll exchange your BERRY\n" + .string "POWDER for one {STR_VAR_1}?$" + +CeruleanCity_House1_Text_DontHaveEnoughBerryPowder:: + .string "Hm? You don't have enough\n" + .string "BERRY POWDER.$" + +CeruleanCity_House1_Text_TradeMoreBerryPowder:: + .string "This is fine BERRY POWDER indeed.\n" + .string "It will make excellent medicine.\p" + .string "Would you like to trade more BERRY\n" + .string "POWDER for something else?$" + +CeruleanCity_House1_Text_HopeToSeeYouAgain:: + .string "That's fine, then.\n" + .string "I'll hope to see you back again.$" + +CeruleanCity_House1_Text_SeeMeIfYoudLikeToTradePowder:: + .string "Come see me if you'd like to trade\n" + .string "your BERRY POWDER.$" + diff --git a/data/maps/CeruleanCity_Mart_Frlg/map.json b/data/maps/CeruleanCity_Mart_Frlg/map.json new file mode 100644 index 000000000000..6874e05d0665 --- /dev/null +++ b/data/maps/CeruleanCity_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_CERULEAN_CITY_MART", + "name": "CeruleanCity_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 9, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_Mart_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 1, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_Mart_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "6" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "6" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_Mart_Frlg/scripts.inc b/data/maps/CeruleanCity_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..29614a192d1a --- /dev/null +++ b/data/maps/CeruleanCity_Mart_Frlg/scripts.inc @@ -0,0 +1,50 @@ +CeruleanCity_Mart_Frlg_MapScripts:: + .byte 0 + +CeruleanCity_Mart_EventScript_Youngster:: + msgbox CeruleanCity_Mart_Text_RepelWorksOnWeakMons, MSGBOX_NPC + end + +CeruleanCity_Mart_EventScript_Woman:: + msgbox CeruleanCity_Mart_Text_DoYouKnowAboutRareCandy, MSGBOX_NPC + end + +CeruleanCity_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CeruleanCity_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CeruleanCity_Mart_Items:: + .2byte ITEM_POKE_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_BURN_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_REPEL + .2byte ITEM_NONE + release + end + +CeruleanCity_Mart_Text_RepelWorksOnWeakMons:: + .string "REPEL not only keeps bugs away,\n" + .string "it also works on weak POKéMON.\p" + .string "Put your strongest POKéMON at the\n" + .string "left of the POKéMON LIST.\p" + .string "If your first POKéMON is strong,\n" + .string "REPEL's effect is boosted.$" + +CeruleanCity_Mart_Text_DoYouKnowAboutRareCandy:: + .string "Do you know about RARE CANDY?\n" + .string "They don't sell it in shops.\p" + .string "I think it makes POKéMON grow\n" + .string "very quickly all of a sudden.$" + diff --git a/data/maps/CeruleanCity_PokemonCenter_1F_Frlg/map.json b/data/maps/CeruleanCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..387edc113bf3 --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,151 @@ +{ + "id": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", + "name": "CeruleanCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_CERULEAN_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_Rocker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_PokemonJournalMisty", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CeruleanCity_PokemonCenter_1F_EventScript_PokemonJournalMisty", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "3" + }, + { + "x": 7, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CERULEAN_CITY", + "dest_warp_id": "3" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/CeruleanCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..bc861277984e --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,63 @@ +CeruleanCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CeruleanCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +CeruleanCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_CERULEAN_CITY + end + +CeruleanCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +CeruleanCity_PokemonCenter_1F_EventScript_Gentleman:: + msgbox CeruleanCity_PokemonCenter_1F_Text_EveryoneCallsBillPokemaniac, MSGBOX_NPC + end + +CeruleanCity_PokemonCenter_1F_EventScript_Rocker:: + msgbox CeruleanCity_PokemonCenter_1F_Text_BillDoesWhateverForRareMons, MSGBOX_NPC + end + +CeruleanCity_PokemonCenter_1F_EventScript_Youngster:: + lock + faceplayer + famechecker FAMECHECKER_BILL, 1 + msgbox CeruleanCity_PokemonCenter_1F_Text_BillCollectsRareMons + release + end + +CeruleanCity_PokemonCenter_1F_EventScript_Lass:: + msgbox CeruleanCity_PokemonCenter_1F_Text_TryTradingUpstairs, MSGBOX_NPC + end + +CeruleanCity_PokemonCenter_1F_Text_BillDoesWhateverForRareMons:: + .string "That BILL!\p" + .string "I heard that he'll do whatever it\n" + .string "takes to get rare POKéMON.\p" + .string "He's not above doing all sorts\n" + .string "of things, I've heard.$" + +CeruleanCity_PokemonCenter_1F_Text_EveryoneCallsBillPokemaniac:: + .string "Have you heard about BILL?\p" + .string "Everyone calls him a POKéMANIAC!\p" + .string "I think people are just jealous of\n" + .string "BILL, though.\p" + .string "Who wouldn't want to boast about\n" + .string "their POKéMON?$" + +CeruleanCity_PokemonCenter_1F_Text_BillCollectsRareMons:: + .string "BILL has lots of POKéMON!\n" + .string "He collects rare ones, too!$" + +CeruleanCity_PokemonCenter_1F_Text_TryTradingUpstairs:: + .string "Why don't you go upstairs and try\n" + .string "trading POKéMON with your friends?\p" + .string "You could get a lot more variety\n" + .string "by trading.\p" + .string "The POKéMON you get in trades grow\n" + .string "quickly, too.$" + diff --git a/data/maps/CeruleanCity_PokemonCenter_2F_Frlg/map.json b/data/maps/CeruleanCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..0e57a5f10bd5 --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_CERULEAN_CITY_POKEMON_CENTER_2F", + "name": "CeruleanCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CERULEAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CeruleanCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/CeruleanCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..6ead52645adc --- /dev/null +++ b/data/maps/CeruleanCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +CeruleanCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +CeruleanCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +CeruleanCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +CeruleanCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/CinnabarIsland_Frlg/map.json b/data/maps/CinnabarIsland_Frlg/map.json new file mode 100644 index 000000000000..a58426de7f96 --- /dev/null +++ b/data/maps/CinnabarIsland_Frlg/map.json @@ -0,0 +1,171 @@ +{ + "id": "MAP_CINNABAR_ISLAND", + "name": "CinnabarIsland_Frlg", + "layout": "LAYOUT_CINNABAR_ISLAND", + "music": "MUS_RG_CINNABAR", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE21_SOUTH", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE20", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 11, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_EventScript_OldMan", + "flag": "0" + }, + { + "local_id": "LOCALID_CINNABAR_BILL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BILL", + "x": 20, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_CINNABAR_BILL" + }, + { + "local_id": "LOCALID_CINNABAR_SEAGALLOP", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 23, + "y": 7, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_CINNABAR_SEAGALLOP" + } + ], + "warp_events": [ + { + "x": 8, + "y": 3, + "elevation": 0, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 4, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_GYM", + "dest_warp_id": "1" + }, + { + "x": 8, + "y": 9, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 14, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 19, + "y": 11, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_MART", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 20, + "y": 5, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "CinnabarIsland_EventScript_GymDoorLocked" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_EventScript_IslandSign" + }, + { + "type": "sign", + "x": 9, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_EventScript_PokemonLabSign" + }, + { + "type": "sign", + "x": 22, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_EventScript_GymSign" + }, + { + "type": "sign", + "x": 10, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_EventScript_PokemonLabSign" + } + ] +} diff --git a/data/maps/CinnabarIsland_Frlg/scripts.inc b/data/maps/CinnabarIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..7bc675050785 --- /dev/null +++ b/data/maps/CinnabarIsland_Frlg/scripts.inc @@ -0,0 +1,428 @@ +CinnabarIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CinnabarIsland_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, CinnabarIsland_OnFrame + .byte 0 + +CinnabarIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_CINNABAR_ISLAND + call CinnabarIsland_EventScript_CheckUnlockGym + call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND, 1, CinnabarIsland_EventScript_ReadyObjectsSailToOneIsland + call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND, 3, CinnabarIsland_EventScript_ReadyObjectsReturnFromSeviiIslands + call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_2, 1, CinnabarIsland_EventScript_ReadyObjectsSailToOneIslandFromPokeCenter + end + +CinnabarIsland_EventScript_ReadyObjectsSailToOneIslandFromPokeCenter:: + savebgm MUS_FOLLOW_ME + setflag FLAG_TEMP_2 + setobjectxyperm LOCALID_CINNABAR_BILL, 15, 12 + setobjectmovementtype LOCALID_CINNABAR_BILL, MOVEMENT_TYPE_FACE_LEFT + setobjectxyperm LOCALID_CINNABAR_SEAGALLOP, 30, 12 + return + +CinnabarIsland_EventScript_ReadyObjectsSailToOneIsland:: + getplayerxy VAR_0x8004, VAR_0x8005 + goto_if_ge VAR_0x8004, 18, CinnabarIsland_EventScript_MoveSeagallopDown + setflag FLAG_TEMP_2 + setobjectxyperm LOCALID_CINNABAR_BILL, 18, 12 + setobjectmovementtype LOCALID_CINNABAR_BILL, MOVEMENT_TYPE_FACE_UP + setobjectxyperm LOCALID_CINNABAR_SEAGALLOP, 30, 12 + return + +CinnabarIsland_EventScript_MoveSeagallopDown:: + setobjectxyperm LOCALID_CINNABAR_SEAGALLOP, 30, 8 + return + +CinnabarIsland_EventScript_ReadyObjectsReturnFromSeviiIslands:: + setobjectxyperm LOCALID_CINNABAR_BILL, 21, 8 + setobjectmovementtype LOCALID_CINNABAR_BILL, MOVEMENT_TYPE_FACE_UP + return + +CinnabarIsland_EventScript_CheckUnlockGym:: + goto_if_set FLAG_HIDE_POKEMON_MANSION_B1F_SECRET_KEY, CinnabarIsland_EventScript_UnlockGym + return + +CinnabarIsland_EventScript_UnlockGym:: + setvar VAR_TEMP_1, 1 + return + +CinnabarIsland_OnFrame:: + map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND_2, 1, CinnabarIsland_EventScript_ExitPokeCenterForOneIsland + map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND, 1, CinnabarIsland_EventScript_BillScene + map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND, 3, CinnabarIsland_EventScript_ReturnFromSeviiIslands + .2byte 0 + +CinnabarIsland_EventScript_ExitPokeCenterForOneIsland:: + lockall + clearflag FLAG_DONT_TRANSITION_MUSIC + savebgm MUS_DUMMY + textcolor NPC_TEXT_COLOR_MALE + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_2, 2 + delay 20 + call CinnabarIsland_EventScript_SailToOneIsland + releaseall + end + +CinnabarIsland_EventScript_ReturnFromSeviiIslands:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Text_IfYouHaveTriPassYouCanGoAgain + closemessage + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillExit + waitmovement 0 + removeobject LOCALID_CINNABAR_BILL + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 4 + setflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE + clearflag FLAG_HIDE_LOSTELLE_IN_HER_HOME + releaseall + end + +CinnabarIsland_Movement_BillExit:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +CinnabarIsland_EventScript_BillScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer1 + call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer2 + playse SE_PIN + applymovement LOCALID_CINNABAR_BILL, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_CINNABAR_BILL, Common_Movement_Delay48 + waitmovement 0 + call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer1 + call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer2 + msgbox CinnabarIsland_Text_HeyIfItIsntPlayer + msgbox CinnabarIsland_Text_ComeWithMeToOneIsland, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_EventScript_AgreeSailToOneIsland + goto_if_eq VAR_RESULT, NO, CinnabarIsland_EventScript_DeclineSailToOneIsland + end + +CinnabarIsland_EventScript_BillFacePlayer1:: + applymovement LOCALID_CINNABAR_BILL, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +CinnabarIsland_EventScript_BillFacePlayer2:: + applymovement LOCALID_CINNABAR_BILL, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +CinnabarIsland_EventScript_BillApproachPlayer1:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillApproachPlayer1 + waitmovement 0 + return + +CinnabarIsland_EventScript_BillApproachPlayer2:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillApproachPlayer2 + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + return + +CinnabarIsland_EventScript_AgreeSailToOneIsland:: + msgbox CinnabarIsland_Text_AllRightLetsGo + closemessage + call CinnabarIsland_EventScript_SailToOneIsland + releaseall + end + +CinnabarIsland_EventScript_DeclineSailToOneIsland:: + msgbox CinnabarIsland_Text_IllBeWaitingInPokeCenter + closemessage + call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillExitToPokeCenter + call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillReturnToPokeCenter + removeobject LOCALID_CINNABAR_BILL + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 2 + clearflag FLAG_HIDE_CINNABAR_POKECENTER_BILL + releaseall + end + +CinnabarIsland_EventScript_BillExitToPokeCenter:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillExitToPokeCenter + waitmovement 0 + return + +CinnabarIsland_Movement_BillExitToPokeCenter:: + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +CinnabarIsland_EventScript_BillReturnToPokeCenter:: + applymovement LOCALID_PLAYER, CinnabarIsland_Movement_PlayerWatchBillExit + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillApproachDoor + waitmovement 0 + opendoor 14, 11 + waitdooranim + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillReEnterPokeCenter + waitmovement 0 + closedoor 14, 11 + waitdooranim + return + +CinnabarIsland_Movement_PlayerWatchBillExit:: + walk_left + walk_in_place_faster_right + step_end + +CinnabarIsland_Movement_BillApproachDoor:: + delay_16 + walk_left + walk_in_place_faster_up + step_end + +CinnabarIsland_Movement_BillReEnterPokeCenter:: + walk_up + delay_4 + set_invisible + step_end + +@ Can be triggered outside, or after talking to Bill in the poke center +CinnabarIsland_EventScript_SailToOneIsland:: + call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_ApproachShore + addobject LOCALID_CINNABAR_SEAGALLOP + call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BoatArrive + call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BoatArriveExitedPokeCenter + msgbox CinnabarIsland_Text_MyPalsBoatArrived + closemessage + call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BoardBoat + call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BoardBoatExitedPokeCenter + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 2 + removeobject LOCALID_CINNABAR_BILL + delay 40 + setflag FLAG_HIDE_CINNABAR_SEAGALLOP + setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1 + setvar VAR_0x8004, SEAGALLOP_CINNABAR_ISLAND + setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND + goto EventScript_SetSail + end + +CinnabarIsland_EventScript_ApproachShore:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_ApproachShore + applymovement LOCALID_PLAYER, CinnabarIsland_Movement_ApproachShore + waitmovement 0 + return + +CinnabarIsland_EventScript_BoatArrive:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillFaceBoat + applymovement LOCALID_CINNABAR_SEAGALLOP, CinnabarIsland_Movement_BoatArrive + waitmovement 0 + return + +CinnabarIsland_EventScript_BoatArriveExitedPokeCenter:: + applymovement LOCALID_CINNABAR_SEAGALLOP, CinnabarIsland_Movement_BoatArrive + waitmovement 0 + return + +CinnabarIsland_EventScript_BoardBoat:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillBoardBoat + applymovement LOCALID_PLAYER, CinnabarIsland_Movement_PlayerBoardBoat + waitmovement 0 + return + +CinnabarIsland_EventScript_BoardBoatExitedPokeCenter:: + applymovement LOCALID_CINNABAR_BILL, CinnabarIsland_Movement_BillBoardBoatFromShore + applymovement LOCALID_PLAYER, CinnabarIsland_Movement_PlayerBoardBoatFromShore + waitmovement 0 + return + +CinnabarIsland_Movement_BoatArrive:: + delay_16 + delay_16 + walk_fast_left + walk_fast_left + walk_left + walk_slow_left + walk_slow_left + step_end + +CinnabarIsland_Movement_BillBoardBoat:: + walk_right + walk_down + walk_down + walk_right + delay_4 + set_invisible + step_end + +CinnabarIsland_Movement_BillApproachPlayer1:: + walk_up + step_end + +CinnabarIsland_Movement_BillApproachPlayer2:: + walk_left + walk_left + walk_left + step_end + +CinnabarIsland_Movement_BillFaceBoat:: + delay_16 + delay_16 + delay_8 + walk_in_place_faster_right + step_end + +CinnabarIsland_Movement_ApproachShore:: + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + step_end + +CinnabarIsland_Movement_BillBoardBoatFromShore:: + walk_right + delay_4 + set_invisible + step_end + +CinnabarIsland_Movement_PlayerBoardBoat:: + walk_down + walk_right + walk_down + walk_down + walk_in_place_faster_right + delay_4 + walk_right + delay_4 + set_invisible + step_end + +CinnabarIsland_Movement_PlayerBoardBoatFromShore:: + walk_right + delay_4 + walk_right + delay_4 + set_invisible + step_end + +@ Triggered when VAR_TEMP_1 is 0 +CinnabarIsland_EventScript_GymDoorLocked:: + lockall + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + delay 20 + msgbox CinnabarIsland_Text_DoorIsLocked + closemessage + applymovement LOCALID_PLAYER, CinnabarIsland_Movement_ForcePlayerFromDoor + waitmovement 0 + releaseall + end + +CinnabarIsland_Movement_ForcePlayerFromDoor:: + walk_down + step_end + +CinnabarIsland_EventScript_Woman:: + lock + faceplayer + famechecker FAMECHECKER_BLAINE, 3 + msgbox CinnabarIsland_Text_BlaineLivedHereSinceBeforeLab + release + end + +CinnabarIsland_EventScript_OldMan:: + msgbox CinnabarIsland_Text_ScientistsExperimentInMansion, MSGBOX_NPC + end + +CinnabarIsland_EventScript_IslandSign:: + msgbox CinnabarIsland_Text_IslandSign, MSGBOX_SIGN + end + +CinnabarIsland_EventScript_PokemonLabSign:: + msgbox CinnabarIsland_Text_PokemonLab, MSGBOX_SIGN + end + +CinnabarIsland_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_BLAINE, 0 + msgbox CinnabarIsland_Text_GymSign + releaseall + end + +CinnabarIsland_Text_DoorIsLocked:: + .string "The door is locked…$" + +CinnabarIsland_Text_BlaineLivedHereSinceBeforeLab:: + .string "CINNABAR GYM's BLAINE is quite the\n" + .string "odd fellow.\p" + .string "He's lived on the island since way\n" + .string "before the LAB was built.$" + +CinnabarIsland_Text_ScientistsExperimentInMansion:: + .string "Scientists conduct experiments \n" + .string "in the burned-out building.\p" + .string "You know, the one they call the\n" + .string "POKéMON MANSION.$" + +CinnabarIsland_Text_IslandSign:: + .string "CINNABAR ISLAND\n" + .string "The Fiery Town of Burning Desire$" + +CinnabarIsland_Text_PokemonLab:: + .string "POKéMON LAB$" + +CinnabarIsland_Text_GymSign:: + .string "CINNABAR ISLAND POKéMON GYM\n" + .string "LEADER: BLAINE\l" + .string "The Hotheaded Quiz Master!$" + +CinnabarIsland_Text_HeyIfItIsntPlayer:: + .string "Huh?\n" + .string "Hey, if it isn't {PLAYER}!$" + +CinnabarIsland_Text_ComeWithMeToOneIsland:: + .string "Look, it's me, BILL.\n" + .string "Long time no see!\p" + .string "I hope you're still using my\n" + .string "PC system.\p" + .string "Well, listen, since we met up here,\n" + .string "how about spending time with me?\p" + .string "There's this little island in the far\n" + .string "south called ONE ISLAND.\p" + .string "A friend invited me, so I'm on my\n" + .string "way out there.\p" + .string "How about it?\n" + .string "Do you feel like coming with me?$" + +CinnabarIsland_Text_AllRightLetsGo:: + .string "All right, then.\n" + .string "Let's go!$" + +CinnabarIsland_Text_IllBeWaitingInPokeCenter:: + .string "What, are you too busy?\p" + .string "Well, all right.\n" + .string "The boat hasn't arrived yet anyway.\p" + .string "I'll be waiting at the POKéMON\n" + .string "CENTER over there.\p" + .string "Come see me when you're done with\n" + .string "your business here.$" + +CinnabarIsland_Text_MyPalsBoatArrived:: + .string "Looks like my pal's boat arrived,\n" + .string "too.\p" + .string "He sent it specially here to\n" + .string "CINNABAR to pick me up.$" + +CinnabarIsland_Text_IfYouHaveTriPassYouCanGoAgain:: + .string "Hey, wasn't that a long cruise?\p" + .string "My buddy CELIO seemed to enjoy\n" + .string "your company.\p" + .string "I'm sure he'd welcome you if you\n" + .string "were to visit him again.\p" + .string "If you have a TRI-PASS, you can\n" + .string "always take a ferry there from\l" + .string "VERMILION PORT.\p" + .string "All right, thanks for your company!$" + diff --git a/data/maps/CinnabarIsland_Gym_Frlg/map.json b/data/maps/CinnabarIsland_Gym_Frlg/map.json new file mode 100644 index 000000000000..3406df404529 --- /dev/null +++ b/data/maps/CinnabarIsland_Gym_Frlg/map.json @@ -0,0 +1,298 @@ +{ + "id": "MAP_CINNABAR_ISLAND_GYM", + "name": "CinnabarIsland_Gym_Frlg", + "layout": "LAYOUT_CINNABAR_ISLAND_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_QUINN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 25, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Quinn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 25, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Erik", + "flag": "0" + }, + { + "local_id": "LOCALID_AVERY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 17, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Avery", + "flag": "0" + }, + { + "local_id": "LOCALID_RAMON", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 16, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Ramon", + "flag": "0" + }, + { + "local_id": "LOCALID_DEREK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 16, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Derek", + "flag": "0" + }, + { + "local_id": "LOCALID_DUSTY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 4, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Dusty", + "flag": "0" + }, + { + "local_id": "LOCALID_ZAC", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 4, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Zac", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLAINE", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_Blaine", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 24, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Gym_EventScript_GymGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 24, + "y": 23, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 23, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "1" + }, + { + "x": 26, + "y": 23, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 23, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 27, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 22, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quz1Left" + }, + { + "type": "sign", + "x": 23, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quz1Right" + }, + { + "type": "sign", + "x": 15, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz2Left" + }, + { + "type": "sign", + "x": 16, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz2Right" + }, + { + "type": "sign", + "x": 13, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz3Left" + }, + { + "type": "sign", + "x": 14, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz3Right" + }, + { + "type": "sign", + "x": 13, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz4Left" + }, + { + "type": "sign", + "x": 14, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz4Right" + }, + { + "type": "sign", + "x": 1, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz5Left" + }, + { + "type": "sign", + "x": 2, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz5Right" + }, + { + "type": "sign", + "x": 1, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz6Left" + }, + { + "type": "sign", + "x": 2, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_Quiz6Right" + }, + { + "type": "sign", + "x": 3, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "CinnabarIsland_Gym_EventScript_BlaineFujiPhoto" + } + ] +} diff --git a/data/maps/CinnabarIsland_Gym_Frlg/scripts.inc b/data/maps/CinnabarIsland_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..e92c2abca827 --- /dev/null +++ b/data/maps/CinnabarIsland_Gym_Frlg/scripts.inc @@ -0,0 +1,901 @@ +CinnabarIsland_Gym_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, CinnabarIsland_Gym_OnLoad + .byte 0 + +CinnabarIsland_Gym_OnLoad:: + goto_if_set FLAG_DEFEATED_BLAINE, CinnabarIsland_Gym_OnLoadOpenAllDoors + call_if_set FLAG_CINNABAR_GYM_QUIZ_1, CinnabarIsland_Gym_OnLoadOpenDoor1 + call_if_set FLAG_CINNABAR_GYM_QUIZ_2, CinnabarIsland_Gym_OnLoadOpenDoor2 + call_if_set FLAG_CINNABAR_GYM_QUIZ_3, CinnabarIsland_Gym_OnLoadOpenDoor3 + call_if_set FLAG_CINNABAR_GYM_QUIZ_4, CinnabarIsland_Gym_OnLoadOpenDoor4 + call_if_set FLAG_CINNABAR_GYM_QUIZ_5, CinnabarIsland_Gym_OnLoadOpenDoor5 + call_if_set FLAG_CINNABAR_GYM_QUIZ_6, CinnabarIsland_Gym_OnLoadOpenDoor6 + end + +CinnabarIsland_Gym_OnLoadOpenAllDoors:: + call CinnabarIsland_Gym_EventScript_OpenDoor1 + call CinnabarIsland_Gym_EventScript_OpenDoor2 + call CinnabarIsland_Gym_EventScript_OpenDoor3 + call CinnabarIsland_Gym_EventScript_OpenDoor4 + call CinnabarIsland_Gym_EventScript_OpenDoor5 + call CinnabarIsland_Gym_EventScript_OpenDoor6 + end + +CinnabarIsland_Gym_OnLoadOpenDoor1:: + call CinnabarIsland_Gym_EventScript_OpenDoor1 + return + +CinnabarIsland_Gym_OnLoadOpenDoor2:: + call CinnabarIsland_Gym_EventScript_OpenDoor2 + return + +CinnabarIsland_Gym_OnLoadOpenDoor3:: + call CinnabarIsland_Gym_EventScript_OpenDoor3 + return + +CinnabarIsland_Gym_OnLoadOpenDoor4:: + call CinnabarIsland_Gym_EventScript_OpenDoor4 + return + +CinnabarIsland_Gym_OnLoadOpenDoor5:: + call CinnabarIsland_Gym_EventScript_OpenDoor5 + return + +CinnabarIsland_Gym_OnLoadOpenDoor6:: + call CinnabarIsland_Gym_EventScript_OpenDoor6 + return + +CinnabarIsland_Gym_EventScript_Blaine:: + famechecker FAMECHECKER_BLAINE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_BLAINE, CinnabarIsland_Gym_Text_BlaineIntro, CinnabarIsland_Gym_Text_BlaineDefeat, CinnabarIsland_Gym_EventScript_DefeatedBlaine, NO_MUSIC + goto_if_unset FLAG_GOT_TM38_FROM_BLAINE, CinnabarIsland_Gym_EventScript_GiveTM38 + msgbox CinnabarIsland_Gym_Text_BlainePostBattle + release + end + +CinnabarIsland_Gym_EventScript_DefeatedBlaine:: + famechecker FAMECHECKER_BLAINE, 1 + setflag FLAG_DEFEATED_BLAINE + setflag FLAG_BADGE07_GET + setrespawn HEAL_LOCATION_CINNABAR_ISLAND + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 1 + clearflag FLAG_HIDE_CINNABAR_BILL + set_gym_trainers_frlg 7 + goto CinnabarIsland_Gym_EventScript_GiveTM38 + end + +CinnabarIsland_Gym_EventScript_GiveTM38:: + msgbox CinnabarIsland_Gym_Text_ExplainVolcanoBadge + checkitemspace ITEM_TM38 + goto_if_eq VAR_RESULT, FALSE, CinnabarIsland_Gym_EventScript_NoRoomForTM38 + giveitem_msg CinnabarIsland_Gym_Text_ReceivedTM38FromBlaine, ITEM_TM38 + setflag FLAG_GOT_TM38_FROM_BLAINE + msgbox CinnabarIsland_Gym_Text_FireBlastIsUltimateFireMove + release + end + +CinnabarIsland_Gym_EventScript_NoRoomForTM38:: + msgbox CinnabarIsland_Gym_Text_MakeSpaceForThis + release + end + +CinnabarIsland_Gym_EventScript_Erik:: + trainerbattle_single TRAINER_SUPER_NERD_ERIK, CinnabarIsland_Gym_Text_ErikIntro, CinnabarIsland_Gym_Text_ErikDefeat + msgbox CinnabarIsland_Gym_Text_ErikPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_Avery:: + trainerbattle_single TRAINER_SUPER_NERD_AVERY, CinnabarIsland_Gym_Text_AveryIntro, CinnabarIsland_Gym_Text_AveryDefeat, CinnabarIsland_Gym_EventScript_DefeatedAvery + msgbox CinnabarIsland_Gym_Text_AveryPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_DefeatedAvery:: + call_if_unset FLAG_CINNABAR_GYM_QUIZ_2, CinnabarIsland_Gym_EventScript_Quiz2CompleteTrainer + release + end + +CinnabarIsland_Gym_EventScript_Quiz2CompleteTrainer:: + call CinnabarIsland_Gym_EventScript_Quiz2Complete + return + +CinnabarIsland_Gym_EventScript_Derek:: + trainerbattle_single TRAINER_SUPER_NERD_DEREK, CinnabarIsland_Gym_Text_DerekIntro, CinnabarIsland_Gym_Text_DerekDefeat, CinnabarIsland_Gym_EventScript_DefeatedDerek + famechecker FAMECHECKER_BLAINE, 2 + msgbox CinnabarIsland_Gym_Text_DerekPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_DefeatedDerek:: + call_if_unset FLAG_CINNABAR_GYM_QUIZ_4, CinnabarIsland_Gym_EventScript_Quiz4CompleteTrainer + release + end + +CinnabarIsland_Gym_EventScript_Quiz4CompleteTrainer:: + call CinnabarIsland_Gym_EventScript_Quiz4Complete + return + +CinnabarIsland_Gym_EventScript_Zac:: + trainerbattle_single TRAINER_SUPER_NERD_ZAC, CinnabarIsland_Gym_Text_ZacIntro, CinnabarIsland_Gym_Text_ZacDefeat, CinnabarIsland_Gym_EventScript_DefeatedZac + msgbox CinnabarIsland_Gym_Text_ZacPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_DefeatedZac:: + call_if_unset FLAG_CINNABAR_GYM_QUIZ_6, CinnabarIsland_Gym_EventScript_Quiz6CompleteTrainer + release + end + +CinnabarIsland_Gym_EventScript_Quiz6CompleteTrainer:: + call CinnabarIsland_Gym_EventScript_Quiz6Complete + return + +CinnabarIsland_Gym_EventScript_Quinn:: + trainerbattle_single TRAINER_BURGLAR_QUINN, CinnabarIsland_Gym_Text_QuinnIntro, CinnabarIsland_Gym_Text_QuinnDefeat, CinnabarIsland_Gym_EventScript_DefeatedQuinn + msgbox CinnabarIsland_Gym_Text_QuinnPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_DefeatedQuinn:: + call_if_unset FLAG_CINNABAR_GYM_QUIZ_1, CinnabarIsland_Gym_EventScript_Quiz1CompleteTrainer + release + end + +CinnabarIsland_Gym_EventScript_Quiz1CompleteTrainer:: + call CinnabarIsland_Gym_EventScript_Quiz1Complete + return + +CinnabarIsland_Gym_EventScript_Ramon:: + trainerbattle_single TRAINER_BURGLAR_RAMON, CinnabarIsland_Gym_Text_RamonIntro, CinnabarIsland_Gym_Text_RamonDefeat, CinnabarIsland_Gym_EventScript_DefeatedRamon + msgbox CinnabarIsland_Gym_Text_RamonPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_DefeatedRamon:: + call_if_unset FLAG_CINNABAR_GYM_QUIZ_3, CinnabarIsland_Gym_EventScript_Quiz3CompleteTrainer + release + end + +CinnabarIsland_Gym_EventScript_Quiz3CompleteTrainer:: + call CinnabarIsland_Gym_EventScript_Quiz3Complete + return + +CinnabarIsland_Gym_EventScript_Dusty:: + trainerbattle_single TRAINER_BURGLAR_DUSTY, CinnabarIsland_Gym_Text_DustyIntro, CinnabarIsland_Gym_Text_DustyDefeat, CinnabarIsland_Gym_EventScript_DefeatedDusty + msgbox CinnabarIsland_Gym_Text_DustyPostBattle, MSGBOX_AUTOCLOSE + end + +CinnabarIsland_Gym_EventScript_DefeatedDusty:: + call_if_unset FLAG_CINNABAR_GYM_QUIZ_5, CinnabarIsland_Gym_EventScript_Quiz5CompleteTrainer + release + end + +CinnabarIsland_Gym_EventScript_Quiz5CompleteTrainer:: + call CinnabarIsland_Gym_EventScript_Quiz5Complete + return + +CinnabarIsland_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_BLAINE, CinnabarIsland_Gym_EventScript_GymGuyPostVictory + msgbox CinnabarIsland_Gym_Text_GymGuyAdvice + release + end + +CinnabarIsland_Gym_EventScript_GymGuyPostVictory:: + msgbox CinnabarIsland_Gym_Text_GymGuyPostVictory + release + end + +CinnabarIsland_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE07_GET, CinnabarIsland_Gym_EventScript_GymStatuePostVictory + msgbox CinnabarIsland_Gym_Text_GymStatue + releaseall + end + +CinnabarIsland_Gym_EventScript_GymStatuePostVictory:: + msgbox CinnabarIsland_Gym_Text_GymStatuePlayerWon + releaseall + end + +CinnabarIsland_Gym_EventScript_Quz1Left:: + lockall + setvar VAR_TEMP_1, 0 + goto CinnabarIsland_Gym_EventScript_Quiz1 + end + +CinnabarIsland_Gym_EventScript_Quz1Right:: + lockall + setvar VAR_TEMP_1, 1 + goto CinnabarIsland_Gym_EventScript_Quiz1 + end + +CinnabarIsland_Gym_EventScript_Quiz1:: + msgbox CinnabarIsland_Gym_Text_PokemonQuizRules + msgbox CinnabarIsland_Gym_Text_QuizQuestion1, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_Gym_EventScript_Quiz1Correct + goto_if_eq VAR_RESULT, NO, CinnabarIsland_Gym_EventScript_Quiz1Incorrect + end + +CinnabarIsland_Gym_EventScript_CorrectAnswer:: + playfanfare MUS_LEVEL_UP + waitfanfare + msgbox CinnabarIsland_Gym_Text_CorrectGoOnThrough + return + +CinnabarIsland_Gym_EventScript_IncorrectAnswer:: + waitse + playse SE_BOO + waitse + msgbox CinnabarIsland_Gym_Text_SorryBadCall + closemessage + return + +CinnabarIsland_Gym_EventScript_Quiz1Correct:: + call CinnabarIsland_Gym_EventScript_CorrectAnswer + goto_if_set FLAG_CINNABAR_GYM_QUIZ_1, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz1Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz1Complete:: + playse SE_UNLOCK + waitse + call CinnabarIsland_Gym_EventScript_OpenDoor1 + special DrawWholeMapView + setflag FLAG_CINNABAR_GYM_QUIZ_1 + return + +CinnabarIsland_Gym_EventScript_DoorAlreadyOpen:: + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz1Incorrect:: + call CinnabarIsland_Gym_EventScript_IncorrectAnswer + goto_if_not_defeated TRAINER_BURGLAR_QUINN, CinnabarIsland_Gym_EventScript_BattleQuinn + releaseall + end + +CinnabarIsland_Gym_EventScript_BattleQuinn:: + call_if_eq VAR_TEMP_1, 0, CinnabarIsland_Gym_EventScript_QuinnApproachLeft + call_if_eq VAR_TEMP_1, 1, CinnabarIsland_Gym_EventScript_QuinnApproachRight + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Gym_Text_QuinnIntro + trainerbattle_no_intro TRAINER_BURGLAR_QUINN, CinnabarIsland_Gym_Text_QuinnDefeat + goto_if_set FLAG_CINNABAR_GYM_QUIZ_1, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz1Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_QuinnApproachLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachLeft + waitmovement 0 + return + +CinnabarIsland_Gym_EventScript_QuinnApproachRight:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachRight + waitmovement 0 + return + +CinnabarIsland_Gym_Movement_QuinnApproachLeft:: + walk_left + walk_left + step_end + +CinnabarIsland_Gym_Movement_QuinnApproachRight:: + walk_left + step_end + +CinnabarIsland_Gym_EventScript_Quiz2Left:: + lockall + setvar VAR_TEMP_1, 0 + goto CinnabarIsland_Gym_EventScript_Quiz2 + end + +CinnabarIsland_Gym_EventScript_Quiz2Right:: + lockall + setvar VAR_TEMP_1, 1 + goto CinnabarIsland_Gym_EventScript_Quiz2 + end + +CinnabarIsland_Gym_EventScript_Quiz2:: + msgbox CinnabarIsland_Gym_Text_PokemonQuizRules + msgbox CinnabarIsland_Gym_Text_QuizQuestion2, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_Gym_EventScript_Quiz2Incorrect + goto_if_eq VAR_RESULT, NO, CinnabarIsland_Gym_EventScript_Quiz2Correct + end + +CinnabarIsland_Gym_EventScript_Quiz2Correct:: + call CinnabarIsland_Gym_EventScript_CorrectAnswer + goto_if_set FLAG_CINNABAR_GYM_QUIZ_2, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz2Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz2Complete:: + playse SE_UNLOCK + waitse + call CinnabarIsland_Gym_EventScript_OpenDoor2 + special DrawWholeMapView + setflag FLAG_CINNABAR_GYM_QUIZ_2 + return + +CinnabarIsland_Gym_EventScript_Quiz2Incorrect:: + call CinnabarIsland_Gym_EventScript_IncorrectAnswer + goto_if_not_defeated TRAINER_SUPER_NERD_AVERY, CinnabarIsland_Gym_EventScript_BattleAvery + releaseall + end + +CinnabarIsland_Gym_EventScript_BattleAvery:: + call_if_eq VAR_TEMP_1, 0, CinnabarIsland_Gym_EventScript_AveryApproachLeft + call_if_eq VAR_TEMP_1, 1, CinnabarIsland_Gym_EventScript_AveryApproachRight + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Gym_Text_AveryIntro + trainerbattle_no_intro TRAINER_SUPER_NERD_AVERY, CinnabarIsland_Gym_Text_AveryDefeat + goto_if_set FLAG_CINNABAR_GYM_QUIZ_2, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz2Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_AveryApproachLeft:: + applymovement LOCALID_PLAYER, CinnabarIsland_Gym_Movement_PlayerFaceAvery + applymovement LOCALID_AVERY, CinnabarIsland_Gym_Movement_AveryApproachLeft + waitmovement 0 + return + +CinnabarIsland_Gym_EventScript_AveryApproachRight:: + applymovement LOCALID_PLAYER, CinnabarIsland_Gym_Movement_PlayerFaceAvery + applymovement LOCALID_AVERY, CinnabarIsland_Gym_Movement_AveryApproachRight + waitmovement 0 + return + +CinnabarIsland_Gym_Movement_AveryApproachLeft:: + walk_up + walk_up + walk_left + step_end + +CinnabarIsland_Gym_Movement_AveryApproachRight:: + walk_up + walk_up + walk_in_place_faster_left + step_end + +CinnabarIsland_Gym_Movement_PlayerFaceAvery:: + delay_16 + delay_16 + walk_in_place_faster_right + step_end + +CinnabarIsland_Gym_EventScript_Quiz3Left:: + lockall + setvar VAR_TEMP_1, 0 + goto CinnabarIsland_Gym_EventScript_Quiz3 + end + +CinnabarIsland_Gym_EventScript_Quiz3Right:: + lockall + setvar VAR_TEMP_1, 1 + goto CinnabarIsland_Gym_EventScript_Quiz3 + end + +CinnabarIsland_Gym_EventScript_Quiz3:: + msgbox CinnabarIsland_Gym_Text_PokemonQuizRules + msgbox CinnabarIsland_Gym_Text_QuizQuestion3, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_Gym_EventScript_Quiz3Incorrect + goto_if_eq VAR_RESULT, NO, CinnabarIsland_Gym_EventScript_Quiz3Correct + end + +CinnabarIsland_Gym_EventScript_Quiz3Correct:: + call CinnabarIsland_Gym_EventScript_CorrectAnswer + goto_if_set FLAG_CINNABAR_GYM_QUIZ_3, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz3Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz3Complete:: + playse SE_UNLOCK + waitse + call CinnabarIsland_Gym_EventScript_OpenDoor3 + special DrawWholeMapView + setflag FLAG_CINNABAR_GYM_QUIZ_3 + return + +CinnabarIsland_Gym_EventScript_Quiz3Incorrect:: + call CinnabarIsland_Gym_EventScript_IncorrectAnswer + goto_if_not_defeated TRAINER_BURGLAR_RAMON, CinnabarIsland_Gym_EventScript_BattleRamon + releaseall + end + +CinnabarIsland_Gym_EventScript_BattleRamon:: + call_if_eq VAR_TEMP_1, 0, CinnabarIsland_Gym_EventScript_RamonApproachLeft + call_if_eq VAR_TEMP_1, 1, CinnabarIsland_Gym_EventScript_RamonApproachRight + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Gym_Text_RamonIntro + trainerbattle_no_intro TRAINER_BURGLAR_RAMON, CinnabarIsland_Gym_Text_RamonDefeat + goto_if_set FLAG_CINNABAR_GYM_QUIZ_3, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz3Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_RamonApproachLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachLeft + waitmovement 0 + return + +CinnabarIsland_Gym_EventScript_RamonApproachRight:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachRight + waitmovement 0 + return + +CinnabarIsland_Gym_Movement_RamonApproachLeft:: + walk_left + walk_left + step_end + +CinnabarIsland_Gym_Movement_RamonApproachRight:: + walk_left + step_end + +CinnabarIsland_Gym_EventScript_Quiz4Left:: + lockall + setvar VAR_TEMP_1, 0 + goto CinnabarIsland_Gym_EventScript_Quiz4 + end + +CinnabarIsland_Gym_EventScript_Quiz4Right:: + lockall + setvar VAR_TEMP_1, 1 + goto CinnabarIsland_Gym_EventScript_Quiz4 + end + +CinnabarIsland_Gym_EventScript_Quiz4:: + msgbox CinnabarIsland_Gym_Text_PokemonQuizRules + msgbox CinnabarIsland_Gym_Text_QuizQuestion4, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_Gym_EventScript_Quiz4Incorrect + goto_if_eq VAR_RESULT, NO, CinnabarIsland_Gym_EventScript_Quiz4Correct + end + +CinnabarIsland_Gym_EventScript_Quiz4Correct:: + call CinnabarIsland_Gym_EventScript_CorrectAnswer + goto_if_set FLAG_CINNABAR_GYM_QUIZ_4, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz4Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz4Complete:: + playse SE_UNLOCK + waitse + call CinnabarIsland_Gym_EventScript_OpenDoor4 + special DrawWholeMapView + setflag FLAG_CINNABAR_GYM_QUIZ_4 + return + +CinnabarIsland_Gym_EventScript_Quiz4Incorrect:: + call CinnabarIsland_Gym_EventScript_IncorrectAnswer + goto_if_not_defeated TRAINER_SUPER_NERD_DEREK, CinnabarIsland_Gym_EventScript_BattleDerek + releaseall + end + +CinnabarIsland_Gym_EventScript_BattleDerek:: + call_if_eq VAR_TEMP_1, 0, CinnabarIsland_Gym_EventScript_DerekApproachLeft + call_if_eq VAR_TEMP_1, 1, CinnabarIsland_Gym_EventScript_DerekApproachRight + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Gym_Text_DerekIntro + trainerbattle_no_intro TRAINER_SUPER_NERD_DEREK, CinnabarIsland_Gym_Text_DerekDefeat + goto_if_set FLAG_CINNABAR_GYM_QUIZ_4, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz4Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_DerekApproachLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachLeft + waitmovement 0 + return + +CinnabarIsland_Gym_EventScript_DerekApproachRight:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachRight + waitmovement 0 + return + +CinnabarIsland_Gym_Movement_DerekApproachLeft:: + walk_left + walk_left + step_end + +CinnabarIsland_Gym_Movement_DerekApproachRight:: + walk_left + step_end + +CinnabarIsland_Gym_EventScript_Quiz5Left:: + lockall + setvar VAR_TEMP_1, 0 + goto CinnabarIsland_Gym_EventScript_Quiz5 + end + +CinnabarIsland_Gym_EventScript_Quiz5Right:: + lockall + setvar VAR_TEMP_1, 1 + goto CinnabarIsland_Gym_EventScript_Quiz5 + end + +CinnabarIsland_Gym_EventScript_Quiz5:: + msgbox CinnabarIsland_Gym_Text_PokemonQuizRules + msgbox CinnabarIsland_Gym_Text_QuizQuestion5, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_Gym_EventScript_Quiz5Correct + goto_if_eq VAR_RESULT, NO, CinnabarIsland_Gym_EventScript_Quiz5Incorrect + end + +CinnabarIsland_Gym_EventScript_Quiz5Correct:: + call CinnabarIsland_Gym_EventScript_CorrectAnswer + goto_if_set FLAG_CINNABAR_GYM_QUIZ_5, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz5Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz5Complete:: + playse SE_UNLOCK + waitse + call CinnabarIsland_Gym_EventScript_OpenDoor5 + special DrawWholeMapView + setflag FLAG_CINNABAR_GYM_QUIZ_5 + return + +CinnabarIsland_Gym_EventScript_Quiz5Incorrect:: + call CinnabarIsland_Gym_EventScript_IncorrectAnswer + goto_if_not_defeated TRAINER_BURGLAR_DUSTY, CinnabarIsland_Gym_EventScript_BattleDusty + releaseall + end + +CinnabarIsland_Gym_EventScript_BattleDusty:: + call_if_eq VAR_TEMP_1, 0, CinnabarIsland_Gym_EventScript_DustyApproachLeft + call_if_eq VAR_TEMP_1, 1, CinnabarIsland_Gym_EventScript_DustyApproachRight + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Gym_Text_DustyIntro + trainerbattle_no_intro TRAINER_BURGLAR_DUSTY, CinnabarIsland_Gym_Text_DustyDefeat + goto_if_set FLAG_CINNABAR_GYM_QUIZ_5, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz5Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_DustyApproachLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachLeft + waitmovement 0 + return + +CinnabarIsland_Gym_EventScript_DustyApproachRight:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachRight + waitmovement 0 + return + +CinnabarIsland_Gym_Movement_DustyApproachLeft:: + walk_left + walk_left + step_end + +CinnabarIsland_Gym_Movement_DustyApproachRight:: + walk_left + step_end + +CinnabarIsland_Gym_EventScript_Quiz6Left:: + lockall + setvar VAR_TEMP_1, 0 + goto CinnabarIsland_Gym_EventScript_Quiz6 + end + +CinnabarIsland_Gym_EventScript_Quiz6Right:: + lockall + setvar VAR_TEMP_1, 1 + goto CinnabarIsland_Gym_EventScript_Quiz6 + end + +CinnabarIsland_Gym_EventScript_Quiz6:: + msgbox CinnabarIsland_Gym_Text_PokemonQuizRules + msgbox CinnabarIsland_Gym_Text_QuizQuestion6, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, CinnabarIsland_Gym_EventScript_Quiz6Incorrect + goto_if_eq VAR_RESULT, NO, CinnabarIsland_Gym_EventScript_Quiz6Correct + end + +CinnabarIsland_Gym_EventScript_Quiz6Correct:: + call CinnabarIsland_Gym_EventScript_CorrectAnswer + goto_if_set FLAG_CINNABAR_GYM_QUIZ_6, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz6Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_Quiz6Complete:: + playse SE_UNLOCK + waitse + call CinnabarIsland_Gym_EventScript_OpenDoor6 + special DrawWholeMapView + setflag FLAG_CINNABAR_GYM_QUIZ_6 + return + +CinnabarIsland_Gym_EventScript_Quiz6Incorrect:: + call CinnabarIsland_Gym_EventScript_IncorrectAnswer + goto_if_not_defeated TRAINER_SUPER_NERD_ZAC, CinnabarIsland_Gym_EventScript_BattleZac + releaseall + end + +CinnabarIsland_Gym_EventScript_BattleZac:: + call_if_eq VAR_TEMP_1, 0, CinnabarIsland_Gym_EventScript_ZacApproachLeft + call_if_eq VAR_TEMP_1, 1, CinnabarIsland_Gym_EventScript_ZacApproachRight + textcolor NPC_TEXT_COLOR_MALE + msgbox CinnabarIsland_Gym_Text_ZacIntro + trainerbattle_no_intro TRAINER_SUPER_NERD_ZAC, CinnabarIsland_Gym_Text_ZacDefeat + goto_if_set FLAG_CINNABAR_GYM_QUIZ_6, CinnabarIsland_Gym_EventScript_DoorAlreadyOpen + call CinnabarIsland_Gym_EventScript_Quiz6Complete + releaseall + end + +CinnabarIsland_Gym_EventScript_ZacApproachLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachLeft + waitmovement 0 + return + +CinnabarIsland_Gym_EventScript_ZacApproachRight:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachRight + waitmovement 0 + return + +CinnabarIsland_Gym_Movement_ZacApproachLeft:: + walk_left + walk_left + step_end + +CinnabarIsland_Gym_Movement_ZacApproachRight:: + walk_left + step_end + +CinnabarIsland_Gym_EventScript_OpenDoor1:: + setmetatile 26, 8, METATILE_CinnabarGym_Floor_WallLeftCorner, 0 + setmetatile 27, 8, METATILE_CinnabarGym_Floor_WallRightCorner, 0 + setmetatile 26, 9, METATILE_CinnabarGym_Floor_WallLeftEdge, 0 + setmetatile 27, 9, METATILE_CinnabarGym_Floor_WallRightEdge, 0 + setmetatile 26, 10, METATILE_CinnabarGym_Floor_ShadeFull, 0 + setmetatile 27, 10, METATILE_CinnabarGym_Floor, 0 + setmetatile 28, 10, METATILE_CinnabarGym_Floor_ShadeDiagonal, 0 + return + +CinnabarIsland_Gym_EventScript_OpenDoor2:: + setmetatile 17, 8, METATILE_CinnabarGym_Floor_WallLeftCorner, 0 + setmetatile 18, 8, METATILE_CinnabarGym_Floor_WallRightCorner, 0 + setmetatile 17, 9, METATILE_CinnabarGym_Floor_WallLeftEdge, 0 + setmetatile 18, 9, METATILE_CinnabarGym_Floor_WallRightEdge, 0 + setmetatile 17, 10, METATILE_CinnabarGym_Floor_ShadeFull, 0 + setmetatile 18, 10, METATILE_CinnabarGym_Floor, 0 + setmetatile 19, 10, METATILE_CinnabarGym_Floor_ShadeDiagonal, 0 + return + +CinnabarIsland_Gym_EventScript_OpenDoor3:: + setmetatile 17, 15, METATILE_CinnabarGym_Floor_WallLeftCorner, 0 + setmetatile 18, 15, METATILE_CinnabarGym_Floor_WallRightCorner, 0 + setmetatile 17, 16, METATILE_CinnabarGym_Floor_WallLeftEdge, 0 + setmetatile 18, 16, METATILE_CinnabarGym_Floor_WallRightEdge, 0 + setmetatile 17, 17, METATILE_CinnabarGym_Floor_ShadeFull, 0 + setmetatile 18, 17, METATILE_CinnabarGym_Floor, 0 + setmetatile 19, 17, METATILE_CinnabarGym_Floor_ShadeDiagonal, 0 + return + +CinnabarIsland_Gym_EventScript_OpenDoor4:: + setmetatile 11, 21, METATILE_CinnabarGym_Wall_RetractedBarrier, 1 + setmetatile 11, 22, METATILE_CinnabarGym_Floor_ShadeFull, 0 + setmetatile 11, 23, METATILE_CinnabarGym_Floor, 0 + return + +CinnabarIsland_Gym_EventScript_OpenDoor5:: + setmetatile 5, 16, METATILE_CinnabarGym_Floor_WallLeftCorner, 0 + setmetatile 6, 16, METATILE_CinnabarGym_Floor_WallRightCorner, 0 + setmetatile 5, 17, METATILE_CinnabarGym_Floor_WallLeftEdge, 0 + setmetatile 6, 17, METATILE_CinnabarGym_Floor_WallRightEdge, 0 + setmetatile 5, 18, METATILE_CinnabarGym_Floor_ShadeFull, 0 + setmetatile 6, 18, METATILE_CinnabarGym_Floor, 0 + setmetatile 7, 18, METATILE_CinnabarGym_Floor_ShadeDiagonal, 0 + return + +CinnabarIsland_Gym_EventScript_OpenDoor6:: + setmetatile 5, 8, METATILE_CinnabarGym_Floor_WallLeftCorner, 0 + setmetatile 6, 8, METATILE_CinnabarGym_Floor_WallRightCorner, 0 + setmetatile 5, 9, METATILE_CinnabarGym_Floor_WallLeftEdge, 0 + setmetatile 6, 9, METATILE_CinnabarGym_Floor_WallRightEdge, 0 + setmetatile 5, 10, METATILE_CinnabarGym_Floor_ShadeFull, 0 + setmetatile 6, 10, METATILE_CinnabarGym_Floor, 0 + setmetatile 7, 10, METATILE_CinnabarGym_Floor_ShadeDiagonal, 0 + return + +CinnabarIsland_Gym_Text_BlaineIntro:: + .string "Hah!\p" + .string "I am BLAINE, the red-hot LEADER\n" + .string "of CINNABAR GYM!\p" + .string "My fiery POKéMON are all rough\n" + .string "and ready with intense heat!\p" + .string "They incinerate all challengers!\p" + .string "Hah!\n" + .string "You better have BURN HEAL!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +CinnabarIsland_Gym_Text_BlaineDefeat:: + .string "I have burned down to nothing!\n" + .string "Not even ashes remain!\p" + .string "You have earned the VOLCANOBADGE.$" + +CinnabarIsland_Gym_Text_FireBlastIsUltimateFireMove:: + .string "FIRE BLAST is the ultimate fire\n" + .string "technique.\p" + .string "Don't waste it on WATER POKéMON.$" + +CinnabarIsland_Gym_Text_ExplainVolcanoBadge:: + .string "Hah!\p" + .string "The VOLCANOBADGE heightens the\n" + .string "SPECIAL stats of your POKéMON.\p" + .string "Here, you can have this, too!$" + +CinnabarIsland_Gym_Text_ReceivedTM38FromBlaine:: + .string "{PLAYER} received TM38\n" + .string "from BLAINE.$" + +CinnabarIsland_Gym_Text_BlainePostBattle:: + .string "TM38 contains FIRE BLAST.\n" + .string "Teach it to FIRE-type POKéMON.\p" + .string "VULPIX or CHARMELEON would be\n" + .string "ideal for that move.$" + +CinnabarIsland_Gym_Text_MakeSpaceForThis:: + .string "Make space for this, child!$" + +CinnabarIsland_Gym_Text_ErikIntro:: + .string "Do you know how hot POKéMON fire\n" + .string "breath can get?$" + +CinnabarIsland_Gym_Text_ErikDefeat:: + .string "Yow!\n" + .string "Hot, hot, hot!$" + +CinnabarIsland_Gym_Text_ErikPostBattle:: + .string "Fire, or to be more precise,\n" + .string "combustion…\p" + .string "…Oxygen in the air…\n" + .string "Blah, blah, blah, blah…$" + +CinnabarIsland_Gym_Text_QuinnIntro:: + .string "I was a thief, but I went straight\n" + .string "as a TRAINER.$" + +CinnabarIsland_Gym_Text_QuinnDefeat:: + .string "I surrender!$" + +CinnabarIsland_Gym_Text_QuinnPostBattle:: + .string "I get this uncontrollable urge to\n" + .string "steal other people's POKéMON.$" + +CinnabarIsland_Gym_Text_AveryIntro:: + .string "I've studied POKéMON thoroughly.\n" + .string "You can't win!$" + +CinnabarIsland_Gym_Text_AveryDefeat:: + .string "Waah!\n" + .string "My studies were insufficient!$" + +CinnabarIsland_Gym_Text_AveryPostBattle:: + .string "My theories are too complicated\n" + .string "for you to understand.$" + +CinnabarIsland_Gym_Text_RamonIntro:: + .string "I like using FIRE-type POKéMON.\n" + .string "I just do.$" + +CinnabarIsland_Gym_Text_RamonDefeat:: + .string "Too hot to handle!$" + +CinnabarIsland_Gym_Text_RamonPostBattle:: + .string "I wish there were a thief POKéMON.\n" + .string "I'd use that!$" + +CinnabarIsland_Gym_Text_DerekIntro:: + .string "I know why BLAINE became a\n" + .string "TRAINER.$" + +CinnabarIsland_Gym_Text_DerekDefeat:: + .string "Ow!$" + +CinnabarIsland_Gym_Text_DerekPostBattle:: + .string "Our LEADER, BLAINE, became lost\n" + .string "in the mountains but good.\p" + .string "Night fell when a fiery bird\n" + .string "POKéMON appeared.\p" + .string "Its light allowed BLAINE to find\n" + .string "his way down safely.$" + +CinnabarIsland_Gym_Text_DustyIntro:: + .string "I've been to many GYMS, but this\n" + .string "one best suits my style.$" + +CinnabarIsland_Gym_Text_DustyDefeat:: + .string "Yowza!\n" + .string "Too hot!$" + +CinnabarIsland_Gym_Text_DustyPostBattle:: + .string "PONYTA, NINETALES…\n" + .string "Those are popular FIRE POKéMON.$" + +CinnabarIsland_Gym_Text_ZacIntro:: + .string "Fire is weak against H2O.$" + +CinnabarIsland_Gym_Text_ZacDefeat:: + .string "Oh!\n" + .string "Snuffed out!$" + +CinnabarIsland_Gym_Text_ZacPostBattle:: + .string "Water beats fire, of course.\p" + .string "But fire melts ice, so the FIRE\n" + .string "type beats ICE-type POKéMON.$" + +CinnabarIsland_Gym_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "The hotheaded BLAINE is a FIRE\n" + .string "POKéMON pro.\p" + .string "Douse his spirits with water!\p" + .string "You'd better take some\n" + .string "BURN HEALS, too.$" + +CinnabarIsland_Gym_Text_GymGuyPostVictory:: + .string "{PLAYER}!\n" + .string "You beat that firebrand!$" + +CinnabarIsland_Gym_Text_GymStatue:: + .string "CINNABAR POKéMON GYM\n" + .string "LEADER: BLAINE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +CinnabarIsland_Gym_Text_GymStatuePlayerWon:: + .string "CINNABAR POKéMON GYM\n" + .string "LEADER: BLAINE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + +CinnabarIsland_Gym_Text_PokemonQuizRules:: + .string "POKéMON Quiz!\p" + .string "Get it right, and the door opens to\n" + .string "the next room.\p" + .string "Get it wrong, and face a TRAINER!\p" + .string "If you want to conserve your\n" + .string "POKéMON for the GYM LEADER…\p" + .string "Then get it right!\n" + .string "Here we go!$" + +CinnabarIsland_Gym_Text_QuizQuestion1:: + .string "CATERPIE evolves into METAPOD?$" + +CinnabarIsland_Gym_Text_QuizQuestion2:: + .string "There are nine certified POKéMON\n" + .string "LEAGUE BADGES?$" + +CinnabarIsland_Gym_Text_QuizQuestion3:: + .string "POLIWAG evolves three times?$" + +CinnabarIsland_Gym_Text_QuizQuestion4:: + .string "Are electric moves effective\n" + .string "against GROUND-type POKéMON?$" + +CinnabarIsland_Gym_Text_QuizQuestion5:: + .string "POKéMON of the same kind and level\n" + .string "are not identical?$" + +CinnabarIsland_Gym_Text_QuizQuestion6:: + .string "TM28 contains TOMBSTONY?$" + +CinnabarIsland_Gym_Text_CorrectGoOnThrough:: + .string "You're absolutely correct!\p" + .string "Go on through!$" + +CinnabarIsland_Gym_Text_SorryBadCall:: + .string "Sorry!\n" + .string "Bad call!$" + diff --git a/data/maps/CinnabarIsland_Mart_Frlg/map.json b/data/maps/CinnabarIsland_Mart_Frlg/map.json new file mode 100644 index 000000000000..2ba5f766b0b4 --- /dev/null +++ b/data/maps/CinnabarIsland_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_CINNABAR_ISLAND_MART", + "name": "CinnabarIsland_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Mart_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_Mart_EventScript_Scientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "4" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_Mart_Frlg/scripts.inc b/data/maps/CinnabarIsland_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..6fb05d1c4064 --- /dev/null +++ b/data/maps/CinnabarIsland_Mart_Frlg/scripts.inc @@ -0,0 +1,43 @@ +CinnabarIsland_Mart_Frlg_MapScripts:: + .byte 0 + +CinnabarIsland_Mart_EventScript_Woman:: + msgbox CinnabarIsland_Mart_Text_DontTheyHaveXAttack, MSGBOX_NPC + end + +CinnabarIsland_Mart_EventScript_Scientist:: + msgbox CinnabarIsland_Mart_Text_ExtraItemsNeverHurt, MSGBOX_NPC + end + +CinnabarIsland_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart CinnabarIsland_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +CinnabarIsland_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +CinnabarIsland_Mart_Text_DontTheyHaveXAttack:: + .string "Don't they have X ATTACK?\p" + .string "I like it because it raises the\n" + .string "ATTACK stat in battle.$" + +CinnabarIsland_Mart_Text_ExtraItemsNeverHurt:: + .string "It never hurts to have extra items.\n" + .string "You never know what might happen.$" + diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..95b2d4075b0d --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,152 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", + "name": "CinnabarIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_CINNABAR_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_CooltrainerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_PokemonJournalMrFuji", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_PokemonJournalMrFuji", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "local_id": "LOCALID_CINNABAR_POKEMON_CENTER_BILL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BILL", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonCenter_1F_EventScript_Bill", + "flag": "FLAG_HIDE_CINNABAR_POKECENTER_BILL" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 8, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "3" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..b8072ebc250c --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,179 @@ +CinnabarIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CinnabarIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +CinnabarIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_CINNABAR_ISLAND + end + +CinnabarIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +CinnabarIsland_PokemonCenter_1F_EventScript_Gentleman:: + msgbox CinnabarIsland_PokemonCenter_1F_Text_VisitUnionRoom, MSGBOX_NPC + end + +CinnabarIsland_PokemonCenter_1F_EventScript_CooltrainerF:: + msgbox CinnabarIsland_PokemonCenter_1F_Text_CinnabarGymLocked, MSGBOX_NPC + end + +CinnabarIsland_PokemonCenter_1F_EventScript_Youngster:: + msgbox CinnabarIsland_PokemonCenter_1F_Text_EvolutionCanWaitForNewMoves, MSGBOX_NPC + end + +CinnabarIsland_PokemonCenter_1F_EventScript_Bill:: + lock + faceplayer + msgbox CinnabarIsland_PokemonCenter_1F_Text_ReadyToSailToOneIsland, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonCenter_1F_EventScript_NotReadyToSail + msgbox CinnabarIsland_PokemonCenter_1F_Text_LetsGo + closemessage + playbgm MUS_FOLLOW_ME, 1 + savebgm MUS_FOLLOW_ME + setflag FLAG_DONT_TRANSITION_MUSIC + setflag FLAG_HIDE_CINNABAR_POKECENTER_BILL + delay 20 + call_if_eq VAR_FACING, DIR_SOUTH, CinnabarIsland_PokemonCenter_1F_EventScript_ExitWithBillSouth + call_if_eq VAR_FACING, DIR_EAST, CinnabarIsland_PokemonCenter_1F_EventScript_ExitWithBillEast + call_if_eq VAR_FACING, DIR_WEST, CinnabarIsland_PokemonCenter_1F_EventScript_ExitWithBillWest + removeobject LOCALID_CINNABAR_POKEMON_CENTER_BILL + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_2, 1 + clearflag FLAG_HIDE_CINNABAR_BILL + warp MAP_CINNABAR_ISLAND, 14, 11 + waitstate + release + end + +CinnabarIsland_PokemonCenter_1F_EventScript_ExitWithBillSouth:: + applymovement LOCALID_CINNABAR_POKEMON_CENTER_BILL, CinnabarIsland_PokemonCenter_1F_Movement_BillExit + applymovement LOCALID_PLAYER, CinnabarIsland_PokemonCenter_1F_Movement_PlayerExitSouth + waitmovement 0 + return + +CinnabarIsland_PokemonCenter_1F_EventScript_ExitWithBillEast:: + applymovement LOCALID_CINNABAR_POKEMON_CENTER_BILL, CinnabarIsland_PokemonCenter_1F_Movement_BillExitEast + applymovement LOCALID_PLAYER, CinnabarIsland_PokemonCenter_1F_Movement_PlayerExitEast + waitmovement 0 + return + +CinnabarIsland_PokemonCenter_1F_EventScript_ExitWithBillWest:: + applymovement LOCALID_CINNABAR_POKEMON_CENTER_BILL, CinnabarIsland_PokemonCenter_1F_Movement_BillExit + applymovement LOCALID_PLAYER, CinnabarIsland_PokemonCenter_1F_Movement_PlayerExitWest + waitmovement 0 + return + +CinnabarIsland_PokemonCenter_1F_EventScript_NotReadyToSail:: + msgbox CinnabarIsland_PokemonCenter_1F_Text_OhNotDoneYet + release + end + +CinnabarIsland_PokemonCenter_1F_Movement_BillExit:: + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + walk_down + delay_8 + set_invisible + step_end + +CinnabarIsland_PokemonCenter_1F_Movement_PlayerExitSouth:: + walk_down + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + delay_16 + walk_down + step_end + +CinnabarIsland_PokemonCenter_1F_Movement_BillExitEast:: + walk_up + walk_left + walk_left + walk_down + walk_left + walk_left + walk_down + walk_down + walk_down + delay_8 + set_invisible + step_end + +CinnabarIsland_PokemonCenter_1F_Movement_PlayerExitEast:: + delay_16 + delay_16 + delay_16 + face_left + delay_16 + walk_left + walk_left + walk_left + walk_down + walk_down + delay_8 + walk_down + delay_8 + set_invisible + step_end + +CinnabarIsland_PokemonCenter_1F_Movement_PlayerExitWest:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + delay_16 + walk_down + step_end + +CinnabarIsland_PokemonCenter_1F_Text_CinnabarGymLocked:: + .string "I came to visit the CINNABAR GYM,\n" + .string "but the door is locked tight.\p" + .string "There should be a key for it\n" + .string "somewhere.\p" + .string "Could it be in that burned-out\n" + .string "mansion?\p" + .string "The GYM LEADER's friend used to\n" + .string "live there, they say.$" + +CinnabarIsland_PokemonCenter_1F_Text_VisitUnionRoom:: + .string "Do you have lots of friends?\p" + .string "Linking up with the usual friends\n" + .string "is fun, of course.\p" + .string "But how about visiting the\n" + .string "UNION ROOM every so often?\p" + .string "Who knows, you may end up making\n" + .string "new friends.\p" + .string "I think it would be worth your time\n" + .string "to check the UNION ROOM.$" + +CinnabarIsland_PokemonCenter_1F_Text_EvolutionCanWaitForNewMoves:: + .string "POKéMON can still learn techniques\n" + .string "after canceling evolution.\p" + .string "Evolution can wait until new moves\n" + .string "have been learned.$" + +CinnabarIsland_PokemonCenter_1F_Text_ReadyToSailToOneIsland:: + .string "BILL: Hey, you kept me waiting!\n" + .string "Ready to set sail to ONE ISLAND?$" + +CinnabarIsland_PokemonCenter_1F_Text_OhNotDoneYet:: + .string "Oh, you're still not done yet?$" + +CinnabarIsland_PokemonCenter_1F_Text_LetsGo:: + .string "Well, that's it.\n" + .string "Let's go!$" + diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..bde5ff132a8e --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F", + "name": "CinnabarIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..8327ce7affc7 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +CinnabarIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +CinnabarIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +CinnabarIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +CinnabarIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/map.json b/data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/map.json new file mode 100644 index 000000000000..36d5cf55b683 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/map.json @@ -0,0 +1,113 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "name": "CinnabarIsland_PokemonLab_Entrance_Frlg", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "music": "MUS_RG_CINNABAR", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_Scientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "2" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "dest_warp_id": "0" + }, + { + "x": 19, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "dest_warp_id": "0" + }, + { + "x": 25, + "y": 5, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_DrFujiPhoto" + }, + { + "type": "sign", + "x": 12, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_MeetingRoomSign" + }, + { + "type": "sign", + "x": 18, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_RAndDRoomSign" + }, + { + "type": "sign", + "x": 24, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_PokemonLab_Entrance_EventScript_TestingRoomSign" + } + ] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/scripts.inc new file mode 100644 index 000000000000..2899c4900ece --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/scripts.inc @@ -0,0 +1,60 @@ +CinnabarIsland_PokemonLab_Entrance_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, CinnabarIsland_PokemonLab_Entrance_OnTransition + .byte 0 + +CinnabarIsland_PokemonLab_Entrance_OnTransition:: + call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 1, CinnabarIsland_PokemonLab_Entrance_EventScript_ReadyFossil + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_ReadyFossil:: + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 2 + return + +CinnabarIsland_PokemonLab_Entrance_EventScript_Scientist:: + msgbox CinnabarIsland_PokemonLab_Entrance_Text_StudyMonsExtensively, MSGBOX_NPC + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_DrFujiPhoto:: + msgbox CinnabarIsland_PokemonLab_Entrance_Text_PhotoOfLabFounderDrFuji, MSGBOX_SIGN + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_MeetingRoomSign:: + msgbox CinnabarIsland_PokemonLab_Entrance_Text_MeetingRoomSign, MSGBOX_SIGN + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_RAndDRoomSign:: + msgbox CinnabarIsland_PokemonLab_Entrance_Text_RAndDRoomSign, MSGBOX_SIGN + end + +CinnabarIsland_PokemonLab_Entrance_EventScript_TestingRoomSign:: + msgbox CinnabarIsland_PokemonLab_Entrance_Text_TestingRoomSign, MSGBOX_SIGN + end + +CinnabarIsland_Gym_Text_PhotoOfBlaineAndFuji:: + .string "It's a photo of BLAINE and\n" + .string "MR. FUJI.\p" + .string "They're standing shoulder to\n" + .string "shoulder with big grins.$" + +CinnabarIsland_PokemonLab_Entrance_Text_StudyMonsExtensively:: + .string "We study POKéMON extensively\n" + .string "every day.\p" + .string "People often bring us rare POKéMON\n" + .string "for examination.$" + +CinnabarIsland_PokemonLab_Entrance_Text_PhotoOfLabFounderDrFuji:: + .string "A photo of the LAB's founder…\n" + .string "DR. FUJI?!$" + +CinnabarIsland_PokemonLab_Entrance_Text_MeetingRoomSign:: + .string "POKéMON LAB\n" + .string "Meeting Room$" + +CinnabarIsland_PokemonLab_Entrance_Text_RAndDRoomSign:: + .string "POKéMON LAB\n" + .string "R & D Room$" + +CinnabarIsland_PokemonLab_Entrance_Text_TestingRoomSign:: + .string "POKéMON LAB\n" + .string "Testing Room$" + diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.json b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.json new file mode 100644 index 000000000000..b0d216f6509d --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "name": "CinnabarIsland_PokemonLab_ExperimentRoom_Frlg", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", + "music": "MUS_RG_CINNABAR", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_Garett", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_FossilScientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..24a0e8531cac --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/scripts.inc @@ -0,0 +1,363 @@ +.equ HELIX_FOSSIL, 1 +.equ DOME_FOSSIL, 2 +.equ OLD_AMBER, 3 + +CinnabarIsland_PokemonLab_ExperimentRoom_Frlg_MapScripts:: + .byte 0 + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_Garett:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_SEEL + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_SEELOR_TRADE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_AlreadyTraded + msgbox Trade_Text_LookingForMonWannaTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_HeyThanks + setflag FLAG_DID_SEELOR_TRADE + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineTrade:: + msgbox Trade_Text_AwwOhWell + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_WhatThatsNoMon + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_AlreadyTraded:: + msgbox Trade_Text_IsntMyOldMonGreat + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_FossilScientist:: + lock + faceplayer + setvar VAR_RESULT, FALSE + call_if_set FLAG_REVIVED_AMBER, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckRevivedMtMoonFossil + goto_if_eq VAR_RESULT, TRUE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_RevivedAllFossils + goto_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 2, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveRevivedMon + goto_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_FossilStillReviving + call CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddHelixFossilToList + goto_if_eq VAR_RESULT, TRUE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilHelix + call CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddDomeFossilToList + goto_if_eq VAR_RESULT, TRUE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilDome + call CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddOldAmberToList + goto_if_eq VAR_RESULT, TRUE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilAmber + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_HaveYouAFossilForMe + goto CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddHelixFossilToList:: + goto_if_unset FLAG_GOT_HELIX_FOSSIL, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + goto_if_set FLAG_REVIVED_HELIX, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + setvar VAR_RESULT, TRUE + return + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddDomeFossilToList:: + goto_if_unset FLAG_GOT_DOME_FOSSIL, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + goto_if_set FLAG_REVIVED_DOME, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + setvar VAR_RESULT, TRUE + return + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddOldAmberToList:: + goto_if_unset FLAG_GOT_OLD_AMBER, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + goto_if_set FLAG_REVIVED_AMBER, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + setvar VAR_RESULT, TRUE + return + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse:: + setvar VAR_RESULT, FALSE + return + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil:: + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_NoIsTooBad + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilHelix:: + message CinnabarIsland_PokemonLab_ExperimentRoom_Text_HaveYouAFossilForMe + waitmessage + call CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddOldAmberToList + goto_if_eq VAR_RESULT, TRUE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilHelixAmber + multichoice 0, 0, MULTI_HELIX, FALSE + switch VAR_RESULT + case 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowHelixFossil + case 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + case 127, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilDome:: + message CinnabarIsland_PokemonLab_ExperimentRoom_Text_HaveYouAFossilForMe + waitmessage + call CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckAddOldAmberToList + goto_if_eq VAR_RESULT, TRUE, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilDomeAmber + multichoice 0, 0, MULTI_DOME, FALSE + switch VAR_RESULT + case 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowDomeFossil + case 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + case 127, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilAmber:: + message CinnabarIsland_PokemonLab_ExperimentRoom_Text_HaveYouAFossilForMe + waitmessage + multichoice 0, 0, MULTI_AMBER, FALSE + switch VAR_RESULT + case 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowOldAmber + case 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + case 127, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilHelixAmber:: + multichoice 0, 0, MULTI_HELIX_AMBER, FALSE + switch VAR_RESULT + case 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowHelixFossil + case 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowOldAmber + case 2, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + case 127, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ChooseFossilDomeAmber:: + multichoice 0, 0, MULTI_DOME_AMBER, FALSE + switch VAR_RESULT + case 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowDomeFossil + case 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowOldAmber + case 2, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + case 127, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DontShowFossil + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowHelixFossil:: + bufferspeciesname STR_VAR_1, SPECIES_OMANYTE + bufferitemname STR_VAR_2, ITEM_HELIX_FOSSIL + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_ThatFossilIsOfMonMakeItLiveAgain, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineReviveFossil + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_HandedFossilToWeirdDoctor + textcolor NPC_TEXT_COLOR_MALE + removeitem ITEM_HELIX_FOSSIL + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_TakesTimeGoForWalk + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 1 + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL, HELIX_FOSSIL + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowDomeFossil:: + bufferspeciesname STR_VAR_1, SPECIES_KABUTO + bufferitemname STR_VAR_2, ITEM_DOME_FOSSIL + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_ThatFossilIsOfMonMakeItLiveAgain, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineReviveFossil + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_HandedFossilToWeirdDoctor + textcolor NPC_TEXT_COLOR_MALE + removeitem ITEM_DOME_FOSSIL + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_TakesTimeGoForWalk + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 1 + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL, DOME_FOSSIL + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_ShowOldAmber:: + bufferspeciesname STR_VAR_1, SPECIES_AERODACTYL + bufferitemname STR_VAR_2, ITEM_OLD_AMBER + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_ThatFossilIsOfMonMakeItLiveAgain, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineReviveFossil + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_HandedFossilToWeirdDoctor + textcolor NPC_TEXT_COLOR_MALE + removeitem ITEM_OLD_AMBER + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_TakesTimeGoForWalk + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 1 + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL, OLD_AMBER + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_DeclineReviveFossil:: + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_YouComeAgain + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_FossilStillReviving:: + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_TakesTimeGoForWalk + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveRevivedMon:: + goto_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL, HELIX_FOSSIL, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveOmanyte + goto_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL, DOME_FOSSIL, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveKabuto + goto_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL, OLD_AMBER, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveAerodactyl + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveOmanyte:: + setvar VAR_TEMP_1, SPECIES_OMANYTE + bufferspeciesname STR_VAR_1, SPECIES_OMANYTE + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_FossilMonBackToLife + givemon SPECIES_OMANYTE, 5 + goto_if_eq VAR_RESULT, 2, Common_EventScript_NoMoreRoomForPokemon + setflag FLAG_REVIVED_HELIX + goto_if_eq VAR_RESULT, 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonParty + goto_if_eq VAR_RESULT, 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonPC + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveKabuto:: + setvar VAR_TEMP_1, SPECIES_KABUTO + bufferspeciesname STR_VAR_1, SPECIES_KABUTO + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_FossilMonBackToLife + givemon SPECIES_KABUTO, 5 + goto_if_eq VAR_RESULT, 2, Common_EventScript_NoMoreRoomForPokemon + setflag FLAG_REVIVED_DOME + goto_if_eq VAR_RESULT, 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonParty + goto_if_eq VAR_RESULT, 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonPC + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_GiveAerodactyl:: + setvar VAR_TEMP_1, SPECIES_AERODACTYL + bufferspeciesname STR_VAR_1, SPECIES_AERODACTYL + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_FossilMonBackToLife + givemon SPECIES_AERODACTYL, 5 + goto_if_eq VAR_RESULT, 2, Common_EventScript_NoMoreRoomForPokemon + setflag FLAG_REVIVED_AMBER + goto_if_eq VAR_RESULT, 0, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonParty + goto_if_eq VAR_RESULT, 1, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonPC + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonParty:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message CinnabarIsland_PokemonLab_ExperimentRoom_Text_ReceivedMonFromDoctor + waitmessage + waitfanfare + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 0 + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_EndGiveMon + call Common_EventScript_GetGiftMonPartySlot + call Common_EventScript_NameReceivedPartyMon + goto CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_EndGiveMon + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_NicknameMonPC:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message CinnabarIsland_PokemonLab_ExperimentRoom_Text_ReceivedMonFromDoctor + waitmessage + waitfanfare + setvar VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE, 0 + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_MonSentToPC + call Common_EventScript_NameReceivedBoxMon + goto CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_MonSentToPC + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_MonSentToPC:: + call Common_EventScript_TransferredToPC + goto CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_EndGiveMon + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_EndGiveMon:: + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_RevivedAllFossils:: + msgbox CinnabarIsland_PokemonLab_ExperimentRoom_Text_YouComeAgain + release + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckRevivedMtMoonFossil:: + goto_if_set FLAG_GOT_HELIX_FOSSIL, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckRevivedHelix + goto_if_set FLAG_GOT_DOME_FOSSIL, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckRevivedDome + goto CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + end + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckRevivedHelix:: + goto_if_unset FLAG_REVIVED_HELIX, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + setvar VAR_RESULT, TRUE + return + +CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_CheckRevivedDome:: + goto_if_unset FLAG_REVIVED_DOME, CinnabarIsland_PokemonLab_ExperimentRoom_EventScript_SetResultFalse + setvar VAR_RESULT, TRUE + return + +Text_MetronomeTeach:: + .string "Tch-tch-tch!\n" + .string "I'll teach you a nifty move.\p" + .string "Teach it to a POKéMON, and watch\n" + .string "the fun unfold!\p" + .string "It's a move called METRONOME.\n" + .string "Does it strike your fancy?$" + +Text_MetronomeDeclined:: + .string "I tell you, it's a lot of fun!$" + +Text_MetronomeWhichMon:: + .string "Okay!\n" + .string "Which POKéMON should I teach?$" + +Text_MetronomeTaught:: + .string "Tch-tch-tch!\n" + .string "That's the sound of a METRONOME.\p" + .string "It tweaks your POKéMON's brain into\n" + .string "using moves it doesn't even know.$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_HaveYouAFossilForMe:: + .string "Hiya!\p" + .string "I am important doctor.\n" + .string "Yes, very much so, indeed.\p" + .string "Here, I study rare POKéMON fossils.\n" + .string "All the time, I study.\p" + .string "You!\n" + .string "Have you a fossil for me?$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_NoIsTooBad:: + .string "No!\n" + .string "Is too bad!$" + +@ Unused +CinnabarIsland_PokemonLab_ExperimentRoom_Text_TakesTimeGoForWalkJP:: + .string "ちょっと じかん かかるよ!\p" + .string "そこらへんを すこし\n" + .string "ブラブラ してくると よろしー!$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_FossilMonBackToLife:: + .string "You late.\n" + .string "Where were you?\p" + .string "Your fossil is back to life!\n" + .string "It was {STR_VAR_1} like I think!$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_ReceivedMonFromDoctor:: + .string "{PLAYER} received the {STR_VAR_1}\n" + .string "from the doctor.$" + +@ Unused +CinnabarIsland_PokemonLab_ExperimentRoom_Text_NoRoomForPokemon:: + .string "ポケモン いっぱいで もてないね!$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_ThatFossilIsOfMonMakeItLiveAgain:: + .string "Oh!\n" + .string "That is {STR_VAR_2}, it is!\p" + .string "It is fossil of {STR_VAR_1},\n" + .string "a POKéMON that is already extinct!\p" + .string "My Resurrection Machine will make\n" + .string "that POKéMON live again!$" + +@ TODO: Resolve text dump error below? +CinnabarIsland_PokemonLab_ExperimentRoom_Text_HandedFossilToWeirdDoctor:: + .string "So!\n" + .string "You hurry and give me that!\p" + .string "{FONT_NORMAL}{PLAYER} handed over the\n" + .string "{STR_VAR_2} to the weird doctor.$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_TakesTimeGoForWalk:: + .string "I take a little time!\n" + .string "You go for walk a little while!$" + +CinnabarIsland_PokemonLab_ExperimentRoom_Text_YouComeAgain:: + .string "Aiyah!\n" + .string "You come again!$" + diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/map.json b/data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/map.json new file mode 100644 index 000000000000..31d7a1e6e2f2 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "name": "CinnabarIsland_PokemonLab_Lounge_Frlg", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", + "music": "MUS_RG_CINNABAR", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_Lounge_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_Lounge_EventScript_Clifton", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_Lounge_EventScript_Norma", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/scripts.inc new file mode 100644 index 000000000000..d5c2ef2b9706 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/scripts.inc @@ -0,0 +1,91 @@ +CinnabarIsland_PokemonLab_Lounge_Frlg_MapScripts:: + .byte 0 + +CinnabarIsland_PokemonLab_Lounge_EventScript_Scientist:: + msgbox CinnabarIsland_PokemonLab_Lounge_Text_FoundFossilInMtMoon, MSGBOX_NPC + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_Clifton:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_ELECTRODE + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_ESPHERE_TRADE, CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonAlreadyTraded + msgbox Trade_Text_DoYouHaveMonWouldYouTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonDeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonDeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonNotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_Thanks + setflag FLAG_DID_ESPHERE_TRADE + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonDeclineTrade:: + msgbox Trade_Text_WellIfYouDontWantTo + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonNotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_ThisIsntMon + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_CliftonAlreadyTraded:: + msgbox Trade_Text_HasTradedMonGrownStronger + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_Norma:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_TANGELA + copyvar VAR_0x8004, VAR_0x8008 + specialvar VAR_RESULT, GetInGameTradeSpeciesInfo + copyvar VAR_0x8009, VAR_RESULT + goto_if_set FLAG_DID_TANGENY_TRADE, CinnabarIsland_PokemonLab_Lounge_EventScript_NormaAlreadyTraded + msgbox Trade_Text_DoYouHaveMonWantToTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CinnabarIsland_PokemonLab_Lounge_EventScript_NormaDeclineTrade + special ChoosePartyMon + waitstate + copyvar VAR_0x800A, VAR_0x8004 + goto_if_ge VAR_0x8004, PARTY_SIZE, CinnabarIsland_PokemonLab_Lounge_EventScript_NormaDeclineTrade + copyvar VAR_0x8005, VAR_0x800A + specialvar VAR_RESULT, GetTradeSpecies + copyvar VAR_0x800B, VAR_RESULT + goto_if_ne VAR_RESULT, VAR_0x8009, CinnabarIsland_PokemonLab_Lounge_EventScript_NormaNotRequestedMon + copyvar VAR_0x8004, VAR_0x8008 + copyvar VAR_0x8005, VAR_0x800A + special CreateInGameTradePokemon + special DoInGameTradeScene + waitstate + msgbox Trade_Text_ThanksYoureAPal + setflag FLAG_DID_TANGENY_TRADE + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_NormaDeclineTrade:: + msgbox Trade_Text_ThatsTooBad + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_NormaNotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_ThisIsNoMon + release + end + +CinnabarIsland_PokemonLab_Lounge_EventScript_NormaAlreadyTraded:: + msgbox Trade_Text_HowIsMyOldMon + release + end + +CinnabarIsland_PokemonLab_Lounge_Text_FoundFossilInMtMoon:: + .string "I found this most remarkable fossil\n" + .string "inside MT. MOON.\p" + .string "I think it's of a rare, prehistoric\n" + .string "POKéMON.$" + diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.json b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.json new file mode 100644 index 000000000000..35fe24d8b7b1 --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "name": "CinnabarIsland_PokemonLab_ResearchRoom_Frlg", + "layout": "LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", + "music": "MUS_RG_CINNABAR", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CINNABAR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_MetronomeTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 10, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_Scientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_AmberPipe" + }, + { + "type": "sign", + "x": 3, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "CinnabarIsland_PokemonLab_ResearchRoom_EventScript_Computer" + } + ] +} diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..f16d5427bd3b --- /dev/null +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/scripts.inc @@ -0,0 +1,38 @@ +CinnabarIsland_PokemonLab_ResearchRoom_Frlg_MapScripts:: + .byte 0 + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_MetronomeTutor:: + goto EventScript_MetronomeTutor + end + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_Scientist:: + msgbox CinnabarIsland_PokemonLab_ResearchRoom_Text_EeveeCanEvolveIntroThreeMons, MSGBOX_NPC + end + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_Computer:: + msgbox CinnabarIsland_PokemonLab_ResearchRoom_Text_LegendaryBirdEmail, MSGBOX_SIGN + end + +CinnabarIsland_PokemonLab_ResearchRoom_EventScript_AmberPipe:: + msgbox CinnabarIsland_PokemonLab_ResearchRoom_Text_AnAmberPipe, MSGBOX_SIGN + end + +CinnabarIsland_PokemonLab_ResearchRoom_Text_EeveeCanEvolveIntroThreeMons:: + .string "EEVEE can evolve into one of three\n" + .string "kinds of POKéMON.$" + +CinnabarIsland_PokemonLab_ResearchRoom_Text_LegendaryBirdEmail:: + .string "There's an e-mail message.\p" + .string "… … …\p" + .string "There are three legendary bird\n" + .string "POKéMON.\p" + .string "They are ARTICUNO, ZAPDOS, and\n" + .string "MOLTRES.\p" + .string "Their whereabouts are unknown.\p" + .string "We plan to explore the cavern\n" + .string "close to CERULEAN.\p" + .string "From: POKéMON RESEARCH TEAM…$" + +CinnabarIsland_PokemonLab_ResearchRoom_Text_AnAmberPipe:: + .string "An amber pipe!$" + diff --git a/data/maps/DiglettsCave_B1F_Frlg/map.json b/data/maps/DiglettsCave_B1F_Frlg/map.json new file mode 100644 index 000000000000..ea1de92be145 --- /dev/null +++ b/data/maps/DiglettsCave_B1F_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_DIGLETTS_CAVE_B1F", + "name": "DiglettsCave_B1F_Frlg", + "layout": "LAYOUT_DIGLETTS_CAVE_B1F", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DIGLETTS_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 3, + "y": 3, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 82, + "y": 71, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/DiglettsCave_B1F_Frlg/scripts.inc b/data/maps/DiglettsCave_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..bca05e45ba85 --- /dev/null +++ b/data/maps/DiglettsCave_B1F_Frlg/scripts.inc @@ -0,0 +1,7 @@ +DiglettsCave_B1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, DiglettsCave_B1F_OnTransition + .byte 0 + +DiglettsCave_B1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F + end diff --git a/data/maps/DiglettsCave_NorthEntrance_Frlg/map.json b/data/maps/DiglettsCave_NorthEntrance_Frlg/map.json new file mode 100644 index 000000000000..a318358cece3 --- /dev/null +++ b/data/maps/DiglettsCave_NorthEntrance_Frlg/map.json @@ -0,0 +1,52 @@ +{ + "id": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", + "name": "DiglettsCave_NorthEntrance_Frlg", + "layout": "LAYOUT_DIGLETTS_CAVE_NORTH_ENTRANCE", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DIGLETTS_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "DiglettsCave_NorthEntrance_EventScript_Hiker", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 4, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_B1F", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/DiglettsCave_NorthEntrance_Frlg/scripts.inc b/data/maps/DiglettsCave_NorthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..a696d21ae7dc --- /dev/null +++ b/data/maps/DiglettsCave_NorthEntrance_Frlg/scripts.inc @@ -0,0 +1,13 @@ +DiglettsCave_NorthEntrance_Frlg_MapScripts:: + .byte 0 + +DiglettsCave_NorthEntrance_EventScript_Hiker:: + msgbox DiglettsCave_NorthEntrance_RockTunnelPitchBlack, MSGBOX_NPC + end + +DiglettsCave_NorthEntrance_RockTunnelPitchBlack:: + .string "I went inside ROCK TUNNEL, but it's\n" + .string "pitch-black and scary in there.\p" + .string "If I could get a POKéMON to use\n" + .string "FLASH and light it up…$" + diff --git a/data/maps/DiglettsCave_SouthEntrance_Frlg/map.json b/data/maps/DiglettsCave_SouthEntrance_Frlg/map.json new file mode 100644 index 000000000000..c78167affe08 --- /dev/null +++ b/data/maps/DiglettsCave_SouthEntrance_Frlg/map.json @@ -0,0 +1,52 @@ +{ + "id": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "name": "DiglettsCave_SouthEntrance_Frlg", + "layout": "LAYOUT_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DIGLETTS_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "DiglettsCave_SouthEntrance_EventScript_OldMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 4, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_B1F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/DiglettsCave_SouthEntrance_Frlg/scripts.inc b/data/maps/DiglettsCave_SouthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..c7d7545da07a --- /dev/null +++ b/data/maps/DiglettsCave_SouthEntrance_Frlg/scripts.inc @@ -0,0 +1,13 @@ +DiglettsCave_SouthEntrance_Frlg_MapScripts:: + .byte 0 + +DiglettsCave_SouthEntrance_EventScript_OldMan:: + msgbox DiglettsCave_SouthEntrance_Text_DiglettDugThisTunnel, MSGBOX_NPC + end + +DiglettsCave_SouthEntrance_Text_DiglettDugThisTunnel:: + .string "Well, isn't this a surprise!\n" + .string "DIGLETT dug this long tunnel!\p" + .string "It goes right to VIRIDIAN CITY,\n" + .string "they tell me.$" + diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc index ea58d275dfe4..9fcded5790ff 100644 --- a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc +++ b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc @@ -23,12 +23,13 @@ FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove:: FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon:: msgbox FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon, MSGBOX_DEFAULT setmoverelearnerstate MOVE_RELEARNER_LEVEL_UP_MOVES @ Specifically supposed to teach level up moves - special ChooseMonForMoveRelearner + chooseboxmon SELECT_PC_MON_MOVE_RELEARNER waitstate goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale special IsSelectedMonEgg goto_if_eq VAR_RESULT, TRUE, FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg - goto_if_eq VAR_0x8005, 0, FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon + special HasMovesToRelearn + goto_if_eq VAR_RESULT, FALSE, FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove end diff --git a/data/maps/FiveIsland_Frlg/map.json b/data/maps/FiveIsland_Frlg/map.json new file mode 100644 index 000000000000..50848e1ef5d8 --- /dev/null +++ b/data/maps/FiveIsland_Frlg/map.json @@ -0,0 +1,110 @@ +{ + "id": "MAP_FIVE_ISLAND", + "name": "FiveIsland_Frlg", + "layout": "LAYOUT_FIVE_ISLAND", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_WATER_LABYRINTH", + "offset": -48, + "direction": "up" + }, + { + "map": "MAP_FIVE_ISLAND_MEADOW", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 8, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_EventScript_Fisher", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 16, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_EventScript_BugCatcher", + "flag": "0" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 32, + "y": 9, + "target_local_id": "LOCALID_FIVE_ISLAND_MEADOW_BORDER_TREE", + "target_map": "MAP_FIVE_ISLAND_MEADOW" + } + ], + "warp_events": [ + { + "x": 12, + "y": 14, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_HARBOR", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 6, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 6, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_HOUSE1", + "dest_warp_id": "0" + }, + { + "x": 22, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_HOUSE2", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 20, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_EventScript_IslandSign" + } + ] +} diff --git a/data/maps/FiveIsland_Frlg/scripts.inc b/data/maps/FiveIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..9e1145da8d1f --- /dev/null +++ b/data/maps/FiveIsland_Frlg/scripts.inc @@ -0,0 +1,36 @@ +FiveIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FiveIsland_OnTransition + .byte 0 + +FiveIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_FIVE_ISLAND + end + +FiveIsland_EventScript_IslandSign:: + msgbox FiveIsland_Text_IslandSign, MSGBOX_SIGN + end + +FiveIsland_EventScript_BugCatcher:: + msgbox FiveIsland_Text_WeirdBuildingInMeadow, MSGBOX_NPC + end + +FiveIsland_EventScript_Fisher:: + msgbox FiveIsland_Text_BeenGettingBusierAroundHere, MSGBOX_NPC + end + +FiveIsland_Text_IslandSign:: + .string "FIVE ISLAND\n" + .string "Chrono Island: Where Time Goes$" + +FiveIsland_Text_WeirdBuildingInMeadow:: + .string "Oh, this stinks. I wanted to play in\n" + .string "the MEADOW.\p" + .string "But they put up a weird building\n" + .string "on it, so I can't play there.$" + +FiveIsland_Text_BeenGettingBusierAroundHere:: + .string "It's been getting busier around\n" + .string "these parts lately.\p" + .string "I haven't been catching many good\n" + .string "fish lately, either.$" + diff --git a/data/maps/FiveIsland_Harbor_Frlg/map.json b/data/maps/FiveIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..cb08dbf56d9b --- /dev/null +++ b/data/maps/FiveIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_FIVE_ISLAND_HARBOR", + "name": "FiveIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_Harbor_Frlg/scripts.inc b/data/maps/FiveIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..e34eaa036a3e --- /dev/null +++ b/data/maps/FiveIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,11 @@ +FiveIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +FiveIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_FIVE_ISLAND + goto EventScript_ChooseDestFromIsland + end diff --git a/data/maps/FiveIsland_House1_Frlg/map.json b/data/maps/FiveIsland_House1_Frlg/map.json new file mode 100644 index 000000000000..97585ace22cf --- /dev/null +++ b/data/maps/FiveIsland_House1_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FIVE_ISLAND_HOUSE1", + "name": "FiveIsland_House1_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_House1_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_House1_Frlg/scripts.inc b/data/maps/FiveIsland_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..71bcd9a4062a --- /dev/null +++ b/data/maps/FiveIsland_House1_Frlg/scripts.inc @@ -0,0 +1,15 @@ +FiveIsland_House1_Frlg_MapScripts:: + .byte 0 + +FiveIsland_House1_EventScript_Woman:: + msgbox FiveIsland_House1_Text_HusbandWentOffFishing, MSGBOX_NPC + end + +FiveIsland_House1_Text_HusbandWentOffFishing:: + .string "Don't worry about buying anything\n" + .string "for dinner tonight!\p" + .string "…That's what my husband said when\n" + .string "he went off fishing today.\p" + .string "I'm not sure if I can count on him\n" + .string "to live up to that promise.$" + diff --git a/data/maps/FiveIsland_House2_Frlg/map.json b/data/maps/FiveIsland_House2_Frlg/map.json new file mode 100644 index 000000000000..1090e93da7f7 --- /dev/null +++ b/data/maps/FiveIsland_House2_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FIVE_ISLAND_HOUSE2", + "name": "FiveIsland_House2_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 2, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_House2_EventScript_OldMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_House2_Frlg/scripts.inc b/data/maps/FiveIsland_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..58173b1be8d1 --- /dev/null +++ b/data/maps/FiveIsland_House2_Frlg/scripts.inc @@ -0,0 +1,15 @@ +FiveIsland_House2_Frlg_MapScripts:: + .byte 0 + +FiveIsland_House2_EventScript_OldMan:: + msgbox FiveIsland_House2_Text_MeadowBelongedToFamily, MSGBOX_NPC + end + +FiveIsland_House2_Text_MeadowBelongedToFamily:: + .string "That MEADOW has belonged to our\n" + .string "family for generations.\p" + .string "I should have had a giant mansion\n" + .string "built on it.\p" + .string "It would be preferable to having\n" + .string "those thugs run wild on it!$" + diff --git a/data/maps/FiveIsland_LostCave_Entrance_Frlg/map.json b/data/maps/FiveIsland_LostCave_Entrance_Frlg/map.json new file mode 100644 index 000000000000..e36e186ee5d8 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Entrance_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "name": "FiveIsland_LostCave_Entrance_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Entrance_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Entrance_Frlg/scripts.inc new file mode 100644 index 000000000000..87547d1930f1 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Entrance_Frlg/scripts.inc @@ -0,0 +1,7 @@ +FiveIsland_LostCave_Entrance_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FiveIsland_LostCave_Entrance_OnTransition + .byte 0 + +FiveIsland_LostCave_Entrance_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE + end diff --git a/data/maps/FiveIsland_LostCave_Room10_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room10_Frlg/map.json new file mode 100644 index 000000000000..aec5fc8ab38d --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room10_Frlg/map.json @@ -0,0 +1,60 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10", + "name": "FiveIsland_LostCave_Room10_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM10", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_LOST_CAVE_SELPHY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_LOST_CAVE_SELPHY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_LostCave_Room10_EventScript_ItemSilkScarf", + "flag": "FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM10_SILK_SCARF" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room10_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room10_Frlg/scripts.inc new file mode 100644 index 000000000000..0372e4bb8e35 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room10_Frlg/scripts.inc @@ -0,0 +1,79 @@ +FiveIsland_LostCave_Room10_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, FiveIsland_LostCave_Room10_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, FiveIsland_LostCave_Room10_OnFrame + .byte 0 + +FiveIsland_LostCave_Room10_OnResume:: + call_if_defeated TRAINER_LADY_SELPHY, FiveIsland_LostCave_Room10_EventScript_StopSelphySceneTrigger + end + +FiveIsland_LostCave_Room10_EventScript_StopSelphySceneTrigger:: + setvar VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10, 1 + return + +FiveIsland_LostCave_Room10_OnFrame:: + map_script_2 VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10, 0, FiveIsland_LostCave_Room10_EventScript_FindSelphyScene + .2byte 0 + +FiveIsland_LostCave_Room10_EventScript_FindSelphyScene:: + lockall + textcolor NPC_TEXT_COLOR_FEMALE + applymovement LOCALID_LOST_CAVE_SELPHY, FiveIsland_LostCave_Room10_Movement_SelphyWander + waitmovement 0 + delay 100 + applymovement LOCALID_LOST_CAVE_SELPHY, FiveIsland_LostCave_Room10_Movement_SelphyApproach + waitmovement 0 + msgbox FiveIsland_LostCave_Room10_Text_SelphyIntro + trainerbattle_no_intro TRAINER_LADY_SELPHY, FiveIsland_LostCave_Room10_Text_SelphyDefeat + msgbox FiveIsland_LostCave_Room10_Text_MayIAskYouToTakeMeHome + closemessage + call FiveIsland_LostCave_Room10_EventScript_SetSelphyFound + warp MAP_FIVE_ISLAND_RESORT_GORGEOUS, 39, 10 + waitstate + releaseall + end + +FiveIsland_LostCave_Room10_EventScript_SetSelphyFound:: + setflag FLAG_HIDE_LOST_CAVE_SELPHY + clearflag FLAG_HIDE_RESORT_GORGEOUS_SELPHY + setvar VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10, 1 + setvar VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 1 + return + +FiveIsland_LostCave_Room10_EventScript_SelphyQuestLog:: + settrainerflag TRAINER_LADY_SELPHY + call FiveIsland_LostCave_Room10_EventScript_SetSelphyFound + releaseall + end + +FiveIsland_LostCave_Room10_Movement_SelphyWander:: + walk_left + delay_16 + walk_right + delay_16 + walk_in_place_faster_up + delay_16 + walk_in_place_faster_down + step_end + +FiveIsland_LostCave_Room10_Movement_SelphyApproach:: + walk_down + walk_down + step_end + +FiveIsland_LostCave_Room10_Text_SelphyIntro:: + .string "W-what do you intend to do with\n" + .string "me?$" + +FiveIsland_LostCave_Room10_Text_SelphyDefeat:: + .string "Oh… I was afraid that you meant to\n" + .string "harm me.$" + +FiveIsland_LostCave_Room10_Text_MayIAskYouToTakeMeHome:: + .string "I am so glad that you happened\n" + .string "here.\p" + .string "I grew rather bored of walking,\n" + .string "and I am feeling fatigued.\p" + .string "May I ask you to take me home\n" + .string "from here?$" + diff --git a/data/maps/FiveIsland_LostCave_Room11_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room11_Frlg/map.json new file mode 100644 index 000000000000..c72524a18a7d --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room11_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11", + "name": "FiveIsland_LostCave_Room11_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM11", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_LostCave_Room11_EventScript_ItemLaxIncense", + "flag": "FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM11_LAX_INCENSE" + } + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room11_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room11_Frlg/scripts.inc new file mode 100644 index 000000000000..dfa1dbfae85a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room11_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room11_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room12_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room12_Frlg/map.json new file mode 100644 index 000000000000..51cfc9558f4a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room12_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12", + "name": "FiveIsland_LostCave_Room12_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM12", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_LostCave_Room12_EventScript_ItemSeaIncense", + "flag": "FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM12_SEA_INCENSE" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room12_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room12_Frlg/scripts.inc new file mode 100644 index 000000000000..a4f76d812567 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room12_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room12_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room13_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room13_Frlg/map.json new file mode 100644 index 000000000000..355c3d300fea --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room13_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13", + "name": "FiveIsland_LostCave_Room13_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM13", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_LostCave_Room13_EventScript_ItemMaxRevive", + "flag": "FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM13_MAX_REVIVE" + } + ], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room13_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room13_Frlg/scripts.inc new file mode 100644 index 000000000000..ebf918fac0e0 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room13_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room13_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room14_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room14_Frlg/map.json new file mode 100644 index 000000000000..cddbd47ae27e --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room14_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14", + "name": "FiveIsland_LostCave_Room14_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM14", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_LostCave_Room14_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM14_RARE_CANDY" + } + ], + "warp_events": [ + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room14_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room14_Frlg/scripts.inc new file mode 100644 index 000000000000..fb2c44e10cfd --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room14_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room14_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room1_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room1_Frlg/map.json new file mode 100644 index 000000000000..fdc41934aafc --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room1_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "name": "FiveIsland_LostCave_Room1_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM1", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_LostCave_Room1_EventScript_Lawson", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room1_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room1_Frlg/scripts.inc new file mode 100644 index 000000000000..1d27e26516a9 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room1_Frlg/scripts.inc @@ -0,0 +1,23 @@ +FiveIsland_LostCave_Room1_Frlg_MapScripts:: + .byte 0 + +FiveIsland_LostCave_Room1_EventScript_Lawson:: + trainerbattle_single TRAINER_RUIN_MANIAC_LAWSON, FiveIsland_LostCave_Room1_Text_LawsonIntro, FiveIsland_LostCave_Room1_Text_LawsonDefeat + msgbox FiveIsland_LostCave_Room1_Text_LawsonPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_LostCave_Room1_Text_LawsonIntro:: + .string "Aiyeeeeeh!\p" + .string "I thought this was an ancient ruin.\n" + .string "But it's teeming with ghosts!$" + +FiveIsland_LostCave_Room1_Text_LawsonDefeat:: + .string "Aiyeeeeeh!\n" + .string "Mercy!$" + +FiveIsland_LostCave_Room1_Text_LawsonPostBattle:: + .string "I'm trying to get out of here, but\n" + .string "I always end up at the same spot.\p" + .string "Maybe the number of boulders is\n" + .string "a hint…$" + diff --git a/data/maps/FiveIsland_LostCave_Room2_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room2_Frlg/map.json new file mode 100644 index 000000000000..d7deba157a5a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room2_Frlg/map.json @@ -0,0 +1,51 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2", + "name": "FiveIsland_LostCave_Room2_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM2", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3", + "dest_warp_id": "2" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room2_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room2_Frlg/scripts.inc new file mode 100644 index 000000000000..2588f24a87a5 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room2_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room2_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room3_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room3_Frlg/map.json new file mode 100644 index 000000000000..06fcda49dedb --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room3_Frlg/map.json @@ -0,0 +1,51 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3", + "name": "FiveIsland_LostCave_Room3_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM3", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room3_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room3_Frlg/scripts.inc new file mode 100644 index 000000000000..a715193dd5a3 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room3_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room3_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room4_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room4_Frlg/map.json new file mode 100644 index 000000000000..0049915a8a7a --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room4_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4", + "name": "FiveIsland_LostCave_Room4_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM4", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_LostCave_Room4_EventScript_Laura", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room4_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room4_Frlg/scripts.inc new file mode 100644 index 000000000000..21491be4a3c0 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room4_Frlg/scripts.inc @@ -0,0 +1,20 @@ +FiveIsland_LostCave_Room4_Frlg_MapScripts:: + .byte 0 + +FiveIsland_LostCave_Room4_EventScript_Laura:: + trainerbattle_single TRAINER_PSYCHIC_LAURA, FiveIsland_LostCave_Room4_Text_LauraIntro, FiveIsland_LostCave_Room4_Text_LauraDefeat + msgbox FiveIsland_LostCave_Room4_Text_LauraPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_LostCave_Room4_Text_LauraIntro:: + .string "I think there is a mysterious power\n" + .string "at work in this cave.$" + +FiveIsland_LostCave_Room4_Text_LauraDefeat:: + .string "If you don't go into the right\n" + .string "tunnel, you won't get ahead.$" + +FiveIsland_LostCave_Room4_Text_LauraPostBattle:: + .string "Earlier, a lady went into the caves\n" + .string "ahead.$" + diff --git a/data/maps/FiveIsland_LostCave_Room5_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room5_Frlg/map.json new file mode 100644 index 000000000000..ae30cb97e9b8 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room5_Frlg/map.json @@ -0,0 +1,57 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5", + "name": "FiveIsland_LostCave_Room5_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM5", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/FiveIsland_LostCave_Room5_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room5_Frlg/scripts.inc new file mode 100644 index 000000000000..68ff52347a57 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room5_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room5_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room6_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room6_Frlg/map.json new file mode 100644 index 000000000000..e2d72098d1c6 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room6_Frlg/map.json @@ -0,0 +1,51 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6", + "name": "FiveIsland_LostCave_Room6_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM6", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room6_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room6_Frlg/scripts.inc new file mode 100644 index 000000000000..9988c1729206 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room6_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room6_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room7_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room7_Frlg/map.json new file mode 100644 index 000000000000..8f8db12878b3 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room7_Frlg/map.json @@ -0,0 +1,51 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7", + "name": "FiveIsland_LostCave_Room7_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM7", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room7_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room7_Frlg/scripts.inc new file mode 100644 index 000000000000..cbc53e9d439c --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room7_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room7_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room8_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room8_Frlg/map.json new file mode 100644 index 000000000000..aab2f7db1c06 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room8_Frlg/map.json @@ -0,0 +1,51 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8", + "name": "FiveIsland_LostCave_Room8_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM8", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room8_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room8_Frlg/scripts.inc new file mode 100644 index 000000000000..4876ae90159b --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room8_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room8_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_LostCave_Room9_Frlg/map.json b/data/maps/FiveIsland_LostCave_Room9_Frlg/map.json new file mode 100644 index 000000000000..0d492794efd9 --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room9_Frlg/map.json @@ -0,0 +1,51 @@ +{ + "id": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9", + "name": "FiveIsland_LostCave_Room9_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM9", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LOST_CAVE", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_LostCave_Room9_Frlg/scripts.inc b/data/maps/FiveIsland_LostCave_Room9_Frlg/scripts.inc new file mode 100644 index 000000000000..f9281c28378c --- /dev/null +++ b/data/maps/FiveIsland_LostCave_Room9_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FiveIsland_LostCave_Room9_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FiveIsland_Meadow_Frlg/map.json b/data/maps/FiveIsland_Meadow_Frlg/map.json new file mode 100644 index 000000000000..3284af48683f --- /dev/null +++ b/data/maps/FiveIsland_Meadow_Frlg/map.json @@ -0,0 +1,152 @@ +{ + "id": "MAP_FIVE_ISLAND_MEADOW", + "name": "FiveIsland_Meadow_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_MEADOW", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLE_MEADOW", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FIVE_ISLAND", + "offset": 0, + "direction": "left" + }, + { + "map": "MAP_FIVE_ISLAND_MEMORIAL_PILLAR", + "offset": 20, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", + "x": 18, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_Meadow_EventScript_Rocket3", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 17, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "FiveIsland_Meadow_EventScript_Rocket1", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 11, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_Meadow_EventScript_Rocket2", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "local_id": "LOCALID_FIVE_ISLAND_MEADOW_BORDER_TREE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 19, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_Meadow_EventScript_ItemMaxPotion", + "flag": "FLAG_HIDE_FIVE_ISLAND_MEADOW_MAX_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_Meadow_EventScript_ItemPPUp", + "flag": "FLAG_HIDE_FIVE_ISLAND_MEADOW_PP_UP" + } + ], + "warp_events": [ + { + "x": 12, + "y": 21, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_ROCKET_WAREHOUSE", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 21, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_Meadow_EventScript_WarehouseDoor" + } + ] +} diff --git a/data/maps/FiveIsland_Meadow_Frlg/scripts.inc b/data/maps/FiveIsland_Meadow_Frlg/scripts.inc new file mode 100644 index 000000000000..407a925af1d3 --- /dev/null +++ b/data/maps/FiveIsland_Meadow_Frlg/scripts.inc @@ -0,0 +1,111 @@ +FiveIsland_Meadow_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, FiveIsland_Meadow_OnLoad + .byte 0 + +FiveIsland_Meadow_OnLoad:: + call_if_set FLAG_UNLOCKED_ROCKET_WAREHOUSE, FiveIsland_Meadow_EventScript_SetWarehouseDoorUnlocked + end + +FiveIsland_Meadow_EventScript_WarehouseDoor:: + lockall + goto_if_set FLAG_UNLOCKED_ROCKET_WAREHOUSE, FiveIsland_Meadow_EventScript_WarehouseDoorAlreadyOpen + goto_if_set FLAG_LEARNED_YES_NAH_CHANSEY, FiveIsland_Meadow_EventScript_OpenWarehouseDoor + msgbox FiveIsland_Meadow_Text_EnteredPasswordAnotherNeeded + releaseall + end + +FiveIsland_Meadow_EventScript_OpenWarehouseDoor:: + setflag FLAG_UNLOCKED_ROCKET_WAREHOUSE + message FiveIsland_Meadow_Text_EnteredPasswordDoorOpened + waitmessage + delay 60 + call FiveIsland_Meadow_EventScript_SetWarehouseDoorUnlocked + special DrawWholeMapView + playse SE_PIN + waitse + releaseall + end + +FiveIsland_Meadow_EventScript_WarehouseDoorAlreadyOpen:: + msgbox FiveIsland_Meadow_Text_WarehouseDoorAlreadyOpen + releaseall + end + +FiveIsland_Meadow_EventScript_SetWarehouseDoorUnlocked:: + setmetatile 12, 21, METATILE_SeviiIslands45_RocketWarehouseDoor_Unlocked, 1 + return + +FiveIsland_Meadow_EventScript_Rocket1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_49, FiveIsland_Meadow_Text_Rocket1Intro, FiveIsland_Meadow_Text_Rocket1Defeat + msgbox FiveIsland_Meadow_Text_Rocket1PostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_Meadow_EventScript_Rocket2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_50, FiveIsland_Meadow_Text_Rocket2Intro, FiveIsland_Meadow_Text_Rocket2Defeat + msgbox FiveIsland_Meadow_Text_Rocket2PostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_Meadow_EventScript_Rocket3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_51, FiveIsland_Meadow_Text_Rocket3Intro, FiveIsland_Meadow_Text_Rocket3Defeat + msgbox FiveIsland_Meadow_Text_Rocket3PostBattle, MSGBOX_AUTOCLOSE + end + +@ Unused +FiveIsland_Meadow_Text_DoorNeedsTwoPasswords:: + .string "とびらを あけるには\n" + .string "パスワードが 2つ いるようだ$" + +FiveIsland_Meadow_Text_EnteredPasswordAnotherNeeded:: + .string "{PLAYER} entered a password.\p" + .string "“GOLDEEN need log.”\p" + .string "… … … … … …\p" + .string "Another password is needed to\n" + .string "open the door…$" + +FiveIsland_Meadow_Text_EnteredPasswordDoorOpened:: + .string "{PLAYER} entered two passwords.\p" + .string "“GOLDEEN need log.”\n" + .string "“Yes, nah, CHANSEY.”\p" + .string "… … … … … …\p" + .string "The WAREHOUSE's door opened!$" + +FiveIsland_Meadow_Text_WarehouseDoorAlreadyOpen:: + .string "The WAREHOUSE's door is already\n" + .string "open.$" + +FiveIsland_Meadow_Text_Rocket1Intro:: + .string "This area's strictly off-limits!\n" + .string "Out, out!$" + +FiveIsland_Meadow_Text_Rocket1Defeat:: + .string "Is this for real?$" + +FiveIsland_Meadow_Text_Rocket1PostBattle:: + .string "You don't have any business here!\n" + .string "Go home!$" + +FiveIsland_Meadow_Text_Rocket2Intro:: + .string "There's nothing past here except\n" + .string "our WAREHOUSE.\p" + .string "So what brings you here?$" + +FiveIsland_Meadow_Text_Rocket2Defeat:: + .string "That wasn't supposed to happen…$" + +FiveIsland_Meadow_Text_Rocket2PostBattle:: + .string "You're wanting to know what's inside\n" + .string "this WAREHOUSE?\p" + .string "It's better you didn't know.\n" + .string "For your own sake, I mean.$" + +FiveIsland_Meadow_Text_Rocket3Intro:: + .string "You'd be wasting time even if you\n" + .string "were to get by me.$" + +FiveIsland_Meadow_Text_Rocket3Defeat:: + .string "Oh, that makes me furious!$" + +FiveIsland_Meadow_Text_Rocket3PostBattle:: + .string "You won't be able to get in without\n" + .string "the passwords anyway.$" + diff --git a/data/maps/FiveIsland_MemorialPillar_Frlg/map.json b/data/maps/FiveIsland_MemorialPillar_Frlg/map.json new file mode 100644 index 000000000000..095bd6b68054 --- /dev/null +++ b/data/maps/FiveIsland_MemorialPillar_Frlg/map.json @@ -0,0 +1,153 @@ +{ + "id": "MAP_FIVE_ISLAND_MEMORIAL_PILLAR", + "name": "FiveIsland_MemorialPillar_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_MEMORIAL_PILLAR", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MEMORIAL_PILLAR", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_MEADOW", + "offset": -20, + "direction": "left" + } + ], + "object_events": [ + { + "local_id": "LOCALID_MEMORIAL_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 8, + "y": 44, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_MemorialPillar_EventScript_MemorialMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 12, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_MemorialPillar_EventScript_Milo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 14, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "FiveIsland_MemorialPillar_EventScript_Chaz", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 17, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_MemorialPillar_EventScript_Harold", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 4, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_MemorialPillar_EventScript_ItemMetalCoat", + "flag": "FLAG_HIDE_FIVE_ISLAND_MEMORIAL_PILLAR_METAL_COAT" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 43, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "FiveIsland_MemorialPillar_EventScript_Memorial" + }, + { + "type": "hidden_item", + "x": 8, + "y": 52, + "elevation": 3, + "item": "ITEM_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 15, + "y": 7, + "elevation": 3, + "item": "ITEM_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 17, + "y": 22, + "elevation": 3, + "item": "ITEM_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 14, + "y": 25, + "elevation": 3, + "item": "ITEM_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/FiveIsland_MemorialPillar_Frlg/scripts.inc b/data/maps/FiveIsland_MemorialPillar_Frlg/scripts.inc new file mode 100644 index 000000000000..1bbf96cb5a24 --- /dev/null +++ b/data/maps/FiveIsland_MemorialPillar_Frlg/scripts.inc @@ -0,0 +1,182 @@ +FiveIsland_MemorialPillar_Frlg_MapScripts:: + .byte 0 + +FiveIsland_MemorialPillar_EventScript_MemorialMan:: + lock + goto_if_set FLAG_GOT_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_AlreadyGotTM42 + goto_if_set FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_ReturnedForTM42 + msgbox FiveIsland_MemorialPillar_Text_ScrubScrub + closemessage + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_FacePlayer + waitmovement 0 + delay 45 + msgbox FiveIsland_MemorialPillar_Text_YourMonsLookHealthy + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox FiveIsland_MemorialPillar_Text_ThisIsWhereIBuriedMyOnix + release + end + +FiveIsland_MemorialPillar_EventScript_AlreadyGotTM42:: + msgbox FiveIsland_MemorialPillar_Text_ScrubScrubTectonix + release + end + +FiveIsland_MemorialPillar_EventScript_ReturnedForTM42:: + msgbox FiveIsland_MemorialPillar_Text_StillHaveThingAsMyThanks + giveitem ITEM_TM42 + goto_if_eq VAR_RESULT, FALSE, FiveIsland_MemorialPillar_EventScript_NoRoomForTM42 + call FiveIsland_MemorialPillar_EventScript_ReceivedTM42 + release + end + +FiveIsland_MemorialPillar_EventScript_Memorial:: + lockall + goto_if_set FLAG_GOT_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced + goto_if_set FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced + msgbox FiveIsland_MemorialPillar_Text_HereLiesTectonixLemonadeOffering + checkitem ITEM_LEMONADE + goto_if_eq VAR_RESULT, TRUE, FiveIsland_MemorialPillar_EventScript_AskPlaceLemonade + releaseall + end + +FiveIsland_MemorialPillar_EventScript_AskPlaceLemonade:: + msgbox FiveIsland_MemorialPillar_Text_LeaveAnotherLemonadeOffering, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FiveIsland_MemorialPillar_EventScript_PlaceLemonade + releaseall + end + +FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: + removeitem ITEM_LEMONADE + msgbox FiveIsland_MemorialPillar_Text_PlacedCanOfLemonade + closemessage + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + delay 45 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox FiveIsland_MemorialPillar_Text_ThankYouPleaseTakeThis + giveitem ITEM_TM42 + goto_if_eq VAR_RESULT, FALSE, FiveIsland_MemorialPillar_EventScript_NoRoomForTM42 + call FiveIsland_MemorialPillar_EventScript_ReceivedTM42 + releaseall + end + +FiveIsland_MemorialPillar_EventScript_ReceivedTM42:: + msgbox FiveIsland_MemorialPillar_Text_BeGoodToYourMonsToo + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + setflag FLAG_GOT_TM42_AT_MEMORIAL_PILLAR + return + +FiveIsland_MemorialPillar_EventScript_NoRoomForTM42:: + setflag FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR + msgbox FiveIsland_MemorialPillar_Text_DontHaveRoomForIt + releaseall + end + +FiveIsland_MemorialPillar_EventScript_MemorialLemonadeAlreadyPlaced:: + msgbox FiveIsland_MemorialPillar_Text_HereLiesTectonix + releaseall + end + +FiveIsland_MemorialPillar_Text_MiloIntro:: + .string "I'm the eldest of the BIRD\n" + .string "BROTHERS.\p" + .string "The best thing about birds…\n" + .string "It has to be the beak.$" + +FiveIsland_MemorialPillar_Text_MiloDefeat:: + .string "Oh, so sharp!$" + +FiveIsland_MemorialPillar_Text_MiloPostBattle:: + .string "You can fly to FOUR ISLAND from\n" + .string "here.$" + +FiveIsland_MemorialPillar_Text_ChazIntro:: + .string "I'm the middle kid of the BIRD\n" + .string "BROTHERS.\p" + .string "The best thing about birds…\n" + .string "It has to be the wings.$" + +FiveIsland_MemorialPillar_Text_ChazDefeat:: + .string "Flap, flap!$" + +FiveIsland_MemorialPillar_Text_ChazPostBattle:: + .string "There was a really somber guy\n" + .string "over that way.$" + +FiveIsland_MemorialPillar_Text_HaroldIntro:: + .string "I'm the youngest of the BIRD\n" + .string "BROTHERS.\p" + .string "The best thing about birds…\n" + .string "It has to be the down.$" + +FiveIsland_MemorialPillar_Text_HaroldDefeat:: + .string "Down is so comfy…\n" + .string "It makes me drowsy…$" + +FiveIsland_MemorialPillar_Text_HaroldPostBattle:: + .string "It fills me with happiness when\n" + .string "bird POKéMON beg playfully…$" + +FiveIsland_MemorialPillar_Text_ScrubScrub:: + .string "Scrub, scrub…$" + +FiveIsland_MemorialPillar_Text_YourMonsLookHealthy:: + .string "Hello…\n" + .string "Your POKéMON look healthy…$" + +FiveIsland_MemorialPillar_Text_ThisIsWhereIBuriedMyOnix:: + .string "This is where I buried my ONIX…\n" + .string "It was named TECTONIX…$" + +FiveIsland_MemorialPillar_Text_HereLiesTectonixLemonadeOffering:: + .string "“Here lies TECTONIX” is engraved\n" + .string "on a boulder.\p" + .string "There is a LEMONADE placed as an\n" + .string "offering in front of the grave.$" + +FiveIsland_MemorialPillar_Text_LeaveAnotherLemonadeOffering:: + .string "Would you like to leave another\n" + .string "LEMONADE as an offering?$" + +FiveIsland_MemorialPillar_Text_PlacedCanOfLemonade:: + .string "{PLAYER} placed a can of LEMONADE\n" + .string "in front of the grave.$" + +FiveIsland_MemorialPillar_Text_ThankYouPleaseTakeThis:: + .string "Th-thank you…\p" + .string "That was my TECTONIX's favorite\n" + .string "drink…\p" + .string "I don't even know you, but your\n" + .string "act of kindness…\p" + .string "It's uplifted me a little.\p" + .string "Can you please take this as my\n" + .string "thanks?$" + +FiveIsland_MemorialPillar_Text_BeGoodToYourMonsToo:: + .string "Please be good to your POKéMON,\n" + .string "too.$" + +FiveIsland_MemorialPillar_Text_DontHaveRoomForIt:: + .string "If you don't have room for it,\n" + .string "I'll hold it for you till next time.$" + +FiveIsland_MemorialPillar_Text_StillHaveThingAsMyThanks:: + .string "Oh, it's you from that time…\p" + .string "I still have that thing I wanted\n" + .string "you to have as my thanks.$" + +FiveIsland_MemorialPillar_Text_ScrubScrubTectonix:: + .string "Scrub, scrub…\p" + .string "… … …\n" + .string "TECTONIX…$" + +FiveIsland_MemorialPillar_Text_HereLiesTectonix:: + .string "Boulders and rocks are neatly piled\n" + .string "up as a cairn.\p" + .string "“Here lies TECTONIX” is engraved\n" + .string "on a boulder.$" + diff --git a/data/maps/FiveIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/FiveIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..eb37b08ae49e --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,109 @@ +{ + "id": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", + "name": "FiveIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_FIVE_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_PokemonCenter_1F_EventScript_CooltrainerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_PokemonCenter_1F_EventScript_Chef", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_PokemonCenter_1F_EventScript_PokemonJournal", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_PokemonCenter_1F_EventScript_PokemonJournal", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/FiveIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..59e1aa1437b3 --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,34 @@ +FiveIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FiveIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +FiveIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_FIVE_ISLAND + end + +FiveIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +FiveIsland_PokemonCenter_1F_EventScript_Chef:: + msgbox FiveIsland_PokemonCenter_1F_Text_OnMyWayToPrepareMeal, MSGBOX_NPC + end + +FiveIsland_PokemonCenter_1F_EventScript_CooltrainerF:: + msgbox FiveIsland_PokemonCenter_1F_Text_YoureOnQuestToCatchEveryMon, MSGBOX_NPC + end + +FiveIsland_PokemonCenter_1F_Text_OnMyWayToPrepareMeal:: + .string "I'm on my way to prepare a meal\n" + .string "for a certain high-society person.$" + +FiveIsland_PokemonCenter_1F_Text_YoureOnQuestToCatchEveryMon:: + .string "You're on a quest to catch every\n" + .string "single kind of POKéMON?\p" + .string "…How incredible. Please tell me if\n" + .string "you catch a strong one!$" + diff --git a/data/maps/FiveIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/FiveIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..7a36ade18cd9 --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_FIVE_ISLAND_POKEMON_CENTER_2F", + "name": "FiveIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FIVE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FiveIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/FiveIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..37e2a389b94c --- /dev/null +++ b/data/maps/FiveIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +FiveIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +FiveIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +FiveIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +FiveIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/FiveIsland_ResortGorgeous_Frlg/map.json b/data/maps/FiveIsland_ResortGorgeous_Frlg/map.json new file mode 100644 index 000000000000..833b5cb4feff --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_Frlg/map.json @@ -0,0 +1,208 @@ +{ + "id": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "name": "FiveIsland_ResortGorgeous_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_RESORT_GORGEOUS", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_WATER_LABYRINTH", + "offset": -48, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 44, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_ResortGorgeous_EventScript_Daisy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 33, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "FiveIsland_ResortGorgeous_EventScript_Celina", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 12, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_ResortGorgeous_EventScript_Rayna", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 23, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_ResortGorgeous_EventScript_Jacki", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 33, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_ResortGorgeous_EventScript_Gillian", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 33, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT", + "movement_range_x": 10, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_ResortGorgeous_EventScript_Destin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 56, + "y": 7, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_ResortGorgeous_EventScript_Toby", + "flag": "0" + }, + { + "local_id": "LOCALID_RESORT_GORGEOUS_SELPHY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 39, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_RESORT_GORGEOUS_SELPHY" + } + ], + "warp_events": [ + { + "x": 64, + "y": 13, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 39, + "y": 8, + "elevation": 0, + "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 10, + "y": 7, + "elevation": 3, + "item": "ITEM_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 27, + "y": 11, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 40, + "y": 12, + "elevation": 3, + "item": "ITEM_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 27, + "y": 5, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 42, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_ResortGorgeous_EventScript_SelphysHouseSign" + } + ] +} diff --git a/data/maps/FiveIsland_ResortGorgeous_Frlg/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_Frlg/scripts.inc new file mode 100644 index 000000000000..e59845a11e0f --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_Frlg/scripts.inc @@ -0,0 +1,138 @@ +FiveIsland_ResortGorgeous_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, FiveIsland_ResortGorgeous_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, FiveIsland_ResortGorgeous_OnFrame + .byte 0 + +FiveIsland_ResortGorgeous_OnWarp:: + map_script_2 VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 1, FiveIsland_ResortGorgeous_EventScript_TurnPlayerNorth + .2byte 0 + +FiveIsland_ResortGorgeous_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +FiveIsland_ResortGorgeous_OnFrame:: + map_script_2 VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 1, FiveIsland_ResortGorgeous_EventScript_SelphyReturnHomeScene + .2byte 0 + +FiveIsland_ResortGorgeous_EventScript_SelphyReturnHomeScene:: + lockall + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FiveIsland_ResortGorgeous_Text_SelphyThanksYouMayGoNow + closemessage + applymovement LOCALID_RESORT_GORGEOUS_SELPHY, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + opendoor 39, 8 + waitdooranim + applymovement LOCALID_RESORT_GORGEOUS_SELPHY, FiveIsland_ResortGorgeous_Movement_SelphyEnterHome + waitmovement 0 + closedoor 39, 8 + waitdooranim + removeobject LOCALID_RESORT_GORGEOUS_SELPHY + clearflag FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY + setvar VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS, 2 + releaseall + end + +FiveIsland_ResortGorgeous_Movement_SelphyEnterHome:: + walk_up + set_invisible + step_end + +FiveIsland_ResortGorgeous_EventScript_SelphysHouseSign:: + msgbox FiveIsland_ResortGorgeous_Text_SelphysHouse, MSGBOX_SIGN + end + +FiveIsland_ResortGorgeous_Text_DaisyIntro:: + .string "With these hands, I will create\n" + .string "my victory!$" + +FiveIsland_ResortGorgeous_Text_DaisyDefeat:: + .string "The shame of this…\n" + .string "I'm red-faced…$" + +FiveIsland_ResortGorgeous_Text_DaisyPostBattle:: + .string "Uh-oh, my paint tubes have\n" + .string "scattered everywhere!$" + +FiveIsland_ResortGorgeous_Text_CelinaIntro:: + .string "Excuse me!\n" + .string "I'm trying to paint.\l" + .string "Please keep out of my sight!$" + +FiveIsland_ResortGorgeous_Text_CelinaDefeat:: + .string "This loss…\n" + .string "I feel like I'm whiting out…$" + +FiveIsland_ResortGorgeous_Text_CelinaPostBattle:: + .string "GILLIAN?\n" + .string "Please tilt your head slightly…\l" + .string "There! That's the look I want!$" + +FiveIsland_ResortGorgeous_Text_RaynaIntro:: + .string "Hmm…\n" + .string "The angle, it is not quite there…$" + +FiveIsland_ResortGorgeous_Text_RaynaDefeat:: + .string "Oh…\n" + .string "My feelings, they are blue…$" + +FiveIsland_ResortGorgeous_Text_RaynaPostBattle:: + .string "The sky and the sea…\n" + .string "They are so fickle.\p" + .string "Their changing expressions make\n" + .string "them difficult to capture.$" + +FiveIsland_ResortGorgeous_Text_JackiIntro:: + .string "I am visiting my friend's retreat,\n" + .string "if you must know.$" + +FiveIsland_ResortGorgeous_Text_JackiDefeat:: + .string "Oh, my, so strong.$" + +FiveIsland_ResortGorgeous_Text_JackiPostBattle:: + .string "I find it pleasurable to leisurely\n" + .string "battle in the gentle sea breeze.$" + +FiveIsland_ResortGorgeous_Text_GillianIntro:: + .string "I'm thinking of having a pool\n" + .string "made specially for POKéMON.$" + +FiveIsland_ResortGorgeous_Text_GillianDefeat:: + .string "Oh, my goodness gracious!$" + +FiveIsland_ResortGorgeous_Text_GillianPostBattle:: + .string "A pool would be nice, but I must\n" + .string "say, a sun-room may be sublime.$" + +FiveIsland_ResortGorgeous_Text_DestinIntro:: + .string "I'm a good runner.\n" + .string "I'm really fast!$" + +FiveIsland_ResortGorgeous_Text_DestinDefeat:: + .string "Oops!\n" + .string "I rushed things!$" + +FiveIsland_ResortGorgeous_Text_DestinPostBattle:: + .string "When I run with the wind, it feels\n" + .string "like I could fly!$" + +FiveIsland_ResortGorgeous_Text_TobyIntro:: + .string "I say, this marine life here at\n" + .string "this resort agrees with me.$" + +FiveIsland_ResortGorgeous_Text_TobyDefeat:: + .string "That's a shocker!\n" + .string "You must be joking.$" + +FiveIsland_ResortGorgeous_Text_TobyPostBattle:: + .string "Getting so serious over this…\n" + .string "How nonsensical.$" + +FiveIsland_ResortGorgeous_Text_SelphyThanksYouMayGoNow:: + .string "SELPHY: Thank you.\p" + .string "You may go now.$" + +FiveIsland_ResortGorgeous_Text_SelphysHouse:: + .string "SELPHY'S HOUSE$" + diff --git a/data/maps/FiveIsland_ResortGorgeous_House_Frlg/map.json b/data/maps/FiveIsland_ResortGorgeous_House_Frlg/map.json new file mode 100644 index 000000000000..b0293bc1462b --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_House_Frlg/map.json @@ -0,0 +1,78 @@ +{ + "id": "MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "name": "FiveIsland_ResortGorgeous_House_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_RESORT_GORGEOUS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_RESORT_GORGEOUS_HOUSE_SELPHY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_ResortGorgeous_House_EventScript_Selphy", + "flag": "FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY" + }, + { + "local_id": "LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_ResortGorgeous_House_EventScript_Butler", + "flag": "FLAG_HIDE_SELPHYS_BUTLER" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "FiveIsland_ResortGorgeous_House_EventScript_PokemonJournal" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "FiveIsland_ResortGorgeous_House_EventScript_PokemonJournal" + } + ] +} diff --git a/data/maps/FiveIsland_ResortGorgeous_House_Frlg/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House_Frlg/scripts.inc new file mode 100644 index 000000000000..92d060ddc5bd --- /dev/null +++ b/data/maps/FiveIsland_ResortGorgeous_House_Frlg/scripts.inc @@ -0,0 +1,210 @@ +.equ SHOWN_REQUESTED_MON, FLAG_TEMP_2 + +FiveIsland_ResortGorgeous_House_Frlg_MapScripts:: + .byte 0 + +FiveIsland_ResortGorgeous_House_EventScript_Selphy:: + lock + faceplayer + goto_if_set SHOWN_REQUESTED_MON, FiveIsland_ResortGorgeous_House_EventScript_JustFulfilledRequest + goto_if_eq VAR_RESORT_GORGEOUS_REQUESTED_MON, 0xFFFF, FiveIsland_ResortGorgeous_House_EventScript_RequestTookTooLong + goto_if_ne VAR_RESORT_GORGEOUS_REQUESTED_MON, SPECIES_NONE, FiveIsland_ResortGorgeous_House_EventScript_CheckForRequestedMon + msgbox FiveIsland_ResortGorgeous_House_Text_PleaseHearMyWish + goto FiveIsland_ResortGorgeous_House_EventScript_RequestMon + end + +FiveIsland_ResortGorgeous_House_EventScript_RequestMon:: + special SampleResortGorgeousMonAndReward + msgbox FiveIsland_ResortGorgeous_House_Text_WishToSeeMonPlease + release + end + +FiveIsland_ResortGorgeous_House_EventScript_RequestTookTooLong:: + msgbox FiveIsland_ResortGorgeous_House_Text_OhImTiredOfWaiting + goto FiveIsland_ResortGorgeous_House_EventScript_RequestMon + end + +FiveIsland_ResortGorgeous_House_EventScript_CheckForRequestedMon:: + copyvar VAR_0x8004, VAR_RESORT_GORGEOUS_REQUESTED_MON + specialvar VAR_RESULT, DoesPlayerPartyContainSpecies + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon + goto FiveIsland_ResortGorgeous_House_EventScript_RequestMon + end + +FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: + special SampleResortGorgeousMonAndReward + msgbox FiveIsland_ResortGorgeous_House_Text_MonYouCaughtForMeThankYou + addobject LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerEnter + waitmovement 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox FiveIsland_ResortGorgeous_House_Text_ButlerYesMyLady + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_SELPHY, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FiveIsland_ResortGorgeous_House_Text_SelphyGiveTokenOfAppreciation + textcolor NPC_TEXT_COLOR_MALE + msgbox FiveIsland_ResortGorgeous_House_Text_ButlerIShallDoAsYouBid + closemessage + call_if_eq VAR_FACING, DIR_NORTH, FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerNorth + call_if_eq VAR_FACING, DIR_SOUTH, FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerSouth + call_if_eq VAR_FACING, DIR_EAST, FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerEast + call_if_eq VAR_FACING, DIR_WEST, FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerWest + copyobjectxytoperm LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER + msgbox FiveIsland_ResortGorgeous_House_Text_ButlerPleaseAcceptThisAsHerThanks + giveitem VAR_RESORT_GORGEOUS_REWARD + goto_if_eq VAR_RESULT, FALSE, FiveIsland_ResortGorgeous_House_EventScript_NoRoomForReward + setflag SHOWN_REQUESTED_MON + setvar VAR_RESORT_GORGEOUS_REQUESTED_MON, SPECIES_NONE + release + end + +FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerNorth:: + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_SELPHY, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerNorth + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerSouth:: + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerSouth + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerEast:: + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_SELPHY, Common_Movement_WalkInPlaceFasterLeft + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerEast + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerWest:: + applymovement LOCALID_RESORT_GORGEOUS_HOUSE_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerWest + waitmovement 0 + return + +FiveIsland_ResortGorgeous_House_EventScript_NoRoomForReward:: + textcolor NPC_TEXT_COLOR_MALE + msgbox FiveIsland_ResortGorgeous_House_Text_ButlerBagAppearsToBeFull + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FiveIsland_ResortGorgeous_House_Text_OhHowDisappointing + setflag SHOWN_REQUESTED_MON + setvar VAR_RESORT_GORGEOUS_REQUESTED_MON, SPECIES_NONE + release + end + +FiveIsland_ResortGorgeous_House_EventScript_JustFulfilledRequest:: + msgbox FiveIsland_ResortGorgeous_House_Text_SelphyWishYouBestOfLuck + release + end + +FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerNorth:: + walk_left + walk_left + walk_left + walk_down + walk_down + walk_down + walk_in_place_faster_right + step_end + +FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerSouth:: + walk_left + walk_left + walk_in_place_faster_down + step_end + +FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerEast:: + walk_left + walk_left + walk_left + walk_down + step_end + +@ Very odd. If the player is talking to Selphy facing West, then the player has clipped through the table +@ In this case rather than approach the player the Butler walks up, which clips the Butler into a wall +FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerWest:: + walk_up + step_end + +FiveIsland_ResortGorgeous_House_Movement_ButlerEnter:: + walk_in_place_down + step_end + +@ Addressed as "Sebastian" but speaks only as "Butler" +FiveIsland_ResortGorgeous_House_EventScript_Butler:: + msgbox FiveIsland_ResortGorgeous_House_Text_LadySelphySmileHasBrillianceOfSun, MSGBOX_NPC + end + +FiveIsland_ResortGorgeous_House_Text_PleaseHearMyWish:: + .string "SELPHY: Oh?\n" + .string "Do I know you from somewhere?\p" + .string "Oh, but that doesn't matter.\p" + .string "I am exquisitely bored.\n" + .string "Please, hear my wish.$" + +FiveIsland_ResortGorgeous_House_Text_WishToSeeMonPlease:: + .string "I wish to see a POKéMON.\n" + .string "A darling {STR_VAR_1}.\p" + .string "I want to see one right away.\n" + .string "Please, make my wish come true.$" + +FiveIsland_ResortGorgeous_House_Text_OhImTiredOfWaiting:: + .string "SELPHY: Oh, I'm tired of this.\n" + .string "I'm tired of waiting for you.\p" + .string "I'll forgive you this time, but\n" + .string "please don't fail me next time.$" + +FiveIsland_ResortGorgeous_House_Text_MonYouCaughtForMeThankYou:: + .string "SELPHY: Oh, hello, there.\p" + .string "Oh, my gracious. That must be the\n" + .string "{STR_VAR_1} you caught for me.\p" + .string "Giggle…\n" + .string "I see a resemblance to you.\p" + .string "Thank you so kindly.\p" + .string "… … … … … …\n" + .string "Is something the matter?\p" + .string "You may leave.\p" + .string "… … … … … …\n" + .string "Oh, fine. I understand now.\p" + .string "SEBASTIAN!\n" + .string "I need you here this instant!$" + +FiveIsland_ResortGorgeous_House_Text_ButlerYesMyLady:: + .string "Butler: Yes, my lady.$" + +FiveIsland_ResortGorgeous_House_Text_SelphyGiveTokenOfAppreciation:: + .string "SELPHY: See to it that this person\n" + .string "is given a token of appreciation.$" + +FiveIsland_ResortGorgeous_House_Text_ButlerIShallDoAsYouBid:: + .string "Butler: I shall do as you bid,\n" + .string "my lady.$" + +FiveIsland_ResortGorgeous_House_Text_ButlerPleaseAcceptThisAsHerThanks:: + .string "Butler: I sincerely thank you for\n" + .string "pleasing Lady SELPHY.\p" + .string "Please accept this as her thanks…$" + +FiveIsland_ResortGorgeous_House_Text_ButlerBagAppearsToBeFull:: + .string "Butler: Your BAG appears to be\n" + .string "unfortunately full.$" + +FiveIsland_ResortGorgeous_House_Text_OhHowDisappointing:: + .string "Oh…\n" + .string "How disappointing.$" + +FiveIsland_ResortGorgeous_House_Text_SelphyWishYouBestOfLuck:: + .string "SELPHY: I wish you the best of\n" + .string "luck.$" + +FiveIsland_ResortGorgeous_House_Text_LadySelphySmileHasBrillianceOfSun:: + .string "Butler: The smile of Lady SELPHY\n" + .string "has the brilliance of the sun.\p" + .string "Please, I beg you to bring joy\n" + .string "to Lady SELPHY.$" + diff --git a/data/maps/FiveIsland_RocketWarehouse_Frlg/map.json b/data/maps/FiveIsland_RocketWarehouse_Frlg/map.json new file mode 100644 index 000000000000..03b7bcac012d --- /dev/null +++ b/data/maps/FiveIsland_RocketWarehouse_Frlg/map.json @@ -0,0 +1,408 @@ +{ + "id": "MAP_FIVE_ISLAND_ROCKET_WAREHOUSE", + "name": "FiveIsland_RocketWarehouse_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_ROCKET_WAREHOUSE", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCKET_WAREHOUSE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_WAREHOUSE_GRUNT2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 15, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_RocketWarehouse_EventScript_Grunt2", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "local_id": "LOCALID_WAREHOUSE_GRUNT3", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 17, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_RocketWarehouse_EventScript_Grunt3", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "local_id": "LOCALID_WAREHOUSE_ADMIN1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", + "x": 27, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_RocketWarehouse_EventScript_Admin1", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "local_id": "LOCALID_WAREHOUSE_ADMIN2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 25, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_RocketWarehouse_EventScript_Admin2", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FiveIsland_RocketWarehouse_EventScript_Grunt1", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 27, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_Gideon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 8, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_ItemBigPearl", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_BIG_PEARL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_ItemTM36", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_TM36" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_ItemPearl", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_PEARL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_ItemUpGrade", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_UP_GRADE" + } + ], + "warp_events": [ + { + "x": 24, + "y": 25, + "elevation": 3, + "dest_map": "MAP_FIVE_ISLAND_MEADOW", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROCKET_WAREHOUSE", + "var_value": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_Admin2Trigger" + }, + { + "type": "trigger", + "x": 23, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROCKET_WAREHOUSE", + "var_value": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_Admin2Trigger" + }, + { + "type": "trigger", + "x": 24, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROCKET_WAREHOUSE", + "var_value": "0", + "script": "FiveIsland_RocketWarehouse_EventScript_Admin2Trigger" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 11, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 26, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "FiveIsland_RocketWarehouse_EventScript_Computer" + }, + { + "type": "hidden_item", + "x": 27, + "y": 2, + "elevation": 0, + "item": "ITEM_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 7, + "y": 16, + "elevation": 0, + "item": "ITEM_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 12, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 10, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 9, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 8, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 7, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 11, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 10, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 11, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 10, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 8, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 7, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 8, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 7, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 5, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 4, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 5, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 3, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 2, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 2, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + }, + { + "type": "sign", + "x": 3, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FiveIsland_RocketWarehouse_EventScript_Cage" + } + ] +} diff --git a/data/maps/FiveIsland_RocketWarehouse_Frlg/scripts.inc b/data/maps/FiveIsland_RocketWarehouse_Frlg/scripts.inc new file mode 100644 index 000000000000..25c9af9b4c08 --- /dev/null +++ b/data/maps/FiveIsland_RocketWarehouse_Frlg/scripts.inc @@ -0,0 +1,311 @@ +.equ PLAYER_X_POS, VAR_0x8004 +.equ PLAYER_Y_POS, VAR_0x8005 + +FiveIsland_RocketWarehouse_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, FiveIsland_RocketWarehouse_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, FiveIsland_RocketWarehouse_OnTransition + .byte 0 + +FiveIsland_RocketWarehouse_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE + end + +FiveIsland_RocketWarehouse_OnLoad:: + call_if_defeated TRAINER_TEAM_ROCKET_ADMIN, FiveIsland_RocketWarehouse_EventScript_SetArrowsForReEntry + end + +FiveIsland_RocketWarehouse_EventScript_SetArrowsForReEntry:: + setmetatile 26, 20, METATILE_SilphCo_Arrow_Up, 0 + setmetatile 27, 20, METATILE_SilphCo_Arrow_Up, 0 + return + +FiveIsland_RocketWarehouse_EventScript_Cage:: + lockall + goto_if_set FLAG_DEFEATED_ROCKETS_IN_WAREHOUSE, FiveIsland_RocketWarehouse_EventScript_CageUnlocked + msgbox FiveIsland_RocketWarehouse_Text_ManyMonsLockedInPen + releaseall + end + +FiveIsland_RocketWarehouse_EventScript_CageUnlocked:: + msgbox FiveIsland_RocketWarehouse_Text_PenUnlockedMonsFled + releaseall + end + +FiveIsland_RocketWarehouse_EventScript_Computer:: + msgbox FiveIsland_RocketWarehouse_Text_ReportWithGraphsAndText, MSGBOX_SIGN + end + +FiveIsland_RocketWarehouse_EventScript_Admin2Trigger:: + lockall + applymovement LOCALID_WAREHOUSE_ADMIN2, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + setvar VAR_MAP_SCENE_ROCKET_WAREHOUSE, 1 + releaseall + end + +FiveIsland_RocketWarehouse_EventScript_Gideon:: + trainerbattle_single TRAINER_SCIENTIST_GIDEON, FiveIsland_RocketWarehouse_Text_GideonIntro, FiveIsland_RocketWarehouse_Text_GideonDefeat, FiveIsland_RocketWarehouse_EventScript_DefeatedGideon + goto_if_set FLAG_IS_CHAMPION, FiveIsland_RocketWarehouse_EventScript_MentionGiovannisKid + msgbox FiveIsland_RocketWarehouse_Text_GetLostLeaveMeBe, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_MentionGiovannisKid:: + famechecker FAMECHECKER_GIOVANNI, 5 + msgbox FiveIsland_RocketWarehouse_Text_GiovannisKidHasRedHair, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_DefeatedGideon:: + msgbox FiveIsland_RocketWarehouse_Text_GideonPostBattle + setflag FLAG_RECOVERED_SAPPHIRE + giveitem ITEM_SAPPHIRE + release + end + +FiveIsland_RocketWarehouse_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_47, FiveIsland_RocketWarehouse_Text_Grunt2Intro, FiveIsland_RocketWarehouse_Text_Grunt2Defeat + msgbox FiveIsland_RocketWarehouse_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_Grunt3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_48, FiveIsland_RocketWarehouse_Text_Grunt3Intro, FiveIsland_RocketWarehouse_Text_Grunt3Defeat + msgbox FiveIsland_RocketWarehouse_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_Admin2:: + trainerbattle_single TRAINER_TEAM_ROCKET_ADMIN_2, FiveIsland_RocketWarehouse_Text_Admin2Intro, FiveIsland_RocketWarehouse_Text_Admin2Defeat, FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin2 + msgbox FiveIsland_RocketWarehouse_Text_Admin2PostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin2:: + getplayerxy PLAYER_X_POS, PLAYER_Y_POS + call_if_le PLAYER_X_POS, 24, FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin2 + msgbox FiveIsland_RocketWarehouse_Text_Admin2PostBattle + closemessage + fadescreen FADE_TO_BLACK + removeobject LOCALID_WAREHOUSE_GRUNT2 + removeobject LOCALID_WAREHOUSE_GRUNT3 + removeobject LOCALID_WAREHOUSE_ADMIN2 + removeobject LOCALID_WAREHOUSE_ADMIN1 + setflag FLAG_HIDE_FIVE_ISLAND_ROCKETS + fadescreen FADE_FROM_BLACK + setvar VAR_MAP_SCENE_ROCKET_WAREHOUSE, 1 + setflag FLAG_DEFEATED_ROCKETS_IN_WAREHOUSE + release + end + +FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin2:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_42, FiveIsland_RocketWarehouse_Text_Grunt1Intro, FiveIsland_RocketWarehouse_Text_Grunt1Defeat + msgbox FiveIsland_RocketWarehouse_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_Admin1:: + trainerbattle_single TRAINER_TEAM_ROCKET_ADMIN, FiveIsland_RocketWarehouse_Text_Admin1Intro, FiveIsland_RocketWarehouse_Text_Admin1Defeat, FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin1 + msgbox FiveIsland_RocketWarehouse_Text_MadeItSoYouCanComeBackThrough, MSGBOX_AUTOCLOSE + end + +FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin1:: + getplayerxy PLAYER_X_POS, PLAYER_Y_POS + specialvar VAR_RESULT, GetPlayerFacingDirection + call_if_eq VAR_RESULT, DIR_NORTH, FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin1 + msgbox FiveIsland_RocketWarehouse_Text_Admin1PostBattle + closemessage + call_if_le PLAYER_X_POS, 24, FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitchFar + call_if_eq PLAYER_X_POS, 25, FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitch + call_if_eq PLAYER_X_POS, 26, FiveIsland_RocketWarehouse_EventScript_AdminFaceSwitch + call_if_eq PLAYER_X_POS, 27, FiveIsland_RocketWarehouse_EventScript_AdminFaceSwitch + playse SE_PIN + call FiveIsland_RocketWarehouse_EventScript_SetArrowsForReEntry + special DrawWholeMapView + waitse + call_if_le PLAYER_X_POS, 24, FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft + call_if_eq PLAYER_X_POS, 25, FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft + call_if_eq PLAYER_X_POS, 26, FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft + call_if_eq PLAYER_X_POS, 27, FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerDown + msgbox FiveIsland_RocketWarehouse_Text_MadeItSoYouCanComeBackThrough + release + end + +FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin1:: + goto_if_eq PLAYER_X_POS, 27, Common_EventScript_NopReturn + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitchFar:: + applymovement LOCALID_WAREHOUSE_ADMIN1, FiveIsland_RocketWarehouse_Movement_AdminWalkToSwitchFar + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitch:: + applymovement LOCALID_WAREHOUSE_ADMIN1, FiveIsland_RocketWarehouse_Movement_AdminWalkToSwitch + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_AdminFaceSwitch:: + applymovement LOCALID_WAREHOUSE_ADMIN1, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft:: + applymovement LOCALID_WAREHOUSE_ADMIN1, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerDown:: + applymovement LOCALID_WAREHOUSE_ADMIN1, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +FiveIsland_RocketWarehouse_Movement_AdminWalkToSwitchFar:: + walk_right + walk_right + walk_in_place_faster_up + step_end + +FiveIsland_RocketWarehouse_Movement_AdminWalkToSwitch:: + walk_right + walk_in_place_faster_up + step_end + +FiveIsland_RocketWarehouse_Text_ManyMonsLockedInPen:: + .string "There are many POKéMON locked\n" + .string "away in the pen…$" + +FiveIsland_RocketWarehouse_Text_PenUnlockedMonsFled:: + .string "The pen door is unlocked.\n" + .string "The POKéMON appear to have fled.$" + +FiveIsland_RocketWarehouse_Text_Grunt2Intro:: + .string "Did you come here knowing it's\n" + .string "TEAM ROCKET's WAREHOUSE?$" + +FiveIsland_RocketWarehouse_Text_Grunt2Defeat:: + .string "What do you think you're doing?!$" + +FiveIsland_RocketWarehouse_Text_Grunt2PostBattle:: + .string "TEAM ROCKET broke up?\n" + .string "What planet are you from?$" + +FiveIsland_RocketWarehouse_Text_Grunt1Intro:: + .string "Oh, now your POKéMON look strong.\n" + .string "You're willing to sell them?\p" + .string "Oh?\n" + .string "You wanted to battle?$" + +FiveIsland_RocketWarehouse_Text_Grunt1Defeat:: + .string "Oh, but…\n" + .string "Too much!$" + +FiveIsland_RocketWarehouse_Text_Grunt1PostBattle:: + .string "We can give you a great price.\n" + .string "Sell us your POKéMON!$" + +FiveIsland_RocketWarehouse_Text_Grunt3Intro:: + .string "I got word about you from the\n" + .string "others.\p" + .string "But there's no way a kid like you'd\n" + .string "know our BOSS GIOVANNI!$" + +FiveIsland_RocketWarehouse_Text_Grunt3Defeat:: + .string "Don't…you…dare…laugh…$" + +FiveIsland_RocketWarehouse_Text_Grunt3PostBattle:: + .string "Don't mess in the doings of adults,\n" + .string "you jumped-up pip-squeak!$" + +FiveIsland_RocketWarehouse_Text_Admin1Intro:: + .string "I don't know or care if what I'm\n" + .string "doing is right or wrong…\p" + .string "I just put my faith in GIOVANNI\n" + .string "and do as I am told.$" + +FiveIsland_RocketWarehouse_Text_Admin1Defeat:: + .string "I…\n" + .string "I'm shattered…$" + +FiveIsland_RocketWarehouse_Text_Admin1PostBattle:: + .string "You're doing things according to\n" + .string "your beliefs and morals.\p" + .string "I understand now…$" + +FiveIsland_RocketWarehouse_Text_MadeItSoYouCanComeBackThrough:: + .string "I've made it so you can come back\n" + .string "in through there.\p" + .string "Why don't you go get rested and\n" + .string "refreshed for what lies ahead?\p" + .string "The ADMIN after me outranks me\n" + .string "thoroughly as a TRAINER.\p" + .string "You'd better steel yourself for one\n" + .string "harsh challenge.$" + +FiveIsland_RocketWarehouse_Text_Admin2Intro:: + .string "That's quite enough of you \n" + .string "playing the hero, kid.\p" + .string "Spreading lies about how TEAM\n" + .string "ROCKET has disbanded…\p" + .string "It's such an obvious attempt to\n" + .string "cause confusion in our ranks.\p" + .string "Fortunately, we're not so ignorant\n" + .string "to fall for the lies of a child!\p" + .string "And now, I'll show you how scary\n" + .string "an angry adult can be!$" + +FiveIsland_RocketWarehouse_Text_Admin2Defeat:: + .string "Urgh…\n" + .string "You were too strong…\p" + .string "…\n" + .string "Th-that's GIOVANNI's BADGE!\p" + .string "So it's true?\n" + .string "TEAM ROCKET really has disbanded?$" + +FiveIsland_RocketWarehouse_Text_Admin2PostBattle:: + .string "We will abandon this WAREHOUSE…\p" + .string "But don't think this is over.\n" + .string "I won't let this be the end.\p" + .string "I will find GIOVANNI.\n" + .string "And I will resurrect TEAM ROCKET!\l" + .string "I will…\p" + .string "Until then, farewell!$" + +FiveIsland_RocketWarehouse_Text_ReportWithGraphsAndText:: + .string "A report with graphs and text is on\n" + .string "the PC monitor.\p" + .string "“The Influence of Magnetic Waves\n" + .string "on POKéMON Evolution”…\p" + .string "… … … … … …\p" + .string "It's too difficult to understand…$" + +FiveIsland_RocketWarehouse_Text_GideonIntro:: + .string "I almost managed to sell the\n" + .string "SAPPHIRE for huge money…\p" + .string "Then, you just had to come along\n" + .string "and blow the whole deal apart!\p" + .string "Fufu… Fufufufu…\n" + .string "There's no forgiveness for you!$" + +FiveIsland_RocketWarehouse_Text_GideonDefeat:: + .string "Gah! Darn!\n" + .string "Darn! Darn!$" + +FiveIsland_RocketWarehouse_Text_GideonPostBattle:: + .string "If I can't sell it, it's worthless!\n" + .string "Go ahead, take it!$" + +FiveIsland_RocketWarehouse_Text_GetLostLeaveMeBe:: + .string "What do you want now?\n" + .string "Go on, get lost, leave me be.$" + +FiveIsland_RocketWarehouse_Text_GiovannisKidHasRedHair:: + .string "What, you again?\p" + .string "You… You're not GIOVANNI's kid,\n" + .string "are you?\p" + .string "No, that can't be right!\n" + .string "GIOVANNI's kid has red hair.\p" + .string "You don't have any reasons for\n" + .string "bugging me. Leave me alone!$" + diff --git a/data/maps/FiveIsland_WaterLabyrinth_Frlg/map.json b/data/maps/FiveIsland_WaterLabyrinth_Frlg/map.json new file mode 100644 index 000000000000..6e0060b1b4e0 --- /dev/null +++ b/data/maps/FiveIsland_WaterLabyrinth_Frlg/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_FIVE_ISLAND_WATER_LABYRINTH", + "name": "FiveIsland_WaterLabyrinth_Frlg", + "layout": "LAYOUT_FIVE_ISLAND_WATER_LABYRINTH", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_WATER_LABYRINTH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", + "offset": 48, + "direction": "up" + }, + { + "map": "MAP_FIVE_ISLAND", + "offset": 48, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 14, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FiveIsland_WaterLabyrinth_EventScript_EggGentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FiveIsland_WaterLabyrinth_EventScript_Alize", + "flag": "0" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/FiveIsland_WaterLabyrinth_Frlg/scripts.inc b/data/maps/FiveIsland_WaterLabyrinth_Frlg/scripts.inc new file mode 100644 index 000000000000..2d5baa8115cb --- /dev/null +++ b/data/maps/FiveIsland_WaterLabyrinth_Frlg/scripts.inc @@ -0,0 +1,126 @@ +FiveIsland_WaterLabyrinth_Frlg_MapScripts:: + .byte 0 + +FiveIsland_WaterLabyrinth_EventScript_EggGentleman:: + lock + faceplayer + goto_if_set FLAG_GOT_TOGEPI_EGG, FiveIsland_WaterLabyrinth_EventScript_PostEggComment + goto_if_set FLAG_NO_ROOM_FOR_TOGEPI_EGG, FiveIsland_WaterLabyrinth_EventScript_ReturnForEgg + msgbox FiveIsland_WaterLabyrinth_Text_LetMeTakeLookAtMons + specialvar VAR_RESULT, GetLeadMonFriendship + goto_if_eq VAR_RESULT, 6, FiveIsland_WaterLabyrinth_EventScript_LeadMonMaxFriendship + msgbox FiveIsland_WaterLabyrinth_Text_HmmISeeIsee + release + end + +FiveIsland_WaterLabyrinth_EventScript_MonDaisyComment:: + famechecker FAMECHECKER_DAISY, 2 + msgbox FiveIsland_WaterLabyrinth_Text_CuteMonRemindsMeOfDaisy + release + end + +FiveIsland_WaterLabyrinth_EventScript_LeadMonMaxFriendship:: + msgbox FiveIsland_WaterLabyrinth_Text_TreatMonRightHaveThis + goto FiveIsland_WaterLabyrinth_EventScript_TryGiveEgg + end + +FiveIsland_WaterLabyrinth_EventScript_TryGiveEgg:: + getpartysize + goto_if_eq VAR_RESULT, PARTY_SIZE, FiveIsland_WaterLabyrinth_EventScript_NoRoomForEgg + setflag FLAG_GOT_TOGEPI_EGG + giveegg SPECIES_TOGEPI + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message FiveIsland_WaterLabyrinth_Text_ReceivedEggFromMan + waitfanfare + waitmessage + call EventScript_RestorePrevTextColor + goto FiveIsland_WaterLabyrinth_EventScript_PostEggComment + end + +@ If the player has a Togepi/Togetic from this game (assumed to be the one the man gave you) then comment on it +@ Otherwise make normal comment +FiveIsland_WaterLabyrinth_EventScript_PostEggComment:: + bufferspeciesname STR_VAR_2, SPECIES_TOGEPI + setvar VAR_0x8004, SPECIES_TOGEPI + specialvar VAR_RESULT, PlayerPartyContainsSpeciesWithPlayerID + goto_if_eq VAR_RESULT, TRUE, FiveIsland_WaterLabyrinth_EventScript_MonDaisyComment + bufferspeciesname STR_VAR_2, SPECIES_TOGETIC + setvar VAR_0x8004, SPECIES_TOGETIC + specialvar VAR_RESULT, PlayerPartyContainsSpeciesWithPlayerID + goto_if_eq VAR_RESULT, TRUE, FiveIsland_WaterLabyrinth_EventScript_MonDaisyComment + msgbox FiveIsland_WaterLabyrinth_Text_GladIMetSomeoneLikeYou + release + end + +FiveIsland_WaterLabyrinth_EventScript_NoRoomForEgg:: + setflag FLAG_NO_ROOM_FOR_TOGEPI_EGG + msgbox FiveIsland_WaterLabyrinth_Text_DontHaveSpaceInYourParty + release + end + +FiveIsland_WaterLabyrinth_EventScript_ReturnForEgg:: + goto FiveIsland_WaterLabyrinth_EventScript_TryGiveEgg + end + +FiveIsland_WaterLabyrinth_Text_LetMeTakeLookAtMons:: + .string "You travel all over the place,\n" + .string "don't you?\p" + .string "You're not driving your POKéMON\n" + .string "too harshly, are you?\p" + .string "Let me take a look.\n" + .string "… … … … … …$" + +FiveIsland_WaterLabyrinth_Text_HmmISeeIsee:: + .string "Ah, hmm…\n" + .string "I see, I see…$" + +FiveIsland_WaterLabyrinth_Text_TreatMonRightHaveThis:: + .string "Oh, impressive.\n" + .string "You treat your POKéMON right.\p" + .string "I think you can be entrusted with\n" + .string "this.\p" + .string "Please, I'd like you to have this.$" + +FiveIsland_WaterLabyrinth_Text_ReceivedEggFromMan:: + .string "{PLAYER} received an EGG\n" + .string "from the man!$" + +FiveIsland_WaterLabyrinth_Text_DontHaveSpaceInYourParty:: + .string "…Unfortunately, you don't have\n" + .string "space for this in your party.\p" + .string "You'd better come back for it\n" + .string "another time.$" + +@ Unused +FiveIsland_WaterLabyrinth_Text_YouveComeBackForTheEgg:: + .string "やあ\n" + .string "タマゴを もらいに\l" + .string "きて くれたんだね$" + +FiveIsland_WaterLabyrinth_Text_GladIMetSomeoneLikeYou:: + .string "I received that EGG while I was\n" + .string "traveling.\p" + .string "I'm glad I met someone like you.$" + +FiveIsland_WaterLabyrinth_Text_CuteMonRemindsMeOfDaisy:: + .string "Oh, hello.\n" + .string "That's a cute {STR_VAR_2}.\p" + .string "Seeing it reminds me of a sweet \n" + .string "little girl I met while traveling.\p" + .string "She was gently grooming POKéMON…\n" + .string "She was a little angel.\p" + .string "That little girl's name…\n" + .string "I think it was DAISY.$" + +FiveIsland_WaterLabyrinth_Text_AlizeIntro:: + .string "This is an excellent environment\n" + .string "for raising POKéMON.$" + +FiveIsland_WaterLabyrinth_Text_AlizeDefeat:: + .string "Your POKéMON are growing up\n" + .string "admirably well!$" + +FiveIsland_WaterLabyrinth_Text_AlizePostBattle:: + .string "You know, I think you have the\n" + .string "talent to be a good BREEDER.$" diff --git a/data/maps/FortreeCity_House1/scripts.inc b/data/maps/FortreeCity_House1/scripts.inc index a072f561065c..66d8b39f7e8a 100644 --- a/data/maps/FortreeCity_House1/scripts.inc +++ b/data/maps/FortreeCity_House1/scripts.inc @@ -5,27 +5,7 @@ FortreeCity_House1_EventScript_Trader:: lock faceplayer goto_if_set FLAG_FORTREE_NPC_TRADE_COMPLETED, FortreeCity_House1_EventScript_TradeCompleted - setvar VAR_0x8008, INGAME_TRADE_PLUSLE - copyvar VAR_0x8004, VAR_0x8008 - specialvar VAR_RESULT, GetInGameTradeSpeciesInfo - copyvar VAR_0x8009, VAR_RESULT - msgbox FortreeCity_House1_Text_YouWillTradeWontYou, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, FortreeCity_House1_EventScript_DeclineTrade - special ChoosePartyMon - waitstate - copyvar VAR_0x800A, VAR_0x8004 - 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 - 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 STR_VAR_1, VAR_0x8009 - msgbox FortreeCity_House1_Text_MonYouTakeCare, MSGBOX_DEFAULT + ingame_trade INGAME_TRADE_PLUSLE, FortreeCity_House1_Text_YouWillTradeWontYou, FortreeCity_House1_EventScript_DeclineTrade, FortreeCity_House1_EventScript_NotRequestedMon, FortreeCity_House1_Text_MonYouTakeCare setflag FLAG_FORTREE_NPC_TRADE_COMPLETED release end diff --git a/data/maps/FourIsland_Frlg/map.json b/data/maps/FourIsland_Frlg/map.json new file mode 100644 index 000000000000..db6cd6788aac --- /dev/null +++ b/data/maps/FourIsland_Frlg/map.json @@ -0,0 +1,289 @@ +{ + "id": "MAP_FOUR_ISLAND", + "name": "FourIsland_Frlg", + "layout": "LAYOUT_FOUR_ISLAND", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_FOUR_ISLAND_DAYCARE_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 16, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_EventScript_DaycareMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_DODUO", + "x": 12, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", + "x": 14, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", + "x": 17, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 26, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_EventScript_OldWoman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_EventScript_ItemStarPiece", + "flag": "FLAG_HIDE_FOUR_ISLAND_STAR_PIECE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 32, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_EventScript_ItemStardust", + "flag": "FLAG_HIDE_FOUR_ISLAND_STARDUST" + }, + { + "local_id": "LOCALID_FOUR_ISLAND_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 8, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_FOUR_ISLAND_RIVAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 36, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_EventScript_FatMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 31, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_EventScript_LittleGirl", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 18, + "y": 20, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 13, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_DAY_CARE", + "dest_warp_id": "0" + }, + { + "x": 25, + "y": 14, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_HOUSE1", + "dest_warp_id": "0" + }, + { + "x": 38, + "y": 12, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 33, + "y": 23, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_LORELEIS_HOUSE", + "dest_warp_id": "0" + }, + { + "x": 25, + "y": 26, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_HOUSE2", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 28, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_HARBOR", + "dest_warp_id": "0" + }, + { + "x": 22, + "y": 26, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_MART", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 13, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FourIsland_EventScript_IslandSign" + }, + { + "type": "hidden_item", + "x": 22, + "y": 34, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 6, + "y": 21, + "elevation": 3, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 31, + "y": 23, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FourIsland_EventScript_LoreleisHouseSign" + } + ] +} diff --git a/data/maps/FourIsland_Frlg/scripts.inc b/data/maps/FourIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..e9a716442d14 --- /dev/null +++ b/data/maps/FourIsland_Frlg/scripts.inc @@ -0,0 +1,218 @@ +FourIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FourIsland_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, FourIsland_OnFrame + .byte 0 + +FourIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_FOUR_ISLAND + call_if_eq VAR_MAP_SCENE_FOUR_ISLAND, 0, FourIsland_EventScript_ShowRival + call FourIsland_EventScript_TrySetDayCareManPos + end + +FourIsland_EventScript_ShowRival:: + clearflag FLAG_HIDE_FOUR_ISLAND_RIVAL + return + +FourIsland_EventScript_TrySetDayCareManPos:: + goto_if_unset FLAG_PENDING_DAYCARE_EGG, FourIsland_EventScript_EndSetDayCareManPos + setobjectxyperm LOCALID_FOUR_ISLAND_DAYCARE_MAN, 16, 14 +FourIsland_EventScript_EndSetDayCareManPos:: + return + +FourIsland_OnFrame:: + map_script_2 VAR_MAP_SCENE_FOUR_ISLAND, 0, FourIsland_EventScript_RivalScene + .2byte 0 + +FourIsland_EventScript_RivalScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_FOUR_ISLAND_RIVAL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_FOUR_ISLAND_RIVAL, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_FOUR_ISLAND_RIVAL, Common_Movement_Delay48 + waitmovement 0 + delay 25 + applymovement LOCALID_FOUR_ISLAND_RIVAL, FourIsland_Movement_RivalApproach + waitmovement 0 + msgbox FourIsland_Text_RivalAlreadyGotEggBeSmellingYa + closemessage + applymovement LOCALID_PLAYER, FourIsland_Movement_PlayerWatchRivalExit + applymovement LOCALID_FOUR_ISLAND_RIVAL, FourIsland_Movement_RivalExit + waitmovement 0 + fadedefaultbgm + playse SE_EXIT + delay 35 + removeobject LOCALID_FOUR_ISLAND_RIVAL + setvar VAR_MAP_SCENE_FOUR_ISLAND, 1 + releaseall + end + +FourIsland_Movement_RivalApproach:: + walk_right + walk_right + walk_down + walk_down + step_end + +FourIsland_Movement_RivalExit:: + delay_16 + delay_4 + walk_down + step_end + +FourIsland_Movement_PlayerWatchRivalExit:: + walk_left + walk_in_place_faster_right + step_end + +FourIsland_EventScript_DaycareMan:: + lock + faceplayer + special GetDaycareMonNicknames + specialvar VAR_RESULT, GetDaycareState + goto_if_eq VAR_RESULT, DAYCARE_EGG_WAITING, FourIsland_EventScript_DaycareEggWaiting + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, FourIsland_EventScript_CheckOnOneMon + goto_if_eq VAR_RESULT, DAYCARE_TWO_MONS, FourIsland_EventScript_CheckOnTwoMons + msgbox DayCare_Text_ImDaycareManSpeakToMyWife + release + end + +FourIsland_EventScript_DaycareEggWaiting:: + msgbox DayCare_Text_DoYouWantEgg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_EventScript_DaycareAcceptEgg + msgbox DayCare_Text_IWillKeepDoYouWantIt, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_EventScript_DaycareAcceptEgg + msgbox DayCare_Text_IllKeepIt + clearflag FLAG_PENDING_DAYCARE_EGG + special RejectEggFromDayCare + release + end + +FourIsland_EventScript_DaycareAcceptEgg:: + specialvar VAR_RESULT, CalculatePlayerPartyCount + goto_if_ne VAR_RESULT, PARTY_SIZE, FourIsland_EventScript_DaycareReceivedEgg + msgbox DayCare_Text_YouHaveNoRoomForIt + release + end + +FourIsland_EventScript_DaycareReceivedEgg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + message DayCare_Text_ReceivedEgg + call EventScript_RestorePrevTextColor + playfanfare MUS_LEVEL_UP + waitfanfare + waitbuttonpress + msgbox DayCare_Text_TakeGoodCareOfIt + special GiveEggFromDaycare + clearflag FLAG_PENDING_DAYCARE_EGG + release + end + +FourIsland_EventScript_CheckOnOneMon:: + special GetDaycareMonNicknames + msgbox DayCare_Text_YourMonIsDoingFine + release + end + +FourIsland_EventScript_CheckOnTwoMons:: + special GetDaycareMonNicknames + msgbox DayCare_Text_YourMonsAreDoingFine + special SetDaycareCompatibilityString + special ShowFieldMessageStringVar4 + waitmessage + waitbuttonpress + release + end + +FourIsland_EventScript_OldWoman:: + lock + faceplayer + goto_if_set FLAG_IS_CHAMPION, FourIsland_EventScript_OldWomanLoreleiLeft + msgbox FourIsland_Text_LoreleiHasReturned + release + end + +FourIsland_EventScript_OldWomanLoreleiLeft:: + famechecker FAMECHECKER_LORELEI, 5 + msgbox FourIsland_Text_LoreleiMetLaprasAsChild + release + end + +FourIsland_EventScript_LittleGirl:: + lock + faceplayer + famechecker FAMECHECKER_LORELEI, 4 + msgbox FourIsland_Text_LoreleiHasLotsOfStuffedDolls + release + end + +FourIsland_EventScript_FatMan:: + msgbox FourIsland_Text_MadeSlushieUsingIcefallCaveIce, MSGBOX_NPC + end + +FourIsland_EventScript_IslandSign:: + msgbox FourIsland_Text_IslandSign, MSGBOX_SIGN + end + +FourIsland_EventScript_LoreleisHouseSign:: + msgbox FourIsland_Text_LoreleisHouse, MSGBOX_SIGN + end + +FourIsland_Text_IslandSign:: + .string "FOUR ISLAND\n" + .string "The Warm, Blue, Floe Island$" + +FourIsland_Text_LoreleiHasReturned:: + .string "LORELEI has returned.\p" + .string "Did she find the city life too\n" + .string "stressful, I wonder?$" + +FourIsland_Text_LoreleiMetLaprasAsChild:: + .string "LORELEI has gone back.\p" + .string "The LAPRAS she has, I imagine it\n" + .string "to be the one she met as a child.\p" + .string "I believe it was in ICEFALL CAVE\n" + .string "that she caught it.\p" + .string "Perhaps that POKéMON has been with\n" + .string "her ever since.$" + +FourIsland_Text_RivalAlreadyGotEggBeSmellingYa:: + .string "{RIVAL}: Hey!\n" + .string "{PLAYER}!\p" + .string "What are you doing here in the\n" + .string "SEVII ISLANDS?\p" + .string "You should quit copying me,\n" + .string "you know?\p" + .string "Anyways, I already got my POKéMON\n" + .string "EGG, so I'm done with this island.\p" + .string "Heh, I bet you don't even know\n" + .string "about POKéMON EGGS.\p" + .string "You'll never fill your NATIONAL\n" + .string "POKéDEX that way.\p" + .string "By the way, I saw someone we both\n" + .string "know on this island.\p" + .string "Why don't you go look around if\n" + .string "it makes you curious?\p" + .string "Me, I don't have the time to\n" + .string "waste.\p" + .string "Be smelling ya!$" + +FourIsland_Text_LoreleiHasLotsOfStuffedDolls:: + .string "Oh, you found me!\n" + .string "Please don't tell LORELEI.\p" + .string "Did you know that LORELEI has lots\n" + .string "and lots of stuffed dolls?\p" + .string "Every time she comes back to\n" + .string "FOUR ISLAND, her collection grows!$" + +FourIsland_Text_MadeSlushieUsingIcefallCaveIce:: + .string "Ooh, chilly!\p" + .string "I made a slushie using ice I\n" + .string "shaved inside ICEFALL CAVE.\p" + .string "It's chilly and tasty!$" + +FourIsland_Text_LoreleisHouse:: + .string "LORELEI'S HOUSE$" + diff --git a/data/maps/FourIsland_Harbor_Frlg/map.json b/data/maps/FourIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..57c8de5de627 --- /dev/null +++ b/data/maps/FourIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_FOUR_ISLAND_HARBOR", + "name": "FourIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_Harbor_Frlg/scripts.inc b/data/maps/FourIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..9d4b30c3780b --- /dev/null +++ b/data/maps/FourIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,11 @@ +FourIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +FourIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_FOUR_ISLAND + goto EventScript_ChooseDestFromIsland + end diff --git a/data/maps/FourIsland_House1_Frlg/map.json b/data/maps/FourIsland_House1_Frlg/map.json new file mode 100644 index 000000000000..178a27cfad0f --- /dev/null +++ b/data/maps/FourIsland_House1_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_FOUR_ISLAND_HOUSE1", + "name": "FourIsland_House1_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 8, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_House1_EventScript_BodySlamTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_House1_EventScript_FatMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_House1_Frlg/scripts.inc b/data/maps/FourIsland_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..ed0c38490bdf --- /dev/null +++ b/data/maps/FourIsland_House1_Frlg/scripts.inc @@ -0,0 +1,11 @@ +FourIsland_House1_Frlg_MapScripts:: + .byte 0 + +FourIsland_House1_EventScript_FatMan:: + msgbox FourIsland_House1_Text_YoureAwfullyHeavy, MSGBOX_NPC + end + +FourIsland_House1_Text_YoureAwfullyHeavy:: + .string "There! Boing!\n" + .string "You're awfully heavy!$" + diff --git a/data/maps/FourIsland_House2_Frlg/map.json b/data/maps/FourIsland_House2_Frlg/map.json new file mode 100644 index 000000000000..e9f130646b47 --- /dev/null +++ b/data/maps/FourIsland_House2_Frlg/map.json @@ -0,0 +1,46 @@ +{ + "id": "MAP_FOUR_ISLAND_HOUSE2", + "name": "FourIsland_House2_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_STICKER_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_House2_EventScript_StickerMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_House2_Frlg/scripts.inc b/data/maps/FourIsland_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..3364f314c99c --- /dev/null +++ b/data/maps/FourIsland_House2_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FourIsland_House2_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FourIsland_IcefallCave_1F_Frlg/map.json b/data/maps/FourIsland_IcefallCave_1F_Frlg/map.json new file mode 100644 index 000000000000..3f9d23388537 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_1F_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "name": "FourIsland_IcefallCave_1F_Frlg", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_IcefallCave_1F_EventScript_ItemUltraBall", + "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_ULTRA_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_IcefallCave_1F_EventScript_ItemHM07", + "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_HM07" + } + ], + "warp_events": [ + { + "x": 3, + "y": 17, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 12, + "y": 12, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 3, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 16, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "dest_warp_id": "2" + }, + { + "x": 3, + "y": 6, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_1F_Frlg/scripts.inc b/data/maps/FourIsland_IcefallCave_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..624b94126d60 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_1F_Frlg/scripts.inc @@ -0,0 +1,33 @@ +FourIsland_IcefallCave_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, FourIsland_IcefallCave_1F_OnResume + map_script MAP_SCRIPT_ON_LOAD, FourIsland_IcefallCave_1F_OnLoad + map_script MAP_SCRIPT_ON_FRAME_TABLE, FourIsland_IcefallCave_1F_OnFrame + .byte 0 + +FourIsland_IcefallCave_1F_OnResume:: + setstepcallback STEP_CB_ICEFALL_CAVE + end + +FourIsland_IcefallCave_1F_OnLoad:: + special SetIcefallCaveCrackedIceMetatiles + end + +FourIsland_IcefallCave_1F_OnFrame:: + map_script_2 VAR_TEMP_1, 1, FourIsland_IcefallCave_1F_EventScript_FallDownHole + .2byte 0 + +FourIsland_IcefallCave_1F_EventScript_FallDownHole:: + lockall + delay 20 + applymovement LOCALID_PLAYER, FourIsland_IcefallCave_1F_Movement_SetInvisible + waitmovement 0 + playse SE_FALL + delay 60 + warphole MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F + waitstate + releaseall + end + +FourIsland_IcefallCave_1F_Movement_SetInvisible:: + set_invisible + step_end diff --git a/data/maps/FourIsland_IcefallCave_B1F_Frlg/map.json b/data/maps/FourIsland_IcefallCave_B1F_Frlg/map.json new file mode 100644 index 000000000000..3be1ddb08487 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_B1F_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "name": "FourIsland_IcefallCave_B1F_Frlg", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_B1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_IcefallCave_B1F_EventScript_ItemFullRestore", + "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_FULL_RESTORE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 21, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_IcefallCave_B1F_EventScript_ItemNeverMeltIce", + "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_NEVER_MELT_ICE" + } + ], + "warp_events": [ + { + "x": 12, + "y": 12, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": "2" + }, + { + "x": 12, + "y": 3, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": "3" + }, + { + "x": 15, + "y": 16, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_B1F_Frlg/scripts.inc b/data/maps/FourIsland_IcefallCave_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..f06bc42f4708 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +FourIsland_IcefallCave_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/FourIsland_IcefallCave_Back_Frlg/map.json b/data/maps/FourIsland_IcefallCave_Back_Frlg/map.json new file mode 100644 index 000000000000..6f99c78a10be --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Back_Frlg/map.json @@ -0,0 +1,119 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "name": "FourIsland_IcefallCave_Back_Frlg", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_BACK", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_ICEFALL_ROCKET1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 11, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" + }, + { + "local_id": "LOCALID_ICEFALL_ROCKET2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 13, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" + }, + { + "local_id": "LOCALID_ICEFALL_LORELEI", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LORELEI", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_IcefallCave_Back_EventScript_Lorelei", + "flag": "FLAG_HIDE_ICEFALL_CAVE_LORELEI" + }, + { + "local_id": "LOCALID_ICEFALL_ROCKET3", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" + } + ], + "warp_events": [ + { + "x": 12, + "y": 23, + "elevation": 0, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": "5" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 11, + "y": 18, + "elevation": 3, + "var": "VAR_MAP_SCENE_ICEFALL_CAVE_BACK", + "var_value": "0", + "script": "FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene" + }, + { + "type": "trigger", + "x": 12, + "y": 18, + "elevation": 3, + "var": "VAR_MAP_SCENE_ICEFALL_CAVE_BACK", + "var_value": "0", + "script": "FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene" + }, + { + "type": "trigger", + "x": 13, + "y": 18, + "elevation": 3, + "var": "VAR_MAP_SCENE_ICEFALL_CAVE_BACK", + "var_value": "0", + "script": "FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene" + } + ], + "bg_events": [] +} diff --git a/data/maps/FourIsland_IcefallCave_Back_Frlg/scripts.inc b/data/maps/FourIsland_IcefallCave_Back_Frlg/scripts.inc new file mode 100644 index 000000000000..d904ee25fcc7 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Back_Frlg/scripts.inc @@ -0,0 +1,265 @@ +FourIsland_IcefallCave_Back_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FourIsland_IcefallCave_Back_OnTransition + .byte 0 + +FourIsland_IcefallCave_Back_OnTransition:: + call_if_eq VAR_MAP_SCENE_ICEFALL_CAVE_BACK, 1, FourIsland_IcefallCave_Back_EventScript_HideLorelei + end + +FourIsland_IcefallCave_Back_EventScript_HideLorelei:: + setflag FLAG_HIDE_ICEFALL_CAVE_LORELEI + return + +FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: + lockall + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FourIsland_IcefallCave_Back_Text_LoreleiKeepHandsOffMons + applymovement LOCALID_ICEFALL_ROCKET1, FourIsland_IcefallCave_Back_Movement_WalkInPlaceDown + waitmovement 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox FourIsland_IcefallCave_Back_Text_ShutItLadyLeaveUsBe + closemessage + playse SE_PIN + applymovement LOCALID_ICEFALL_LORELEI, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_ICEFALL_LORELEI, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + applymovement LOCALID_ICEFALL_LORELEI, Common_Movement_Delay48 + waitmovement 0 + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FourIsland_IcefallCave_Back_Text_LoreleiPlayerHelpMeKickPoachersOut + closemessage + applymovement LOCALID_ICEFALL_LORELEI, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + delay 18 + applymovement LOCALID_ICEFALL_LORELEI, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + delay 35 + applymovement LOCALID_ICEFALL_ROCKET3, FourIsland_IcefallCave_Back_Movement_Rocket3FaceLorelei + applymovement LOCALID_ICEFALL_LORELEI, FourIsland_IcefallCave_Back_Movement_LoreleiToRockets + applymovement LOCALID_PLAYER, FourIsland_IcefallCave_Back_Movement_PlayerToRockets + waitmovement 0 + applymovement LOCALID_ICEFALL_ROCKET2, FourIsland_IcefallCave_Back_Movement_WalkInPlaceDown + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_ROCKET, 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox FourIsland_IcefallCave_Back_Text_GruntIntro + setvar VAR_LAST_TALKED, LOCALID_ICEFALL_ROCKET3 + trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_45, FourIsland_IcefallCave_Back_Text_GruntDefeat + applymovement LOCALID_ICEFALL_LORELEI, FourIsland_IcefallCave_Back_Movement_WalkInPlaceUp + waitmovement 0 + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FourIsland_IcefallCave_Back_Text_LoreleiWhereHaveYouTakenMons + textcolor NPC_TEXT_COLOR_MALE + msgbox FourIsland_IcefallCave_Back_Text_NotTellingYouThat + textcolor NPC_TEXT_COLOR_FEMALE + message FourIsland_IcefallCave_Back_Text_LoreleiWellDeepFreezeYou + waitmessage + waitse + playmoncry SPECIES_LAPRAS, CRY_MODE_ENCOUNTER + waitbuttonpress + waitmoncry + applymovement LOCALID_ICEFALL_ROCKET1, FourIsland_IcefallCave_Back_Movement_Rocket1ReactToThreat + waitmovement 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox FourIsland_IcefallCave_Back_Text_OkayRocketWareHouseFiveIsland + closemessage + applymovement LOCALID_ICEFALL_LORELEI, FourIsland_IcefallCave_Back_Movement_LoreleiWatchRocketsExit + applymovement LOCALID_PLAYER, FourIsland_IcefallCave_Back_Movement_PlayerWatchRocketsExit + applymovement LOCALID_ICEFALL_ROCKET1, FourIsland_IcefallCave_Back_Movement_Rocket1Exit + applymovement LOCALID_ICEFALL_ROCKET2, FourIsland_IcefallCave_Back_Movement_Rocket2Exit + applymovement LOCALID_ICEFALL_ROCKET3, FourIsland_IcefallCave_Back_Movement_Rocket3Exit + waitmovement 0 + removeobject LOCALID_ICEFALL_ROCKET1 + removeobject LOCALID_ICEFALL_ROCKET2 + removeobject LOCALID_ICEFALL_ROCKET3 + delay 50 + applymovement LOCALID_ICEFALL_LORELEI, FourIsland_IcefallCave_Back_Movement_LoreleiWalkToPlayer + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + textcolor NPC_TEXT_COLOR_FEMALE + msgbox FourIsland_IcefallCave_Back_Text_ThankYouThisIsAwful + setflag FLAG_HIDE_RUIN_VALLEY_SCIENTIST + clearflag FLAG_HIDE_LORELEI_IN_HER_HOUSE + setvar VAR_MAP_SCENE_ICEFALL_CAVE_BACK, 1 + releaseall + end + +FourIsland_IcefallCave_Back_Movement_PlayerToRockets:: + walk_up + walk_up + walk_right + walk_up + step_end + +FourIsland_IcefallCave_Back_Movement_PlayerWatchRocketsExit:: + delay_16 + walk_in_place_faster_left + delay_16 + delay_16 + walk_in_place_faster_down + step_end + +FourIsland_IcefallCave_Back_Movement_WalkInPlaceDown:: + walk_in_place_down + step_end + +FourIsland_IcefallCave_Back_Movement_UnusedPushRight:: + lock_facing_direction + walk_right + unlock_facing_direction + step_end + +FourIsland_IcefallCave_Back_Movement_Rocket1ReactToThreat:: + walk_in_place_fast_down + step_end + +FourIsland_IcefallCave_Back_Movement_Rocket1Exit:: + walk_right + walk_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + step_end + +FourIsland_IcefallCave_Back_Movement_Rocket2Exit:: + delay_16 + walk_left + walk_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + step_end + +FourIsland_IcefallCave_Back_Movement_Rocket3Exit:: + delay_16 + walk_down + delay_16 + walk_down + walk_fast_right + walk_fast_right + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + step_end + +FourIsland_IcefallCave_Back_Movement_Rocket3FaceLorelei:: + delay_16 + delay_8 + walk_in_place_faster_right + step_end + +FourIsland_IcefallCave_Back_Movement_UnusedWalkLeft:: + walk_left + walk_left + step_end + +FourIsland_IcefallCave_Back_Movement_LoreleiToRockets:: + walk_left + walk_up + step_end + +FourIsland_IcefallCave_Back_Movement_WalkInPlaceUp:: + walk_in_place_up + step_end + +FourIsland_IcefallCave_Back_Movement_LoreleiWatchRocketsExit:: + delay_8 + walk_in_place_faster_right + delay_16 + delay_16 + walk_in_place_faster_down + step_end + +FourIsland_IcefallCave_Back_Movement_LoreleiWalkToPlayer:: + walk_right + step_end + +FourIsland_IcefallCave_Back_EventScript_Lorelei:: + msgbox FourIsland_IcefallCave_Back_Text_ThankYouThisIsAwful, MSGBOX_NPC + end + +FourIsland_IcefallCave_Back_Text_LoreleiKeepHandsOffMons:: + .string "LORELEI: Keep your filthy hands\n" + .string "off the POKéMON in the cave!\p" + .string "Do as I say, or you'll have me to\n" + .string "answer to!$" + +FourIsland_IcefallCave_Back_Text_ShutItLadyLeaveUsBe:: + .string "Aww, shut it, lady, and leave\n" + .string "us be.\p" + .string "Don't let your glasses get all\n" + .string "steamed up!$" + +FourIsland_IcefallCave_Back_Text_LoreleiPlayerHelpMeKickPoachersOut:: + .string "LORELEI: {PLAYER}?!\n" + .string "What are you doing here?\p" + .string "No, we can catch up later.\n" + .string "Right now, I need your help.\p" + .string "Help me kick these poachers out\n" + .string "before they do anything else.\p" + .string "They've been catching POKéMON\n" + .string "here, then selling them off!\p" + .string "Are you ready?\n" + .string "You take that one, please!$" + +FourIsland_IcefallCave_Back_Text_GruntIntro:: + .string "W-what?!\p" + .string "Who says we can't do what we want\n" + .string "with the POKéMON we catch?$" + +FourIsland_IcefallCave_Back_Text_GruntDefeat:: + .string "We didn't plan on this!$" + +FourIsland_IcefallCave_Back_Text_LoreleiWhereHaveYouTakenMons:: + .string "LORELEI: Humph.\n" + .string "So despicably weak.\p" + .string "You!\n" + .string "Tell me!\p" + .string "Where have you taken the captured\n" + .string "POKéMON?\p" + .string "I'm smashing your ring once and\n" + .string "for all!$" + +FourIsland_IcefallCave_Back_Text_NotTellingYouThat:: + .string "N-no way!\n" + .string "I'm not telling you that!$" + +FourIsland_IcefallCave_Back_Text_LoreleiWellDeepFreezeYou:: + .string "LORELEI: If you won't confess,\n" + .string "we'll deep-freeze you.\p" + .string "My LAPRAS is furious for what\n" + .string "you've done to its friends.\p" + .string "Go, LAPRAS!\n" + .string "ICE BEAM…$" + +FourIsland_IcefallCave_Back_Text_OkayRocketWareHouseFiveIsland:: + .string "Wawaah! Okay!\n" + .string "I'll talk!\p" + .string "The POKéMON are in the ROCKET\n" + .string "WAREHOUSE on FIVE ISLAND.\p" + .string "There! I said it!\n" + .string "We'll be going now!\p" + .string "…But I doubt you'll ever make it\n" + .string "into the ROCKET WAREHOUSE!\p" + .string "Heheheheh!$" + +FourIsland_IcefallCave_Back_Text_ThankYouThisIsAwful:: + .string "{PLAYER}, thank you.\n" + .string "But this is awful…\p" + .string "I was born and raised here on\n" + .string "these islands.\p" + .string "I had no idea that those horrible\n" + .string "criminals were loose here…$" + diff --git a/data/maps/FourIsland_IcefallCave_Entrance_Frlg/map.json b/data/maps/FourIsland_IcefallCave_Entrance_Frlg/map.json new file mode 100644 index 000000000000..cfddf874f5ed --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Entrance_Frlg/map.json @@ -0,0 +1,50 @@ +{ + "id": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "name": "FourIsland_IcefallCave_Entrance_Frlg", + "layout": "LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ICEFALL_CAVE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 17, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "3" + }, + { + "x": 10, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/FourIsland_IcefallCave_Entrance_Frlg/scripts.inc b/data/maps/FourIsland_IcefallCave_Entrance_Frlg/scripts.inc new file mode 100644 index 000000000000..279896663d37 --- /dev/null +++ b/data/maps/FourIsland_IcefallCave_Entrance_Frlg/scripts.inc @@ -0,0 +1,7 @@ +FourIsland_IcefallCave_Entrance_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FourIsland_IcefallCave_Entrance_OnTransition + .byte 0 + +FourIsland_IcefallCave_Entrance_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE + end diff --git a/data/maps/FourIsland_LoreleisHouse_Frlg/map.json b/data/maps/FourIsland_LoreleisHouse_Frlg/map.json new file mode 100644 index 000000000000..d0592f0884b7 --- /dev/null +++ b/data/maps/FourIsland_LoreleisHouse_Frlg/map.json @@ -0,0 +1,241 @@ +{ + "id": "MAP_FOUR_ISLAND_LORELEIS_HOUSE", + "name": "FourIsland_LoreleisHouse_Frlg", + "layout": "LAYOUT_FOUR_ISLAND_LORELEIS_HOUSE", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LORELEI", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Lorelei", + "flag": "FLAG_HIDE_LORELEI_IN_HER_HOUSE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WIGGLYTUFF", + "x": 0, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEEL", + "x": 10, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIKACHU_FRLG", + "x": 9, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SLOWPOKE", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SLOWBRO", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", + "x": 6, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MEOWTH", + "x": 9, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANSEY", + "x": 10, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", + "x": 0, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", + "x": 0, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIDGEOT", + "x": 9, + "y": 0, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FEAROW", + "x": 10, + "y": 0, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LAPRAS_DOLL", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_LoreleisHouse_EventScript_Doll", + "flag": "FLAG_HIDE_LORELEIS_HOUSE_LAPRAS_DOLL" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_LoreleisHouse_Frlg/scripts.inc b/data/maps/FourIsland_LoreleisHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..b1d3a9b009bd --- /dev/null +++ b/data/maps/FourIsland_LoreleisHouse_Frlg/scripts.inc @@ -0,0 +1,63 @@ +FourIsland_LoreleisHouse_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FourIsland_LoreleisHouse_OnTransition + .byte 0 + +FourIsland_LoreleisHouse_OnTransition:: + special UpdateLoreleiDollCollection + end + +FourIsland_LoreleisHouse_EventScript_Lorelei:: + lock + faceplayer + goto_if_set FLAG_TALKED_TO_LORELEI_AFTER_WAREHOUSE, FourIsland_LoreleisHouse_EventScript_Lorelei3 + goto_if_set FLAG_DEFEATED_ROCKETS_IN_WAREHOUSE, FourIsland_LoreleisHouse_EventScript_Lorelei2 + msgbox FourIsland_LoreleisHouse_Text_IfAnythingWereToHappenToIsland + release + end + +FourIsland_LoreleisHouse_EventScript_Lorelei2:: + setflag FLAG_TALKED_TO_LORELEI_AFTER_WAREHOUSE + msgbox FourIsland_LoreleisHouse_Text_IllReturnToLeagueInShortWhile + release + end + +FourIsland_LoreleisHouse_EventScript_Lorelei3:: + msgbox FourIsland_LoreleisHouse_Text_WillDoWhatICanHereAndNow + release + end + +FourIsland_LoreleisHouse_EventScript_Doll:: + lock + msgbox FourIsland_LoreleisHouse_Text_StuffedMonDollsGalore + release + end + +FourIsland_LoreleisHouse_Text_IfAnythingWereToHappenToIsland:: + .string "LORELEI: There's something weighing\n" + .string "heavily on my mind.\p" + .string "If anything were to happen on\n" + .string "the island where I was born…\p" + .string "I wouldn't know about it if I were\n" + .string "in the POKéMON LEAGUE.\p" + .string "I wonder if that would make me\n" + .string "irresponsible to my home…$" + +FourIsland_LoreleisHouse_Text_IllReturnToLeagueInShortWhile:: + .string "LORELEI: So, you managed to solve\n" + .string "all the problems here?\p" + .string "That's wonderful.\p" + .string "That means there isn't any reason\n" + .string "for me to be here all the time.\p" + .string "Thank you…\p" + .string "I'll return to the POKéMON LEAGUE\n" + .string "in a short while.$" + +FourIsland_LoreleisHouse_Text_WillDoWhatICanHereAndNow:: + .string "I don't know what will happen in\n" + .string "the future, but…\p" + .string "I will do what I can here and now.\n" + .string "That's all I can do.$" + +FourIsland_LoreleisHouse_Text_StuffedMonDollsGalore:: + .string "Stuffed POKéMON dolls galore!$" + diff --git a/data/maps/FourIsland_Mart_Frlg/map.json b/data/maps/FourIsland_Mart_Frlg/map.json new file mode 100644 index 000000000000..834a4b479e2e --- /dev/null +++ b/data/maps/FourIsland_Mart_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_FOUR_ISLAND_MART", + "name": "FourIsland_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_Mart_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 8, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_Mart_EventScript_Camper", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_Mart_Frlg/scripts.inc b/data/maps/FourIsland_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..3e6262ff6a08 --- /dev/null +++ b/data/maps/FourIsland_Mart_Frlg/scripts.inc @@ -0,0 +1,47 @@ +FourIsland_Mart_Frlg_MapScripts:: + .byte 0 + +FourIsland_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart FourIsland_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +FourIsland_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_REVIVE + .2byte ITEM_ICE_HEAL + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +FourIsland_Mart_EventScript_Camper:: + msgbox FourIsland_Mart_Text_IcefallCaveIsFrigid, MSGBOX_NPC + end + +FourIsland_Mart_Text_LoreleiGrewUpOnThisIsland:: + .string "We've had a great and powerful\n" + .string "TRAINER grow up on this island.\p" + .string "I bet even you'd know her.\n" + .string "It's LORELEI of the ELITE FOUR!\p" + .string "When LORELEI was just a tyke,\n" + .string "I taught her about POKéMON.$" + +FourIsland_Mart_Text_IcefallCaveIsFrigid:: + .string "The SEVII ISLANDS are in a warm\n" + .string "region overall.\p" + .string "But there is one exception you\n" + .string "need to know about.\p" + .string "The ICEFALL CAVE is frigid because\n" + .string "of the POKéMON that live in it.$" + diff --git a/data/maps/FourIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/FourIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..c919e69a1d31 --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,112 @@ +{ + "id": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", + "name": "FourIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_FOUR_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_PokemonCenter_1F_EventScript_Man", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_PokemonCenter_1F_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "FourIsland_PokemonCenter_1F_EventScript_PokemonJournal" + }, + { + "type": "sign", + "x": 2, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "FourIsland_PokemonCenter_1F_EventScript_PokemonJournal" + } + ] +} diff --git a/data/maps/FourIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/FourIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..495662810f4f --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,73 @@ +FourIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FourIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +FourIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_FOUR_ISLAND + end + +FourIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +FourIsland_PokemonCenter_1F_EventScript_Man:: + msgbox FourIsland_PokemonCenter_1F_Text_RareIceMonsInCave, MSGBOX_NPC + end + +FourIsland_PokemonCenter_1F_EventScript_Woman:: + msgbox FourIsland_PokemonCenter_1F_Text_DayCarePeopleFoundEggBefore, MSGBOX_NPC + end + +FourIsland_PokemonCenter_1F_EventScript_Gentleman:: + msgbox FourIsland_PokemonCenter_1F_Text_NewPokemonJournalHasntArrived, MSGBOX_NPC + end + +@ The 5 texts below are supposed to be in FourIsland_House1 +Text_BodySlamTeach:: + .string "Ready?\n" + .string "Boing!\p" + .string "We're having a BODY SLAM match\n" + .string "to see who wimps out first.\p" + .string "If you were to join us, you'd be\n" + .string "squashed like a bug, though…\p" + .string "How about I teach BODY SLAM to\n" + .string "a POKéMON of yours instead?$" + +Text_BodySlamDeclined:: + .string "Come again!\n" + .string "Boing!$" + +Text_BodySlamWhichMon:: + .string "Which POKéMON wants to learn how\n" + .string "to BODY SLAM?$" + +Text_BodySlamTaught:: + .string "Boioing!$" + +FourIsland_House1_Text_FatMan:: + .string "それ ぼよーん!\n" + .string "おまえ おもいなあー!$" + +FourIsland_PokemonCenter_1F_Text_RareIceMonsInCave:: + .string "There's a rare kind of ICE POKéMON\n" + .string "that lives in the cave.\p" + .string "We get a lot of visitors hoping to\n" + .string "see that POKéMON.$" + +FourIsland_PokemonCenter_1F_Text_DayCarePeopleFoundEggBefore:: + .string "Oh? A POKéMON EGG?\n" + .string "…I have no idea.\p" + .string "…Oh, wait. The DAY-CARE people\n" + .string "in town were saying something.\p" + .string "They said that they'd found EGGS\n" + .string "before on their property.$" + +FourIsland_PokemonCenter_1F_Text_NewPokemonJournalHasntArrived:: + .string "What's this?\p" + .string "The new POKéMON JOURNAL hasn't\n" + .string "arrived on this island?$" + diff --git a/data/maps/FourIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/FourIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..81c8f95326ef --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_FOUR_ISLAND_POKEMON_CENTER_2F", + "name": "FourIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/FourIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..fbefe1449bff --- /dev/null +++ b/data/maps/FourIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +FourIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +FourIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +FourIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +FourIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/FourIsland_PokemonDayCare_Frlg/map.json b/data/maps/FourIsland_PokemonDayCare_Frlg/map.json new file mode 100644 index 000000000000..90eae3b06d85 --- /dev/null +++ b/data/maps/FourIsland_PokemonDayCare_Frlg/map.json @@ -0,0 +1,46 @@ +{ + "id": "MAP_FOUR_ISLAND_POKEMON_DAY_CARE", + "name": "FourIsland_PokemonDayCare_Frlg", + "layout": "LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE", + "music": "MUS_RG_SEVII_45", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FOUR_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_FOUR_ISLAND_DAYCARE_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FourIsland_PokemonDayCare_EventScript_DaycareWoman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FOUR_ISLAND", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FourIsland_PokemonDayCare_Frlg/scripts.inc b/data/maps/FourIsland_PokemonDayCare_Frlg/scripts.inc new file mode 100644 index 000000000000..82adf7e4356f --- /dev/null +++ b/data/maps/FourIsland_PokemonDayCare_Frlg/scripts.inc @@ -0,0 +1,190 @@ +FourIsland_PokemonDayCare_Frlg_MapScripts:: + .byte 0 + +FourIsland_PokemonDayCare_EventScript_DaycareWoman:: + lock + faceplayer + specialvar VAR_RESULT, GetDaycareState + goto_if_eq VAR_RESULT, DAYCARE_EGG_WAITING, FourIsland_PokemonDayCare_EggWaiting + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, FourIsland_PokemonDayCare_OneMonInDaycare + goto_if_eq VAR_RESULT, DAYCARE_TWO_MONS, FourIsland_PokemonDayCare_TwoMonsInDaycare + msgbox DayCare_Text_WouldYouLikeUsToRaiseMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_GiveMonToRaise + msgbox DayCare_Text_FineThenComeAgain + release + end + +FourIsland_PokemonDayCare_GiveMonToRaise:: + specialvar VAR_RESULT, CountPartyNonEggMons + goto_if_eq VAR_RESULT, 1, FourIsland_PokemonDayCare_OnlyOneMonInParty + msgbox DayCare_Text_WhichMonShouldWeRaise + fadescreen FADE_TO_BLACK + special ChooseSendDaycareMon + waitstate + goto_if_ge VAR_0x8004, PARTY_SIZE, FourIsland_PokemonDayCare_ComeAgain + specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot + goto_if_eq VAR_RESULT, 0, FourIsland_PokemonDayCare_OnlyOneAliveMonInParty + specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox DayCare_Text_WellRaiseYourMon + waitmoncry + special StoreSelectedPokemonInDaycare + callnative UpdateFollowingPokemon + incrementgamestat GAME_STAT_USED_DAYCARE + specialvar VAR_RESULT, GetDaycareState + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, FourIsland_PokemonDayCare_CanRaiseOneMore + release + end + +FourIsland_PokemonDayCare_ComeAgain:: + msgbox DayCare_Text_ComeAgain + release + end + +FourIsland_PokemonDayCare_CanRaiseOneMore:: + msgbox DayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_GiveMonToRaise + goto FourIsland_PokemonDayCare_ComeAgain + end + +FourIsland_PokemonDayCare_OnlyOneMonInParty:: + msgbox DayCare_Text_YouHaveJustOneMon + release + end + +FourIsland_PokemonDayCare_OnlyOneAliveMonInParty:: + msgbox DayCare_Text_WhatWillYouBattleWith + release + end + +FourIsland_PokemonDayCare_EggWaiting:: + msgbox DayCare_Text_HusbandWasLookingForYou + release + end + +FourIsland_PokemonDayCare_MonHasGrownXLevels:: + msgbox DayCare_Text_YourMonHasGrownXLevels + return + +FourIsland_PokemonDayCare_DisplayLevelsGained:: + specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare + call_if_ne VAR_RESULT, 0, FourIsland_PokemonDayCare_MonHasGrownXLevels + return + +FourIsland_PokemonDayCare_OneMonInDaycare:: + msgbox DayCare_Text_GoodToSeeYou + setvar VAR_0x8004, 0 + call FourIsland_PokemonDayCare_DisplayLevelsGained + msgbox DayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_GiveMonToRaise + msgbox DayCare_Text_TakeYourMonBack, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_TryRetrieveMon + goto FourIsland_PokemonDayCare_ComeAgain + end + +FourIsland_PokemonDayCare_TryRetrieveMon:: + specialvar VAR_RESULT, CalculatePlayerPartyCount + goto_if_eq VAR_RESULT, PARTY_SIZE, FourIsland_PokemonDayCare_NoRoomInParty + specialvar VAR_RESULT, GetDaycareState + setvar VAR_0x8004, 0 + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, FourIsland_PokemonDayCare_CostPrompt + special ShowDaycareLevelMenu + waitstate + copyvar VAR_0x8004, VAR_RESULT + goto_if_eq VAR_RESULT, DAYCARE_EXITED_LEVEL_MENU, FourIsland_PokemonDayCare_ComeAgain + goto FourIsland_PokemonDayCare_CostPrompt + end + +FourIsland_PokemonDayCare_CostPrompt:: + special GetDaycareCost + msgbox DayCare_Text_ItWillCostX, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_CheckEnoughMoney + goto FourIsland_PokemonDayCare_ComeAgain + end + +FourIsland_PokemonDayCare_CheckEnoughMoney:: + specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 + goto_if_eq VAR_RESULT, TRUE, FourIsland_PokemonDayCare_RetrieveMon + msgbox DayCare_Text_NotEnoughMoney + release + end + +FourIsland_PokemonDayCare_RetrieveMon:: + applymovement LOCALID_FOUR_ISLAND_DAYCARE_WOMAN, FourIsland_PokemonDayCare_Movement_RetrieveMon + waitmovement 0 + specialvar VAR_RESULT, TakePokemonFromDaycare + special SubtractMoneyFromVar0x8005 + playse SE_SHOP + msgbox DayCare_Text_HeresYourMon + waitse + playmoncry VAR_RESULT, CRY_MODE_NORMAL + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox DayCare_Text_TookBackMon + call EventScript_RestorePrevTextColor + waitmoncry + specialvar VAR_RESULT, GetDaycareState + goto_if_eq VAR_RESULT, DAYCARE_ONE_MON, FourIsland_PokemonDayCare_AskRetrieveOtherMon + goto FourIsland_PokemonDayCare_ComeAgain + end + +FourIsland_PokemonDayCare_AskRetrieveOtherMon:: + msgbox DayCare_Text_TakeOtherOneBackToo, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_TryRetrieveMon + goto FourIsland_PokemonDayCare_ComeAgain + end + +FourIsland_PokemonDayCare_NoRoomInParty:: + msgbox DayCare_Text_YourPartyIsFull + release + end + +FourIsland_PokemonDayCare_Movement_RetrieveMon:: + delay_16 + delay_16 + face_right + delay_16 + delay_16 + face_left + delay_16 + delay_16 + face_up + walk_slow_up + set_invisible + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + face_down + set_visible + walk_slow_down + step_end + +@ Unused. Possibly a commented script, or a typo end added to the above Movement script +FourIsland_PokemonDayCare_EventScript_UnusedEnd:: + end + +FourIsland_PokemonDayCare_TwoMonsInDaycare:: + msgbox DayCare_Text_GoodToSeeYou + setvar VAR_0x8004, 0 + call FourIsland_PokemonDayCare_DisplayLevelsGained + setvar VAR_0x8004, 1 + call FourIsland_PokemonDayCare_DisplayLevelsGained + msgbox DayCare_Text_TakeYourMonBack, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FourIsland_PokemonDayCare_TryRetrieveMon + msgbox DayCare_Text_ComeAgain + release + end + +@ Unused +FourIsland_PokemonDayCare_EventScript_UnusedRetrieveMon:: + special ShowDaycareLevelMenu + waitstate + goto_if_eq VAR_RESULT, 2, FourIsland_PokemonDayCare_ComeAgain + copyvar VAR_0x8004, VAR_RESULT + specialvar VAR_RESULT, TakePokemonFromDaycare + msgbox DayCare_Text_HeresYourMon + msgbox DayCare_Text_ComeAgain + release + end diff --git a/data/maps/FuchsiaCity_Frlg/map.json b/data/maps/FuchsiaCity_Frlg/map.json new file mode 100644 index 000000000000..c03ba854628e --- /dev/null +++ b/data/maps/FuchsiaCity_Frlg/map.json @@ -0,0 +1,440 @@ +{ + "id": "MAP_FUCHSIA_CITY", + "name": "FuchsiaCity_Frlg", + "layout": "LAYOUT_FUCHSIA_CITY", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE19", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE18", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE15", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 37, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_EventScript_Erik", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SLOWPOKE", + "x": 36, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND_SLOWER", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VOLTORB", + "x": 33, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 33, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANSEY", + "x": 39, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 14, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LAPRAS", + "x": 12, + "y": 20, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 36, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 8, + "y": 8, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_KANGASKHAN", + "x": 16, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 30, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 21, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 32, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 24, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 15, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_EventScript_SubstituteTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 40, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_EventScript_Lass", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 24, + "y": 5, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 33, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_WARDENS_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 15, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_MART", + "dest_warp_id": "1" + }, + { + "x": 28, + "y": 16, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 32, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_GYM", + "dest_warp_id": "1" + }, + { + "x": 14, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE1", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 31, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 38, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", + "dest_warp_id": "1" + }, + { + "x": 39, + "y": 28, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", + "dest_warp_id": "3" + }, + { + "x": 39, + "y": 29, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", + "dest_warp_id": "3" + }, + { + "x": 19, + "y": 31, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY_HOUSE3", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 31, + "y": 18, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_CitySign" + }, + { + "type": "sign", + "x": 26, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_SafariZoneSign" + }, + { + "type": "sign", + "x": 5, + "y": 32, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_GymSign" + }, + { + "type": "sign", + "x": 31, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_WardensHomeSign" + }, + { + "type": "sign", + "x": 35, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_VoltorbSign" + }, + { + "type": "sign", + "x": 38, + "y": 16, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_SlowpokeSign" + }, + { + "type": "sign", + "x": 41, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_ChanseySign" + }, + { + "type": "sign", + "x": 17, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_KangaskhanSign" + }, + { + "type": "sign", + "x": 11, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_FossilMonSign" + }, + { + "type": "sign", + "x": 17, + "y": 18, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_LaprasSign" + }, + { + "type": "sign", + "x": 22, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_EventScript_SafariGameSign" + }, + { + "type": "hidden_item", + "x": 33, + "y": 26, + "elevation": 3, + "item": "ITEM_MAX_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/FuchsiaCity_Frlg/scripts.inc b/data/maps/FuchsiaCity_Frlg/scripts.inc new file mode 100644 index 000000000000..a8db39060f51 --- /dev/null +++ b/data/maps/FuchsiaCity_Frlg/scripts.inc @@ -0,0 +1,252 @@ +FuchsiaCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FuchsiaCity_OnTransition + .byte 0 + +FuchsiaCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_FUCHSIA_CITY + call_if_set FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_SetOmanyteGfx + call_if_unset FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_SetKabutoGfx + end + +FuchsiaCity_EventScript_SetOmanyteGfx:: + setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_OMANYTE + return + +FuchsiaCity_EventScript_SetKabutoGfx:: + setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_KABUTO + return + +FuchsiaCity_EventScript_LittleBoy:: + msgbox FuchsiaCity_Text_DidYouTrySafariGame, MSGBOX_NPC + end + +FuchsiaCity_EventScript_OldMan:: + msgbox FuchsiaCity_Text_SafariZoneZooInFront, MSGBOX_NPC + end + +FuchsiaCity_EventScript_Erik:: + msgbox FuchsiaCity_Text_WheresSara, MSGBOX_NPC + end + +FuchsiaCity_EventScript_Youngster:: + msgbox FuchsiaCity_Text_ItemBallInThere, MSGBOX_NPC + end + +FuchsiaCity_EventScript_Lass:: + lock + faceplayer + famechecker FAMECHECKER_KOGA, 3 + msgbox FuchsiaCity_Text_MyFatherIsGymLeader + release + end + +FuchsiaCity_EventScript_CitySign:: + msgbox FuchsiaCity_Text_CitySign, MSGBOX_SIGN + end + +FuchsiaCity_EventScript_SafariZoneSign:: + msgbox FuchsiaCity_Text_SafariZoneSign, MSGBOX_SIGN + end + +FuchsiaCity_EventScript_SafariGameSign:: + msgbox FuchsiaCity_Text_SafariGameSign, MSGBOX_SIGN + end + +FuchsiaCity_EventScript_WardensHomeSign:: + msgbox FuchsiaCity_Text_WardensHomeSign, MSGBOX_SIGN + end + +@ Unused +FuchsiaCity_EventScript_SafariZoneOfficeSign:: + msgbox FuchsiaCity_Text_SafariZoneOfficeSign, MSGBOX_SIGN + end + +FuchsiaCity_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_KOGA, 0 + msgbox FuchsiaCity_Text_GymSign + releaseall + end + +FuchsiaCity_EventScript_ChanseySign:: + lockall + setvar VAR_0x8004, SPECIES_CHANSEY + special SetSeenMon + showmonpic SPECIES_CHANSEY, 10, 3 + msgbox FuchsiaCity_Text_ChanseySign + hidemonpic + releaseall + end + +FuchsiaCity_EventScript_VoltorbSign:: + lockall + setvar VAR_0x8004, SPECIES_VOLTORB + special SetSeenMon + showmonpic SPECIES_VOLTORB, 10, 3 + msgbox FuchsiaCity_Text_VoltorbSign + hidemonpic + releaseall + end + +FuchsiaCity_EventScript_KangaskhanSign:: + lockall + setvar VAR_0x8004, SPECIES_KANGASKHAN + special SetSeenMon + showmonpic SPECIES_KANGASKHAN, 10, 3 + msgbox FuchsiaCity_Text_KangaskhanSign + hidemonpic + releaseall + end + +FuchsiaCity_EventScript_SlowpokeSign:: + lockall + setvar VAR_0x8004, SPECIES_SLOWPOKE + special SetSeenMon + showmonpic SPECIES_SLOWPOKE, 10, 3 + msgbox FuchsiaCity_Text_SlowpokeSign + hidemonpic + releaseall + end + +FuchsiaCity_EventScript_LaprasSign:: + lockall + setvar VAR_0x8004, SPECIES_LAPRAS + special SetSeenMon + showmonpic SPECIES_LAPRAS, 10, 3 + msgbox FuchsiaCity_Text_LaprasSign + hidemonpic + releaseall + end + +FuchsiaCity_EventScript_FossilMonSign:: + lockall + goto_if_set FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_OmanyteSign + setvar VAR_0x8004, SPECIES_KABUTO + special SetSeenMon + showmonpic SPECIES_KABUTO, 10, 3 + msgbox FuchsiaCity_Text_KabutoSign + hidemonpic + releaseall + end + +FuchsiaCity_EventScript_OmanyteSign:: + setvar VAR_0x8004, SPECIES_OMANYTE + special SetSeenMon + showmonpic SPECIES_OMANYTE, 10, 3 + msgbox FuchsiaCity_Text_OmanyteSign + hidemonpic + releaseall + end + +FuchsiaCity_Text_DidYouTrySafariGame:: + .string "Did you try the SAFARI GAME?\p" + .string "There are some rare POKéMON that\n" + .string "can only be caught there.$" + +FuchsiaCity_Text_SafariZoneZooInFront:: + .string "The SAFARI ZONE has a zoo in front\n" + .string "of the entrance.\p" + .string "Out back is the SAFARI GAME for\n" + .string "catching POKéMON.$" + +FuchsiaCity_Text_WheresSara:: + .string "ERIK: Where's SARA?\n" + .string "I said I'd meet her here.$" + +FuchsiaCity_Text_ItemBallInThere:: + .string "That item ball in there…\n" + .string "Were you wanting that?\p" + .string "Me, too!\n" + .string "…Huh? That's a POKéMON?$" + +FuchsiaCity_Text_CitySign:: + .string "FUCHSIA CITY\n" + .string "Behold! It's Passion Pink!$" + +FuchsiaCity_Text_SafariZoneSign:: + .string "POKéMON PARADISE\n" + .string "SAFARI ZONE$" + +FuchsiaCity_Text_SafariGameSign:: + .string "SAFARI GAME\n" + .string "POKéMON-U-CATCH!$" + +FuchsiaCity_Text_WardensHomeSign:: + .string "SAFARI ZONE\n" + .string "WARDEN'S HOME$" + +FuchsiaCity_Text_SafariZoneOfficeSign:: + .string "POKéMON PARADISE!\n" + .string "Welcome to the SAFARI ZONE!\l" + .string "SAFARI ZONE OFFICE$" + +FuchsiaCity_Text_GymSign:: + .string "FUCHSIA CITY POKéMON GYM\n" + .string "LEADER: KOGA\l" + .string "The Poisonous Ninja Master$" + +FuchsiaCity_Text_ChanseySign:: + .string "Name: CHANSEY\n" + .string "Catching one is all up to chance.$" + +FuchsiaCity_Text_VoltorbSign:: + .string "Name: VOLTORB\n" + .string "The very image of a POKé BALL.$" + +FuchsiaCity_Text_KangaskhanSign:: + .string "Name: KANGASKHAN\p" + .string "A maternal POKéMON that raises its\n" + .string "young in a pouch on its belly.$" + +FuchsiaCity_Text_SlowpokeSign:: + .string "Name: SLOWPOKE\n" + .string "Friendly and very slow moving.$" + +FuchsiaCity_Text_LaprasSign:: + .string "Name: LAPRAS\n" + .string "AKA the king of the seas.$" + +FuchsiaCity_Text_OmanyteSign:: + .string "Name: OMANYTE\n" + .string "An extremely rare POKéMON that was\l" + .string "regenerated from a fossil.$" + +FuchsiaCity_Text_KabutoSign:: + .string "Name: KABUTO\n" + .string "An extremely rare POKéMON that was\l" + .string "regenerated from a fossil.$" + +@ Unused. May have been meant to be the placeholder text for the zoo mons, similar to RB's "!" text +FuchsiaCity_Text_Ellipsis:: + .string "……$" + +Text_SubstituteTeach:: + .string "Aww, I wish I was a KANGASKHAN\n" + .string "baby.\p" + .string "I'd love to be a substitute for the\n" + .string "baby…\p" + .string "And snuggle in the mother\n" + .string "KANGASKHAN's belly pouch.\p" + .string "But only POKéMON can use the\n" + .string "technique SUBSTITUTE…\p" + .string "Want me to teach SUBSTITUTE to\n" + .string "one of your POKéMON?$" + +Text_SubstituteDeclined:: + .string "Oh, really?\n" + .string "SUBSTITUTE seems so fun…$" + +Text_SubstituteWhichMon:: + .string "Which POKéMON wants to learn\n" + .string "SUBSTITUTE?$" + +Text_SubstituteTaught:: + .string "Boy, what I'd give to crawl inside\n" + .string "a KANGASKHAN belly pouch…$" + +FuchsiaCity_Text_MyFatherIsGymLeader:: + .string "My father is the GYM LEADER of\n" + .string "this town.\p" + .string "I'm training to use POISON POKéMON\n" + .string "as well as my father.$" + diff --git a/data/maps/FuchsiaCity_Gym_Frlg/map.json b/data/maps/FuchsiaCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..ecf26f6f348b --- /dev/null +++ b/data/maps/FuchsiaCity_Gym_Frlg/map.json @@ -0,0 +1,174 @@ +{ + "id": "MAP_FUCHSIA_CITY_GYM", + "name": "FuchsiaCity_Gym_Frlg", + "layout": "LAYOUT_FUCHSIA_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "FuchsiaCity_Gym_EventScript_Kayden", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 2, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "FuchsiaCity_Gym_EventScript_Shawn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 11, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "FuchsiaCity_Gym_EventScript_Kirk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 13, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "FuchsiaCity_Gym_EventScript_Edgar", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "FuchsiaCity_Gym_EventScript_Phil", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 2, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "FuchsiaCity_Gym_EventScript_Nate", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_KOGA", + "x": 7, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_Gym_EventScript_Koga", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 11, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_Gym_EventScript_GymGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "4" + }, + { + "x": 7, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "4" + }, + { + "x": 8, + "y": 21, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 10, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_Gym_EventScript_GymStatue" + } + ] +} diff --git a/data/maps/FuchsiaCity_Gym_Frlg/scripts.inc b/data/maps/FuchsiaCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..04b3cca246b3 --- /dev/null +++ b/data/maps/FuchsiaCity_Gym_Frlg/scripts.inc @@ -0,0 +1,247 @@ +FuchsiaCity_Gym_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_Gym_EventScript_Koga:: + famechecker FAMECHECKER_KOGA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_KOGA, FuchsiaCity_Gym_Text_KogaIntro, FuchsiaCity_Gym_Text_KogaDefeat, FuchsiaCity_Gym_EventScript_DefeatedKoga, NO_MUSIC + goto_if_unset FLAG_GOT_TM06_FROM_KOGA, FuchsiaCity_Gym_EventScript_GiveTM06 + msgbox FuchsiaCity_Gym_Text_KogaPostBattle + release + end + +FuchsiaCity_Gym_EventScript_DefeatedKoga:: + famechecker FAMECHECKER_KOGA, 1 + clearflag FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL + setflag FLAG_DEFEATED_KOGA + setflag FLAG_BADGE05_GET + set_gym_trainers_frlg 5 + goto FuchsiaCity_Gym_EventScript_GiveTM06 + end + +FuchsiaCity_Gym_EventScript_GiveTM06:: + msgbox FuchsiaCity_Gym_Text_KogaExplainSoulBadge + checkitemspace ITEM_TM06 + goto_if_eq VAR_RESULT, FALSE, FuchsiaCity_Gym_EventScript_NoRoomForTM06 + giveitem_msg FuchsiaCity_Gym_Text_ReceivedTM06FromKoga, ITEM_TM06 + setflag FLAG_GOT_TM06_FROM_KOGA + msgbox FuchsiaCity_Gym_Text_KogaExplainTM06 + release + end + +FuchsiaCity_Gym_EventScript_NoRoomForTM06:: + msgbox FuchsiaCity_Gym_Text_MakeSpaceForThis + release + end + +FuchsiaCity_Gym_EventScript_Phil:: + trainerbattle_single TRAINER_TAMER_PHIL, FuchsiaCity_Gym_Text_PhilIntro, FuchsiaCity_Gym_Text_PhilDefeat + msgbox FuchsiaCity_Gym_Text_PhilPostBattle, MSGBOX_AUTOCLOSE + end + +FuchsiaCity_Gym_EventScript_Edgar:: + trainerbattle_single TRAINER_TAMER_EDGAR, FuchsiaCity_Gym_Text_EdgarIntro, FuchsiaCity_Gym_Text_EdgarDefeat + msgbox FuchsiaCity_Gym_Text_EdgarPostBattle, MSGBOX_AUTOCLOSE + end + +FuchsiaCity_Gym_EventScript_Kirk:: + trainerbattle_single TRAINER_JUGGLER_KIRK, FuchsiaCity_Gym_Text_KirkIntro, FuchsiaCity_Gym_Text_KirkDefeat + famechecker FAMECHECKER_KOGA, 2 + msgbox FuchsiaCity_Gym_Text_KirkPostBattle, MSGBOX_AUTOCLOSE + end + +FuchsiaCity_Gym_EventScript_Shawn:: + trainerbattle_single TRAINER_JUGGLER_SHAWN, FuchsiaCity_Gym_Text_ShawnIntro, FuchsiaCity_Gym_Text_ShawnDefeat + msgbox FuchsiaCity_Gym_Text_ShawnPostBattle, MSGBOX_AUTOCLOSE + end + +FuchsiaCity_Gym_EventScript_Kayden:: + trainerbattle_single TRAINER_JUGGLER_KAYDEN, FuchsiaCity_Gym_Text_KaydenIntro, FuchsiaCity_Gym_Text_KaydenDefeat + msgbox FuchsiaCity_Gym_Text_KaydenPostBattle, MSGBOX_AUTOCLOSE + end + +FuchsiaCity_Gym_EventScript_Nate:: + trainerbattle_single TRAINER_JUGGLER_NATE, FuchsiaCity_Gym_Text_NateIntro, FuchsiaCity_Gym_Text_NateDefeat + msgbox FuchsiaCity_Gym_Text_NatePostBattle, MSGBOX_AUTOCLOSE + end + +FuchsiaCity_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_KOGA, FuchsiaCity_Gym_EventScript_GymGuyPostVictory + msgbox FuchsiaCity_Gym_Text_GymGuyAdvice + release + end + +FuchsiaCity_Gym_EventScript_GymGuyPostVictory:: + msgbox FuchsiaCity_Gym_Text_GymGuyPostVictory + release + end + +FuchsiaCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE05_GET, FuchsiaCity_Gym_EventScript_GymStatuePostVictory + msgbox FuchsiaCity_Gym_Text_GymStatue + releaseall + end + +FuchsiaCity_Gym_EventScript_GymStatuePostVictory:: + msgbox FuchsiaCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +FuchsiaCity_Gym_Text_KogaIntro:: + .string "KOGA: Fwahahaha!\p" + .string "A mere child like you dares to\n" + .string "challenge me?\p" + .string "The very idea makes me shiver\n" + .string "with mirth!\p" + .string "Very well, I shall show you true\n" + .string "terror as a ninja master.\p" + .string "Poison brings steady doom.\n" + .string "Sleep renders foes helpless.\p" + .string "Despair to the creeping horror of\n" + .string "POISON-type POKéMON!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +FuchsiaCity_Gym_Text_KogaDefeat:: + .string "Humph!\n" + .string "You have proven your worth!\p" + .string "Here!\n" + .string "Take the SOULBADGE!$" + +FuchsiaCity_Gym_Text_KogaPostBattle:: + .string "When afflicted by TOXIC, a POKéMON\n" + .string "suffers more and more.\p" + .string "It suffers worsening damage as the\n" + .string "battle wears on!\p" + .string "It will surely terrorize foes!$" + +FuchsiaCity_Gym_Text_KogaExplainSoulBadge:: + .string "Now that you have the SOULBADGE,\n" + .string "the DEFENSE of your POKéMON rises.\p" + .string "It also lets you SURF outside of\n" + .string "battle.\p" + .string "Ah!\n" + .string "Take this, too!$" + +FuchsiaCity_Gym_Text_ReceivedTM06FromKoga:: + .string "{PLAYER} received TM06\n" + .string "from KOGA.$" + +FuchsiaCity_Gym_Text_KogaExplainTM06:: + .string "Sealed within that TM06 lies\n" + .string "TOXIC!\p" + .string "It is a secret technique dating\n" + .string "back some four hundred years.$" + +FuchsiaCity_Gym_Text_MakeSpaceForThis:: + .string "Make space for this, child!$" + +FuchsiaCity_Gym_Text_KaydenIntro:: + .string "Strength isn't the key for POKéMON.\n" + .string "Do you understand this?\p" + .string "POKéMON is about strategy!\p" + .string "I'll show you how strategy can\n" + .string "beat brute strength.$" + +FuchsiaCity_Gym_Text_KaydenDefeat:: + .string "What?\n" + .string "Extraordinary!$" + +FuchsiaCity_Gym_Text_KaydenPostBattle:: + .string "So, you mix brawn with brains?\n" + .string "Good strategy!\p" + .string "That's remarkable for a child\n" + .string "TRAINER.$" + +FuchsiaCity_Gym_Text_KirkIntro:: + .string "I was a magician once upon a time.\p" + .string "But I dreamt of becoming a ninja,\n" + .string "so I joined this GYM.$" + +FuchsiaCity_Gym_Text_KirkDefeat:: + .string "I'm done for!$" + +FuchsiaCity_Gym_Text_KirkPostBattle:: + .string "Even though I've lost, I will keep\n" + .string "training according to the teachings\l" + .string "of KOGA, my ninja master.$" + +FuchsiaCity_Gym_Text_NateIntro:: + .string "Let's see you beat my special\n" + .string "techniques!$" + +FuchsiaCity_Gym_Text_NateDefeat:: + .string "You had me fooled!$" + +FuchsiaCity_Gym_Text_NatePostBattle:: + .string "I like poison and sleep techniques,\n" + .string "as they linger after battle!$" + +FuchsiaCity_Gym_Text_PhilIntro:: + .string "Stop right there!\p" + .string "The famed invisible walls of\n" + .string "FUCHSIA GYM have you frustrated?$" + +FuchsiaCity_Gym_Text_PhilDefeat:: + .string "Whoa!\n" + .string "You've got it!$" + +FuchsiaCity_Gym_Text_PhilPostBattle:: + .string "You impressed me!\n" + .string "Here's a hint!\p" + .string "Look very closely for gaps in the\n" + .string "invisible walls!$" + +FuchsiaCity_Gym_Text_EdgarIntro:: + .string "I also study the way of the ninja\n" + .string "with Master KOGA!\p" + .string "Ninja have a long history of using\n" + .string "animals!$" + +FuchsiaCity_Gym_Text_EdgarDefeat:: + .string "Awoo!$" + +FuchsiaCity_Gym_Text_EdgarPostBattle:: + .string "I still have much to learn.$" + +FuchsiaCity_Gym_Text_ShawnIntro:: + .string "Master KOGA comes from a long line\n" + .string "of ninjas.\p" + .string "What did you descend from?$" + +FuchsiaCity_Gym_Text_ShawnDefeat:: + .string "You're more skilled than I'd\n" + .string "thought!$" + +FuchsiaCity_Gym_Text_ShawnPostBattle:: + .string "Where there is light, there is\n" + .string "shadow!\p" + .string "Light and shadow!\n" + .string "Which do you choose?$" + +FuchsiaCity_Gym_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "FUCHSIA GYM is a tricked-up place.\n" + .string "It's riddled with invisible walls!\p" + .string "KOGA might appear close, but he's\n" + .string "blocked off.\p" + .string "You have to find gaps in the walls\n" + .string "to reach him.$" + +FuchsiaCity_Gym_Text_GymGuyPostVictory:: + .string "It's amazing how ninja can terrify,\n" + .string "even now!$" + +FuchsiaCity_Gym_Text_GymStatue:: + .string "FUCHSIA POKéMON GYM\n" + .string "LEADER: KOGA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +FuchsiaCity_Gym_Text_GymStatuePlayerWon:: + .string "FUCHSIA POKéMON GYM\n" + .string "LEADER: KOGA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/FuchsiaCity_House1_Frlg/map.json b/data/maps/FuchsiaCity_House1_Frlg/map.json new file mode 100644 index 000000000000..f2e59bba3e51 --- /dev/null +++ b/data/maps/FuchsiaCity_House1_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_FUCHSIA_CITY_HOUSE1", + "name": "FuchsiaCity_House1_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_House1_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_House1_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_House1_EventScript_LittleBoy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "5" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_House1_Frlg/scripts.inc b/data/maps/FuchsiaCity_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..9edd3f9ade61 --- /dev/null +++ b/data/maps/FuchsiaCity_House1_Frlg/scripts.inc @@ -0,0 +1,36 @@ +FuchsiaCity_House1_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_House1_EventScript_Woman:: + msgbox FuchsiaCity_House1_Text_WardenIsOldHasFalseTeeth, MSGBOX_NPC + end + +FuchsiaCity_House1_EventScript_OldMan:: + lock + faceplayer + famechecker FAMECHECKER_BILL, 2 + msgbox FuchsiaCity_House1_Text_BillIsMyGrandson + release + end + +FuchsiaCity_House1_EventScript_LittleBoy:: + msgbox FuchsiaCity_House1_Text_BillFilesHisOwnMonData, MSGBOX_NPC + end + +FuchsiaCity_House1_Text_WardenIsOldHasFalseTeeth:: + .string "The SAFARI ZONE's WARDEN is old, \n" + .string "but he's still very much active.\p" + .string "All his teeth are false, though.$" + +FuchsiaCity_House1_Text_BillIsMyGrandson:: + .string "Hmm?\n" + .string "You've met BILL?\p" + .string "He's my grandson!\p" + .string "He always liked collecting things,\n" + .string "even as a child!$" + +FuchsiaCity_House1_Text_BillFilesHisOwnMonData:: + .string "BILL files his own POKéMON data on\n" + .string "his PC.\p" + .string "Did he show you?$" + diff --git a/data/maps/FuchsiaCity_House2_Frlg/map.json b/data/maps/FuchsiaCity_House2_Frlg/map.json new file mode 100644 index 000000000000..9715a17c603d --- /dev/null +++ b/data/maps/FuchsiaCity_House2_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_FUCHSIA_CITY_HOUSE2", + "name": "FuchsiaCity_House2_Frlg", + "layout": "LAYOUT_FUCHSIA_CITY_HOUSE2", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_House2_EventScript_FishingGurusBrother", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "7" + }, + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "7" + }, + { + "x": 4, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "7" + }, + { + "x": 3, + "y": 1, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "8" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_House2_Frlg/scripts.inc b/data/maps/FuchsiaCity_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..5ccab6fa5c0f --- /dev/null +++ b/data/maps/FuchsiaCity_House2_Frlg/scripts.inc @@ -0,0 +1,70 @@ +FuchsiaCity_House2_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_House2_EventScript_FishingGurusBrother:: + lock + faceplayer + goto_if_set FLAG_GOT_GOOD_ROD, FuchsiaCity_House2_EventScript_AlreadyGotGoodRod + msgbox FuchsiaCity_House2_Text_DoYouLikeToFish, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FuchsiaCity_House2_EventScript_GiveGoodRod + msgbox FuchsiaCity_House2_Text_OhThatsDisappointing + release + end + +FuchsiaCity_House2_EventScript_AlreadyGotGoodRod:: + msgbox FuchsiaCity_House2_Text_HowAreTheFishBiting + release + end + +FuchsiaCity_House2_EventScript_GiveGoodRod:: + msgbox FuchsiaCity_House2_Text_LikeYourStyleTakeThis + checkitemspace ITEM_GOOD_ROD + goto_if_eq VAR_RESULT, FALSE, FuchsiaCity_House2_EventScript_NoRoomForGoodRod + giveitem_msg FuchsiaCity_House2_Text_ReceivedGoodRod, ITEM_GOOD_ROD + msgbox FuchsiaCity_House2_Text_GoodRodCanCatchBetterMons + setflag FLAG_GOT_GOOD_ROD + release + end + +FuchsiaCity_House2_EventScript_NoRoomForGoodRod:: + msgbox FuchsiaCity_House2_Text_YouHaveNoRoomForGift + release + end + +FuchsiaCity_House2_Text_DoYouLikeToFish:: + .string "I'm the FISHING GURU's older\n" + .string "brother.\p" + .string "I simply looove fishing!\n" + .string "I can't bear to go without.\p" + .string "Tell me, do you like to fish?$" + +FuchsiaCity_House2_Text_LikeYourStyleTakeThis:: + .string "Grand! I like your style.\n" + .string "I think we can be friends.\p" + .string "Take this and fish, young friend!$" + +FuchsiaCity_House2_Text_ReceivedGoodRod:: + .string "{PLAYER} received a GOOD ROD from\n" + .string "the FISHING GURU's brother.$" + +FuchsiaCity_House2_Text_GoodRodCanCatchBetterMons:: + .string "Fishing is a way of life!\n" + .string "It is like the finest poetry.\p" + .string "A crummy OLD ROD could only catch\n" + .string "MAGIKARP, yes?\p" + .string "But with a GOOD ROD, you can\n" + .string "catch much better POKéMON.$" + +FuchsiaCity_House2_Text_OhThatsDisappointing:: + .string "Oh…\n" + .string "That's so disappointing…$" + +FuchsiaCity_House2_Text_HowAreTheFishBiting:: + .string "Hello there, {PLAYER}!\p" + .string "How are the fish biting?$" + +FuchsiaCity_House2_Text_YouHaveNoRoomForGift:: + .string "Oh, no!\p" + .string "I had a gift for you, but you have\n" + .string "no room for it!$" + diff --git a/data/maps/FuchsiaCity_House3_Frlg/map.json b/data/maps/FuchsiaCity_House3_Frlg/map.json new file mode 100644 index 000000000000..a9b17bcd5883 --- /dev/null +++ b/data/maps/FuchsiaCity_House3_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_FUCHSIA_CITY_HOUSE3", + "name": "FuchsiaCity_House3_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_House3_EventScript_MoveDeleter", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "10" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_House3_Frlg/scripts.inc b/data/maps/FuchsiaCity_House3_Frlg/scripts.inc new file mode 100644 index 000000000000..5f6f10390d59 --- /dev/null +++ b/data/maps/FuchsiaCity_House3_Frlg/scripts.inc @@ -0,0 +1,90 @@ +FuchsiaCity_House3_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_House3_EventScript_MoveDeleter:: + lock + faceplayer + msgbox FuchsiaCity_House3_Text_WouldYouLikeToForgetMove, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter + goto FuchsiaCity_House3_EventScript_CancelForgetMove + end + +FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter:: + msgbox FuchsiaCity_House3_Text_WhichMonShouldForgetMove + special ChoosePartyMon + waitstate + goto_if_ge VAR_0x8004, PARTY_SIZE, FuchsiaCity_House3_EventScript_CancelForgetMove + special IsSelectedMonEgg + goto_if_eq VAR_RESULT, TRUE, FuchsiaCity_House3_EventScript_CantForgetMoveEgg + special GetNumMovesSelectedMonHas + goto_if_eq VAR_RESULT, 1, FuchsiaCity_House3_EventScript_CantForgetOnlyMove + msgbox FuchsiaCity_House3_Text_WhichMoveShouldBeForgotten + fadescreen FADE_TO_BLACK + special MoveDeleterChooseMoveToForget + fadescreen FADE_FROM_BLACK + goto_if_eq VAR_0x8005, MAX_MON_MOVES, FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter + special BufferMoveDeleterNicknameAndMove + msgbox FuchsiaCity_House3_Text_MonsMoveShouldBeForgotten, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FuchsiaCity_House3_EventScript_ForgetMove + goto FuchsiaCity_House3_EventScript_CancelForgetMove + end + +FuchsiaCity_House3_EventScript_ForgetMove:: + special MoveDeleterForgetMove + playfanfare MUS_MOVE_DELETED + waitfanfare + msgbox FuchsiaCity_House3_Text_MonHasForgottenMoveCompletely + release + end + +FuchsiaCity_House3_EventScript_CantForgetOnlyMove:: + special BufferMoveDeleterNicknameAndMove + msgbox FuchsiaCity_House3_Text_MonOnlyKnowsOneMove + release + end + +FuchsiaCity_House3_EventScript_CantForgetMoveEgg:: + msgbox FuchsiaCity_House3_Text_NoEggShouldKnowMoves + release + end + +FuchsiaCity_House3_EventScript_CancelForgetMove:: + msgbox FuchsiaCity_House3_Text_ComeAgainToForgetOtherMoves + release + end + +FuchsiaCity_House3_Text_WouldYouLikeToForgetMove:: + .string "Uh…\n" + .string "Oh, yes, I'm the MOVE DELETER.\p" + .string "I can make POKéMON forget their\n" + .string "moves.\p" + .string "Would you like me to do that?$" + +FuchsiaCity_House3_Text_WhichMonShouldForgetMove:: + .string "Which POKéMON should forget a\n" + .string "move?$" + +FuchsiaCity_House3_Text_WhichMoveShouldBeForgotten:: + .string "Which move should be forgotten?$" + +FuchsiaCity_House3_Text_MonOnlyKnowsOneMove:: + .string "{STR_VAR_1} seems to know only one\n" + .string "move…$" + +FuchsiaCity_House3_Text_MonsMoveShouldBeForgotten:: + .string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n" + .string "That move should be forgotten?$" + +FuchsiaCity_House3_Text_MonHasForgottenMoveCompletely:: + .string "It worked to perfection!\p" + .string "{STR_VAR_1} has forgotten\n" + .string "{STR_VAR_2} completely.$" + +FuchsiaCity_House3_Text_ComeAgainToForgetOtherMoves:: + .string "Come again if there are other\n" + .string "moves to be forgotten.$" + +FuchsiaCity_House3_Text_NoEggShouldKnowMoves:: + .string "What?\n" + .string "No EGG should know any moves.$" + diff --git a/data/maps/FuchsiaCity_Mart_Frlg/map.json b/data/maps/FuchsiaCity_Mart_Frlg/map.json new file mode 100644 index 000000000000..0f77a1b803a3 --- /dev/null +++ b/data/maps/FuchsiaCity_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_FUCHSIA_CITY_MART", + "name": "FuchsiaCity_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_Mart_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_Mart_EventScript_CooltrainerF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_Mart_Frlg/scripts.inc b/data/maps/FuchsiaCity_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..3752f861abb3 --- /dev/null +++ b/data/maps/FuchsiaCity_Mart_Frlg/scripts.inc @@ -0,0 +1,43 @@ +FuchsiaCity_Mart_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_Mart_EventScript_CooltrainerF:: + msgbox FuchsiaCity_Mart_Text_DidYouTryXSpeed, MSGBOX_NPC + end + +FuchsiaCity_Mart_EventScript_Gentleman:: + msgbox FuchsiaCity_Mart_Text_DontTheyHaveSafariZonePennants, MSGBOX_NPC + end + +FuchsiaCity_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart FuchsiaCity_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +FuchsiaCity_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +FuchsiaCity_Mart_Text_DontTheyHaveSafariZonePennants:: + .string "Don't they have any pennants\n" + .string "promoting the SAFARI ZONE?\p" + .string "How about some paper lanterns?\n" + .string "Aren't there even any calendars?$" + +FuchsiaCity_Mart_Text_DidYouTryXSpeed:: + .string "Did you try X SPEED?\n" + .string "It speeds up a POKéMON in battle.$" + diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..34e298deff13 --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,109 @@ +{ + "id": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", + "name": "FuchsiaCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_FUCHSIA_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Man", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 13, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_CooltrainerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "6" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "6" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "6" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..f51514a1a174 --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,46 @@ +FuchsiaCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, FuchsiaCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +FuchsiaCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_FUCHSIA_CITY + end + +FuchsiaCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +FuchsiaCity_PokemonCenter_1F_EventScript_Man:: + msgbox FuchsiaCity_PokemonCenter_1F_Text_CantBecomeGoodTrainerWithOneMon, MSGBOX_NPC + end + +FuchsiaCity_PokemonCenter_1F_EventScript_CooltrainerF:: + msgbox FuchsiaCity_PokemonCenter_1F_Text_PokemonLeagueWestOfViridian, MSGBOX_NPC + end + +FuchsiaCity_PokemonCenter_1F_EventScript_Youngster:: + msgbox FuchsiaCity_PokemonCenter_1F_Text_VisitSafariZoneForPokedex, MSGBOX_NPC + end + +FuchsiaCity_PokemonCenter_1F_Text_CantBecomeGoodTrainerWithOneMon:: + .string "You can't become a good TRAINER\n" + .string "with just one strong POKéMON.\p" + .string "But raising many POKéMON evenly\n" + .string "is no easy task, either.$" + +FuchsiaCity_PokemonCenter_1F_Text_PokemonLeagueWestOfViridian:: + .string "There's a narrow trail west of\n" + .string "VIRIDIAN CITY.\p" + .string "It goes to the POKéMON LEAGUE HQ.\n" + .string "The HQ governs all TRAINERS.$" + +FuchsiaCity_PokemonCenter_1F_Text_VisitSafariZoneForPokedex:: + .string "If you're working on a POKéDEX,\n" + .string "visit the SAFARI ZONE.\p" + .string "All sorts of rare POKéMON breed\n" + .string "there.$" + diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/map.json b/data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..bf85919107f4 --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_FUCHSIA_CITY_POKEMON_CENTER_2F", + "name": "FuchsiaCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..9cff6a66c594 --- /dev/null +++ b/data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +FuchsiaCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +FuchsiaCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +FuchsiaCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +FuchsiaCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/map.json new file mode 100644 index 000000000000..8d46029b50e6 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/map.json @@ -0,0 +1,108 @@ +{ + "id": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "name": "FuchsiaCity_SafariZone_Entrance_Frlg", + "layout": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_InfoAttendant", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 4, + "y": 3, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerMid" + }, + { + "type": "trigger", + "x": 5, + "y": 3, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerRight" + }, + { + "type": "trigger", + "x": 3, + "y": 3, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft" + } + ], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/scripts.inc new file mode 100644 index 000000000000..a2bce1ca93e4 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/scripts.inc @@ -0,0 +1,280 @@ +FuchsiaCity_SafariZone_Entrance_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, FuchsiaCity_SafariZone_Entrance_OnFrame + .byte 0 + +FuchsiaCity_SafariZone_Entrance_OnFrame:: + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1, FuchsiaCity_SafariZone_Entrance_EventScript_ExitWarpIn + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2, FuchsiaCity_SafariZone_Entrance_EventScript_ExitEarly + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3, FuchsiaCity_SafariZone_Entrance_EventScript_ExitWalkIn + .2byte 0 + +@ When player runs out of balls mid-battle +FuchsiaCity_SafariZone_Entrance_EventScript_ExitWalkIn:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ApproachCounter + waitmovement 0 + msgbox FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain + closemessage + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit2 + waitmovement 0 + special ExitSafariMode + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 + releaseall + end + +@ When player runs of out balls after catching a pokemon, or runs out of steps +FuchsiaCity_SafariZone_Entrance_EventScript_ExitWarpIn:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain + closemessage + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit + waitmovement 0 + special ExitSafariMode + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 + releaseall + end + +@ When player re-enters the entrance building with balls/steps remaining +FuchsiaCity_SafariZone_Entrance_EventScript_ExitEarly:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox FuchsiaCity_SafariZone_Entrance_Text_GoingToLeaveSafariZoneEarly, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, FuchsiaCity_SafariZone_Entrance_EventScript_ReturnToSafariZone + msgbox FuchsiaCity_SafariZone_Entrance_Text_PleaseReturnSafariBalls + closemessage + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit + waitmovement 0 + special ExitSafariMode + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 + releaseall + end + +FuchsiaCity_SafariZone_Entrance_EventScript_ReturnToSafariZone:: + msgbox FuchsiaCity_SafariZone_Entrance_Text_GoodLuck + closemessage + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ReEnter + waitmovement 0 + warp MAP_SAFARI_ZONE_CENTER, 26, 30 + waitstate + end + +FuchsiaCity_SafariZone_Entrance_Movement_Exit:: + walk_down + walk_down + step_end + +FuchsiaCity_SafariZone_Entrance_Movement_ReEnter:: + walk_up + step_end + +FuchsiaCity_SafariZone_Entrance_Movement_Exit2:: + walk_down + walk_down + step_end + +FuchsiaCity_SafariZone_Entrance_Movement_ApproachCounter:: + walk_down + delay_8 + step_end + +FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerMid:: + lockall + setvar VAR_TEMP_2, 0 + goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone + end + +FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerRight:: + lockall + setvar VAR_TEMP_2, 1 + goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone + end + +FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft:: + lockall + setvar VAR_TEMP_2, 2 + goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone + end + +FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone:: + textcolor NPC_TEXT_COLOR_MALE + msgbox FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + showmoneybox 0, 0 + msgbox FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FuchsiaCity_SafariZone_Entrance_EventScript_TryEnterSafariZone + msgbox FuchsiaCity_SafariZone_Entrance_Text_OkayPleaseComeAgain + goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack + end + +FuchsiaCity_SafariZone_Entrance_EventScript_TryEnterSafariZone:: + call FuchsiaCity_SafariZone_Entrance_EventScript_CheckSpaceForMons + checkmoney 500 + goto_if_eq VAR_RESULT, FALSE, FuchsiaCity_SafariZone_Entrance_EventScript_NotEnoughMoney + removemoney 500 + updatemoneybox + msgbox FuchsiaCity_SafariZone_Entrance_Text_ThatllBe500WeOnlyUseSpecialBalls + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message FuchsiaCity_SafariZone_Entrance_Text_PlayerReceived30SafariBalls + waitfanfare + call EventScript_RestorePrevTextColor + msgbox FuchsiaCity_SafariZone_Entrance_Text_CallYouOnPAWhenYouRunOut + closemessage + hidemoneybox + call_if_eq VAR_TEMP_2, 0, FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneMid + call_if_eq VAR_TEMP_2, 1, FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneRight + call_if_eq VAR_TEMP_2, 2, FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneLeft + special EnterSafariMode + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2 + warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30 + waitstate + end + +FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneRight:: + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneRight + waitmovement 0 + return + +FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneMid:: + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneMid + waitmovement 0 + return + +FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneLeft:: + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneLeft + waitmovement 0 + return + +FuchsiaCity_SafariZone_Entrance_EventScript_CheckSpaceForMons:: + getpartysize + goto_if_ne VAR_RESULT, PARTY_SIZE, Common_EventScript_NopReturn + specialvar VAR_RESULT, ScriptCheckFreePokemonStorageSpace + goto_if_eq VAR_RESULT, TRUE, Common_EventScript_NopReturn + msgbox Route121_SafariZoneEntrance_Text_PCIsFull + goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack + end + +FuchsiaCity_SafariZone_Entrance_EventScript_NotEnoughMoney:: + msgbox FuchsiaCity_SafariZone_Entrance_Text_OopsNotEnoughMoney + goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack + end + +FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack:: + closemessage + hidemoneybox + applymovement LOCALID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ForceBack + waitmovement 0 + releaseall + end + +FuchsiaCity_SafariZone_Entrance_Movement_ForceBack:: + walk_down + step_end + +FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneMid:: + walk_up + walk_up + step_end + +FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneRight:: + walk_up + walk_left + walk_up + step_end + +FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneLeft:: + walk_up + walk_right + walk_up + step_end + +FuchsiaCity_SafariZone_Entrance_EventScript_InfoAttendant:: + lock + faceplayer + msgbox FuchsiaCity_SafariZone_Entrance_Text_FirstTimeAtSafariZone, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, FuchsiaCity_SafariZone_Entrance_EventScript_ExplainSafariZone + msgbox FuchsiaCity_SafariZone_Entrance_Text_SorryYoureARegularHere + release + end + +FuchsiaCity_SafariZone_Entrance_EventScript_ExplainSafariZone:: + msgbox FuchsiaCity_SafariZone_Entrance_Text_ExplainSafariZone + release + end + +FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone:: + .string "Welcome to the SAFARI ZONE!$" + +FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500:: + .string "For just ¥500, you can play the\n" + .string "SAFARI GAME.\p" + .string "You can roam the wide-open safari\n" + .string "and catch what you like.\p" + .string "Would you like to play?$" + +FuchsiaCity_SafariZone_Entrance_Text_ThatllBe500WeOnlyUseSpecialBalls:: + .string "That'll be ¥500, please!\p" + .string "We only use a special kind of \n" + .string "POKé BALLS here.$" + +FuchsiaCity_SafariZone_Entrance_Text_PlayerReceived30SafariBalls:: + .string "{PLAYER} received 30 SAFARI BALLS\n" + .string "from the attendant.$" + +FuchsiaCity_SafariZone_Entrance_Text_CallYouOnPAWhenYouRunOut:: + .string "We'll call you on the PA when you\n" + .string "run out of time or SAFARI BALLS.\p" + .string "Well, I'll wish you the best of\n" + .string "luck!$" + +FuchsiaCity_SafariZone_Entrance_Text_OkayPleaseComeAgain:: + .string "Okay.\n" + .string "Please come again!$" + +FuchsiaCity_SafariZone_Entrance_Text_OopsNotEnoughMoney:: + .string "Oops!\n" + .string "Not enough money!$" + +FuchsiaCity_SafariZone_Entrance_Text_GoingToLeaveSafariZoneEarly:: + .string "Are you going to leave the\n" + .string "SAFARI ZONE early?$" + +FuchsiaCity_SafariZone_Entrance_Text_PleaseReturnSafariBalls:: + .string "Please return any SAFARI BALLS\n" + .string "you may have left.$" + +FuchsiaCity_SafariZone_Entrance_Text_GoodLuck:: + .string "Good luck!$" + +FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain:: + .string "Did you catch your fair share?\n" + .string "Come again!$" + +FuchsiaCity_SafariZone_Entrance_Text_FirstTimeAtSafariZone:: + .string "Hi! Is it your first time here at\n" + .string "the SAFARI ZONE?$" + +FuchsiaCity_SafariZone_Entrance_Text_ExplainSafariZone:: + .string "The SAFARI ZONE actually has\n" + .string "four zones in it.\p" + .string "Each zone has different kinds of\n" + .string "POKéMON, even some rare ones.\p" + .string "Use the supplied SAFARI BALLS to\n" + .string "catch them.\p" + .string "You can also throw BAIT or ROCKS\n" + .string "besides the SAFARI BALLS.\p" + .string "If you throw BAIT, the POKéMON\n" + .string "becomes less likely to flee, but\l" + .string "harder to catch.\p" + .string "If you throw ROCKS, the POKéMON\n" + .string "becomes more likely to flee, but\l" + .string "easier to catch.\p" + .string "When you run out of time or SAFARI\n" + .string "BALLS, it's game over for you!$" + +FuchsiaCity_SafariZone_Entrance_Text_SorryYoureARegularHere:: + .string "Sorry, you're a regular here!$" + diff --git a/data/maps/FuchsiaCity_SafariZone_Office_Frlg/map.json b/data/maps/FuchsiaCity_SafariZone_Office_Frlg/map.json new file mode 100644 index 000000000000..3528fd2c4f04 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Office_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", + "name": "FuchsiaCity_SafariZone_Office_Frlg", + "layout": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker3", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 10, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker4", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 9, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "3" + }, + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/FuchsiaCity_SafariZone_Office_Frlg/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Office_Frlg/scripts.inc new file mode 100644 index 000000000000..0596b36553bd --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Office_Frlg/scripts.inc @@ -0,0 +1,44 @@ +FuchsiaCity_SafariZone_Office_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_SafariZone_Office_EventScript_Worker1:: + msgbox FuchsiaCity_SafariZone_Office_Text_NicknamedWardenSlowpoke, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_EventScript_Worker2:: + msgbox FuchsiaCity_SafariZone_Office_Text_WardenIsVeryKnowledgeable, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_EventScript_Worker3:: + msgbox FuchsiaCity_SafariZone_Office_Text_CouldntUnderstandWarden, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_EventScript_Worker4:: + msgbox FuchsiaCity_SafariZone_Office_Text_PrizeInSafariZone, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_Text_NicknamedWardenSlowpoke:: + .string "We nicknamed the WARDEN\n" + .string "“SLOWPOKE.”\p" + .string "You know, he has that vacant look\n" + .string "like a SLOWPOKE.$" + +FuchsiaCity_SafariZone_Office_Text_WardenIsVeryKnowledgeable:: + .string "WARDEN SLOWPOKE is very\n" + .string "knowledgeable about POKéMON.\p" + .string "He even has some fossils of rare,\n" + .string "extinct POKéMON.$" + +FuchsiaCity_SafariZone_Office_Text_CouldntUnderstandWarden:: + .string "WARDEN SLOWPOKE came in, but\n" + .string "I couldn't understand him.\p" + .string "I think he's got a speech problem!$" + +FuchsiaCity_SafariZone_Office_Text_PrizeInSafariZone:: + .string "WARDEN SLOWPOKE is running a\n" + .string "promotion campaign right now.\p" + .string "Try to get to the farthest corner\n" + .string "of the SAFARI ZONE.\p" + .string "If you can make it, you'll win a\n" + .string "very convenient prize.$" + diff --git a/data/maps/FuchsiaCity_WardensHouse_Frlg/map.json b/data/maps/FuchsiaCity_WardensHouse_Frlg/map.json new file mode 100644 index 000000000000..b1417815e3a3 --- /dev/null +++ b/data/maps/FuchsiaCity_WardensHouse_Frlg/map.json @@ -0,0 +1,134 @@ +{ + "id": "MAP_FUCHSIA_CITY_WARDENS_HOUSE", + "name": "FuchsiaCity_WardensHouse_Frlg", + "layout": "LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_FUCHSIA_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_WardensHouse_EventScript_Warden", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_WardensHouse_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY" + }, + { + "type": "object", + "graphics_id": "0", + "x": 4, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga", + "flag": "FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL" + } + ], + "warp_events": [ + { + "x": 5, + "y": 10, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "1" + }, + { + "x": 7, + "y": 10, + "elevation": 0, + "dest_map": "MAP_FUCHSIA_CITY", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 7, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2" + }, + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1" + }, + { + "type": "sign", + "x": 5, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1" + }, + { + "type": "sign", + "x": 6, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2" + } + ] +} diff --git a/data/maps/FuchsiaCity_WardensHouse_Frlg/scripts.inc b/data/maps/FuchsiaCity_WardensHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..a5bde83499b6 --- /dev/null +++ b/data/maps/FuchsiaCity_WardensHouse_Frlg/scripts.inc @@ -0,0 +1,125 @@ +FuchsiaCity_WardensHouse_Frlg_MapScripts:: + .byte 0 + +FuchsiaCity_WardensHouse_EventScript_Warden:: + lock + faceplayer + goto_if_set FLAG_GOT_HM04, FuchsiaCity_WardensHouse_EventScript_ExplainStrength + goto_if_set FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH, FuchsiaCity_WardensHouse_EventScript_GiveGoldTeeth + msgbox FuchsiaCity_WardensHouse_Text_HifFuffHefifoo, MSGBOX_YESNO + call_if_eq VAR_RESULT, YES, FuchsiaCity_WardensHouse_EventScript_WardenYes + call_if_eq VAR_RESULT, NO, FuchsiaCity_WardensHouse_EventScript_WardenNo + release + end + +FuchsiaCity_WardensHouse_EventScript_GiveGoldTeeth:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_OBTAIN_TMHM + message FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden + waitmessage + waitfanfare + msgbox FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth + call EventScript_RestorePrevTextColor + checkplayergender + call_if_eq VAR_RESULT, MALE, FuchsiaCity_WardensHouse_EventScript_WardenThanksMale + call_if_eq VAR_RESULT, FEMALE, FuchsiaCity_WardensHouse_EventScript_WardenThanksFemale + giveitem_msg FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden, ITEM_HM04 + setflag FLAG_GOT_HM04 + removeitem ITEM_GOLD_TEETH + release + end + +FuchsiaCity_WardensHouse_EventScript_WardenThanksMale:: + msgbox FuchsiaCity_WardensHouse_Text_ThanksSonGiveYouSomething + return + +FuchsiaCity_WardensHouse_EventScript_WardenThanksFemale:: + msgbox FuchsiaCity_WardensHouse_Text_ThanksLassieGiveYouSomething + return + +FuchsiaCity_WardensHouse_EventScript_WardenYes:: + msgbox FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo + return + +FuchsiaCity_WardensHouse_EventScript_WardenNo:: + msgbox FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo + return + +FuchsiaCity_WardensHouse_EventScript_ExplainStrength:: + msgbox FuchsiaCity_WardensHouse_Text_ExplainStrength + release + end + +FuchsiaCity_WardensHouse_EventScript_DisplaySign1:: + msgbox FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay, MSGBOX_SIGN + end + +FuchsiaCity_WardensHouse_EventScript_DisplaySign2:: + msgbox FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay, MSGBOX_SIGN + end + +FuchsiaCity_WardensHouse_Text_HifFuffHefifoo:: + .string "WARDEN: Hif fuff hefifoo!\p" + .string "Ha lof ha feef ee hafahi ho.\n" + .string "Heff hee fwee!$" + +FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo:: + .string "Ah howhee ho hoo!\n" + .string "Eef ee hafahi ho!$" + +FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo:: + .string "Ha?\n" + .string "He ohay heh ha hoo ee haheh!$" + +FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden:: + .string "{PLAYER} gave the GOLD TEETH\n" + .string "to the WARDEN.$" + +FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth:: + .string "The WARDEN popped in his teeth!$" + +FuchsiaCity_WardensHouse_Text_ThanksSonGiveYouSomething:: + .string "WARDEN: Thanks, son!\n" + .string "You're a real lifesaver!\p" + .string "No one could understand a word\n" + .string "that I said, not a one!\p" + .string "I was too ashamed to show my face\n" + .string "around the OFFICE, even.\p" + .string "Let me give you something for your\n" + .string "trouble.$" + +FuchsiaCity_WardensHouse_Text_ThanksLassieGiveYouSomething:: + .string "WARDEN: Thank you, lassie!\n" + .string "You're a real lifesaver!\p" + .string "No one could understand a word\n" + .string "that I said, not a one!\p" + .string "I was too ashamed to show my face\n" + .string "around the OFFICE, even.\p" + .string "Let me give you something for your\n" + .string "trouble.$" + +FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden:: + .string "{PLAYER} received HM04\n" + .string "from the WARDEN.$" + +FuchsiaCity_WardensHouse_Text_ExplainStrength:: + .string "WARDEN: Inside HM04 you'll find\n" + .string "STRENGTH.\p" + .string "It lets POKéMON move boulders when\n" + .string "you're outside of battle.\p" + .string "Oh yes, did you find the SECRET\n" + .string "HOUSE in the SAFARI ZONE?$" + +@ Unused +FuchsiaCity_WardensHouse_Text_YouHaveTooMuchStuff:: + .string "なんや にもつ\n" + .string "いっぱいやんけ!$" + +FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay:: + .string "POKéMON photos and fossils are on\n" + .string "display.$" + +FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay:: + .string "Old POKéMON merchandise is on\n" + .string "display.$" + diff --git a/data/maps/IndigoPlateau_Exterior_Frlg/map.json b/data/maps/IndigoPlateau_Exterior_Frlg/map.json new file mode 100644 index 000000000000..23fe444fa632 --- /dev/null +++ b/data/maps/IndigoPlateau_Exterior_Frlg/map.json @@ -0,0 +1,71 @@ +{ + "id": "MAP_INDIGO_PLATEAU_EXTERIOR", + "name": "IndigoPlateau_Exterior_Frlg", + "layout": "LAYOUT_INDIGO_PLATEAU_EXTERIOR", + "music": "MUS_VICTORY_ROAD", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_INDIGO_PLATEAU", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE23", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "local_id": "LOCALID_CREDITS_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 11, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_CREDITS_RIVAL" + }, + { + "local_id": "LOCALID_CREDITS_PROF_OAK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", + "x": 11, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_CREDITS_OAK" + } + ], + "warp_events": [ + { + "x": 11, + "y": 6, + "elevation": 0, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/IndigoPlateau_Exterior_Frlg/scripts.inc b/data/maps/IndigoPlateau_Exterior_Frlg/scripts.inc new file mode 100644 index 000000000000..dee7528945cd --- /dev/null +++ b/data/maps/IndigoPlateau_Exterior_Frlg/scripts.inc @@ -0,0 +1,186 @@ +IndigoPlateau_Exterior_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, IndigoPlateau_Exterior_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, IndigoPlateau_Exterior_OnFrame + .byte 0 + +IndigoPlateau_Exterior_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR + call_if_eq VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1, IndigoPlateau_Exterior_EventScript_PlayCreditsMusic + end + +IndigoPlateau_Exterior_EventScript_PlayCreditsMusic:: + playbgm MUS_CREDITS, 0 + return + +IndigoPlateau_Exterior_OnFrame:: + map_script_2 VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 1, IndigoPlateau_Exterior_EventScript_Credits + .2byte 0 + + +@ After beating the champion, you are warped to the main +@ entrance of Indigo Plateau. This script starts running +@ immediately after your walking animation. +@ The script is timed to the music. +IndigoPlateau_Exterior_EventScript_Credits:: + lockall + delay 105 + + @ Rival exits building. Spawn a dummy object to lock the camera. + opendoor 11, 6 + waitdooranim + special SpawnCameraObject + addobject LOCALID_CREDITS_RIVAL + applymovement LOCALID_CREDITS_RIVAL, IndigoPlateau_Exterior_Movement_RivalExitBuilding + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PushPlayerOutOfWay + waitmovement 0 + closedoor 11, 6 + waitdooranim + + @ Rival runs off + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PlayerWatchRivalLeave + applymovement LOCALID_CREDITS_RIVAL, IndigoPlateau_Exterior_Movement_RivalLeave + waitmovement 0 + delay 100 + + @ Oak exits building + opendoor 11, 6 + waitdooranim + addobject LOCALID_CREDITS_PROF_OAK + applymovement LOCALID_CREDITS_PROF_OAK, IndigoPlateau_Exterior_Movement_OakExitBuilding + waitmovement 0 + closedoor 11, 6 + waitdooranim + delay 160 + + @ Oak looks at player, then walks off + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PlayerWatchOakLeave + applymovement LOCALID_CREDITS_PROF_OAK, IndigoPlateau_Exterior_Movement_OakLeave + waitmovement 0 + delay 100 + + @ Player begin to leave + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PlayerBeginLeave + waitmovement 0 + delay 155 + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PlayerFaceLeague + waitmovement 0 + delay 90 + + @ Player runs off + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PlayerTurnAround + waitmovement 0 + applymovement LOCALID_PLAYER, IndigoPlateau_Exterior_Movement_PlayerLeave + waitmovement 0 + + @ Reset the map state and roll the credits + special RemoveCameraObject + setvar VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR, 0 + removeobject LOCALID_CREDITS_RIVAL + removeobject LOCALID_CREDITS_PROF_OAK + special CB2_StartCreditsSequence + waitstate + releaseall + end + +IndigoPlateau_Exterior_Movement_PlayerLeave:: + player_run_down + player_run_down + player_run_down + player_run_down + player_run_down + player_run_down + step_end + +@ Unused +IndigoPlateau_Exterior_Movement_PlayerExitBuilding:: + walk_down + walk_down + step_end + +IndigoPlateau_Exterior_Movement_PlayerWatchRivalLeave:: + delay_16 + delay_4 + walk_in_place_faster_down + step_end + +IndigoPlateau_Exterior_Movement_PlayerWatchOakLeave:: + delay_8 + walk_in_place_faster_right + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_down + step_end + +IndigoPlateau_Exterior_Movement_PlayerBeginLeave:: + walk_right + delay_16 + walk_down + walk_down + delay_16 + delay_16 + step_end + +IndigoPlateau_Exterior_Movement_PlayerTurnAround:: + walk_in_place_faster_down + step_end + +IndigoPlateau_Exterior_Movement_PushPlayerOutOfWay:: + face_right + lock_facing_direction + walk_left + unlock_facing_direction + step_end + +IndigoPlateau_Exterior_Movement_PlayerFaceLeague:: + walk_in_place_faster_up + step_end + +IndigoPlateau_Exterior_Movement_RivalLeave:: + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + step_end + +IndigoPlateau_Exterior_Movement_RivalExitBuilding:: + walk_fast_down + step_end + +IndigoPlateau_Exterior_Movement_OakLeave:: + walk_in_place_faster_left + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_down + delay_16 + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +IndigoPlateau_Exterior_Movement_OakExitBuilding:: + walk_down + step_end diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/map.json b/data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..057c1800a94d --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,159 @@ +{ + "id": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "name": "IndigoPlateau_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_INDIGO_PLATEAU", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 0, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_Clerk", + "flag": "0" + }, + { + "local_id": "LOCALID_INDIGO_LEAGUE_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 13, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 7, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_GymGuy", + "flag": "0" + }, + { + "local_id": "LOCALID_LEAGUE_DOOR_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_DoorGuard", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 23, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_BlackBelt", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 22, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_PokemonJournal", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 16, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_CooltrainerM", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 23, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "IndigoPlateau_PokemonCenter_1F_EventScript_PokemonJournal", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 11, + "y": 16, + "elevation": 3, + "dest_map": "MAP_INDIGO_PLATEAU_EXTERIOR", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 1, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", + "dest_warp_id": "0" + }, + { + "x": 1, + "y": 14, + "elevation": 4, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..42411f1bf028 --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,113 @@ +IndigoPlateau_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, IndigoPlateau_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +IndigoPlateau_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_INDIGO_PLATEAU + specialvar VAR_RESULT, IsNationalPokedexEnabled + call_if_eq VAR_RESULT, TRUE, IndigoPlateau_PokemonCenter_1F_EventScript_CheckBlockDoor + end + +IndigoPlateau_PokemonCenter_1F_EventScript_CheckBlockDoor:: + goto_if_set FLAG_IS_CHAMPION, Common_EventScript_NopReturn + setobjectxyperm LOCALID_LEAGUE_DOOR_GUARD, 4, 2 + return + +IndigoPlateau_PokemonCenter_1F_EventScript_DoorGuard:: + lock + faceplayer + specialvar VAR_RESULT, IsNationalPokedexEnabled + goto_if_eq VAR_RESULT, TRUE, IndigoPlateau_PokemonCenter_1F_EventScript_CheckSeviiIslandComplete + msgbox IndigoPlateau_PokemonCenter_1F_Text_FaceEliteFourGoodLuck + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_CheckSeviiIslandComplete:: + goto_if_set FLAG_IS_CHAMPION, IndigoPlateau_PokemonCenter_1F_EventScript_SeviiIslandComplete + msgbox IndigoPlateau_PokemonCenter_1F_Text_LoreleiIsAbsentClosedForTimeBeing + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_SeviiIslandComplete:: + msgbox IndigoPlateau_PokemonCenter_1F_Text_FaceEliteFourGoodLuck + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_GymGuy:: + msgbox IndigoPlateau_PokemonCenter_1F_Text_GymGuyAdvice, MSGBOX_NPC + end + +IndigoPlateau_PokemonCenter_1F_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart IndigoPlateau_PokemonCenter_1F_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +IndigoPlateau_PokemonCenter_1F_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +IndigoPlateau_PokemonCenter_1F_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "At the POKéMON LEAGUE, you will\n" + .string "face the ELITE FOUR all in a row.\p" + .string "If you lose, you have to start all\n" + .string "over again!\p" + .string "This is it!\n" + .string "Go for it!$" + +IndigoPlateau_PokemonCenter_1F_Text_FaceEliteFourGoodLuck:: + .string "From here on, you face the\n" + .string "ELITE FOUR one by one.\p" + .string "If you win, a door opens to the\n" + .string "next TRAINER. Good luck!$" + +IndigoPlateau_PokemonCenter_1F_Text_LoreleiIsAbsentClosedForTimeBeing:: + .string "I am so sorry, but you've wasted\n" + .string "your time coming here.\p" + .string "LORELEI of the ELITE FOUR is\n" + .string "absent, you see.\p" + .string "As a result, the POKéMON LEAGUE is\n" + .string "closed for the time being.$" + +IndigoPlateau_PokemonCenter_1F_Text_AgathaWhuppedUs:: + .string "AGATHA's GHOST-type POKéMON are\n" + .string "horrifically terrifying in toughness.\p" + .string "I took my FIGHTING-type POKéMON\n" + .string "and raised them to the max.\p" + .string "I went at AGATHA feeling pretty\n" + .string "confident, but she whupped us.\p" + .string "That old lady's also got a really\n" + .string "short fuse, too.\p" + .string "It doesn't take anything to get\n" + .string "that scary lady hollering.$" + +IndigoPlateau_PokemonCenter_1F_Text_LancesCousinGymLeaderFarAway:: + .string "Maybe becoming an ELITE FOUR\n" + .string "member is in the blood.\p" + .string "From what I've heard, LANCE has\n" + .string "a cousin who's a GYM LEADER\l" + .string "somewhere far away.$" + diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/map.json b/data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..9178abe96663 --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F", + "name": "IndigoPlateau_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_INDIGO_PLATEAU", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..6d24b567645a --- /dev/null +++ b/data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +IndigoPlateau_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +IndigoPlateau_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +IndigoPlateau_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +IndigoPlateau_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/LavenderTown_Frlg/map.json b/data/maps/LavenderTown_Frlg/map.json new file mode 100644 index 000000000000..190855eac951 --- /dev/null +++ b/data/maps/LavenderTown_Frlg/map.json @@ -0,0 +1,159 @@ +{ + "id": "MAP_LAVENDER_TOWN", + "name": "LavenderTown_Frlg", + "layout": "LAYOUT_LAVENDER_TOWN", + "music": "MUS_RG_LAVENDER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE10", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE12", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ROUTE8", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 19, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_EventScript_LittleGirl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 12, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_EventScript_WorkerM", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 10, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_EventScript_Boy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 18, + "y": 6, + "elevation": 0, + "dest_map": "MAP_POKEMON_TOWER_1F", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 5, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 10, + "y": 11, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 16, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_HOUSE1", + "dest_warp_id": "1" + }, + { + "x": 10, + "y": 16, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_HOUSE2", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 15, + "elevation": 0, + "dest_map": "MAP_LAVENDER_TOWN_MART", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_EventScript_SilphScopeNotice" + }, + { + "type": "sign", + "x": 15, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_EventScript_TownSign" + }, + { + "type": "sign", + "x": 21, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_EventScript_PokemonTowerSign" + }, + { + "type": "sign", + "x": 7, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_EventScript_VolunteerHouseSign" + } + ] +} diff --git a/data/maps/LavenderTown_Frlg/scripts.inc b/data/maps/LavenderTown_Frlg/scripts.inc new file mode 100644 index 000000000000..59add4c917a3 --- /dev/null +++ b/data/maps/LavenderTown_Frlg/scripts.inc @@ -0,0 +1,88 @@ +LavenderTown_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, LavenderTown_OnTransition + .byte 0 + +LavenderTown_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_LAVENDER_TOWN + setvar VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR, 1 + setflag FLAG_HIDE_SS_ANNE_RIVAL + end + +LavenderTown_EventScript_LittleGirl:: + lock + faceplayer + msgbox LavenderTown_Text_DoYouBelieveInGhosts, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LavenderTown_EventScript_LittleGirlBelieve + msgbox LavenderTown_Text_JustImaginingWhiteHand + release + end + +LavenderTown_EventScript_LittleGirlBelieve:: + msgbox LavenderTown_Text_SoThereAreBelievers + release + end + +LavenderTown_EventScript_WorkerM:: + msgbox LavenderTown_Text_TownKnownAsMonGraveSite, MSGBOX_NPC + end + +LavenderTown_EventScript_Boy:: + msgbox LavenderTown_Text_GhostsAppearedInTower, MSGBOX_NPC + end + +LavenderTown_EventScript_TownSign:: + msgbox LavenderTown_Text_TownSign, MSGBOX_SIGN + end + +LavenderTown_EventScript_SilphScopeNotice:: + msgbox LavenderTown_Text_SilphScopeNotice, MSGBOX_SIGN + end + +LavenderTown_EventScript_VolunteerHouseSign:: + msgbox LavenderTown_Text_VolunteerPokemonHouse, MSGBOX_SIGN + end + +LavenderTown_EventScript_PokemonTowerSign:: + msgbox LavenderTown_Text_PokemonTowerSign, MSGBOX_SIGN + end + +LavenderTown_Text_DoYouBelieveInGhosts:: + .string "Do you believe in ghosts?$" + +LavenderTown_Text_SoThereAreBelievers:: + .string "Really?\n" + .string "So there are believers…$" + +LavenderTown_Text_JustImaginingWhiteHand:: + .string "Hahaha, I guess not.\p" + .string "That white hand on your shoulder…\n" + .string "I'm just imagining it.$" + +LavenderTown_Text_TownKnownAsMonGraveSite:: + .string "This town is known as the grave\n" + .string "site of POKéMON.\p" + .string "Memorial services are held in\n" + .string "POKéMON TOWER.$" + +LavenderTown_Text_GhostsAppearedInTower:: + .string "Ghosts appeared in POKéMON TOWER.\p" + .string "I think they're the spirits of\n" + .string "POKéMON that the ROCKETS killed.$" + +LavenderTown_Text_TownSign:: + .string "LAVENDER TOWN\n" + .string "The Noble Purple Town$" + +LavenderTown_Text_SilphScopeNotice:: + .string "New SILPH SCOPE!\n" + .string "Make the Invisible Plain to See!\p" + .string "SILPH CO.$" + +LavenderTown_Text_VolunteerPokemonHouse:: + .string "LAVENDER VOLUNTEER\n" + .string "POKéMON HOUSE$" + +LavenderTown_Text_PokemonTowerSign:: + .string "POKéMON TOWER\n" + .string "Becalm the Spirits of POKéMON$" + diff --git a/data/maps/LavenderTown_House1_Frlg/map.json b/data/maps/LavenderTown_House1_Frlg/map.json new file mode 100644 index 000000000000..42f7cfa0a436 --- /dev/null +++ b/data/maps/LavenderTown_House1_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_LAVENDER_TOWN_HOUSE1", + "name": "LavenderTown_House1_Frlg", + "layout": "LAYOUT_HOUSE5_FRLG", + "music": "MUS_RG_LAVENDER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_House1_EventScript_CooltrainerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUBONE", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_House1_EventScript_Cubone", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "3" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_House1_Frlg/scripts.inc b/data/maps/LavenderTown_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..8104c6d900a0 --- /dev/null +++ b/data/maps/LavenderTown_House1_Frlg/scripts.inc @@ -0,0 +1,42 @@ +LavenderTown_House1_Frlg_MapScripts:: + .byte 0 + +LavenderTown_House1_EventScript_CooltrainerF:: + lock + faceplayer + goto_if_set FLAG_RESCUED_MR_FUJI, LavenderTown_House1_EventScript_CooltrainerFGhostGone + msgbox LavenderTown_House1_Text_RocketsKilledCubonesMother + release + end + +LavenderTown_House1_EventScript_CooltrainerFGhostGone:: + msgbox LavenderTown_House1_Text_GhostOfPokemonTowerIsGone + release + end + +LavenderTown_House1_EventScript_Cubone:: + lock + faceplayer + waitse + playmoncry SPECIES_CUBONE, CRY_MODE_NORMAL + msgbox LavenderTown_House1_Text_Cubone + waitmoncry + release + end + +LavenderTown_House1_Text_Cubone:: + .string "CUBONE: Kyarugoo!$" + +LavenderTown_House1_Text_RocketsKilledCubonesMother:: + .string "Those horrible ROCKETS!\n" + .string "They deserve no mercy!\p" + .string "That poor CUBONE's mother…\p" + .string "It was killed trying to escape from\n" + .string "TEAM ROCKET.$" + +LavenderTown_House1_Text_GhostOfPokemonTowerIsGone:: + .string "The ghost of POKéMON TOWER is\n" + .string "gone!\p" + .string "Someone must have soothed its\n" + .string "restless spirit!$" + diff --git a/data/maps/LavenderTown_House2_Frlg/map.json b/data/maps/LavenderTown_House2_Frlg/map.json new file mode 100644 index 000000000000..03756d6a1353 --- /dev/null +++ b/data/maps/LavenderTown_House2_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_LAVENDER_TOWN_HOUSE2", + "name": "LavenderTown_House2_Frlg", + "layout": "LAYOUT_HOUSE5_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_House2_EventScript_NameRater", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "4" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_House2_Frlg/scripts.inc b/data/maps/LavenderTown_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..d47aa7e2e340 --- /dev/null +++ b/data/maps/LavenderTown_House2_Frlg/scripts.inc @@ -0,0 +1,110 @@ +LavenderTown_House2_Frlg_MapScripts:: + .byte 0 + +LavenderTown_House2_EventScript_NameRater:: + lock + faceplayer + msgbox LavenderTown_House2_Text_WantMeToRateNicknames, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LavenderTown_House2_EventScript_ChooseMon + goto_if_eq VAR_RESULT, NO, LavenderTown_House2_EventScript_DontRateNickname + end + +LavenderTown_House2_EventScript_ChooseMon:: + msgbox LavenderTown_House2_Text_CritiqueWhichMonsNickname + special ChoosePartyMon + waitstate + goto_if_lt VAR_0x8004, PARTY_SIZE, LavenderTown_House2_EventScript_CheckCanRateMon + goto_if_ge VAR_0x8004, PARTY_SIZE, LavenderTown_House2_EventScript_DontRateNickname + end + +LavenderTown_House2_EventScript_DontRateNickname:: + msgbox LavenderTown_House2_Text_ISeeComeVisitAgain + release + end + +LavenderTown_House2_EventScript_CheckCanRateMon:: + specialvar VAR_RESULT, ScriptGetPartyMonSpecies + goto_if_eq VAR_RESULT, SPECIES_EGG, LavenderTown_House2_EventScript_CantNicknameEgg + special BufferMonNickname + special IsMonOTIDNotPlayers + goto_if_eq VAR_RESULT, TRUE, LavenderTown_House2_EventScript_CantNicknameTradeMon + specialvar VAR_RESULT, MonOTNameNotPlayer + special BufferMonNickname + goto_if_eq VAR_RESULT, TRUE, LavenderTown_House2_EventScript_CantNicknameTradeMon + msgbox LavenderTown_House2_Text_GiveItANicerName, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, LavenderTown_House2_EventScript_ChooseNewNickname + goto_if_eq VAR_RESULT, NO, LavenderTown_House2_EventScript_DontRateNickname + end + +LavenderTown_House2_EventScript_CantNicknameEgg:: + msgbox LavenderTown_House2_Text_ThatIsMerelyAnEgg + release + end + +LavenderTown_House2_EventScript_CantNicknameTradeMon:: + msgbox LavenderTown_House2_Text_TrulyImpeccableName + release + end + +LavenderTown_House2_EventScript_ChooseNewNickname:: + msgbox LavenderTown_House2_Text_WhatShallNewNicknameBe + call Common_EventScript_NameReceivedPartyMon + specialvar VAR_RESULT, TryPutNameRaterShowOnTheAir + special BufferMonNickname + goto_if_eq VAR_RESULT, TRUE, LavenderTown_House2_EventScript_ChoseNewNickname + msgbox LavenderTown_House2_Text_FromNowOnShallBeKnownAsSameName + release + end + +LavenderTown_House2_EventScript_ChoseNewNickname:: + msgbox LavenderTown_House2_Text_FromNowOnShallBeKnownAsName + release + end + +LavenderTown_House2_Text_WantMeToRateNicknames:: + .string "Hello, hello!\n" + .string "I am the official NAME RATER!\p" + .string "Want me to rate the nicknames of\n" + .string "your POKéMON?$" + +LavenderTown_House2_Text_CritiqueWhichMonsNickname:: + .string "Which POKéMON's nickname should\n" + .string "I critique?$" + +LavenderTown_House2_Text_GiveItANicerName:: + .string "{STR_VAR_1}, is it?\n" + .string "That is a decent nickname!\p" + .string "But, would you like me to give it\n" + .string "a nicer name?\p" + .string "How about it?$" + +LavenderTown_House2_Text_WhatShallNewNicknameBe:: + .string "Ah, good. Then, what shall the new\n" + .string "nickname be?$" + +LavenderTown_House2_Text_FromNowOnShallBeKnownAsName:: + .string "Done! From now on, this POKéMON\n" + .string "shall be known as {STR_VAR_1}!\p" + .string "It is a better name than before!\n" + .string "How fortunate for you!$" + +LavenderTown_House2_Text_ISeeComeVisitAgain:: + .string "I see.\n" + .string "Do come visit again.$" + +LavenderTown_House2_Text_FromNowOnShallBeKnownAsSameName:: + .string "Done! From now on, this POKéMON\n" + .string "shall be known as {STR_VAR_1}!\p" + .string "It looks no different from before,\n" + .string "and yet, this is vastly superior!\p" + .string "How fortunate for you!$" + +LavenderTown_House2_Text_TrulyImpeccableName:: + .string "{STR_VAR_1}, is it?\n" + .string "That is a truly impeccable name!\p" + .string "Take good care of {STR_VAR_1}!$" + +LavenderTown_House2_Text_ThatIsMerelyAnEgg:: + .string "Now, now.\n" + .string "That is merely an EGG!$" + diff --git a/data/maps/LavenderTown_Mart_Frlg/map.json b/data/maps/LavenderTown_Mart_Frlg/map.json new file mode 100644 index 000000000000..6abdb93bae11 --- /dev/null +++ b/data/maps/LavenderTown_Mart_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_LAVENDER_TOWN_MART", + "name": "LavenderTown_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_Mart_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 9, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_Mart_EventScript_Rocker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_Mart_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "5" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_Mart_Frlg/scripts.inc b/data/maps/LavenderTown_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..8412f4ff66c7 --- /dev/null +++ b/data/maps/LavenderTown_Mart_Frlg/scripts.inc @@ -0,0 +1,65 @@ +LavenderTown_Mart_Frlg_MapScripts:: + .byte 0 + +LavenderTown_Mart_EventScript_BaldingMan:: + msgbox LavenderTown_Mart_Text_SearchingForStatRaiseItems, MSGBOX_NPC + end + +LavenderTown_Mart_EventScript_Rocker:: + msgbox LavenderTown_Mart_Text_DidYouBuyRevives, MSGBOX_NPC + end + +LavenderTown_Mart_EventScript_Youngster:: + msgbox LavenderTown_Mart_Text_TrainerDuosCanChallengeYou, MSGBOX_NPC + end + +LavenderTown_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart LavenderTown_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +LavenderTown_Mart_Items:: + .2byte ITEM_GREAT_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_BURN_HEAL + .2byte ITEM_ICE_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_SUPER_REPEL + .2byte ITEM_NONE + release + end + +LavenderTown_Mart_Text_SearchingForStatRaiseItems:: + .string "I'm searching for items that raise\n" + .string "the stats of POKéMON.\p" + .string "They're effective over the course\n" + .string "of a single battle.\p" + .string "X ATTACK, X DEFEND, X SPEED, \n" + .string "and X SPECIAL are what I'm after.\p" + .string "Do you know where I can get them?$" + +LavenderTown_Mart_Text_DidYouBuyRevives:: + .string "Did you buy some REVIVES?\n" + .string "They revive any fainted POKéMON!$" + +LavenderTown_Mart_Text_TrainerDuosCanChallengeYou:: + .string "Sometimes, a TRAINER duo will\n" + .string "challenge you with two POKéMON\l" + .string "at the same time.\p" + .string "If that happens, you have to send\n" + .string "out two POKéMON to battle, too.$" + +LavenderTown_Mart_Text_SoldNuggetFromMountainsFor5000:: + .string "この あいだ やまおくで\n" + .string "きんのたまを ひろい ましてね!\p" + .string "つかえない しなもの ですが\n" + .string "うったら なんと 5000¥でした$" diff --git a/data/maps/LavenderTown_PokemonCenter_1F_Frlg/map.json b/data/maps/LavenderTown_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..a43c399c728a --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,123 @@ +{ + "id": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", + "name": "LavenderTown_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_LAVENDER_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_PokemonCenter_1F_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_PokemonCenter_1F_EventScript_BaldingMan", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "1" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "1" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/LavenderTown_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..57cb720840c0 --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,44 @@ +LavenderTown_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, LavenderTown_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +LavenderTown_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_LAVENDER_TOWN + end + +LavenderTown_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +LavenderTown_PokemonCenter_1F_EventScript_Gentleman:: + msgbox LavenderTown_PokemonCenter_1F_Text_RocketsDoAnythingForMoney, MSGBOX_NPC + end + +LavenderTown_PokemonCenter_1F_EventScript_Lass:: + msgbox LavenderTown_PokemonCenter_1F_Text_CubonesMotherKilledByRockets, MSGBOX_NPC + end + +LavenderTown_PokemonCenter_1F_EventScript_Youngster:: + msgbox LavenderTown_PokemonCenter_1F_Text_PeoplePayForCuboneSkulls, MSGBOX_NPC + end + +LavenderTown_PokemonCenter_1F_Text_RocketsDoAnythingForMoney:: + .string "TEAM ROCKET will do anything for\n" + .string "the sake of money!\p" + .string "There is no job too dirty, no deed\n" + .string "too heinous, no crime too wicked!$" + +LavenderTown_PokemonCenter_1F_Text_CubonesMotherKilledByRockets:: + .string "I saw CUBONE's mother trying to\n" + .string "escape from TEAM ROCKET.\p" + .string "She was killed trying to get away…$" + +LavenderTown_PokemonCenter_1F_Text_PeoplePayForCuboneSkulls:: + .string "You know how the CUBONE species\n" + .string "wears skulls, right?\p" + .string "People will pay a lot for one.$" + diff --git a/data/maps/LavenderTown_PokemonCenter_2F_Frlg/map.json b/data/maps/LavenderTown_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..9793d718cd52 --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_LAVENDER_TOWN_POKEMON_CENTER_2F", + "name": "LavenderTown_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/LavenderTown_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/LavenderTown_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..b76a5ed75f07 --- /dev/null +++ b/data/maps/LavenderTown_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +LavenderTown_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +LavenderTown_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +LavenderTown_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +LavenderTown_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/map.json b/data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/map.json new file mode 100644 index 000000000000..84880bb0599a --- /dev/null +++ b/data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/map.json @@ -0,0 +1,154 @@ +{ + "id": "MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "name": "LavenderTown_VolunteerPokemonHouse_Frlg", + "layout": "LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", + "music": "MUS_RG_LAVENDER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LAVENDER_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MR_FUJI", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_MrFuji", + "flag": "FLAG_HIDE_POKEHOUSE_FUJI" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORINO", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_Nidorino", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_Psyduck", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_LittleGirl", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 5, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_PokemonFanMagazine" + }, + { + "type": "sign", + "x": 3, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_Bookshelf" + }, + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "LavenderTown_VolunteerPokemonHouse_EventScript_Bookshelf" + } + ] +} diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/scripts.inc b/data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..0bf4a41f6f77 --- /dev/null +++ b/data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/scripts.inc @@ -0,0 +1,149 @@ +LavenderTown_VolunteerPokemonHouse_Frlg_MapScripts:: + .byte 0 + +LavenderTown_VolunteerPokemonHouse_EventScript_MrFuji:: + lock + faceplayer + goto_if_set FLAG_GOT_POKE_FLUTE, LavenderTown_VolunteerPokemonHouse_EventScript_AlreadyHavePokeFlute + msgbox LavenderTown_VolunteerPokemonHouse_Text_IdLikeYouToHaveThis + checkitemspace ITEM_POKE_FLUTE + goto_if_eq VAR_RESULT, FALSE, LavenderTown_VolunteerPokemonHouse_EventScript_NoRoomForPokeFlute + setflag FLAG_GOT_POKE_FLUTE + giveitem_msg LavenderTown_VolunteerPokemonHouse_Text_ReceivedPokeFluteFromMrFuji, ITEM_POKE_FLUTE, 1, MUS_RG_OBTAIN_KEY_ITEM + msgbox LavenderTown_VolunteerPokemonHouse_Text_ExplainPokeFlute + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_AlreadyHavePokeFlute:: + msgbox LavenderTown_VolunteerPokemonHouse_Text_HasPokeFluteHelpedYou + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_NoRoomForPokeFlute:: + msgbox LavenderTown_VolunteerPokemonHouse_Text_MustMakeRoomForThis + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_LittleGirl:: + lock + faceplayer + famechecker FAMECHECKER_MRFUJI, 0 + msgbox LavenderTown_VolunteerPokemonHouse_Text_MrFujiLooksAfterOrphanedMons + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_LittleBoy:: + msgbox LavenderTown_VolunteerPokemonHouse_Text_MonsNiceToHug, MSGBOX_NPC + end + +LavenderTown_VolunteerPokemonHouse_EventScript_Youngster:: + lock + faceplayer + goto_if_set FLAG_RESCUED_MR_FUJI, LavenderTown_VolunteerPokemonHouse_EventScript_YoungsterFujiBack + msgbox LavenderTown_VolunteerPokemonHouse_Text_WhereDidMrFujiGo + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_YoungsterFujiBack:: + msgbox LavenderTown_VolunteerPokemonHouse_Text_MrFujiWasPrayingForCubonesMother + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_Nidorino:: + lock + faceplayer + waitse + playmoncry SPECIES_NIDORINO, CRY_MODE_NORMAL + msgbox LavenderTown_VolunteerPokemonHouse_Text_Nidorino + waitmoncry + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_Psyduck:: + lock + faceplayer + waitse + playmoncry SPECIES_PSYDUCK, CRY_MODE_NORMAL + msgbox LavenderTown_VolunteerPokemonHouse_Text_Psyduck + waitmoncry + release + end + +LavenderTown_VolunteerPokemonHouse_EventScript_PokemonFanMagazine:: + lockall + famechecker FAMECHECKER_MRFUJI, 2 + msgbox LavenderTown_VolunteerPokemonHouse_Text_GrandPrizeDrawingClipped + releaseall + end + +LavenderTown_VolunteerPokemonHouse_EventScript_Bookshelf:: + msgbox LavenderTown_VolunteerPokemonHouse_Text_PokemonMagazinesLineShelf, MSGBOX_SIGN + end + +LavenderTown_PokemonCenter_1F_Text_HearMrFujiNotFromAroundHere:: + .string "I recently moved to this town.\p" + .string "I hear that MR. FUJI's not from\n" + .string "these parts originally, either.$" + +LavenderTown_VolunteerPokemonHouse_Text_WhereDidMrFujiGo:: + .string "That's odd, MR. FUJI isn't here.\n" + .string "Where'd he go?$" + +LavenderTown_VolunteerPokemonHouse_Text_MrFujiWasPrayingForCubonesMother:: + .string "MR. FUJI had been praying alone\n" + .string "for CUBONE's mother.$" + +LavenderTown_VolunteerPokemonHouse_Text_MrFujiLooksAfterOrphanedMons:: + .string "This is really MR. FUJI's house.\p" + .string "He's really kind.\p" + .string "He looks after abandoned and\n" + .string "orphaned POKéMON.$" + +LavenderTown_VolunteerPokemonHouse_Text_MonsNiceToHug:: + .string "It's so warm!\n" + .string "POKéMON are so nice to hug.$" + +LavenderTown_VolunteerPokemonHouse_Text_Nidorino:: + .string "NIDORINO: Gaoo!$" + +LavenderTown_VolunteerPokemonHouse_Text_Psyduck:: + .string "PSYDUCK: Gwappa!$" + +LavenderTown_VolunteerPokemonHouse_Text_IdLikeYouToHaveThis:: + .string "MR. FUJI: {PLAYER}…\p" + .string "Your POKéDEX quest is one that\n" + .string "requires strong dedication.\p" + .string "Without deep love for POKéMON,\n" + .string "your quest may fail.\p" + .string "I'm not sure if this will help you,\n" + .string "but I'd like you to have it.$" + +LavenderTown_VolunteerPokemonHouse_Text_ReceivedPokeFluteFromMrFuji:: + .string "{PLAYER} received a POKé FLUTE\n" + .string "from MR. FUJI.$" + +LavenderTown_VolunteerPokemonHouse_Text_ExplainPokeFlute:: + .string "Upon hearing the POKé FLUTE,\n" + .string "sleeping POKéMON will spring awake.\p" + .string "Try using it on POKéMON that are\n" + .string "sleeping obstacles.$" + +LavenderTown_VolunteerPokemonHouse_Text_MustMakeRoomForThis:: + .string "You must make room for this!$" + +LavenderTown_VolunteerPokemonHouse_Text_HasPokeFluteHelpedYou:: + .string "MR. FUJI: Has my POKé FLUTE\n" + .string "helped you?$" + +LavenderTown_VolunteerPokemonHouse_Text_GrandPrizeDrawingClipped:: + .string "POKéMON FAN MAGAZINE\n" + .string "Monthly Grand Prize Drawing!\p" + .string "The application form is…\p" + .string "Gone! It's been clipped out.\n" + .string "Someone must have applied already.$" + +LavenderTown_VolunteerPokemonHouse_Text_PokemonMagazinesLineShelf:: + .string "POKéMON magazines line the shelf.\p" + .string "POKéMON INSIDER…\p" + .string "POKéMON FAN…$" + diff --git a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc index b8d21d5e283c..4dc933056d37 100644 --- a/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc +++ b/data/maps/LilycoveCity_MoveDeletersHouse/scripts.inc @@ -14,7 +14,7 @@ LilycoveCity_MoveDeletersHouse_EventScript_MoveDeleter:: LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget, MSGBOX_DEFAULT - special ChoosePartyMon + chooseboxmon SELECT_PC_MON_MOVE_DELETER waitstate goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain special IsSelectedMonEgg diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index 2832e9d79491..3cd958330b1e 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -294,7 +294,7 @@ PlayersHouse_2F_Text_Notebook: Common_Text_LookCloserAtMap: .string "{PLAYER} took a closer look at the\n" - .string "HOENN region map.$" + .string "{REGION} region map.$" PlayersHouse_2F_Text_ItsAGameCube: .string "It's a Nintendo GameCube.\p" diff --git a/data/maps/MauvilleCity_GameCorner/map.json b/data/maps/MauvilleCity_GameCorner/map.json index 7fc434b05808..0b7755e03f22 100644 --- a/data/maps/MauvilleCity_GameCorner/map.json +++ b/data/maps/MauvilleCity_GameCorner/map.json @@ -2,24 +2,24 @@ "id": "MAP_MAUVILLE_CITY_GAME_CORNER", "name": "MauvilleCity_GameCorner", "layout": "LAYOUT_MAUVILLE_CITY_GAME_CORNER", - "music": "MUS_GAME_CORNER", + "music": "MUS_RG_FUCHSIA", "region_map_section": "MAPSEC_MAUVILLE_CITY", "requires_flash": false, "weather": "WEATHER_NONE", "map_type": "MAP_TYPE_INDOOR", "allow_cycling": false, "allow_escaping": false, - "allow_running": false, + "allow_running": true, "show_map_name": false, "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, + "connections": 0, "object_events": [ { "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", - "x": 12, - "y": 7, + "x": 27, + "y": 18, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", @@ -29,10 +29,10 @@ }, { "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", - "x": 16, - "y": 5, + "x": 24, + "y": 17, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", @@ -40,38 +40,25 @@ "script": "MauvilleCity_GameCorner_EventScript_Gentleman", "flag": "0" }, - { - "graphics_id": "OBJ_EVENT_GFX_BEAUTY", - "x": 11, - "y": 2, - "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "0", - "script": "MauvilleCity_GameCorner_EventScript_CoinsClerk", - "flag": "0" - }, { "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 14, - "y": 2, + "y": 16, "elevation": 3, "movement_type": "MOVEMENT_TYPE_FACE_DOWN", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", - "script": "MauvilleCity_GameCorner_EventScript_PrizeCornerDolls", + "script": "MauvilleCity_GameCorner_EventScript_CoinsClerk", "flag": "0" }, { "graphics_id": "OBJ_EVENT_GFX_GIRL_2", - "x": 7, - "y": 3, + "x": 25, + "y": 5, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_type": "MOVEMENT_TYPE_FACE_UP", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", @@ -81,10 +68,10 @@ }, { "graphics_id": "OBJ_EVENT_GFX_POKEFAN_M", - "x": 19, - "y": 4, + "x": 4, + "y": 12, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", @@ -95,9 +82,9 @@ { "graphics_id": "OBJ_EVENT_GFX_OLD_MAN", "x": 20, - "y": 8, + "y": 18, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", @@ -108,7 +95,7 @@ { "graphics_id": "OBJ_EVENT_GFX_COOK", "x": 6, - "y": 8, + "y": 19, "elevation": 3, "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", "movement_range_x": 0, @@ -121,9 +108,9 @@ { "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 13, - "y": 2, + "y": 15, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", "movement_range_x": 1, "movement_range_y": 1, "trainer_type": "TRAINER_TYPE_NONE", @@ -134,7 +121,7 @@ { "graphics_id": "OBJ_EVENT_GFX_MAN_3", "x": 1, - "y": 7, + "y": 18, "elevation": 3, "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", "movement_range_x": 1, @@ -147,7 +134,7 @@ { "graphics_id": "OBJ_EVENT_GFX_MANIAC", "x": 9, - "y": 8, + "y": 19, "elevation": 3, "movement_type": "MOVEMENT_TYPE_FACE_LEFT", "movement_range_x": 1, @@ -160,7 +147,7 @@ { "graphics_id": "OBJ_EVENT_GFX_WOMAN_5", "x": 4, - "y": 6, + "y": 17, "elevation": 3, "movement_type": "MOVEMENT_TYPE_FACE_LEFT", "movement_range_x": 1, @@ -169,30 +156,253 @@ "trainer_sight_or_berry_tree_id": "0", "script": "MauvilleCity_GameCorner_EventScript_Woman", "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", + "x": 9, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_PachinkoGuy", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_DEVON_EMPLOYEE", + "x": 21, + "y": 7, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_VFGuy1", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_DEVON_EMPLOYEE", + "x": 21, + "y": 11, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Dealer", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_FISHERMAN", + "x": 23, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Fisherman", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 13, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_DerbyLady1", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 16, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_DerbyLady2", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 15, + "y": 15, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_PrizeCornerNew", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 27, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NULL", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_DEVON_EMPLOYEE", + "x": 26, + "y": 7, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_VFGuy2", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_DEVON_EMPLOYEE", + "x": 26, + "y": 11, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Dealer2", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_POKEFAN_F", + "x": 17, + "y": 13, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Gachalady", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_HIKER", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Hiker", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_DEVON_EMPLOYEE", + "x": 17, + "y": 21, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Bouncer", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 5, + "y": 15, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_JuiceLady", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_DEVON_EMPLOYEE", + "x": 7, + "y": 8, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_NONE", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_Employee", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 27, + "y": 16, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 3, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_JuiceLady", + "flag": "0" + }, + { + "graphics_id": "OBJ_EVENT_GFX_BEAUTY", + "x": 16, + "y": 16, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MauvilleCity_GameCorner_EventScript_PrizeCornerNew2", + "flag": "0" } ], "warp_events": [ { - "x": 11, - "y": 10, + "x": 14, + "y": 21, "elevation": 3, "dest_map": "MAP_MAUVILLE_CITY", "dest_warp_id": "5" }, { - "x": 12, - "y": 10, + "x": 15, + "y": 21, "elevation": 3, "dest_map": "MAP_MAUVILLE_CITY", "dest_warp_id": "5" } ], - "coord_events": [], + "coord_events": [ + + ], "bg_events": [ { "type": "sign", "x": 2, - "y": 6, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine0" @@ -200,7 +410,7 @@ { "type": "sign", "x": 2, - "y": 8, + "y": 19, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine1" @@ -208,7 +418,7 @@ { "type": "sign", "x": 2, - "y": 9, + "y": 20, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine2" @@ -216,7 +426,7 @@ { "type": "sign", "x": 3, - "y": 7, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine3" @@ -224,7 +434,7 @@ { "type": "sign", "x": 3, - "y": 8, + "y": 19, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine4" @@ -232,7 +442,7 @@ { "type": "sign", "x": 3, - "y": 9, + "y": 20, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine5" @@ -240,7 +450,7 @@ { "type": "sign", "x": 7, - "y": 6, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine6" @@ -248,7 +458,7 @@ { "type": "sign", "x": 7, - "y": 7, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine7" @@ -256,7 +466,7 @@ { "type": "sign", "x": 7, - "y": 9, + "y": 20, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine8" @@ -264,7 +474,7 @@ { "type": "sign", "x": 8, - "y": 6, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine9" @@ -272,7 +482,7 @@ { "type": "sign", "x": 8, - "y": 7, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine10" @@ -280,106 +490,354 @@ { "type": "sign", "x": 8, - "y": 9, + "y": 20, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", "script": "MauvilleCity_GameCorner_EventScript_SlotMachine11" }, { "type": "sign", - "x": 14, - "y": 6, + "x": 21, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table1" }, { "type": "sign", - "x": 15, - "y": 6, + "x": 22, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table1" }, { "type": "sign", - "x": 14, - "y": 7, + "x": 21, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table1" }, { "type": "sign", - "x": 15, - "y": 7, + "x": 22, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table1" }, { "type": "sign", - "x": 14, - "y": 8, + "x": 21, + "y": 19, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table1" }, { "type": "sign", - "x": 15, - "y": 8, + "x": 22, + "y": 19, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table1" }, { "type": "sign", - "x": 18, - "y": 6, + "x": 25, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table2" }, { "type": "sign", - "x": 19, - "y": 6, + "x": 26, + "y": 17, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table2" }, { "type": "sign", - "x": 18, - "y": 7, + "x": 25, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table2" }, { "type": "sign", - "x": 19, - "y": 7, + "x": 26, + "y": 18, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table2" }, { "type": "sign", - "x": 18, - "y": 8, + "x": 25, + "y": 19, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table2" }, { "type": "sign", - "x": 19, - "y": 8, + "x": 26, + "y": 19, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "Roulette_EventScript_Table2" + }, + { + "type": "sign", + "x": 22, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 21, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 20, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 22, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 21, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 20, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 7, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Pachinko" + }, + { + "type": "sign", + "x": 16, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Gacha_Master" + }, + { + "type": "sign", + "x": 15, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Gacha_Ultra" + }, + { + "type": "sign", + "x": 14, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Gacha_Great" + }, + { + "type": "sign", + "x": 13, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Gacha_Basic" + }, + { + "type": "sign", + "x": 7, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "MauvilleCity_GameCorner_EventScript_PinballGengar" + }, + { + "type": "sign", + "x": 3, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "MauvilleCity_GameCorner_EventScript_PinballSeel" + }, + { + "type": "sign", + "x": 7, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_EAST", + "script": "MauvilleCity_GameCorner_EventScript_PinballDiglett" + }, + { + "type": "sign", + "x": 3, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_WEST", + "script": "MauvilleCity_GameCorner_EventScript_PinballMeowth" + }, + { + "type": "sign", + "x": 21, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_VoltorbFlip" + }, + { + "type": "sign", + "x": 6, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_BlockStacker" + }, + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Snake" + }, + { + "type": "sign", + "x": 5, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_FlappyBird" + }, + { + "type": "sign", + "x": 14, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Derby" + }, + { + "type": "sign", + "x": 15, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Derby" + }, + { + "type": "sign", + "x": 8, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Pachinko" + }, + { + "type": "sign", + "x": 18, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Derby" + }, + { + "type": "sign", + "x": 11, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_Derby" + }, + { + "type": "sign", + "x": 26, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MauvilleCity_GameCorner_EventScript_VoltorbFlip" + }, + { + "type": "sign", + "x": 27, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 26, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 25, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 27, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 26, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" + }, + { + "type": "sign", + "x": 25, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MauvilleCity_GameCorner_EventScript_Blackjack" } ] } diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index c9e425be73d5..afcec506b225 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -1,17 +1,436 @@ +.set LOCALID_BOUNCER, 24 + MauvilleCity_GameCorner_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerId_Onframe .byte 0 - @ Game Corner prices + @ Game Corner prices .set TM_DOUBLE_TEAM_COINS, 1500 .set TM_PSYCHIC_COINS, 3500 .set TM_FLAMETHROWER_COINS, 4000 .set TM_THUNDERBOLT_COINS, 4000 .set TM_ICE_BEAM_COINS, 4000 .set DOLL_COINS, 1000 + .set RARECANDY_COINS, 4000 + .set SUNSTONE_COINS, 2000 + .set MOONSTONE_COINS, 2000 + .set FIRESTONE_COINS, 2000 + .set THUNDERSTONE_COINS, 2000 + .set WATERSTONE_COINS, 2000 + .set LEAFSTONE_COINS, 2000 + .set CHOICEBAND_COINS, 4500 + .set BRIGHTPOWDER_COINS, 4500 .set COINS_PRICE_50, 1000 .set COINS_PRICE_500, 10000 +TrainerId_Onframe: +.if GAME_CORNER_VAR_ID_CHECK != 0 + map_script_2 GAME_CORNER_VAR_ID_CHECK, 0, BouncerCheck +.endif + .2byte 0 + +BouncerCheck:: + lockall + applymovement LOCALID_BOUNCER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + playse SE_PIN + applymovement LOCALID_BOUNCER, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_BOUNCER, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_BOUNCER, Movement_Bouncer_Approach + waitmovement 0 + msgbox MauvilleCity_GameCorner_Text_Bouncer1, MSGBOX_DEFAULT + closemessage + setvar GAME_CORNER_VAR_ID_CHECK, 1 + applymovement LOCALID_BOUNCER, Movement_Bouncer_Leave + waitmovement 0 + releaseall + end + +Movement_Bouncer_Approach: + walk_left + walk_left + step_end + +Movement_Bouncer_Leave: + walk_right + walk_right + walk_in_place_faster_left + step_end + +MauvilleCity_GameCorner_EventScript_Blackjack:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + msgbox MauvilleCity_GameCorner_Text_BlackJack, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelBJ + playbgm MUS_GAME_CORNER, FALSE + special StartBlackJack + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + releaseall + end + +MauvilleCity_GameCorner_EventScript_Derby:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + msgbox MauvilleCity_GameCorner_Text_Derby, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelBJ + playbgm MUS_RG_PEWTER, FALSE + special StartDerby + waitstate + savebgm MUS_DUMMY + fadedefaultbgm +MauvilleCity_GameCorner_EventScript_CheckWinnings:: + goto_if_eq GAME_CORNER_VAR_WINNINGS, 0, MauvilleCity_GameCorner_NoWin + showcoinsbox 1, 1 + buffernumberstring STR_VAR_1, GAME_CORNER_VAR_WINNINGS + msgbox PB_YOU_WON_TEXT, MSGBOX_DEFAULT + waitmessage + addcoins GAME_CORNER_VAR_WINNINGS + setvar GAME_CORNER_VAR_WINNINGS, 0 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 +MauvilleCity_GameCorner_CancelVF:: + hidecoinsbox 0, 5 +MauvilleCity_GameCorner_CancelBJ:: + closemessage +MauvilleCity_GameCorner_NoWin:: + releaseall + end + +MauvilleCity_GameCorner_EventScript_Snake:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 25, Onix_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Snake, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 25 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_NONE, FALSE + special StartSnake + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +MauvilleCity_GameCorner_EventScript_FlappyBird:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 25, Butterfree_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Bird, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 25 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_NONE, FALSE + special StartFlappyBird + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +MauvilleCity_GameCorner_EventScript_BlockStacker:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 25, BlockStacker_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_BS, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 25 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_CASINO_PLUS_1, FALSE + special StartBlockStacker + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +BlockStacker_Not_Enough:: + msgbox BS_Not_Enough, MSGBOX_DEFAULT + releaseall + end + +Pinball_Not_Enough:: + msgbox PB_Not_Enough, MSGBOX_DEFAULT + releaseall + end + +Onix_Not_Enough:: + msgbox Snake_Not_Enough, MSGBOX_DEFAULT + releaseall + end + +Juice_Not_Enough:: + msgbox Bjuice_Not_Enough, MSGBOX_DEFAULT + releaseall + end + +Butterfree_Not_Enough:: + msgbox Bird_Not_Enough, MSGBOX_DEFAULT + releaseall + end + +VF_Not_Enough:: + msgbox Flip_Not_Enough, MSGBOX_DEFAULT + releaseall + end + +MauvilleCity_GameCorner_EventScript_Pachinko:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + msgbox MauvilleCity_GameCorner_Text_Pachinko, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + playbgm MUS_RG_ROUTE1, FALSE + callnative PlayPachinko + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + releaseall + end + +MauvilleCity_GameCorner_EventScript_PinballMeowth:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 25, Pinball_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Pinball_Meowth, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 25 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_RG_POKE_CENTER, FALSE + callnative PlayMeowthPinballGame + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +MauvilleCity_GameCorner_EventScript_PinballDiglett:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 50, Pinball_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Pinball_Diglett, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 50 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_RG_POKE_JUMP, FALSE + callnative PlayDiglettPinballGame + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +MauvilleCity_GameCorner_EventScript_PinballSeel:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 25, Pinball_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Pinball_Seel, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 25 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_RG_SS_ANNE, FALSE + callnative PlaySeelPinballGame + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +MauvilleCity_GameCorner_EventScript_PinballGengar:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 100, Pinball_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Pinball_Gengar, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 100 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_RG_POKE_TOWER, FALSE + callnative PlayGengarPinballGame + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto MauvilleCity_GameCorner_EventScript_CheckWinnings + +MauvilleCity_GameCorner_EventScript_VoltorbFlip:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 50, VF_Not_Enough + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_VF, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + removecoins 50 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + playbgm MUS_RG_OAK, FALSE + setvar GAME_CORNER_VAR_WINNINGS, 0 + special Special_ViewVoltorbFlip + waitstate + goto_if_eq VAR_RESULT, 0, VF_Come_Again + goto_if_eq VAR_RESULT, 1, VF_Go_On + releaseall + end + +VF_Come_Again:: + savebgm MUS_DUMMY + fadedefaultbgm + msgbox VF_Come_Again_Text, MSGBOX_DEFAULT + setvar GAME_CORNER_VAR_WINNINGS, 0 + releaseall + end + +VF_Go_On:: + showcoinsbox 1, 1 + buffernumberstring STR_VAR_1, GAME_CORNER_VAR_WINNINGS + msgbox MauvilleCity_GameCorner_Text_VF_Keep_Going, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, VF_Cash_Out + goto VF_Loop + +VF_Loop:: + hidecoinsbox 0, 5 + special Special_ViewVoltorbFlip + waitstate + goto_if_eq VAR_RESULT, 0, VF_Come_Again + goto_if_eq VAR_RESULT, 1, VF_Go_On + releaseall + end + +VF_Cash_Out:: + addcoins GAME_CORNER_VAR_WINNINGS + setvar GAME_CORNER_VAR_WINNINGS, 0 +.if FLIP_VAR_LEVEL != 0 + setvar FLIP_VAR_LEVEL, 0 +.endif + updatecoinsbox 1, 1 + playse SE_SHOP + savebgm MUS_DUMMY + fadedefaultbgm + delay 40 + hidecoinsbox 0, 5 + releaseall + end + +MauvilleCity_GameCorner_EventScript_Gacha_Basic:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + setvar VAR_0x8004, 1 + call MauvilleCity_GameCorner_EventScript_GachaCommon + releaseall + end + +MauvilleCity_GameCorner_EventScript_GachaCommon:: + playbgm MUS_RG_CINNABAR, FALSE + special StartGacha + waitstate + savebgm MUS_DUMMY + fadedefaultbgm + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PARTY, MauvilleCity_GameCorner_EventScript_RecieveGachaMonParty + goto_if_eq VAR_RESULT, MON_GIVEN_TO_PC, MauvilleCity_GameCorner_EventScript_RecieveGachaMonPC +MauvilleCity_GameCorner_EventScript_GachaEnd: + return + +MauvilleCity_GameCorner_EventScript_RecieveGachaMonParty: + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_GachaEnd + call Common_EventScript_GetGiftMonPartySlot + call Common_EventScript_NameReceivedPartyMon + goto MauvilleCity_GameCorner_EventScript_GachaEnd + +MauvilleCity_GameCorner_EventScript_RecieveGachaMonPC: + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_TransferGachaMonToPC + call Common_EventScript_NameReceivedBoxMon +MauvilleCity_GameCorner_EventScript_TransferGachaMonToPC: + call Common_EventScript_TransferredToPC + goto MauvilleCity_GameCorner_EventScript_GachaEnd + +MauvilleCity_GameCorner_EventScript_Gacha_Great:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + setvar VAR_0x8004, 2 + call MauvilleCity_GameCorner_EventScript_GachaCommon + releaseall + end + +MauvilleCity_GameCorner_EventScript_Gacha_Ultra:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + setvar VAR_0x8004, 3 + call MauvilleCity_GameCorner_EventScript_GachaCommon + releaseall + end + +MauvilleCity_GameCorner_EventScript_Gacha_Master:: + lockall + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase + setvar VAR_0x8004, 4 + call MauvilleCity_GameCorner_EventScript_GachaCommon + releaseall + end + MauvilleCity_GameCorner_EventScript_CoinsClerk:: lock faceplayer @@ -220,6 +639,24 @@ MauvilleCity_GameCorner_EventScript_PrizeCornerTMs:: goto_if_eq VAR_RESULT, TRUE, MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage release end + +MauvilleCity_GameCorner_EventScript_PrizeCornerNew:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes, MSGBOX_DEFAULT + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_GameCorner_EventScript_ChooseNewPrizeMessage + release + end + +MauvilleCity_GameCorner_EventScript_PrizeCornerNew2:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_ExchangeCoinsForPrizes, MSGBOX_DEFAULT + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, TRUE, MauvilleCity_GameCorner_EventScript_ChooseNewPrizeMessage2 + release + end MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage:: message MauvilleCity_GameCorner_Text_WhichPrize @@ -227,11 +664,35 @@ MauvilleCity_GameCorner_EventScript_ChooseTMPrizeMessage:: setvar VAR_TEMP_1, 0 showcoinsbox 1, 1 goto MauvilleCity_GameCorner_EventScript_ChooseTMPrize + +MauvilleCity_GameCorner_EventScript_ChooseNewPrizeMessage:: + message MauvilleCity_GameCorner_Text_WhichPrize + waitmessage + setvar VAR_TEMP_1, 0 + showcoinsbox 1, 1 + goto MauvilleCity_GameCorner_EventScript_ChooseNewPrize + +MauvilleCity_GameCorner_EventScript_ChooseNewPrizeMessage2:: + message MauvilleCity_GameCorner_Text_WhichPrize + waitmessage + setvar VAR_TEMP_1, 0 + showcoinsbox 1, 1 + goto MauvilleCity_GameCorner_EventScript_ChooseNewPrize2 MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize:: message MauvilleCity_GameCorner_Text_WhichPrize waitmessage goto MauvilleCity_GameCorner_EventScript_ChooseTMPrize + +MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize:: + message MauvilleCity_GameCorner_Text_WhichPrize + waitmessage + goto MauvilleCity_GameCorner_EventScript_ChooseNewPrize + +MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2:: + message MauvilleCity_GameCorner_Text_WhichPrize + waitmessage + goto MauvilleCity_GameCorner_EventScript_ChooseNewPrize2 MauvilleCity_GameCorner_EventScript_ChooseTMPrize:: multichoice 12, 0, MULTI_GAME_CORNER_TMS, FALSE @@ -244,6 +705,217 @@ MauvilleCity_GameCorner_EventScript_ChooseTMPrize:: case 5, MauvilleCity_GameCorner_EventScript_CancelTMSelect goto MauvilleCity_GameCorner_EventScript_CancelTMSelect end + +MauvilleCity_GameCorner_EventScript_ChooseNewPrize:: + @ multichoice 12, 0, MULTI_GAMECORNER_NEW, FALSE + switch VAR_RESULT + case 0, MauvilleCity_GameCorner_EventScript_RareCandy + case 1, MauvilleCity_GameCorner_EventScript_SunStone + case 2, MauvilleCity_GameCorner_EventScript_MoonStone + case 3, MauvilleCity_GameCorner_EventScript_ChoiceBand + case 4, MauvilleCity_GameCorner_EventScript_BrightPowder + case 7, MauvilleCity_GameCorner_EventScript_CancelTMSelect + goto MauvilleCity_GameCorner_EventScript_CancelTMSelect + end + +MauvilleCity_GameCorner_EventScript_ChooseNewPrize2:: + @ multichoice 12, 0, MULTI_GAMECORNER_NEW2, FALSE + switch VAR_RESULT + case 0, MauvilleCity_GameCorner_EventScript_FireStone + case 1, MauvilleCity_GameCorner_EventScript_ThunderStone + case 2, MauvilleCity_GameCorner_EventScript_WaterStone + case 3, MauvilleCity_GameCorner_EventScript_LeafStone + case 4, MauvilleCity_GameCorner_EventScript_CancelTMSelect + goto MauvilleCity_GameCorner_EventScript_CancelTMSelect + end + +MauvilleCity_GameCorner_EventScript_ChoiceBand:: + setvar VAR_TEMP_1, 8 + bufferitemname STR_VAR_1, ITEM_CHOICE_BAND + setvar VAR_0x8004, ITEM_CHOICE_BAND + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_BrightPowder:: + setvar VAR_TEMP_1, 9 + bufferitemname STR_VAR_1, ITEM_BRIGHT_POWDER + setvar VAR_0x8004, ITEM_BRIGHT_POWDER + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_RareCandy:: + setvar VAR_TEMP_1, 1 + bufferitemname STR_VAR_1, ITEM_RARE_CANDY + setvar VAR_0x8004, ITEM_RARE_CANDY + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_SunStone:: + setvar VAR_TEMP_1, 2 + bufferitemname STR_VAR_1, ITEM_SUN_STONE + setvar VAR_0x8004, ITEM_SUN_STONE + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_MoonStone:: + setvar VAR_TEMP_1, 3 + bufferitemname STR_VAR_1, ITEM_MOON_STONE + setvar VAR_0x8004, ITEM_MOON_STONE + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_ThunderStone:: + setvar VAR_TEMP_1, 5 + bufferitemname STR_VAR_1, ITEM_THUNDER_STONE + setvar VAR_0x8004, ITEM_THUNDER_STONE + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_WaterStone:: + setvar VAR_TEMP_1, 6 + bufferitemname STR_VAR_1, ITEM_WATER_STONE + setvar VAR_0x8004, ITEM_WATER_STONE + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_LeafStone:: + setvar VAR_TEMP_1, 7 + bufferitemname STR_VAR_1, ITEM_LEAF_STONE + setvar VAR_0x8004, ITEM_LEAF_STONE + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_FireStone:: + setvar VAR_TEMP_1, 4 + bufferitemname STR_VAR_1, ITEM_FIRE_STONE + setvar VAR_0x8004, ITEM_FIRE_STONE + goto MauvilleCity_GameCorner_EventScript_ConfirmNewPrize + +MauvilleCity_GameCorner_EventScript_ConfirmNewPrize:: + //special BufferItemName + msgbox MauvilleCity_GameCorner_Text_SoYourChoiceIsTheNewX, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_EventScript_CancelTMSelect + switch VAR_TEMP_1 + case 1, MauvilleCity_GameCorner_EventScript_BuyRareCandy + case 2, MauvilleCity_GameCorner_EventScript_BuySunStone + case 3, MauvilleCity_GameCorner_EventScript_BuyMoonStone + case 4, MauvilleCity_GameCorner_EventScript_BuyFireStone + case 5, MauvilleCity_GameCorner_EventScript_BuyThunderStone + case 6, MauvilleCity_GameCorner_EventScript_BuyWaterStone + case 7, MauvilleCity_GameCorner_EventScript_BuyLeafStone + case 8, MauvilleCity_GameCorner_EventScript_BuyChoiceBand + case 9, MauvilleCity_GameCorner_EventScript_BuyBrightPowder + + end + +MauvilleCity_GameCorner_EventScript_BuyBrightPowder:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, BRIGHTPOWDER_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew + checkitemspace ITEM_BRIGHT_POWDER + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew + removecoins BRIGHTPOWDER_COINS + additem ITEM_BRIGHT_POWDER + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_BuyChoiceBand:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, CHOICEBAND_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew + checkitemspace ITEM_CHOICE_BAND + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew + removecoins CHOICEBAND_COINS + additem ITEM_CHOICE_BAND + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_BuyRareCandy:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, RARECANDY_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew + checkitemspace ITEM_RARE_CANDY + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew + removecoins RARECANDY_COINS + additem ITEM_RARE_CANDY + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_BuySunStone:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, SUNSTONE_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew + checkitemspace ITEM_SUN_STONE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew + removecoins SUNSTONE_COINS + additem ITEM_SUN_STONE + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_BuyMoonStone:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, MOONSTONE_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew + checkitemspace ITEM_MOON_STONE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew + removecoins MOONSTONE_COINS + additem ITEM_MOON_STONE + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_BuyFireStone:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, FIRESTONE_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew2 + checkitemspace ITEM_FIRE_STONE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew2 + removecoins FIRESTONE_COINS + additem ITEM_FIRE_STONE + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2 + end + +MauvilleCity_GameCorner_EventScript_BuyThunderStone:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, THUNDERSTONE_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew2 + checkitemspace ITEM_THUNDER_STONE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew2 + removecoins THUNDERSTONE_COINS + additem ITEM_THUNDER_STONE + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2 + end + +MauvilleCity_GameCorner_EventScript_BuyWaterStone:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, WATERSTONE_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew2 + checkitemspace ITEM_WATER_STONE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew2 + removecoins WATERSTONE_COINS + additem ITEM_WATER_STONE + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2 + end + +MauvilleCity_GameCorner_EventScript_BuyLeafStone:: + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, LEAFSTONE_COINS, MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew2 + checkitemspace ITEM_LEAF_STONE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoRoomForNew2 + removecoins LEAFSTONE_COINS + additem ITEM_LEAF_STONE + updatecoinsbox 1, 1 + playse SE_SHOP + msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2 + end MauvilleCity_GameCorner_EventScript_TMDoubleTeam:: setvar VAR_TEMP_1, 1 @@ -356,11 +1028,31 @@ MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForTM:: msgbox MauvilleCity_GameCorner_Text_NotEnoughCoins, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end + +MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew:: + msgbox MauvilleCity_GameCorner_Text_NotEnoughCoins, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_NotEnoughCoinsForNew2:: + msgbox MauvilleCity_GameCorner_Text_NotEnoughCoins, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2 + end MauvilleCity_GameCorner_EventScript_NoRoomForTM:: call Common_EventScript_BagIsFull goto MauvilleCity_GameCorner_EventScript_ReturnToChooseTMPrize end + +MauvilleCity_GameCorner_EventScript_NoRoomForNew:: + call Common_EventScript_BagIsFull + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize + end + +MauvilleCity_GameCorner_EventScript_NoRoomForNew2:: + call Common_EventScript_BagIsFull + goto MauvilleCity_GameCorner_EventScript_ReturnToChooseNewPrize2 + end MauvilleCity_GameCorner_EventScript_CancelTMSelect:: msgbox MauvilleCity_GameCorner_Text_OhIsThatSo, MSGBOX_DEFAULT @@ -371,6 +1063,26 @@ MauvilleCity_GameCorner_EventScript_CancelTMSelect:: MauvilleCity_GameCorner_EventScript_Woman2:: msgbox MauvilleCity_GameCorner_Text_CoinsAreNeededToPlay, MSGBOX_NPC end + +MauvilleCity_GameCorner_EventScript_Dealer:: + msgbox MauvilleCity_GameCorner_Text_Dealer, MSGBOX_NPC + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_Dealer2:: + msgbox MauvilleCity_GameCorner_Text_Dealer2, MSGBOX_NPC + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_VFGuy1:: + msgbox MauvilleCity_GameCorner_Text_VFGuy1, MSGBOX_NPC + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_VFGuy2:: + msgbox MauvilleCity_GameCorner_Text_VFGuy2, MSGBOX_NPC + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end MauvilleCity_GameCorner_EventScript_Gentleman:: msgbox MauvilleCity_GameCorner_Text_RouletteOnlyLuck, MSGBOX_NPC @@ -465,6 +1177,62 @@ MauvilleCity_GameCorner_EventScript_OldMan:: msgbox MauvilleCity_GameCorner_Text_RouletteTablesDifferentRates, MSGBOX_DEFAULT goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end + +MauvilleCity_GameCorner_EventScript_PachinkoGuy:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_PachinkoGuy, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_Hiker:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Hiker, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_Bouncer:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Bouncer2, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_DerbyLady1:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Derby_1, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_DerbyLady2:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Derby_2, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_Fisherman:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Fisherman, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end + +MauvilleCity_GameCorner_EventScript_Gachalady:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Gachalady, MSGBOX_DEFAULT + closemessage + end + +MauvilleCity_GameCorner_EventScript_Employee:: + lock + faceplayer + msgbox MauvilleCity_GameCorner_Text_Employee, MSGBOX_DEFAULT + goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots + end MauvilleCity_GameCorner_EventScript_Cook:: lock @@ -480,6 +1248,26 @@ MauvilleCity_GameCorner_EventScript_Man:: goto MauvilleCity_GameCorner_EventScript_NPCReturnToSlots end +MauvilleCity_GameCorner_EventScript_JuiceLady:: + lock + faceplayer + checkitem ITEM_COIN_CASE + goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase2 + showcoinsbox 1, 1 + msgbox MauvilleCity_GameCorner_Text_Juice, MSGBOX_YESNO + closemessage + goto_if_eq VAR_RESULT, NO, MauvilleCity_GameCorner_CancelVF + checkcoins VAR_TEMP_2 + goto_if_lt VAR_TEMP_2, 10, Juice_Not_Enough + removecoins 10 + updatecoinsbox 1, 1 + playse SE_SHOP + delay 40 + hidecoinsbox 0, 5 + giveitem ITEM_BERRY_JUICE + release + end + MauvilleCity_GameCorner_EventScript_NPCReturnToSlots:: closemessage applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection @@ -507,6 +1295,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine0:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 0 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -517,6 +1306,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine1:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 1 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -527,6 +1317,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine2:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 2 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -537,6 +1328,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine3:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 3 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -547,6 +1339,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine4:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 4 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -557,6 +1350,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine5:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 5 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -567,6 +1361,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine6:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 6 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -577,6 +1372,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine7:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 7 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -587,6 +1383,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine8:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 8 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -597,6 +1394,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine9:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 9 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -607,6 +1405,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine10:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 10 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -617,6 +1416,7 @@ MauvilleCity_GameCorner_EventScript_SlotMachine11:: goto_if_eq VAR_RESULT, FALSE, MauvilleCity_GameCorner_EventScript_NoCoinCase setvar VAR_0x8004, 11 specialvar VAR_RESULT, GetSlotMachineId + playbgm MUS_GAME_CORNER, FALSE playslotmachine VAR_RESULT releaseall end @@ -626,9 +1426,78 @@ MauvilleCity_GameCorner_EventScript_NoCoinCase:: releaseall end +MauvilleCity_GameCorner_EventScript_NoCoinCase2:: + msgbox MauvilleCity_GameCorner_Text_CantBuyWithNoCoinCase, MSGBOX_DEFAULT + releaseall + end + MauvilleCity_GameCorner_Text_ThisIsMauvilleGameCorner: .string "This is MAUVILLE GAME CORNER.$" +MauvilleCity_GameCorner_Text_PachinkoGuy: + .string "I used to own one of these dusty old\n" + .string "DROPSPIN MACHINES.\p" + .string "The manual always said 'Use the\n" + .string "DIRECTIONAL BUTTONS to TILT and\l" + .string "change the DROP SPEED…'\p" + .string "I've always wondered what that\n" + .string "means.$" + +MauvilleCity_GameCorner_Text_Hiker: + .string "Gah!\n" + .string "I blew it all on that ONIX game.\p" + .string "You need to be careful…\p" + .string "You only win 2 COINS for\n" + .string "every point in these machines.$" + +MauvilleCity_GameCorner_Text_Derby_1: + .string "Looking to bet on the DERBY?\n" + .string "We've gone digital!\p" + .string "Use one of the tablets\n" + .string "in front of the counter.$" + +MauvilleCity_GameCorner_Text_Derby_2: + .string "It's not all about CONDITION.\p" + .string "At the end of the day, it's\n" + .string "really all luck.\p" + .string "Sometimes it's best to just\n" + .string "pick your favorite!$" + +MauvilleCity_GameCorner_Text_Fisherman: + .string "I come here for the food.\p" + .string "It's no CELADON CAFE…\n" + .string "But it'll do.$" + +MauvilleCity_GameCorner_Text_Gachalady: + .string "The LOTTERY MACHINES have odds,\n" + .string "but nothing is guaranteed.\p" + .string "Some machines are better than\n" + .string "others, and there are different\l" + .string "rarities in all of them.\p" + .string "New POKéMON are also weighted\n" + .string "By your POKéDEX, so be wary.$" + +MauvilleCity_GameCorner_Text_Employee: + .string "I'm on the lookout for cheaters.\n" + .string "Nobody likes a cheater!$" + +MauvilleCity_GameCorner_Text_Bouncer1: + .string "You need a valid TRAINER ID\n" + .string "to enter the GAME CORNER.\p" + .string "Let's see…\p" + .string "…\p" + .string "Hmm…\p" + .string "…\p" + .string "Everything looks good here.\n" + .string "Enjoy the GAME CORNER!$" + +MauvilleCity_GameCorner_Text_Bouncer2: + .string "Enjoy the GAME CORNER!$" + +MauvilleCity_GameCorner_Text_Pachinko: + .string "A DROPSPIN MACHINE!\n" + .string "It's 3 COINS per BALL.$" + MauvilleCity_GameCorner_Text_NeedCoinCaseForCoins: .string "Okay, you wanted some COINS for\n" .string "the games?\p" @@ -667,6 +1536,54 @@ MauvilleCity_GameCorner_Text_WhichPrize: MauvilleCity_GameCorner_Text_SoYourChoiceIsTheTMX: .string "So your choice is\n" .string "the {STR_VAR_1} {STR_VAR_2}?$" + +MauvilleCity_GameCorner_Text_SoYourChoiceIsTheNewX: + .string "So your choice is\n" + .string "the {STR_VAR_1}?$" + +MauvilleCity_GameCorner_Text_BlackJack: + .string "It's a BLACKJACK TABLE!\n" + .string "Want to play?$" + +MauvilleCity_GameCorner_Text_Derby: + .string "It's the MAUVILLE DERBY!\n" + .string "Want to place a bet?$" + +MauvilleCity_GameCorner_Text_Snake: + .string "It's ONIX!\n" + .string "It costs 25 COINS to play.$" + +MauvilleCity_GameCorner_Text_Bird: + .string "It's FLUTTERFREE!\n" + .string "It costs 25 COINS to play.$" + +MauvilleCity_GameCorner_Text_Pinball_Meowth: + .string "It's a PINBALL MACHINE!\n" + .string "It costs 25 COINS to play.$" + +MauvilleCity_GameCorner_Text_BS: + .string "It's BLOCK BUILDER!\n" + .string "It costs 25 COINS to play.$" + +MauvilleCity_GameCorner_Text_Pinball_Seel: + .string "It's a PINBALL MACHINE!\n" + .string "It costs 25 COINS to play.$" + +MauvilleCity_GameCorner_Text_Pinball_Diglett: + .string "It's a PINBALL MACHINE!\n" + .string "It costs 50 COINS to play.$" + +MauvilleCity_GameCorner_Text_Pinball_Gengar: + .string "It's a PINBALL MACHINE!\n" + .string "It costs 100 COINS to play.$" + +MauvilleCity_GameCorner_Text_VF: + .string "It's VOLTORB FLIP!\n" + .string "It costs 50 COINS to play.$" + +VF_Come_Again_Text: + .string "Too bad.\n" + .string "Try again soon!$" MauvilleCity_GameCorner_Text_SendToYourHomePC: .string "Thank you!\n" @@ -675,10 +1592,41 @@ MauvilleCity_GameCorner_Text_SendToYourHomePC: MauvilleCity_GameCorner_Text_NotEnoughCoins: .string "You don't have enough COINS.$" +PB_YOU_WON_TEXT: + .string "You won\n" + .string "{STR_VAR_1} COINS!$" + +PB_Not_Enough: + .string "It's a PINBALL MACHINE!\p" + .string "You don't have enough COINS…$" + +Snake_Not_Enough: + .string "It's ONIX!\p" + .string "You don't have enough COINS…$" + +Bjuice_Not_Enough: + .string "You don't have enough COINS.$" + +Bird_Not_Enough: + .string "It's FLUTTERFREE!\p" + .string "You don't have enough COINS…$" + +BS_Not_Enough: + .string "It's BLOCK BUILDER!\p" + .string "You don't have enough COINS…$" + +Flip_Not_Enough: + .string "It's VOLTORB FLIP!\p" + .string "You don't have enough COINS…$" + @ Unused MauvilleCity_GameCorner_Text_NoRoomForPlacingDecor: .string "There isn't any room available for\n" .string "placing {STR_VAR_1}.$" + +MauvilleCity_GameCorner_Text_VF_Keep_Going: + .string "You've made {STR_VAR_1} COINS.\n" + .string "Keep going?$" MauvilleCity_GameCorner_Text_OhIsThatSo: .string "Oh, is that so? \n" @@ -744,6 +1692,26 @@ MauvilleCity_GameCorner_Text_EasyToLoseTrackOfTime: MauvilleCity_GameCorner_Text_CoinsAreNeededToPlay: .string "COINS are needed to play here\n" .string "in the GAME CORNER.$" + + MauvilleCity_GameCorner_Text_Dealer: + .string "Some say BLACKJACK is about skill.\n" + .string "Others say it's about luck.\p" + .string "I say it's about having fun…\n" + .string "and maybe winning big!$" + + MauvilleCity_GameCorner_Text_Dealer2: + .string "You can bet anything divisible\n" + .string "by 10 here.\p" + .string "Maybe you should go all in!$" + +MauvilleCity_GameCorner_Text_VFGuy1: + .string "You want to play VOLTORB FLIP?\p" + .string "You need to be on the other\n" + .string "side of the table.$" + +MauvilleCity_GameCorner_Text_VFGuy2: + .string "Try the other side of\n" + .string "the table, pal.$" MauvilleCity_GameCorner_Text_RouletteOnlyLuck: .string "This ROULETTE thing…\n" @@ -776,3 +1744,10 @@ MauvilleCity_GameCorner_Text_CantPlayWithNoCoinCase: .string "You can't play if you don't have\n" .string "a COIN CASE.$" +MauvilleCity_GameCorner_Text_CantBuyWithNoCoinCase: + .string "Huh? Looks like you need\n" + .string "a COIN CASE.$" + +MauvilleCity_GameCorner_Text_Juice: + .string "BERRY JUICE!\n" + .string "Just 10 COINS.$" diff --git a/data/maps/MtEmber_Exterior_Frlg/map.json b/data/maps/MtEmber_Exterior_Frlg/map.json new file mode 100644 index 000000000000..87b346266035 --- /dev/null +++ b/data/maps/MtEmber_Exterior_Frlg/map.json @@ -0,0 +1,397 @@ +{ + "id": "MAP_MT_EMBER_EXTERIOR", + "name": "MtEmber_Exterior_Frlg", + "layout": "LAYOUT_MT_EMBER_EXTERIOR", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 29, + "y": 45, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Exterior_EventScript_ExplosionTutor", + "flag": "0" + }, + { + "local_id": "LOCALID_MT_EMBER_GRUNT1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 41, + "y": 40, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Exterior_EventScript_Grunt1", + "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS" + }, + { + "local_id": "LOCALID_MT_EMBER_GRUNT2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 42, + "y": 40, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Exterior_EventScript_Grunt2", + "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 22, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "MtEmber_Exterior_EventScript_Jocelyn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 15, + "y": 28, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "MtEmber_Exterior_EventScript_Logan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 14, + "y": 42, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "MtEmber_Exterior_EventScript_Beth", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 29, + "y": 41, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 30, + "y": 42, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 22, + "y": 45, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 17, + "y": 46, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 36, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 34, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 36, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 35, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 35, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 18, + "y": 39, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 19, + "y": 40, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 13, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Exterior_EventScript_ItemUltraBall", + "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ULTRA_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 38, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Exterior_EventScript_ItemFireStone", + "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_FIRE_STONE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 48, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Exterior_EventScript_ItemDireHit", + "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_DIRE_HIT" + } + ], + "warp_events": [ + { + "x": 28, + "y": 48, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "dest_warp_id": "0" + }, + { + "x": 29, + "y": 48, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "dest_warp_id": "1" + }, + { + "x": 14, + "y": 24, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", + "dest_warp_id": "0" + }, + { + "x": 39, + "y": 19, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", + "dest_warp_id": "1" + }, + { + "x": 29, + "y": 7, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT", + "dest_warp_id": "0" + }, + { + "x": 42, + "y": 39, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 37, + "y": 43, + "elevation": 0, + "var": "VAR_MAP_SCENE_MT_EMBER_EXTERIOR", + "var_value": "1", + "script": "MtEmber_Exterior_EventScript_RocketPasswordScene" + }, + { + "type": "trigger", + "x": 38, + "y": 43, + "elevation": 0, + "var": "VAR_MAP_SCENE_MT_EMBER_EXTERIOR", + "var_value": "1", + "script": "MtEmber_Exterior_EventScript_RocketPasswordScene" + }, + { + "type": "trigger", + "x": 39, + "y": 43, + "elevation": 0, + "var": "VAR_MAP_SCENE_MT_EMBER_EXTERIOR", + "var_value": "1", + "script": "MtEmber_Exterior_EventScript_RocketPasswordScene" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 18, + "y": 17, + "elevation": 0, + "item": "ITEM_FIRE_STONE", + "flag": "FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 8, + "y": 30, + "elevation": 3, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/MtEmber_Exterior_Frlg/scripts.inc b/data/maps/MtEmber_Exterior_Frlg/scripts.inc new file mode 100644 index 000000000000..59de1d10fbef --- /dev/null +++ b/data/maps/MtEmber_Exterior_Frlg/scripts.inc @@ -0,0 +1,247 @@ +MtEmber_Exterior_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, MtEmber_Exterior_OnTransition + map_script MAP_SCRIPT_ON_LOAD, MtEmber_Exterior_OnLoad + .byte 0 + +MtEmber_Exterior_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_MT_EMBER_EXTERIOR + call_if_eq VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 2, MtEmber_Exterior_EventScript_RocketsFaceDown + end + +MtEmber_Exterior_EventScript_RocketsFaceDown:: + setobjectmovementtype LOCALID_MT_EMBER_GRUNT1, MOVEMENT_TYPE_FACE_DOWN + setobjectmovementtype LOCALID_MT_EMBER_GRUNT2, MOVEMENT_TYPE_FACE_DOWN + return + +MtEmber_Exterior_OnLoad:: + call_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4, MtEmber_Exterior_EventScript_OpenCave + end + +MtEmber_Exterior_EventScript_OpenCave:: + setmetatile 42, 39, METATILE_MtEmber_CaveEntrance, 0 + return + +MtEmber_Exterior_EventScript_Grunt1:: + lock + goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_43, MtEmber_Exterior_EventScript_Grunt1Defeated + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4, MtEmber_Exterior_EventScript_BattleGrunt1 + msgbox MtEmber_Exterior_Text_WellTryDiggingHere + release + end + +MtEmber_Exterior_EventScript_Grunt1Defeated:: + msgbox MtEmber_Exterior_Text_Grunt1PostBattle + release + end + +MtEmber_Exterior_EventScript_BattleGrunt1:: + applymovement LOCALID_MT_EMBER_GRUNT1, Common_Movement_FacePlayer + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_ROCKET, 0 + msgbox MtEmber_Exterior_Text_Grunt1Intro + trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_43, MtEmber_Exterior_Text_Grunt1Defeat + msgbox MtEmber_Exterior_Text_Grunt1PostBattle + goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_44, MtEmber_Exterior_EventScript_DefeatedBothGrunts + release + end + +MtEmber_Exterior_EventScript_DefeatedBothGrunts:: + msgbox MtEmber_Exterior_Text_WellRegroupDontStepInsideThere + closemessage + fadescreenswapbuffers FADE_TO_BLACK + removeobject LOCALID_MT_EMBER_GRUNT1 + removeobject LOCALID_MT_EMBER_GRUNT2 + fadescreenswapbuffers FADE_FROM_BLACK + release + end + +MtEmber_Exterior_EventScript_Grunt2:: + lock + faceplayer + goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_44, MtEmber_Exterior_EventScript_DefeatedGrunt2 + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4, MtEmber_Exterior_EventScript_BattleGrunt2 + msgbox MtEmber_Exterior_Text_YoureInTheWayGetLost + closemessage + applymovement LOCALID_MT_EMBER_GRUNT2, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +MtEmber_Exterior_EventScript_DefeatedGrunt2:: + msgbox MtEmber_Exterior_Text_Grunt2PostBattle + release + end + +MtEmber_Exterior_EventScript_BattleGrunt2:: + playbgm MUS_RG_ENCOUNTER_ROCKET, 0 + msgbox MtEmber_Exterior_Text_Grunt2Intro + trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_44, MtEmber_Exterior_Text_Grunt2Defeat + msgbox MtEmber_Exterior_Text_Grunt2PostBattle + goto_if_defeated TRAINER_TEAM_ROCKET_GRUNT_43, MtEmber_Exterior_EventScript_DefeatedBothGrunts + release + end + +MtEmber_Exterior_EventScript_RocketPasswordScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox MtEmber_Exterior_Text_PunchedThroughAtLast + message MtEmber_Exterior_Text_WhatsPasswordAgain + waitmessage + playse SE_PIN + applymovement LOCALID_MT_EMBER_GRUNT2, Common_Movement_QuestionMark + waitmovement 0 + waitbuttonpress + msgbox MtEmber_Exterior_Text_FirstPasswordGoldeen + applymovement LOCALID_MT_EMBER_GRUNT1, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playse SE_PIN + applymovement LOCALID_MT_EMBER_GRUNT1, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_MT_EMBER_GRUNT1, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_MT_EMBER_GRUNT2, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + call MtEmber_Exterior_EventScript_RocketsFaceDown + msgbox MtEmber_Exterior_Text_SnoopsBeenListeningIn + setvar VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 2 + releaseall + end + +MtEmber_Exterior_EventScript_Logan:: + trainerbattle_single TRAINER_PKMN_RANGER_LOGAN, MtEmber_Exterior_Text_LoganIntro, MtEmber_Exterior_Text_LoganDefeat + msgbox MtEmber_Exterior_Text_LoganPostBattle, MSGBOX_AUTOCLOSE + end + +MtEmber_Exterior_EventScript_Beth:: + trainerbattle_single TRAINER_PKMN_RANGER_BETH, MtEmber_Exterior_Text_BethIntro, MtEmber_Exterior_Text_BethDefeat + msgbox MtEmber_Exterior_Text_BethPostBattle, MSGBOX_AUTOCLOSE + end + +MtEmber_Exterior_EventScript_Jocelyn:: + trainerbattle_single TRAINER_CRUSH_GIRL_JOCELYN, MtEmber_Exterior_Text_JocelynIntro, MtEmber_Exterior_Text_JocelynDefeat + msgbox MtEmber_Exterior_Text_JocelynPostBattle, MSGBOX_AUTOCLOSE + end + +Text_ExplosionTeach:: + .string "Can you imagine?\n" + .string "If this volcano were to erupt?\p" + .string "The explosion would be the end of\n" + .string "us. How terrifying is that?\p" + .string "While we're terrified, would you\n" + .string "like me to teach EXPLOSION?$" + +Text_ExplosionDeclined:: + .string "Yeah, you're right.\n" + .string "It is too terrifying.$" + +Text_ExplosionWhichMon:: + .string "You're terribly brave!\p" + .string "Which POKéMON should I teach\n" + .string "EXPLOSION?$" + +Text_ExplosionTaught:: + .string "Using EXPLOSION while on this\n" + .string "volcano…\p" + .string "What a terrifying thrill!$" + +MtEmber_Exterior_Text_WellTryDiggingHere:: + .string "Over here.\n" + .string "We'll try digging here.\p" + .string "That treasure the ADMINS've been\n" + .string "talking about should be here.$" + +MtEmber_Exterior_Text_YoureInTheWayGetLost:: + .string "What the…?\n" + .string "You're in the way. Get lost.$" + +MtEmber_Exterior_Text_PunchedThroughAtLast:: + .string "Whew, punched through at last.\n" + .string "Let's go treasure hunting!$" + +MtEmber_Exterior_Text_WhatsPasswordAgain:: + .string "Any treasure we find, we haul back\n" + .string "to the WAREHOUSE, understood?\p" + .string "…Oh, and what're the passwords?\n" + .string "At the ROCKET WAREHOUSE, I mean.$" + +MtEmber_Exterior_Text_FirstPasswordGoldeen:: + .string "What, you forgot the password?\n" + .string "There're actually two.\p" + .string "The first one's “GOLDEEN need\n" + .string "log.”\p" + .string "And the second one is…$" + +MtEmber_Exterior_Text_SnoopsBeenListeningIn:: + .string "Hey!\n" + .string "This snoop's been listening in!$" + +MtEmber_Exterior_Text_Grunt1Intro:: + .string "You've been eavesdropping on us,\n" + .string "haven't you?$" + +MtEmber_Exterior_Text_Grunt1Defeat:: + .string "Huh, what?$" + +MtEmber_Exterior_Text_Grunt1PostBattle:: + .string "Why'd you have to win?$" + +MtEmber_Exterior_Text_Grunt2Intro:: + .string "Trying to horn in on our treasure?\n" + .string "Don't bet on it!$" + +MtEmber_Exterior_Text_Grunt2Defeat:: + .string "Wait!\n" + .string "But how?$" + +MtEmber_Exterior_Text_Grunt2PostBattle:: + .string "Develop amnesia conveniently and\n" + .string "forget everything you heard!$" + +MtEmber_Exterior_Text_WellRegroupDontStepInsideThere:: + .string "What a setback…\n" + .string "We'll have to regroup.\p" + .string "You! Don't even think about taking\n" + .string "a step inside here!\p" + .string "If you know what's good for you,\n" + .string "don't even think about this!$" + +MtEmber_Exterior_Text_LoganIntro:: + .string "An active volcano is one that's\n" + .string "erupting, or about to.$" + +MtEmber_Exterior_Text_LoganDefeat:: + .string "Whew… That was hot!\n" + .string "Sweat's erupting from me!$" + +MtEmber_Exterior_Text_LoganPostBattle:: + .string "They say there're over 1,500\n" + .string "active volcanoes in the world.\p" + .string "Just thinking about them makes me\n" + .string "feel all hot and gooey inside!$" + +MtEmber_Exterior_Text_BethIntro:: + .string "Do you know how caves form inside\n" + .string "volcanoes?$" + +MtEmber_Exterior_Text_BethDefeat:: + .string "Atchah!\n" + .string "You're shockingly good!$" + +MtEmber_Exterior_Text_BethPostBattle:: + .string "When lava at the surface of magma\n" + .string "hardens, and the magma inside flows\l" + .string "out, caverns are left behind.$" + +MtEmber_Exterior_Text_JocelynIntro:: + .string "I've been in training so I can mend\n" + .string "my broken heart…\p" + .string "It toughened me up physically at\n" + .string "least! Hi-yah!$" + +MtEmber_Exterior_Text_JocelynDefeat:: + .string "I think I tried to overdo it…$" + +MtEmber_Exterior_Text_JocelynPostBattle:: + .string "The way you battle, it reminds me\n" + .string "of the guy who dumped me…$" + diff --git a/data/maps/MtEmber_RubyPath_1F_Frlg/map.json b/data/maps/MtEmber_RubyPath_1F_Frlg/map.json new file mode 100644 index 000000000000..cf28517cc6f4 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_1F_Frlg/map.json @@ -0,0 +1,115 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_1F", + "name": "MtEmber_RubyPath_1F_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 18, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 23, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 20, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 19, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 21, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + } + ], + "warp_events": [ + { + "x": 22, + "y": 17, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": "5" + }, + { + "x": 1, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", + "dest_warp_id": "0" + }, + { + "x": 24, + "y": 5, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_1F_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..e9d9ff6b0998 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B1F_Frlg/map.json b/data/maps/MtEmber_RubyPath_B1F_Frlg/map.json new file mode 100644 index 000000000000..f35f18b75c68 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B1F", + "name": "MtEmber_RubyPath_B1F_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 1, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 3, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 5, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + } + ], + "warp_events": [ + { + "x": 9, + "y": 21, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B1F_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d6f0b7a3e9c2 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/map.json b/data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/map.json new file mode 100644 index 000000000000..f771c7a6d2a3 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/map.json @@ -0,0 +1,52 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "name": "MtEmber_RubyPath_B1F_Stairs_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + } + ], + "warp_events": [ + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 5, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/scripts.inc new file mode 100644 index 000000000000..a89312ff34d3 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B1F_Stairs_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B2F_Frlg/map.json b/data/maps/MtEmber_RubyPath_B2F_Frlg/map.json new file mode 100644 index 000000000000..7d62dc49e049 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F_Frlg/map.json @@ -0,0 +1,136 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B2F", + "name": "MtEmber_RubyPath_B2F_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B2F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 12, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + } + ], + "warp_events": [ + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", + "dest_warp_id": "1" + }, + { + "x": 13, + "y": 9, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B2F_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B2F_Frlg/scripts.inc new file mode 100644 index 000000000000..b7acd0ebc0a4 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/map.json b/data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/map.json new file mode 100644 index 000000000000..10e0f68b6841 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "name": "MtEmber_RubyPath_B2F_Stairs_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B2F_STAIRS", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + } + ], + "warp_events": [ + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 4, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/scripts.inc new file mode 100644 index 000000000000..94cc35b6985c --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_RubyPath_B2F_Stairs_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_RubyPath_B3F_Frlg/map.json b/data/maps/MtEmber_RubyPath_B3F_Frlg/map.json new file mode 100644 index 000000000000..4f4ccadf4e0c --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B3F_Frlg/map.json @@ -0,0 +1,186 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B3F", + "name": "MtEmber_RubyPath_B3F_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B3F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_RUBY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 10, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 26, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 28, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 4, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", + "dest_warp_id": "1" + }, + { + "x": 19, + "y": 19, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 19, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_RubyPath_B3F_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B3F_Frlg/scripts.inc new file mode 100644 index 000000000000..1209935c31e8 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B3F_Frlg/scripts.inc @@ -0,0 +1,16 @@ +MtEmber_RubyPath_B3F_Frlg_MapScripts:: + .byte 0 + +@ Odd that this is here and not in MtEmber_RubyPath_B5F/scripts.inc +MtEmber_RubyPath_B5F_EventScript_Ruby:: + lock + faceplayer + setflag FLAG_GOT_RUBY + removeobject LOCALID_RUBY + giveitem_msg MtEmber_RubyPath_B3F_Text_FoundARuby, ITEM_RUBY, 1, MUS_RG_OBTAIN_KEY_ITEM + release + end + +MtEmber_RubyPath_B3F_Text_FoundARuby:: + .string "{PLAYER} found a RUBY!$" + diff --git a/data/maps/MtEmber_RubyPath_B4F_Frlg/map.json b/data/maps/MtEmber_RubyPath_B4F_Frlg/map.json new file mode 100644 index 000000000000..e510435cfef8 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B4F_Frlg/map.json @@ -0,0 +1,246 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B4F", + "name": "MtEmber_RubyPath_B4F_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B4F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 14, + "y": 14, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B5F", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleABC" + }, + { + "type": "sign", + "x": 4, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleABC" + }, + { + "type": "sign", + "x": 5, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleABC" + }, + { + "type": "sign", + "x": 4, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleGHI" + }, + { + "type": "sign", + "x": 3, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleGHI" + }, + { + "type": "sign", + "x": 5, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleGHI" + }, + { + "type": "sign", + "x": 3, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleMNO" + }, + { + "type": "sign", + "x": 4, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleMNO" + }, + { + "type": "sign", + "x": 5, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleMNO" + }, + { + "type": "sign", + "x": 3, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleTUV" + }, + { + "type": "sign", + "x": 4, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleTUV" + }, + { + "type": "sign", + "x": 5, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleTUV" + }, + { + "type": "sign", + "x": 7, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleDEF" + }, + { + "type": "sign", + "x": 8, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleDEF" + }, + { + "type": "sign", + "x": 9, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleDEF" + }, + { + "type": "sign", + "x": 7, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleJKL" + }, + { + "type": "sign", + "x": 8, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleJKL" + }, + { + "type": "sign", + "x": 9, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleJKL" + }, + { + "type": "sign", + "x": 7, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BraillePQRS" + }, + { + "type": "sign", + "x": 11, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BraillePeriod" + }, + { + "type": "sign", + "x": 11, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleComma" + }, + { + "type": "sign", + "x": 8, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BraillePQRS" + }, + { + "type": "sign", + "x": 9, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BraillePQRS" + }, + { + "type": "sign", + "x": 7, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ" + }, + { + "type": "sign", + "x": 9, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ" + }, + { + "type": "sign", + "x": 8, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ" + } + ] +} diff --git a/data/maps/MtEmber_RubyPath_B4F_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B4F_Frlg/scripts.inc new file mode 100644 index 000000000000..722d14841042 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B4F_Frlg/scripts.inc @@ -0,0 +1,62 @@ +MtEmber_RubyPath_B4F_Frlg_MapScripts:: + .byte 0 + +MtEmber_RubyPath_B4F_EventScript_BrailleABC:: + lockall + braillemsgbox Braille_Text_ABC + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleGHI:: + lockall + braillemsgbox Braille_Text_GHI + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleMNO:: + lockall + braillemsgbox Braille_Text_MNO + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleTUV:: + lockall + braillemsgbox Braille_Text_TUV + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleDEF:: + lockall + braillemsgbox Braille_Text_DEF + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleJKL:: + lockall + braillemsgbox Braille_Text_JKL + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BraillePQRS:: + lockall + braillemsgbox Braille_Text_PQRS + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleWXYZ:: + lockall + braillemsgbox Braille_Text_WXYZ + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BraillePeriod:: + lockall + braillemsgbox Braille_Text_Period + releaseall + end + +MtEmber_RubyPath_B4F_EventScript_BrailleComma:: + lockall + braillemsgbox Braille_Text_Comma + releaseall + end diff --git a/data/maps/MtEmber_RubyPath_B5F_Frlg/map.json b/data/maps/MtEmber_RubyPath_B5F_Frlg/map.json new file mode 100644 index 000000000000..ed3d97657862 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B5F_Frlg/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_MT_EMBER_RUBY_PATH_B5F", + "name": "MtEmber_RubyPath_B5F_Frlg", + "layout": "LAYOUT_MT_EMBER_RUBY_PATH_B5F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_RUBY", + "x": 7, + "y": 7, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_RubyPath_B5F_EventScript_Ruby", + "flag": "FLAG_HIDE_RUBY" + } + ], + "warp_events": [ + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 7, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "MtEmber_RubyPath_B5F_EventScript_BrailleMessage" + } + ] +} diff --git a/data/maps/MtEmber_RubyPath_B5F_Frlg/scripts.inc b/data/maps/MtEmber_RubyPath_B5F_Frlg/scripts.inc new file mode 100644 index 000000000000..fd1b22a98ad1 --- /dev/null +++ b/data/maps/MtEmber_RubyPath_B5F_Frlg/scripts.inc @@ -0,0 +1,16 @@ +MtEmber_RubyPath_B5F_Frlg_MapScripts:: + .byte 0 + +MtEmber_RubyPath_B5F_EventScript_BrailleMessage:: + lockall + setvar VAR_0x8005, 130 + braillemessage_wait Braille_Text_Everything + braillemessage_wait Braille_Text_HasMeaning1 + braillemessage_wait Braille_Text_Existence + braillemessage_wait Braille_Text_HasMeaning2 + braillemessage_wait Braille_Text_BeingAlive + braillemessage_wait Braille_Text_HasMeaning3 + braillemessage_wait Braille_Text_HaveDreams + braillemsgbox Braille_Text_UsePower + releaseall + end diff --git a/data/maps/MtEmber_SummitPath_1F_Frlg/map.json b/data/maps/MtEmber_SummitPath_1F_Frlg/map.json new file mode 100644 index 000000000000..99385eeb2810 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_1F_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT_PATH_1F", + "name": "MtEmber_SummitPath_1F_Frlg", + "layout": "LAYOUT_MT_EMBER_SUMMIT_PATH_1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 15, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": "2" + }, + { + "x": 11, + "y": 1, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_SummitPath_1F_Frlg/scripts.inc b/data/maps/MtEmber_SummitPath_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..63e947899d8e --- /dev/null +++ b/data/maps/MtEmber_SummitPath_1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_SummitPath_1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_SummitPath_2F_Frlg/map.json b/data/maps/MtEmber_SummitPath_2F_Frlg/map.json new file mode 100644 index 000000000000..7d6437bc1021 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_2F_Frlg/map.json @@ -0,0 +1,164 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT_PATH_2F", + "name": "MtEmber_SummitPath_2F_Frlg", + "layout": "LAYOUT_MT_EMBER_SUMMIT_PATH_2F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 33, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 15, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 13, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 13, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 7, + "y": 38, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 9, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 7, + "y": 34, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_19" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 15, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1A" + } + ], + "warp_events": [ + { + "x": 8, + "y": 39, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", + "dest_warp_id": "1" + }, + { + "x": 39, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_SummitPath_2F_Frlg/scripts.inc b/data/maps/MtEmber_SummitPath_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..0f7e95c6d8bf --- /dev/null +++ b/data/maps/MtEmber_SummitPath_2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_SummitPath_2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_SummitPath_3F_Frlg/map.json b/data/maps/MtEmber_SummitPath_3F_Frlg/map.json new file mode 100644 index 000000000000..4de3af46265b --- /dev/null +++ b/data/maps/MtEmber_SummitPath_3F_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT_PATH_3F", + "name": "MtEmber_SummitPath_3F_Frlg", + "layout": "LAYOUT_MT_EMBER_SUMMIT_PATH_3F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 4, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 8, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/MtEmber_SummitPath_3F_Frlg/scripts.inc b/data/maps/MtEmber_SummitPath_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..d5b8fab6b6d1 --- /dev/null +++ b/data/maps/MtEmber_SummitPath_3F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtEmber_SummitPath_3F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtEmber_Summit_Frlg/map.json b/data/maps/MtEmber_Summit_Frlg/map.json new file mode 100644 index 000000000000..1ff1c34b4004 --- /dev/null +++ b/data/maps/MtEmber_Summit_Frlg/map.json @@ -0,0 +1,105 @@ +{ + "id": "MAP_MT_EMBER_SUMMIT", + "name": "MtEmber_Summit_Frlg", + "layout": "LAYOUT_MT_EMBER_SUMMIT", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_EMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MOLTRES", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtEmber_Summit_EventScript_Moltres", + "flag": "FLAG_HIDE_MOLTRES" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 10, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG", + "x": 9, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 15, + "elevation": 0, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": "4" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/MtEmber_Summit_Frlg/scripts.inc b/data/maps/MtEmber_Summit_Frlg/scripts.inc new file mode 100644 index 000000000000..508dd078e260 --- /dev/null +++ b/data/maps/MtEmber_Summit_Frlg/scripts.inc @@ -0,0 +1,56 @@ +MtEmber_Summit_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, MtEmber_Summit_OnTransition + map_script MAP_SCRIPT_ON_RESUME, MtEmber_Summit_OnResume + .byte 0 + +MtEmber_Summit_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, MtEmber_Summit_EventScript_TryRemoveMoltres + end + +MtEmber_Summit_EventScript_TryRemoveMoltres:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject VAR_LAST_TALKED + return + +MtEmber_Summit_OnTransition:: + call_if_unset FLAG_FOUGHT_MOLTRES, MtEmber_Summit_EventScript_ShowMoltres + end + +MtEmber_Summit_EventScript_ShowMoltres:: + clearflag FLAG_HIDE_MOLTRES + return + +MtEmber_Summit_EventScript_Moltres:: + lock + faceplayer + setwildbattle SPECIES_MOLTRES, 50 + waitse + playmoncry SPECIES_MOLTRES, CRY_MODE_ENCOUNTER + message Text_Gyaoo + waitmessage + waitmoncry + delay 10 + playbgm MUS_RG_ENCOUNTER_GYM_LEADER, 0 + waitbuttonpress + setflag FLAG_SYS_CTRL_OBJ_DELETE + special BattleSetup_StartLegendaryBattle + waitstate + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, MtEmber_Summit_EventScript_DefeatedMoltres + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, MtEmber_Summit_EventScript_RanFromMoltres + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, MtEmber_Summit_EventScript_RanFromMoltres + setflag FLAG_FOUGHT_MOLTRES + release + end + +MtEmber_Summit_EventScript_DefeatedMoltres:: + setflag FLAG_FOUGHT_MOLTRES + goto EventScript_RemoveStaticMon + end + +MtEmber_Summit_EventScript_RanFromMoltres:: + setvar VAR_0x8004, SPECIES_MOLTRES + goto EventScript_MonFlewAway + end diff --git a/data/maps/MtMoon_1F_Frlg/map.json b/data/maps/MtMoon_1F_Frlg/map.json new file mode 100644 index 000000000000..06e56ca9f06b --- /dev/null +++ b/data/maps/MtMoon_1F_Frlg/map.json @@ -0,0 +1,257 @@ +{ + "id": "MAP_MT_MOON_1F", + "name": "MtMoon_1F_Frlg", + "layout": "LAYOUT_MT_MOON_1F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_MOON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 20, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "MtMoon_1F_EventScript_Iris", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 36, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "MtMoon_1F_EventScript_Robby", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 30, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "MtMoon_1F_EventScript_Jovan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 33, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "MtMoon_1F_EventScript_Miriam", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 7, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "MtMoon_1F_EventScript_Kent", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 13, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "MtMoon_1F_EventScript_Josh", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 7, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "MtMoon_1F_EventScript_Marcos", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_ItemParalyzeHeal", + "flag": "FLAG_HIDE_MT_MOON_1F_PARALYZE_HEAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_ItemTM09", + "flag": "FLAG_HIDE_MT_MOON_1F_TM09" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 26, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_ItemPotion", + "flag": "FLAG_HIDE_MT_MOON_1F_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 42, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_MT_MOON_1F_RARE_CANDY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 44, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_ItemEscapeRope", + "flag": "FLAG_HIDE_MT_MOON_1F_ESCAPE_ROPE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_ItemMoonStone", + "flag": "FLAG_HIDE_MT_MOON_1F_MOON_STONE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 42, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_1F_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "0" + }, + { + "x": 19, + "y": 14, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "1" + }, + { + "x": 31, + "y": 16, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "2" + }, + { + "x": 18, + "y": 37, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 19, + "y": 26, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "MtMoon_1F_EventScript_ZubatSign" + } + ] +} diff --git a/data/maps/MtMoon_1F_Frlg/scripts.inc b/data/maps/MtMoon_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..2149c42b4453 --- /dev/null +++ b/data/maps/MtMoon_1F_Frlg/scripts.inc @@ -0,0 +1,139 @@ +MtMoon_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, MtMoon_1F_OnTransition + .byte 0 + +MtMoon_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_MT_MOON_1F + end + +MtMoon_1F_EventScript_ZubatSign:: + msgbox MtMoon_1F_Text_ZubatIsABloodsucker, MSGBOX_SIGN + end + +MtMoon_1F_EventScript_Marcos:: + trainerbattle_single TRAINER_HIKER_MARCOS, MtMoon_1F_Text_MarcosIntro, MtMoon_1F_Text_MarcosDefeat + msgbox MtMoon_1F_Text_MarcosPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_EventScript_Josh:: + trainerbattle_single TRAINER_YOUNGSTER_JOSH, MtMoon_1F_Text_JoshIntro, MtMoon_1F_Text_JoshDefeat + msgbox MtMoon_1F_Text_JoshPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_EventScript_Miriam:: + trainerbattle_single TRAINER_LASS_MIRIAM, MtMoon_1F_Text_MiriamIntro, MtMoon_1F_Text_MiriamDefeat + msgbox MtMoon_1F_Text_MiriamPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_EventScript_Iris:: + trainerbattle_single TRAINER_LASS_IRIS, MtMoon_1F_Text_IrisIntro, MtMoon_1F_Text_IrisDefeat + msgbox MtMoon_1F_Text_IrisPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_EventScript_Jovan:: + trainerbattle_single TRAINER_SUPER_NERD_JOVAN, MtMoon_1F_Text_JovanIntro, MtMoon_1F_Text_JovanDefeat + msgbox MtMoon_1F_Text_JovanPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_EventScript_Kent:: + trainerbattle_single TRAINER_BUG_CATCHER_KENT, MtMoon_1F_Text_KentIntro, MtMoon_1F_Text_KentDefeat + msgbox MtMoon_1F_Text_KentPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_EventScript_Robby:: + trainerbattle_single TRAINER_BUG_CATCHER_ROBBY, MtMoon_1F_Text_RobbyIntro, MtMoon_1F_Text_RobbyDefeat + msgbox MtMoon_1F_Text_RobbyPostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_1F_Text_MarcosIntro:: + .string "WHOA!\n" + .string "You shocked me!\l" + .string "…Oh, you're just a kid!$" + +MtMoon_1F_Text_MarcosDefeat:: + .string "Wow!\n" + .string "Shocked again!$" + +MtMoon_1F_Text_MarcosPostBattle:: + .string "Kids like you shouldn't be\n" + .string "wandering around here in the dark.$" + +MtMoon_1F_Text_JoshIntro:: + .string "Did you come to explore the cave,\n" + .string "too?$" + +MtMoon_1F_Text_JoshDefeat:: + .string "Losing stinks!\n" + .string "It's so uncool.$" + +MtMoon_1F_Text_JoshPostBattle:: + .string "I came all the way down here to\n" + .string "show off to girls.$" + +MtMoon_1F_Text_MiriamIntro:: + .string "Wow! It's way bigger in here than\n" + .string "I thought!$" + +MtMoon_1F_Text_MiriamDefeat:: + .string "Oh!\n" + .string "I lost it!$" + +MtMoon_1F_Text_MiriamPostBattle:: + .string "How do you get out of here?\n" + .string "It's so big, I may get lost.$" + +MtMoon_1F_Text_JovanIntro:: + .string "What!\n" + .string "Don't sneak up on me!$" + +MtMoon_1F_Text_JovanDefeat:: + .string "My POKéMON won't do!$" + +MtMoon_1F_Text_JovanPostBattle:: + .string "I have to find stronger POKéMON.\n" + .string "Where might they be?$" + +MtMoon_1F_Text_IrisIntro:: + .string "What?\n" + .string "I'm waiting for my friends to find\l" + .string "me here.$" + +MtMoon_1F_Text_IrisDefeat:: + .string "I lost?$" + +MtMoon_1F_Text_IrisPostBattle:: + .string "I came because I heard there are\n" + .string "some very rare fossils here.$" + +MtMoon_1F_Text_KentIntro:: + .string "Suspicious men are in the cave.\n" + .string "What about you?$" + +MtMoon_1F_Text_KentDefeat:: + .string "You got me!$" + +MtMoon_1F_Text_KentPostBattle:: + .string "I saw them!\n" + .string "I'm sure they're from TEAM ROCKET!$" + +MtMoon_1F_Text_RobbyIntro:: + .string "You need to go through this cave\n" + .string "to get to CERULEAN CITY.$" + +MtMoon_1F_Text_RobbyDefeat:: + .string "I lost.$" + +MtMoon_1F_Text_RobbyPostBattle:: + .string "ZUBAT is tough!\n" + .string "But if you can catch one, you'll\l" + .string "be able to count on it.$" + +MtMoon_1F_Text_ZubatIsABloodsucker:: + .string "Beware!\n" + .string "ZUBAT is a bloodsucker!$" + +MtMoon_1F_Text_BrockHelpsExcavateFossils:: + .string "Hi, I'm excavating for fossils here\n" + .string "under MT. MOON.\p" + .string "Sometimes, BROCK of PEWTER GYM\n" + .string "lends me a hand.$" diff --git a/data/maps/MtMoon_B1F_Frlg/map.json b/data/maps/MtMoon_B1F_Frlg/map.json new file mode 100644 index 000000000000..90442fe268d1 --- /dev/null +++ b/data/maps/MtMoon_B1F_Frlg/map.json @@ -0,0 +1,140 @@ +{ + "id": "MAP_MT_MOON_B1F", + "name": "MtMoon_B1F_Frlg", + "layout": "LAYOUT_MT_MOON_B1F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_MOON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 3, + "y": 3, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": "0" + }, + { + "x": 25, + "y": 4, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": "1" + }, + { + "x": 43, + "y": 21, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": "2" + }, + { + "x": 22, + "y": 18, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": "0" + }, + { + "x": 17, + "y": 5, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": "1" + }, + { + "x": 26, + "y": 36, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": "2" + }, + { + "x": 39, + "y": 4, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B2F", + "dest_warp_id": "3" + }, + { + "x": 45, + "y": 4, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 46, + "y": 2, + "elevation": 0, + "item": "ITEM_TINY_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 26, + "y": 2, + "elevation": 0, + "item": "ITEM_TINY_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 39, + "y": 34, + "elevation": 0, + "item": "ITEM_TINY_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 24, + "y": 35, + "elevation": 0, + "item": "ITEM_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 6, + "y": 12, + "elevation": 0, + "item": "ITEM_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 25, + "y": 34, + "elevation": 0, + "item": "ITEM_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/MtMoon_B1F_Frlg/scripts.inc b/data/maps/MtMoon_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..b3c1a602d4d1 --- /dev/null +++ b/data/maps/MtMoon_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +MtMoon_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/MtMoon_B2F_Frlg/map.json b/data/maps/MtMoon_B2F_Frlg/map.json new file mode 100644 index 000000000000..c2089f1f5992 --- /dev/null +++ b/data/maps/MtMoon_B2F_Frlg/map.json @@ -0,0 +1,240 @@ +{ + "id": "MAP_MT_MOON_B2F", + "name": "MtMoon_B2F_Frlg", + "layout": "LAYOUT_MT_MOON_B2F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MT_MOON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_DOME_FOSSIL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FOSSIL_FRLG", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_DomeFossil", + "flag": "FLAG_HIDE_DOME_FOSSIL" + }, + { + "local_id": "LOCALID_HELIX_FOSSIL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FOSSIL_FRLG", + "x": 14, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_HelixFossil", + "flag": "FLAG_HIDE_HELIX_FOSSIL" + }, + { + "local_id": "LOCALID_MIGUEL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 13, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_Miguel", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 37, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "MtMoon_B2F_EventScript_Grunt4", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 12, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "MtMoon_B2F_EventScript_Grunt1", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 35, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "MtMoon_B2F_EventScript_Grunt3", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 18, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "MtMoon_B2F_EventScript_Grunt2", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 30, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_ItemStarPiece", + "flag": "FLAG_HIDE_MT_MOON_B2F_STAR_PIECE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 35, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_ItemTM46", + "flag": "FLAG_HIDE_MT_MOON_B2F_TM46" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 24, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_ItemRevive", + "flag": "FLAG_HIDE_MT_MOON_B2F_REVIVE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MtMoon_B2F_EventScript_ItemAntidote", + "flag": "FLAG_HIDE_MT_MOON_B2F_ANTIDOTE" + } + ], + "warp_events": [ + { + "x": 25, + "y": 21, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "3" + }, + { + "x": 31, + "y": 11, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "4" + }, + { + "x": 17, + "y": 31, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 10, + "elevation": 3, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "6" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 14, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_MT_MOON_B2F", + "var_value": "0", + "script": "MtMoon_B2F_EventScript_MiguelTrigger" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 20, + "y": 16, + "elevation": 3, + "item": "ITEM_MOON_STONE", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 39, + "y": 11, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/MtMoon_B2F_Frlg/scripts.inc b/data/maps/MtMoon_B2F_Frlg/scripts.inc new file mode 100644 index 000000000000..641dc07ea065 --- /dev/null +++ b/data/maps/MtMoon_B2F_Frlg/scripts.inc @@ -0,0 +1,219 @@ +MtMoon_B2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, MtMoon_B2F_OnTransition + .byte 0 + +MtMoon_B2F_OnTransition:: + call_if_unset FLAG_GOT_FOSSIL_FROM_MT_MOON, MtMoon_B2F_EventScript_ShowFossils + end + +MtMoon_B2F_EventScript_ShowFossils:: + clearflag FLAG_HIDE_DOME_FOSSIL + clearflag FLAG_HIDE_HELIX_FOSSIL + return + +MtMoon_B2F_EventScript_MiguelTrigger:: + lockall + applymovement LOCALID_MIGUEL, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + call MtMoon_B2F_EventScript_BattleMiguel + releaseall + end + +MtMoon_B2F_EventScript_Miguel:: + lock + faceplayer + goto_if_set FLAG_GOT_FOSSIL_FROM_MT_MOON, MtMoon_B2F_EventScript_MiguelFossilPicked + goto_if_defeated TRAINER_SUPER_NERD_MIGUEL, MtMoon_B2F_EventScript_MiguelGoPickFossil + call MtMoon_B2F_EventScript_BattleMiguel + release + end + +MtMoon_B2F_EventScript_BattleMiguel:: + textcolor NPC_TEXT_COLOR_MALE + message MtMoon_B2F_Text_MiguelIntro + waitmessage + playbgm MUS_RG_ENCOUNTER_GYM_LEADER, 0 + waitbuttonpress + setvar VAR_LAST_TALKED, LOCALID_MIGUEL + trainerbattle_no_intro TRAINER_SUPER_NERD_MIGUEL, MtMoon_B2F_Text_MiguelDefeat + setvar VAR_MAP_SCENE_MT_MOON_B2F, 1 + msgbox MtMoon_B2F_Text_WellEachTakeAFossil + return + +MtMoon_B2F_EventScript_MiguelFossilPicked:: + msgbox MtMoon_B2F_Text_LabOnCinnabarRegeneratesFossils + release + end + +MtMoon_B2F_EventScript_MiguelGoPickFossil:: + msgbox MtMoon_B2F_Text_WellEachTakeAFossil + release + end + +MtMoon_B2F_EventScript_DomeFossil:: + lock + faceplayer + msgbox MtMoon_B2F_Text_YouWantDomeFossil, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, MtMoon_B2F_EventScript_DontTakeFossil + removeobject LOCALID_DOME_FOSSIL + giveitem_msg MtMoon_B2F_Text_ObtainedDomeFossil, ITEM_DOME_FOSSIL, 1, MUS_RG_OBTAIN_KEY_ITEM + closemessage + delay 10 + applymovement LOCALID_MIGUEL, MtMoon_B2F_Movement_MiguelToHelixFossil + waitmovement 0 + copyobjectxytoperm LOCALID_MIGUEL + textcolor NPC_TEXT_COLOR_MALE + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message MtMoon_B2F_Text_ThenThisFossilIsMine + waitmessage + waitfanfare + removeobject LOCALID_HELIX_FOSSIL + setflag FLAG_GOT_DOME_FOSSIL + setflag FLAG_GOT_FOSSIL_FROM_MT_MOON + release + end + +MtMoon_B2F_Movement_MiguelToHelixFossil:: + walk_right + walk_up + walk_up + walk_up + step_end + +MtMoon_B2F_EventScript_HelixFossil:: + lock + faceplayer + msgbox MtMoon_B2F_Text_YouWantHelixFossil, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, MtMoon_B2F_EventScript_DontTakeFossil + removeobject LOCALID_HELIX_FOSSIL + giveitem_msg MtMoon_B2F_Text_ObtainedHelixFossil, ITEM_HELIX_FOSSIL, 1, MUS_RG_OBTAIN_KEY_ITEM + closemessage + delay 10 + applymovement LOCALID_MIGUEL, MtMoon_B2F_Movement_MiguelToDomeFossil + waitmovement 0 + copyobjectxytoperm LOCALID_MIGUEL + textcolor NPC_TEXT_COLOR_MALE + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message MtMoon_B2F_Text_ThenThisFossilIsMine + waitmessage + waitfanfare + removeobject LOCALID_DOME_FOSSIL + setflag FLAG_GOT_HELIX_FOSSIL + setflag FLAG_GOT_FOSSIL_FROM_MT_MOON + release + end + +MtMoon_B2F_EventScript_DontTakeFossil:: + release + end + +MtMoon_B2F_Movement_MiguelToDomeFossil:: + walk_up + walk_up + walk_up + step_end + +MtMoon_B2F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT, MtMoon_B2F_Text_Grunt1Intro, MtMoon_B2F_Text_Grunt1Defeat + msgbox MtMoon_B2F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_B2F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_2, MtMoon_B2F_Text_Grunt2Intro, MtMoon_B2F_Text_Grunt2Defeat + msgbox MtMoon_B2F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_B2F_EventScript_Grunt3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_3, MtMoon_B2F_Text_Grunt3Intro, MtMoon_B2F_Text_Grunt3Defeat + msgbox MtMoon_B2F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_B2F_EventScript_Grunt4:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_4, MtMoon_B2F_Text_Grunt4Intro, MtMoon_B2F_Text_Grunt4Defeat + msgbox MtMoon_B2F_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE + end + +MtMoon_B2F_Text_MiguelIntro:: + .string "Hey, stop!\p" + .string "I found these fossils!\n" + .string "They're both mine!$" + +MtMoon_B2F_Text_MiguelDefeat:: + .string "Okay!\n" + .string "I'll share!$" + +MtMoon_B2F_Text_WellEachTakeAFossil:: + .string "We'll each take a fossil!\n" + .string "No being greedy!$" + +MtMoon_B2F_Text_ThenThisFossilIsMine:: + .string "All right.\n" + .string "Then this fossil is mine!$" + +MtMoon_B2F_Text_LabOnCinnabarRegeneratesFossils:: + .string "Far away, on CINNABAR ISLAND,\n" + .string "there's a POKéMON LAB.\p" + .string "They do research on regenerating\n" + .string "fossils.$" + +MtMoon_B2F_Text_Grunt1Intro:: + .string "We, TEAM ROCKET, shall find the\n" + .string "fossils!\p" + .string "Reviving POKéMON from them will\n" + .string "earn us huge riches!$" + +MtMoon_B2F_Text_Grunt1Defeat:: + .string "Urgh!\n" + .string "Now I'm mad!$" + +MtMoon_B2F_Text_Grunt1PostBattle:: + .string "You made me mad!\n" + .string "TEAM ROCKET will blacklist you!$" + +MtMoon_B2F_Text_Grunt2Intro:: + .string "We, TEAM ROCKET, are POKéMON\n" + .string "gangsters!\l" + .string "We strike fear with our strength!$" + +MtMoon_B2F_Text_Grunt2Defeat:: + .string "I blew it!$" + +MtMoon_B2F_Text_Grunt2PostBattle:: + .string "Darn it all!\n" + .string "My associates won't stand for this!$" + +MtMoon_B2F_Text_Grunt3Intro:: + .string "We're pulling a big job here!\n" + .string "Get lost, kid!$" + +MtMoon_B2F_Text_Grunt3Defeat:: + .string "So, you are good…$" + +MtMoon_B2F_Text_Grunt3PostBattle:: + .string "If you find a fossil, give it to me\n" + .string "and scram!$" + +MtMoon_B2F_Text_Grunt4Intro:: + .string "Little kids shouldn't be messing\n" + .string "around with grown-ups!\p" + .string "It could be bad news!$" + +MtMoon_B2F_Text_Grunt4Defeat:: + .string "I'm steamed!$" + +MtMoon_B2F_Text_Grunt4PostBattle:: + .string "POKéMON lived here long before\n" + .string "people came.$" + +MtMoon_B2F_Text_YouWantDomeFossil:: + .string "Do you want the DOME FOSSIL?$" + +MtMoon_B2F_Text_YouWantHelixFossil:: + .string "Do you want the HELIX FOSSIL?$" + +MtMoon_B2F_Text_ObtainedHelixFossil:: + .string "Obtained the HELIX FOSSIL!$" + +MtMoon_B2F_Text_ObtainedDomeFossil:: + .string "Obtained the DOME FOSSIL!$" + diff --git a/data/maps/NavelRock_1F_Frlg/map.json b/data/maps/NavelRock_1F_Frlg/map.json new file mode 100644 index 000000000000..336d65f904cc --- /dev/null +++ b/data/maps/NavelRock_1F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_1F", + "name": "NavelRock_1F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 8, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_B1F_FRLG", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 23, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_EXTERIOR_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_1F_Frlg/scripts.inc b/data/maps/NavelRock_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..5b5933c03347 --- /dev/null +++ b/data/maps/NavelRock_1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_B1F_Frlg/map.json b/data/maps/NavelRock_B1F_Frlg/map.json new file mode 100644 index 000000000000..f39e93b188e2 --- /dev/null +++ b/data/maps/NavelRock_B1F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_B1F_FRLG", + "name": "NavelRock_B1F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_B1F_FRLG", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_1F", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_FORK_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_B1F_Frlg/scripts.inc b/data/maps/NavelRock_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..b96afb4a3cd6 --- /dev/null +++ b/data/maps/NavelRock_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B10F_Frlg/map.json b/data/maps/NavelRock_BasePath_B10F_Frlg/map.json new file mode 100644 index 000000000000..7c0ee53e4afb --- /dev/null +++ b/data/maps/NavelRock_BasePath_B10F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B10F", + "name": "NavelRock_BasePath_B10F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B10F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B10F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B10F_Frlg/scripts.inc new file mode 100644 index 000000000000..602a814361d5 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B10F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B10F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B11F_Frlg/map.json b/data/maps/NavelRock_BasePath_B11F_Frlg/map.json new file mode 100644 index 000000000000..0557ff63b77b --- /dev/null +++ b/data/maps/NavelRock_BasePath_B11F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B11F", + "name": "NavelRock_BasePath_B11F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B11F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B11F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B11F_Frlg/scripts.inc new file mode 100644 index 000000000000..7e02dbacdef0 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B11F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B11F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B1F_Frlg/map.json b/data/maps/NavelRock_BasePath_B1F_Frlg/map.json new file mode 100644 index 000000000000..2ffd6fab3e07 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B1F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B1F", + "name": "NavelRock_BasePath_B1F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B1F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_FORK_FRLG", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B1F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..7621e0951e97 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B2F_Frlg/map.json b/data/maps/NavelRock_BasePath_B2F_Frlg/map.json new file mode 100644 index 000000000000..74a418155ac3 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B2F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B2F", + "name": "NavelRock_BasePath_B2F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B2F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B2F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B2F_Frlg/scripts.inc new file mode 100644 index 000000000000..6ebb7b4c63cb --- /dev/null +++ b/data/maps/NavelRock_BasePath_B2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B3F_Frlg/map.json b/data/maps/NavelRock_BasePath_B3F_Frlg/map.json new file mode 100644 index 000000000000..05404d535f42 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B3F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B3F", + "name": "NavelRock_BasePath_B3F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B3F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B3F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B3F_Frlg/scripts.inc new file mode 100644 index 000000000000..5f54eb7c6484 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B3F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B3F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B4F_Frlg/map.json b/data/maps/NavelRock_BasePath_B4F_Frlg/map.json new file mode 100644 index 000000000000..7e5100c2da23 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B4F_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B4F", + "name": "NavelRock_BasePath_B4F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B4F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B4F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B4F_Frlg/scripts.inc new file mode 100644 index 000000000000..7e5567c18333 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B4F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B4F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B5F_Frlg/map.json b/data/maps/NavelRock_BasePath_B5F_Frlg/map.json new file mode 100644 index 000000000000..c000b27547d3 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B5F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B5F", + "name": "NavelRock_BasePath_B5F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B5F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B5F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B5F_Frlg/scripts.inc new file mode 100644 index 000000000000..7c995d7fb14c --- /dev/null +++ b/data/maps/NavelRock_BasePath_B5F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B5F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B6F_Frlg/map.json b/data/maps/NavelRock_BasePath_B6F_Frlg/map.json new file mode 100644 index 000000000000..81880bb60a32 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B6F_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B6F", + "name": "NavelRock_BasePath_B6F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B6F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B6F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B6F_Frlg/scripts.inc new file mode 100644 index 000000000000..d4a630fe610c --- /dev/null +++ b/data/maps/NavelRock_BasePath_B6F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B6F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B7F_Frlg/map.json b/data/maps/NavelRock_BasePath_B7F_Frlg/map.json new file mode 100644 index 000000000000..de999a362de5 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B7F_Frlg/map.json @@ -0,0 +1,37 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B7F", + "name": "NavelRock_BasePath_B7F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B7F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/NavelRock_BasePath_B7F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B7F_Frlg/scripts.inc new file mode 100644 index 000000000000..c75580dc191f --- /dev/null +++ b/data/maps/NavelRock_BasePath_B7F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B7F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B8F_Frlg/map.json b/data/maps/NavelRock_BasePath_B8F_Frlg/map.json new file mode 100644 index 000000000000..74a13287b849 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B8F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B8F", + "name": "NavelRock_BasePath_B8F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B8F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B8F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B8F_Frlg/scripts.inc new file mode 100644 index 000000000000..1ae7e9b7d5a7 --- /dev/null +++ b/data/maps/NavelRock_BasePath_B8F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B8F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_BasePath_B9F_Frlg/map.json b/data/maps/NavelRock_BasePath_B9F_Frlg/map.json new file mode 100644 index 000000000000..9ebd5a92985e --- /dev/null +++ b/data/maps/NavelRock_BasePath_B9F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_PATH_B9F", + "name": "NavelRock_BasePath_B9F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_PATH_B9F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_BasePath_B9F_Frlg/scripts.inc b/data/maps/NavelRock_BasePath_B9F_Frlg/scripts.inc new file mode 100644 index 000000000000..f9435beca2db --- /dev/null +++ b/data/maps/NavelRock_BasePath_B9F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_BasePath_B9F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_Base_Frlg/map.json b/data/maps/NavelRock_Base_Frlg/map.json new file mode 100644 index 000000000000..740daa83ab1a --- /dev/null +++ b/data/maps/NavelRock_Base_Frlg/map.json @@ -0,0 +1,50 @@ +{ + "id": "MAP_NAVEL_ROCK_BASE_FRLG", + "name": "NavelRock_Base_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_BASE_FRLG", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_NAVEL_ROCK_LUGIA", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LUGIA", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NavelRock_Base_Frlg_EventScript_Lugia", + "flag": "FLAG_HIDE_LUGIA" + } + ], + "warp_events": [ + { + "x": 13, + "y": 20, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_Base_Frlg/scripts.inc b/data/maps/NavelRock_Base_Frlg/scripts.inc new file mode 100644 index 000000000000..5568a01c5afc --- /dev/null +++ b/data/maps/NavelRock_Base_Frlg/scripts.inc @@ -0,0 +1,76 @@ +NavelRock_Base_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, NavelRock_Base_Frlg_OnTransition + map_script MAP_SCRIPT_ON_RESUME, NavelRock_Base_Frlg_OnResume + .byte 0 + +NavelRock_Base_Frlg_OnTransition:: + call_if_set FLAG_FOUGHT_LUGIA, NavelRock_Base_Frlg_EventScript_HideLugia + call_if_unset FLAG_FOUGHT_LUGIA, NavelRock_Base_Frlg_EventScript_TryShowLugia + end + +NavelRock_Base_Frlg_EventScript_HideLugia:: + setflag FLAG_HIDE_LUGIA + return + +NavelRock_Base_Frlg_EventScript_TryShowLugia:: + goto_if_set FLAG_LUGIA_FLEW_AWAY, Common_EventScript_NopReturn + clearflag FLAG_HIDE_LUGIA + return + +NavelRock_Base_Frlg_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NavelRock_Base_Frlg_EventScript_TryRemoveLugia + end + +NavelRock_Base_Frlg_EventScript_TryRemoveLugia:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject LOCALID_NAVEL_ROCK_LUGIA + return + +NavelRock_Base_Frlg_EventScript_Lugia:: + lock + faceplayer + waitse + delay 20 + playse SE_THUNDERSTORM_STOP + setvar VAR_0x8004, 0 @ Vertical pan + setvar VAR_0x8005, 3 @ Horizontal pan + setvar VAR_0x8006, 4 @ Num shakes + setvar VAR_0x8007, 2 @ Shake delay + special ShakeScreen + delay 30 + playse SE_THUNDERSTORM_STOP + setvar VAR_0x8004, 0 @ Vertical pan + setvar VAR_0x8005, 3 @ Horizontal pan + setvar VAR_0x8006, 4 @ Num shakes + setvar VAR_0x8007, 2 @ Shake delay + special ShakeScreen + delay 30 + delay 50 + waitse + playmoncry SPECIES_LUGIA, CRY_MODE_ENCOUNTER + waitmoncry + delay 20 + seteventmon SPECIES_LUGIA, 70 + setflag FLAG_SYS_CTRL_OBJ_DELETE + special BattleSetup_StartLegendaryBattle + waitstate + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NavelRock_Base_Frlg_EventScript_DefeatedLugia + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NavelRock_Base_Frlg_EventScript_RanFromLugia + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NavelRock_Base_Frlg_EventScript_RanFromLugia + setflag FLAG_FOUGHT_LUGIA + release + end + +NavelRock_Base_Frlg_EventScript_DefeatedLugia:: + setflag FLAG_LUGIA_FLEW_AWAY + setvar VAR_0x8004, SPECIES_LUGIA + goto EventScript_MonFlewAway + end + +NavelRock_Base_Frlg_EventScript_RanFromLugia:: + setvar VAR_0x8004, SPECIES_LUGIA + goto EventScript_MonFlewAway + end diff --git a/data/maps/NavelRock_Exterior_Frlg/map.json b/data/maps/NavelRock_Exterior_Frlg/map.json new file mode 100644 index 000000000000..933ad0b4aa1b --- /dev/null +++ b/data/maps/NavelRock_Exterior_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_EXTERIOR_FRLG", + "name": "NavelRock_Exterior_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_EXTERIOR_FRLG", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 9, + "y": 8, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_1F", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 16, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_HARBOR_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_Exterior_Frlg/scripts.inc b/data/maps/NavelRock_Exterior_Frlg/scripts.inc new file mode 100644 index 000000000000..b4be1184aa61 --- /dev/null +++ b/data/maps/NavelRock_Exterior_Frlg/scripts.inc @@ -0,0 +1,7 @@ +NavelRock_Exterior_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, NavelRock_Exterior_OnTransition + .byte 0 + +NavelRock_Exterior_Frlg_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR + end diff --git a/data/maps/NavelRock_Fork_Frlg/map.json b/data/maps/NavelRock_Fork_Frlg/map.json new file mode 100644 index 000000000000..79d68c7a1e33 --- /dev/null +++ b/data/maps/NavelRock_Fork_Frlg/map.json @@ -0,0 +1,50 @@ +{ + "id": "MAP_NAVEL_ROCK_FORK_FRLG", + "name": "NavelRock_Fork_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_FORK_FRLG", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 13, + "y": 95, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_B1F_FRLG", + "dest_warp_id": "1" + }, + { + "x": 3, + "y": 1, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", + "dest_warp_id": "0" + }, + { + "x": 26, + "y": 1, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_Fork_Frlg/scripts.inc b/data/maps/NavelRock_Fork_Frlg/scripts.inc new file mode 100644 index 000000000000..cdcd21a7d76e --- /dev/null +++ b/data/maps/NavelRock_Fork_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_Fork_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_Harbor_Frlg/map.json b/data/maps/NavelRock_Harbor_Frlg/map.json new file mode 100644 index 000000000000..052177cf0e07 --- /dev/null +++ b/data/maps/NavelRock_Harbor_Frlg/map.json @@ -0,0 +1,63 @@ +{ + "id": "MAP_NAVEL_ROCK_HARBOR_FRLG", + "name": "NavelRock_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "NavelRock_Harbor_Frlg_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_EXTERIOR_FRLG", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_Harbor_Frlg/scripts.inc b/data/maps/NavelRock_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..b921ffacbec8 --- /dev/null +++ b/data/maps/NavelRock_Harbor_Frlg/scripts.inc @@ -0,0 +1,15 @@ +NavelRock_Harbor_Frlg_MapScripts:: + .byte 0 + +NavelRock_Harbor_Frlg_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_NAVEL_ROCK + multichoice 20, 8, MULTI_SEAGALLOP_VERMILION, FALSE + switch VAR_RESULT + case 0, EventScript_SailToVermilionCity + case 1, EventScript_CancelSail + case 127, EventScript_CancelSail + end diff --git a/data/maps/NavelRock_SummitPath_2F_Frlg/map.json b/data/maps/NavelRock_SummitPath_2F_Frlg/map.json new file mode 100644 index 000000000000..04182a5f6ccf --- /dev/null +++ b/data/maps/NavelRock_SummitPath_2F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", + "name": "NavelRock_SummitPath_2F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_2F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_FORK_FRLG", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_SummitPath_2F_Frlg/scripts.inc b/data/maps/NavelRock_SummitPath_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..a11dd2951442 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_SummitPath_3F_Frlg/map.json b/data/maps/NavelRock_SummitPath_3F_Frlg/map.json new file mode 100644 index 000000000000..b8f81357f4d3 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_3F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", + "name": "NavelRock_SummitPath_3F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_3F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_SummitPath_3F_Frlg/scripts.inc b/data/maps/NavelRock_SummitPath_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..6404da8fab8b --- /dev/null +++ b/data/maps/NavelRock_SummitPath_3F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_3F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_SummitPath_4F_Frlg/map.json b/data/maps/NavelRock_SummitPath_4F_Frlg/map.json new file mode 100644 index 000000000000..0ec5da07f2b2 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_4F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", + "name": "NavelRock_SummitPath_4F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_4F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_SummitPath_4F_Frlg/scripts.inc b/data/maps/NavelRock_SummitPath_4F_Frlg/scripts.inc new file mode 100644 index 000000000000..66e8bbf4fb0e --- /dev/null +++ b/data/maps/NavelRock_SummitPath_4F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_4F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_SummitPath_5F_Frlg/map.json b/data/maps/NavelRock_SummitPath_5F_Frlg/map.json new file mode 100644 index 000000000000..3ed17e82a82f --- /dev/null +++ b/data/maps/NavelRock_SummitPath_5F_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", + "name": "NavelRock_SummitPath_5F_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT_PATH_5F", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 4, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/NavelRock_SummitPath_5F_Frlg/scripts.inc b/data/maps/NavelRock_SummitPath_5F_Frlg/scripts.inc new file mode 100644 index 000000000000..7aff9939b528 --- /dev/null +++ b/data/maps/NavelRock_SummitPath_5F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +NavelRock_SummitPath_5F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/NavelRock_Summit_Frlg/map.json b/data/maps/NavelRock_Summit_Frlg/map.json new file mode 100644 index 000000000000..c2bd6d4dc779 --- /dev/null +++ b/data/maps/NavelRock_Summit_Frlg/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_NAVEL_ROCK_SUMMIT", + "name": "NavelRock_Summit_Frlg", + "layout": "LAYOUT_NAVEL_ROCK_SUMMIT", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_NAVEL_ROCK_FRLG", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_NAVEL_ROCK_HO_OH", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HOOH", + "x": 9, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_HO_OH" + } + ], + "warp_events": [ + { + "x": 10, + "y": 18, + "elevation": 3, + "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "NavelRock_Summit_EventScript_HoOh" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 9, + "y": 11, + "elevation": 3, + "item": "ITEM_SACRED_ASH", + "flag": "FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH", + "quantity": 1, + "underfoot": true + } + ] +} diff --git a/data/maps/NavelRock_Summit_Frlg/scripts.inc b/data/maps/NavelRock_Summit_Frlg/scripts.inc new file mode 100644 index 000000000000..637812dacf4f --- /dev/null +++ b/data/maps/NavelRock_Summit_Frlg/scripts.inc @@ -0,0 +1,115 @@ +NavelRock_Summit_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, NavelRock_Summit_OnTransition + map_script MAP_SCRIPT_ON_RESUME, NavelRock_Summit_OnResume + .byte 0 + +NavelRock_Summit_OnTransition:: + call_if_set FLAG_FOUGHT_HO_OH, NavelRock_Summit_EventScript_HideHoOh + call_if_unset FLAG_FOUGHT_HO_OH, NavelRock_Summit_EventScript_TryShowHoOh + end + +NavelRock_Summit_EventScript_HideHoOh:: + setvar VAR_TEMP_1, 1 + setflag FLAG_HIDE_HO_OH + return + +NavelRock_Summit_EventScript_TryShowHoOh:: + setvar VAR_TEMP_1, 1 + goto_if_set FLAG_HO_OH_FLEW_AWAY, Common_EventScript_NopReturn + setvar VAR_TEMP_1, 0 + clearflag FLAG_HIDE_HO_OH + return + +NavelRock_Summit_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NavelRock_Summit_EventScript_TryRemoveHoOh + end + +NavelRock_Summit_EventScript_TryRemoveHoOh:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject LOCALID_NAVEL_ROCK_HO_OH + return + +NavelRock_Summit_EventScript_HoOh:: + lockall + setvar VAR_TEMP_1, 1 + special SpawnCameraObject + setvar VAR_0x8004, 3 @ Num loops + setvar VAR_0x8005, 35 @ Delay + special LoopWingFlapSE + applymovement LOCALID_NAVEL_ROCK_HO_OH, Movement_HoOhAppear + applymovement LOCALID_CAMERA, Movement_CameraPanUp + waitmovement 0 + delay 50 + setweather 0 + doweather + waitse + playmoncry SPECIES_HO_OH, CRY_MODE_ENCOUNTER + delay 30 + waitmoncry + delay 60 + setvar VAR_0x8004, 3 @ Num loops + setvar VAR_0x8005, 35 @ Delay + special LoopWingFlapSE + applymovement LOCALID_CAMERA, Movement_CameraPanDown + applymovement LOCALID_NAVEL_ROCK_HO_OH, Movement_HoOhApproach + waitmovement 0 + special RemoveCameraObject + 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_NAVEL_ROCK_HO_OH + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, NavelRock_Summit_EventScript_DefeatedHoOh + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, NavelRock_Summit_EventScript_RanFromHoOh + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, NavelRock_Summit_EventScript_RanFromHoOh + setflag FLAG_FOUGHT_HO_OH + releaseall + end + +NavelRock_Summit_EventScript_DefeatedHoOh:: + setflag FLAG_HO_OH_FLEW_AWAY + setvar VAR_0x8004, SPECIES_HO_OH + goto EventScript_MonFlewAway + end + +NavelRock_Summit_EventScript_RanFromHoOh:: + setvar VAR_0x8004, SPECIES_HO_OH + goto EventScript_MonFlewAway + end + +Movement_CameraPanUp: + walk_up + walk_up + walk_up + step_end + +Movement_CameraPanDown: + delay_16 + delay_16 + walk_down + walk_down + walk_down + step_end + +Movement_HoOhApproach: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_in_place_down + delay_16 + delay_16 + step_end + +Movement_HoOhAppear: + delay_16 + delay_16 + walk_in_place_down + walk_in_place_down + walk_in_place_down + walk_in_place_down + step_end diff --git a/data/maps/OneIsland_Frlg/map.json b/data/maps/OneIsland_Frlg/map.json new file mode 100644 index 000000000000..311456f3de1a --- /dev/null +++ b/data/maps/OneIsland_Frlg/map.json @@ -0,0 +1,125 @@ +{ + "id": "MAP_ONE_ISLAND", + "name": "OneIsland_Frlg", + "layout": "LAYOUT_ONE_ISLAND", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ONE_ISLAND_TREASURE_BEACH", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "offset": -120, + "direction": "right" + } + ], + "object_events": [ + { + "local_id": "LOCALID_ONE_ISLAND_BILL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BILL", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_ONE_ISLAND_BILL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 13, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 14, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 19, + "y": 9, + "elevation": 0, + "dest_map": "MAP_ONE_ISLAND_HOUSE1", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 11, + "elevation": 0, + "dest_map": "MAP_ONE_ISLAND_HOUSE2", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 18, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_HARBOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 14, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_EventScript_IslandSign" + }, + { + "type": "sign", + "x": 15, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_EventScript_PokemonNetCenterSign" + } + ] +} diff --git a/data/maps/OneIsland_Frlg/scripts.inc b/data/maps/OneIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..878d864f360b --- /dev/null +++ b/data/maps/OneIsland_Frlg/scripts.inc @@ -0,0 +1,169 @@ +OneIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, OneIsland_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, OneIsland_OnFrame + .byte 0 + +OneIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_ONE_ISLAND + end + +OneIsland_OnFrame:: + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 2, OneIsland_EventScript_EnterOneIslandFirstTime + .2byte 0 + +OneIsland_EventScript_EnterOneIslandFirstTime:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, OneIsland_Movement_PlayerExitHarbor + waitmovement 0 + msgbox OneIsland_Text_BillLetsGoSeeCelio + closemessage + applymovement LOCALID_ONE_ISLAND_BILL, OneIsland_Movement_BillWalkToPokeCenter + applymovement LOCALID_PLAYER, OneIsland_Movement_PlayerWalkToPokeCenter + waitmovement 0 + opendoor 14, 5 + waitdooranim + applymovement LOCALID_ONE_ISLAND_BILL, OneIsland_Movement_BillEnterPokeCenter + applymovement LOCALID_PLAYER, OneIsland_Movement_PlayerEnterPokeCenter + waitmovement 0 + closedoor 14, 5 + waitdooranim + removeobject LOCALID_ONE_ISLAND_BILL + setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 3 + warp MAP_ONE_ISLAND_POKEMON_CENTER_1F, 9, 9 + waitstate + releaseall + end + + .macro walk_to_pokecenter + walk_up + walk_up + walk_up + walk_up + walk_right + walk_right + walk_up + walk_up + walk_up + walk_up + walk_up + .endm + +OneIsland_Movement_PlayerWalkToPokeCenter:: + walk_up + walk_to_pokecenter + step_end + +OneIsland_Movement_PlayerEnterPokeCenter:: + walk_up + walk_up + set_invisible + step_end + +OneIsland_Movement_PlayerExitHarbor:: + walk_up + step_end + +OneIsland_Movement_BillWalkToPokeCenter:: + walk_to_pokecenter + walk_up + step_end + +OneIsland_Movement_BillEnterPokeCenter:: + walk_up + set_invisible + step_end + +OneIsland_EventScript_OldMan:: + lock + faceplayer + goto_if_set FLAG_IS_CHAMPION, OneIsland_EventScript_OldManLinkHoenn + goto_if_set FLAG_SEVII_DETOUR_FINISHED, OneIsland_EventScript_OldManLinkKanto + msgbox OneIsland_Text_LuckyToHaveCelioHere + release + end + +OneIsland_EventScript_OldManLinkKanto:: + msgbox OneIsland_Text_HavePCLinkageWithKanto + release + end + +OneIsland_EventScript_OldManLinkHoenn:: + msgbox OneIsland_Text_HavePCLinkageWithHoenn + release + end + +OneIsland_EventScript_BaldingMan:: + msgbox OneIsland_Text_IsntWarmClimateHereGreat, MSGBOX_NPC + end + +OneIsland_EventScript_IslandSign:: + msgbox OneIsland_Text_IslandSign, MSGBOX_SIGN + end + +OneIsland_EventScript_PokemonNetCenterSign:: + msgbox OneIsland_Text_PokemonNetCenterSign, MSGBOX_SIGN + end + +OneIsland_Text_BillLetsGoSeeCelio:: + .string "BILL: Here we are!\n" + .string "This is ONE ISLAND.\p" + .string "There are several islands around\n" + .string "here, and this is one of them.\p" + .string "My friend CELIO sent the boat to\n" + .string "fetch me here.\p" + .string "He's in charge of the island's PC\n" + .string "network by his lonesome.\p" + .string "…Why am I telling you this now?\n" + .string "Let's just go see CELIO!$" + +Text_WhereDoYouWantToSail:: + .string "Ahoy, there!\n" + .string "Where do you want to sail?$" + +OneIsland_Text_LuckyToHaveCelioHere:: + .string "Here we are on an island smack in\n" + .string "the middle of nowhere.\p" + .string "We're lucky to have an upstanding\n" + .string "young man like CELIO here.\p" + .string "My granddaughter was in a tizzy\n" + .string "over CELIO's friend.\p" + .string "Something about a famous\n" + .string "POKéMANIAC?\p" + .string "I'm not sure what that means, but\n" + .string "CELIO is quite the man!$" + +OneIsland_Text_HavePCLinkageWithKanto:: + .string "My granddaughter was in a tizzy\n" + .string "over a new breakthrough.\p" + .string "She said we now have PC linkage\n" + .string "with people in KANTO.\p" + .string "I'm not sure what that means, but\n" + .string "CELIO is quite the man!$" + +OneIsland_Text_HavePCLinkageWithHoenn:: + .string "My granddaughter was in a tizzy\n" + .string "over a new breakthrough.\p" + .string "She said we finally have PC linkage\n" + .string "with people in HOENN.\p" + .string "I'm not sure what that means, but\n" + .string "CELIO is quite the man.\p" + .string "He would make a fine husband for\n" + .string "my granddaughter!$" + +OneIsland_Text_IslandSign:: + .string "ONE ISLAND\n" + .string "Friends Gather at Knot Island$" + +OneIsland_Text_PokemonNetCenterSign:: + .string "Expanding the POKéMON World!\n" + .string "POKéMON NET CENTER$" + +@ Unused +OneIsland_Text_ReturnToCinnabar:: + .string "グレンタウンに もどりますか?$" + +OneIsland_Text_IsntWarmClimateHereGreat:: + .string "Hi, sight-seeing, are you?\n" + .string "Isn't the warm climate here great?$" + diff --git a/data/maps/OneIsland_Harbor_Frlg/map.json b/data/maps/OneIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..77f0abbd5c7f --- /dev/null +++ b/data/maps/OneIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_ONE_ISLAND_HARBOR", + "name": "OneIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_Harbor_Frlg/scripts.inc b/data/maps/OneIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..fdf9418d18a0 --- /dev/null +++ b/data/maps/OneIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,42 @@ +OneIsland_Harbor_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, OneIsland_Harbor_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, OneIsland_Harbor_OnFrame + .byte 0 + +OneIsland_Harbor_OnWarp:: + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1, OneIsland_Harbor_EventScript_TurnPlayerNorth + .2byte 0 + +OneIsland_Harbor_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +OneIsland_Harbor_OnFrame:: + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1, OneIsland_Harbor_EventScript_PlayerEnterHarborFirstTime + .2byte 0 + +OneIsland_Harbor_EventScript_PlayerEnterHarborFirstTime:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, OneIsland_Harbor_Movement_PlayerExitHarbor + waitmovement 0 + setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 2 + warp MAP_ONE_ISLAND, 12, 18 + waitstate + releaseall + end + +OneIsland_Harbor_Movement_PlayerExitHarbor:: + walk_up + walk_up + walk_up + step_end + +OneIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_ONE_ISLAND + goto EventScript_ChooseDestFromOneIsland + end diff --git a/data/maps/OneIsland_House1_Frlg/map.json b/data/maps/OneIsland_House1_Frlg/map.json new file mode 100644 index 000000000000..7f9ad96bc7e1 --- /dev/null +++ b/data/maps/OneIsland_House1_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_ONE_ISLAND_HOUSE1", + "name": "OneIsland_House1_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_House1_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_House1_EventScript_OldWoman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_House1_Frlg/scripts.inc b/data/maps/OneIsland_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..7d3d12cd48cf --- /dev/null +++ b/data/maps/OneIsland_House1_Frlg/scripts.inc @@ -0,0 +1,20 @@ +OneIsland_House1_Frlg_MapScripts:: + .byte 0 + +OneIsland_House1_EventScript_OldMan:: + msgbox OneIsland_House1_Text_GazeUponVolcanoOnSunnyDays, MSGBOX_NPC + end + +OneIsland_House1_EventScript_OldWoman:: + msgbox OneIsland_House1_Text_LastTimeMtEmberErupted, MSGBOX_NPC + end + +OneIsland_House1_Text_GazeUponVolcanoOnSunnyDays:: + .string "On sunny days, I step out and gaze\n" + .string "upon the volcano.\p" + .string "That's my daily routine.$" + +OneIsland_House1_Text_LastTimeMtEmberErupted:: + .string "Let me think… When was the last\n" + .string "time MT. EMBER erupted?$" + diff --git a/data/maps/OneIsland_House2_Frlg/map.json b/data/maps/OneIsland_House2_Frlg/map.json new file mode 100644 index 000000000000..20d0a436e413 --- /dev/null +++ b/data/maps/OneIsland_House2_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_ONE_ISLAND_HOUSE2", + "name": "OneIsland_House2_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_House2_EventScript_Lass", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_House2_Frlg/scripts.inc b/data/maps/OneIsland_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..e2ffcc68cf53 --- /dev/null +++ b/data/maps/OneIsland_House2_Frlg/scripts.inc @@ -0,0 +1,12 @@ +OneIsland_House2_Frlg_MapScripts:: + .byte 0 + +OneIsland_House2_EventScript_Lass:: + msgbox OneIsland_House2_Text_IWantToStayHereForever, MSGBOX_NPC + end + +OneIsland_House2_Text_IWantToStayHereForever:: + .string "Young people all want to go off to\n" + .string "big cities.\p" + .string "But I want to stay here forever!$" + diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/map.json b/data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/map.json new file mode 100644 index 000000000000..a4e2d5614f8a --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/map.json @@ -0,0 +1,127 @@ +{ + "id": "MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "name": "OneIsland_KindleRoad_EmberSpa_Frlg", + "layout": "LAYOUT_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_EMBER_SPA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 11, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 15, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_BaldingMan1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_BlackBelt", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 20, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_OldWoman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_RockSmashMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 11, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_BaldingMan2", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 36, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", + "dest_warp_id": "2" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 13, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "OneIsland_KindleRoad_EmberSpa_EventScript_SpaHeal" + } + ], + "bg_events": [ + + ] +} diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/scripts.inc b/data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/scripts.inc new file mode 100644 index 000000000000..ec246e1138d3 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/scripts.inc @@ -0,0 +1,107 @@ +OneIsland_KindleRoad_EmberSpa_Frlg_MapScripts:: + .byte 0 + +OneIsland_KindleRoad_EmberSpa_EventScript_OldMan:: + msgbox OneIsland_KindleRoad_EmberSpa_Text_WaterWarmsMeToCore, MSGBOX_NPC + end + +OneIsland_KindleRoad_EmberSpa_EventScript_BaldingMan1:: + msgbox OneIsland_KindleRoad_EmberSpa_Text_EnjoyBowlOfChowder, MSGBOX_NPC + end + +OneIsland_KindleRoad_EmberSpa_EventScript_BaldingMan2:: + msgbox OneIsland_KindleRoad_EmberSpa_Text_HotSpringIsTherapeutic, MSGBOX_NPC + end + +OneIsland_KindleRoad_EmberSpa_EventScript_OldWoman:: + msgbox OneIsland_KindleRoad_EmberSpa_Text_SeeHowSmoothMySkinIs, MSGBOX_NPC + end + +OneIsland_KindleRoad_EmberSpa_EventScript_BlackBelt:: + lock + faceplayer + famechecker FAMECHECKER_BRUNO, 3 + msgbox OneIsland_KindleRoad_EmberSpa_Text_BrunoVisitsSpaOnOccasion + release + end + +OneIsland_KindleRoad_EmberSpa_EventScript_RockSmashMan:: + lock + faceplayer + goto_if_set FLAG_GOT_HM06, OneIsland_KindleRoad_EmberSpa_EventScript_AlreadyGotHM06 + msgbox OneIsland_KindleRoad_EmberSpa_Text_UsedThisToMakeEmberSpa + giveitem ITEM_HM06 + setflag FLAG_GOT_HM06 + msgbox OneIsland_KindleRoad_EmberSpa_Text_ExplainHM06 + release + end + +OneIsland_KindleRoad_EmberSpa_EventScript_AlreadyGotHM06:: + msgbox OneIsland_KindleRoad_EmberSpa_Text_ExplainHM06 + release + end + +OneIsland_KindleRoad_EmberSpa_EventScript_SpaHeal:: + lockall + fadescreen FADE_TO_WHITE + special HealPlayerParty + fadescreen FADE_FROM_WHITE + msgbox OneIsland_KindleRoad_EmberSpa_Text_WaterExquisiteFullyRefreshed + setvar VAR_TEMP_1, 1 + releaseall + end + +OneIsland_KindleRoad_EmberSpa_Text_WaterWarmsMeToCore:: + .string "Hm!\n" + .string "Haaaaaaaaaaah!\p" + .string "Aaaah! This is heavenly!\n" + .string "The water warms me to my core!\p" + .string "You should jump in, too.\p" + .string "Go to the middle, relax, and get\n" + .string "good and warm!$" + +OneIsland_KindleRoad_EmberSpa_Text_EnjoyBowlOfChowder:: + .string "My favorite part of bathing comes\n" + .string "up right after this.\p" + .string "I enjoy a bowl of chowder to\n" + .string "warm me from the inside, too!$" + +OneIsland_KindleRoad_EmberSpa_Text_WaterExquisiteFullyRefreshed:: + .string "The water is perfectly warm.\n" + .string "It feels exquisite…\p" + .string "{PLAYER} and the POKéMON were\n" + .string "fully refreshed!$" + +OneIsland_KindleRoad_EmberSpa_Text_HotSpringIsTherapeutic:: + .string "Soaking in a hot spring pool is\n" + .string "therapeutic, people say.$" + +OneIsland_KindleRoad_EmberSpa_Text_SeeHowSmoothMySkinIs:: + .string "Have a look at my face.\n" + .string "See how smooth my skin is?\p" + .string "The hot spring's water keeps my\n" + .string "skin younger than my age.$" + +OneIsland_KindleRoad_EmberSpa_Text_BrunoVisitsSpaOnOccasion:: + .string "After an honest day of training,\n" + .string "nothing beats a relaxing soak in\l" + .string "the hot spring pool.\p" + .string "BRUNO, who's a senior ahead of me,\n" + .string "visits the SPA on occasion.\p" + .string "He comes to rehab injuries, both\n" + .string "his own and his POKéMON's.$" + +OneIsland_KindleRoad_EmberSpa_Text_UsedThisToMakeEmberSpa:: + .string "Hot springs go hand-in-hand with\n" + .string "volcanoes.\p" + .string "The EMBER SPA here, well,\n" + .string "I made it years ago.\p" + .string "I hewed the pool right out of a\n" + .string "gigantic boulder by hand.\p" + .string "I was using this at the time.\n" + .string "I suppose I can part with it.$" + +OneIsland_KindleRoad_EmberSpa_Text_ExplainHM06:: + .string "That shatters boulders as if they\n" + .string "were made of crackers.$" + diff --git a/data/maps/OneIsland_KindleRoad_Frlg/map.json b/data/maps/OneIsland_KindleRoad_Frlg/map.json new file mode 100644 index 000000000000..4aaaf96d30e0 --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_Frlg/map.json @@ -0,0 +1,476 @@ +{ + "id": "MAP_ONE_ISLAND_KINDLE_ROAD", + "name": "OneIsland_KindleRoad_Frlg", + "layout": "LAYOUT_ONE_ISLAND_KINDLE_ROAD", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KINDLE_ROAD", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ONE_ISLAND", + "offset": 120, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 11, + "y": 32, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "OneIsland_KindleRoad_EventScript_Maria", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_LAND", + "x": 17, + "y": 132, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "OneIsland_KindleRoad_EventScript_Abigail", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 7, + "y": 39, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP", + "movement_range_x": 6, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Finn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", + "x": 19, + "y": 79, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Garrett", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 15, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EventScript_Tommy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 9, + "y": 53, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 7, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Sharon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 18, + "y": 105, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Tanya", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 16, + "y": 64, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Shea", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 11, + "y": 64, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Hugh", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 11, + "y": 89, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "OneIsland_KindleRoad_EventScript_Bryce", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 9, + "y": 108, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Claire", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 8, + "y": 68, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Mik", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 9, + "y": 68, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_KindleRoad_EventScript_Kia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 8, + "y": 104, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 11, + "y": 95, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 12, + "y": 96, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 10, + "y": 95, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 9, + "y": 105, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 15, + "y": 75, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_19" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 9, + "y": 84, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1A" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 15, + "y": 74, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1B" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 15, + "y": 73, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1C" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 18, + "y": 111, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1D" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 10, + "y": 86, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1E" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 9, + "y": 110, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1F" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 18, + "y": 112, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_11" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 15, + "y": 70, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EventScript_ItemEther", + "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_ETHER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 103, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EventScript_ItemMaxRepel", + "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_MAX_REPEL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 18, + "y": 114, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_KindleRoad_EventScript_ItemCarbos", + "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_CARBOS" + } + ], + "warp_events": [ + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 6, + "elevation": 3, + "dest_map": "MAP_MT_EMBER_EXTERIOR", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 58, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 13, + "y": 59, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_KindleRoad_EventScript_EmberSpaSign" + }, + { + "type": "sign", + "x": 8, + "y": 115, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_KindleRoad_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/OneIsland_KindleRoad_Frlg/scripts.inc b/data/maps/OneIsland_KindleRoad_Frlg/scripts.inc new file mode 100644 index 000000000000..dc1957ff3aef --- /dev/null +++ b/data/maps/OneIsland_KindleRoad_Frlg/scripts.inc @@ -0,0 +1,175 @@ +OneIsland_KindleRoad_Frlg_MapScripts:: + .byte 0 + +OneIsland_KindleRoad_EventScript_RouteSign:: + msgbox OneIsland_KindleRoad_Text_RouteSign, MSGBOX_SIGN + end + +OneIsland_KindleRoad_EventScript_EmberSpaSign:: + msgbox OneIsland_KindleRoad_Text_EmberSpaSign, MSGBOX_SIGN + end + +OneIsland_KindleRoad_Text_MariaIntro:: + .string "The weather's gorgeous!\n" + .string "Perfect for a battle!$" + +OneIsland_KindleRoad_Text_MariaDefeat:: + .string "Aiyeeeeh!$" + +OneIsland_KindleRoad_Text_MariaPostBattle:: + .string "Please don't splash my face!\n" + .string "You'll ruin the makeup.$" + +OneIsland_KindleRoad_Text_AbigailIntro:: + .string "I'm beginning to get a sunburn…$" + +OneIsland_KindleRoad_Text_AbigailDefeat:: + .string "Oh, you're so awful.$" + +OneIsland_KindleRoad_Text_AbigailPostBattle:: + .string "I like that cap you have.\n" + .string "Maybe I should wear one, too…$" + +OneIsland_KindleRoad_Text_FinnIntro:: + .string "Seen from here, MT. EMBER towers\n" + .string "into the sky.$" + +OneIsland_KindleRoad_Text_FinnDefeat:: + .string "Well, aren't you tough?$" + +OneIsland_KindleRoad_Text_FinnPostBattle:: + .string "The sky is immense around these\n" + .string "parts.$" + +OneIsland_KindleRoad_Text_GarrettIntro:: + .string "I took a break from swimming,\n" + .string "only to have you challenge me?$" + +OneIsland_KindleRoad_Text_GarrettDefeat:: + .string "Hey, what the…\n" + .string "You're good, you!$" + +OneIsland_KindleRoad_Text_GarrettPostBattle:: + .string "Instead of using SURF all the time,\n" + .string "you should swim some.$" + +OneIsland_KindleRoad_Text_TommyIntro:: + .string "Wait! Wait a second!\n" + .string "I think I've hooked a big one!$" + +OneIsland_KindleRoad_Text_TommyDefeat:: + .string "I've lost it all again…$" + +OneIsland_KindleRoad_Text_TommyPostBattle:: + .string "Not only did I lose, the big one\n" + .string "got away from me, too!$" + +OneIsland_KindleRoad_Text_SharonIntro:: + .string "Could you help me out with my\n" + .string "training?$" + +OneIsland_KindleRoad_Text_SharonDefeat:: + .string "You were a cut above me.$" + +OneIsland_KindleRoad_Text_SharonPostBattle:: + .string "It's clear that you're skilled.\n" + .string "I like you!$" + +OneIsland_KindleRoad_Text_TanyaIntro:: + .string "There isn't a day in which we don't\n" + .string "train!$" + +OneIsland_KindleRoad_Text_TanyaDefeat:: + .string "I'm such a fool!$" + +OneIsland_KindleRoad_Text_TanyaPostBattle:: + .string "I'll train even harder from now on!$" + +OneIsland_KindleRoad_Text_SheaIntro:: + .string "Every morning, before breakfast,\n" + .string "I swim around this island.$" + +OneIsland_KindleRoad_Text_SheaDefeat:: + .string "Gasp…\n" + .string "Gasp…$" + +OneIsland_KindleRoad_Text_SheaPostBattle:: + .string "I lost because I'm pooped from all\n" + .string "the running I did…$" + +OneIsland_KindleRoad_Text_HughIntro:: + .string "Dress appropriately for battle!\n" + .string "Lose that frivolous outfit!$" + +OneIsland_KindleRoad_Text_HughDefeat:: + .string "Why me?!$" + +OneIsland_KindleRoad_Text_HughPostBattle:: + .string "Even martial artists are becoming\n" + .string "fashion conscious these days…$" + +OneIsland_KindleRoad_Text_BryceIntro:: + .string "You know, everything tastes great\n" + .string "when you're out in the wild.$" + +OneIsland_KindleRoad_Text_BryceDefeat:: + .string "Awww, blown!$" + +OneIsland_KindleRoad_Text_BrycePostBattle:: + .string "The water in volcanic regions is\n" + .string "delicious.$" + +OneIsland_KindleRoad_Text_ClaireIntro:: + .string "My lunch filled us up, so will you\n" + .string "battle us for some exercise?$" + +OneIsland_KindleRoad_Text_ClaireDefeat:: + .string "That made me all sweaty.$" + +OneIsland_KindleRoad_Text_ClairePostBattle:: + .string "What should I do?\n" + .string "I feel famished again.$" + +OneIsland_KindleRoad_Text_KiaIntro:: + .string "KIA: My big brother and I make\n" + .string "an awesome combination!$" + +OneIsland_KindleRoad_Text_KiaDefeat:: + .string "KIA: Huh?!\n" + .string "I can't believe it!$" + +OneIsland_KindleRoad_Text_KiaPostBattle:: + .string "KIA: How could there be anyone\n" + .string "better than my big brother?$" + +OneIsland_KindleRoad_Text_KiaNotEnoughMons:: + .string "KIA: If you want to battle with\n" + .string "us, you have to bring at least two\l" + .string "POKéMON with you.$" + +OneIsland_KindleRoad_Text_MikIntro:: + .string "MIK: Together with KIA, I'm afraid\n" + .string "of nothing!$" + +OneIsland_KindleRoad_Text_MikDefeat:: + .string "MIK: Whoa!\n" + .string "That's too much!$" + +OneIsland_KindleRoad_Text_MikPostBattle:: + .string "MIK: How could my combination\n" + .string "with KIA fail?$" + +OneIsland_KindleRoad_Text_MikNotEnoughMons:: + .string "MIK: Hey, do you want to battle\n" + .string "with us two?\p" + .string "Bring two or more POKéMON with\n" + .string "you, then.$" + +OneIsland_KindleRoad_Text_RouteSign:: + .string "This is KINDLE ROAD.\p" + .string "Go straight for MT. EMBER.$" + +OneIsland_KindleRoad_Text_EmberSpaSign:: + .string "Light the Fire in Your Heart!\n" + .string "EMBER SPA$" + diff --git a/data/maps/OneIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/OneIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..e63b783ad544 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,235 @@ +{ + "id": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", + "name": "OneIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_1F", + "music": "MUS_RG_NET_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_ONE_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "local_id": "LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BILL", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_PokemonCenter_1F_EventScript_Bill", + "flag": "FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL" + }, + { + "local_id": "LOCALID_CELIO", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CELIO", + "x": 15, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_PokemonCenter_1F_EventScript_Celio", + "flag": "FLAG_HIDE_ONE_ISLAND_POKECENTER_CELIO" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_PokemonCenter_1F_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 3, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_PokemonCenter_1F_EventScript_Hiker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_PokemonCenter_1F_EventScript_BattleGirl", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ONE_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 1, + "y": 5, + "elevation": 4, + "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 12, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": "2", + "script": "OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerTop" + }, + { + "type": "trigger", + "x": 12, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": "2", + "script": "OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerMidTop" + }, + { + "type": "trigger", + "x": 12, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": "2", + "script": "OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerMidBottom" + }, + { + "type": "trigger", + "x": 12, + "y": 9, + "elevation": 3, + "var": "VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F", + "var_value": "2", + "script": "OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerBottom" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 12, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 12, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 12, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 13, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 15, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 14, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 16, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + }, + { + "type": "sign", + "x": 17, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "OneIsland_PokemonCenter_1F_EventScript_NetworkMachine" + } + ] +} diff --git a/data/maps/OneIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..9fbbe779c0ac --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,921 @@ +OneIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, OneIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + map_script MAP_SCRIPT_ON_LOAD, OneIsland_PokemonCenter_1F_OnLoad + map_script MAP_SCRIPT_ON_FRAME_TABLE, OneIsland_PokemonCenter_1F_OnFrame + .byte 0 + +OneIsland_PokemonCenter_1F_OnLoad:: + call_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, OneIsland_PokemonCenter_1F_EventScript_SetRubyMetatile + call_if_set FLAG_IS_CHAMPION, OneIsland_PokemonCenter_1F_EventScript_SetNetworkMachineOn + end + +OneIsland_PokemonCenter_1F_EventScript_SetRubyMetatile:: + setmetatile 13, 4, METATILE_PokemonCenterFrlg_NetworkMachine_Ruby, 1 + return + +OneIsland_PokemonCenter_1F_EventScript_SetSapphireMetatile:: + setmetatile 16, 4, METATILE_PokemonCenterFrlg_NetworkMachine_Sapphire, 1 + return + +OneIsland_PokemonCenter_1F_EventScript_SetNetworkMachineOn:: + call OneIsland_PokemonCenter_1F_EventScript_SetSapphireMetatile + setmetatile 14, 4, METATILE_PokemonCenterFrlg_NetworkMachine_ScreenLeft_On, 1 + setmetatile 15, 4, METATILE_PokemonCenterFrlg_NetworkMachine_ScreenRight_On, 1 + return + +OneIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_ONE_ISLAND + call_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 6, OneIsland_PokemonCenter_1F_EventScript_SetCelioQuestDone + call_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 0, OneIsland_PokemonCenter_1F_EventScript_SetBillCelioFirstMeetingPos + call_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 2, OneIsland_PokemonCenter_1F_EventScript_SetBillCelioReadyToLeavePos + end + +OneIsland_PokemonCenter_1F_EventScript_SetCelioQuestDone:: + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 7 + return + +OneIsland_PokemonCenter_1F_EventScript_SetBillCelioFirstMeetingPos:: + setobjectxyperm LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, 9, 8 + setobjectmovementtype LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, MOVEMENT_TYPE_FACE_UP + setobjectxyperm LOCALID_CELIO, 15, 6 + setobjectmovementtype LOCALID_CELIO, MOVEMENT_TYPE_FACE_UP + return + +OneIsland_PokemonCenter_1F_EventScript_SetBillCelioReadyToLeavePos:: + setobjectxyperm LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, 14, 7 + setobjectmovementtype LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, MOVEMENT_TYPE_FACE_LEFT + setobjectxyperm LOCALID_CELIO, 14, 8 + setobjectmovementtype LOCALID_CELIO, MOVEMENT_TYPE_FACE_LEFT + return + +OneIsland_PokemonCenter_1F_OnFrame:: + map_script_2 VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 0, OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene + .2byte 0 + +OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, OneIsland_PokemonCenter_1F_Movement_PlayerWalkToCelio + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_BillHeyThereCelio + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + playse SE_PIN + applymovement LOCALID_CELIO, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + applymovement LOCALID_CELIO, Common_Movement_Delay48 + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CelioCantBelieveYouCameOut + msgbox OneIsland_PokemonCenter_1F_Text_BillHowsYourResearchComing + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_ThisIsMyBuddyCelio + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + call_if_set FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerChamp + call_if_unset FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerNotChamp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CelioThatsReallyImpressive + msgbox OneIsland_PokemonCenter_1F_Text_BillBringMeUpToSpeed + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CelioPCsCantLinkWithYours + closemessage + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_BillLetMeHelpYou + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CanYouDeliverThisMeteoritePlayer + msgreceiveditem OneIsland_PokemonCenter_1F_Text_AcceptedMeteoriteFromBill, ITEM_METEORITE, 1, MUS_RG_OBTAIN_KEY_ITEM + additem ITEM_METEORITE + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CelioPleaseTakeThis + giveitem_msg OneIsland_PokemonCenter_1F_Text_ObtainedTriPass, ITEM_TRI_PASS, 1, MUS_RG_OBTAIN_KEY_ITEM + msgbox OneIsland_PokemonCenter_1F_Text_PassLetsYouTravelBetweenIslands + call_if_ge VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2, OneIsland_PokemonCenter_1F_EventScript_ReceiveTownMapPage + call_if_lt VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2, OneIsland_PokemonCenter_1F_EventScript_ReceiveTownMap + setflag FLAG_SYS_SEVII_MAP_123 + msgbox OneIsland_PokemonCenter_1F_Text_BillCatchYouLater + closemessage + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + setflag FLAG_SYS_PC_STORAGE_DISABLED + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 + releaseall + end + +OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerChamp:: + msgbox OneIsland_PokemonCenter_1F_Text_PlayerIsReigningPokemonChamp + return + +OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerNotChamp:: + msgbox OneIsland_PokemonCenter_1F_Text_PlayerIsRisingPokemonChamp + return + +OneIsland_PokemonCenter_1F_EventScript_ReceiveTownMapPage:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message OneIsland_PokemonCenter_1F_Text_ReceivedExtraPageForTownMap + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + return + +OneIsland_PokemonCenter_1F_EventScript_ReceiveTownMap:: + setflag FLAG_HIDE_TOWN_MAP + setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2 + giveitem_msg OneIsland_PokemonCenter_1F_Text_ReceivedTownMap, ITEM_TOWN_MAP, 1, MUS_RG_OBTAIN_KEY_ITEM + return + +OneIsland_PokemonCenter_1F_Movement_PlayerWalkToCelio:: + walk_up + walk_up + walk_right + walk_right + walk_right + walk_right + walk_right + walk_in_place_faster_up + step_end + +OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio:: + walk_up + walk_right + walk_right + walk_right + walk_right + walk_right + walk_up + walk_in_place_faster_right + step_end + +@ Unused +OneIsland_PokemonCenter_1F_Movement_WalkUp: + walk_up + step_end + +@ Unused +OneIsland_PokemonCenter_1F_Movement_StepAsideLeft:: + walk_left + walk_in_place_faster_right + step_end + +OneIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +OneIsland_PokemonCenter_1F_EventScript_Bill:: + lock + goto_if_set FLAG_SEVII_DETOUR_FINISHED, OneIsland_PokemonCenter_1F_EventScript_BillGoTakeStroll + msgbox OneIsland_PokemonCenter_1F_Text_HmmHowAboutLikeThis + release + end + +OneIsland_PokemonCenter_1F_EventScript_BillGoTakeStroll:: + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_FacePlayer + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_GotPCWorkingStrollAWhileMore + release + end + +OneIsland_PokemonCenter_1F_EventScript_Celio:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 7, OneIsland_PokemonCenter_1F_EventScript_CelioGiveBillFact + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 6, OneIsland_PokemonCenter_1F_EventScript_CelioJustGivenSapphire + goto_if_set FLAG_RECOVERED_SAPPHIRE, OneIsland_PokemonCenter_1F_EventScript_GiveCelioSapphire + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, OneIsland_PokemonCenter_1F_EventScript_ExplainRainbowPass + goto_if_set FLAG_GOT_RUBY, OneIsland_PokemonCenter_1F_EventScript_GiveCelioRuby + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4, OneIsland_PokemonCenter_1F_EventScript_CelioWaitingForRuby + specialvar VAR_RESULT, IsNationalPokedexEnabled + goto_if_eq VAR_RESULT, TRUE, OneIsland_PokemonCenter_1F_EventScript_CelioRequestRuby + goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 3, OneIsland_PokemonCenter_1F_EventScript_CelioPlayerMissingNationalDex + msgbox OneIsland_PokemonCenter_1F_Text_SorryForBeingPoorHost + closemessage + applymovement LOCALID_CELIO, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +OneIsland_PokemonCenter_1F_EventScript_CelioGiveBillFact:: + msgbox OneIsland_PokemonCenter_1F_Text_CelioHearingRumorsAboutYou + random 3 + goto_if_eq VAR_RESULT, 0, OneIsland_PokemonCenter_1F_EventScript_BillFact1 + goto_if_eq VAR_RESULT, 1, OneIsland_PokemonCenter_1F_EventScript_BillFact2 + famechecker FAMECHECKER_BILL, 5 + msgbox OneIsland_PokemonCenter_1F_Text_BillCantStomachMilk + release + end + +OneIsland_PokemonCenter_1F_EventScript_BillFact1:: + famechecker FAMECHECKER_BILL, 3 + msgbox OneIsland_PokemonCenter_1F_Text_BillsFirstMonWasAbra + release + end + +OneIsland_PokemonCenter_1F_EventScript_BillFact2:: + famechecker FAMECHECKER_BILL, 4 + msgbox OneIsland_PokemonCenter_1F_Text_BillsHometownInGoldenrod + release + end + +OneIsland_PokemonCenter_1F_EventScript_CelioJustGivenSapphire:: + msgbox OneIsland_PokemonCenter_1F_Text_WishYouBestOfLuck + release + end + +OneIsland_PokemonCenter_1F_EventScript_GiveCelioSapphire:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_OBTAIN_TMHM + message OneIsland_PokemonCenter_1F_Text_HandedSapphireToCelio + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + removeitem ITEM_SAPPHIRE + msgbox OneIsland_PokemonCenter_1F_Text_ThankYouGiveMeTime + closemessage + applymovement LOCALID_CELIO, OneIsland_PokemonCenter_1F_Movement_CelioPutGemInMachine + waitmovement 0 + playse SE_CLICK + call OneIsland_PokemonCenter_1F_EventScript_SetSapphireMetatile + special DrawWholeMapView + msgbox OneIsland_PokemonCenter_1F_Text_OkayThisIsGood + closemessage + delay 60 + applymovement LOCALID_CELIO, OneIsland_PokemonCenter_1F_Movement_CelioCheckMachine + waitmovement 0 + delay 30 + applymovement LOCALID_CELIO, OneIsland_PokemonCenter_1F_Movement_CelioCheckMachine + waitmovement 0 + delay 40 + playse SE_PC_ON + call OneIsland_PokemonCenter_1F_EventScript_SetNetworkMachineOn + special DrawWholeMapView + msgbox OneIsland_PokemonCenter_1F_Text_LinkedUpWithLanette + applymovement LOCALID_CELIO, Common_Movement_FacePlayer + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_ManagedToLinkWithHoennThankYou + special SetPostgameFlags + setflag FLAG_IS_CHAMPION + setflag FLAG_HIDE_CERULEAN_CAVE_GUARD + setflag FLAG_HIDE_LORELEI_IN_HER_HOUSE + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 6 + special InitRoamer + release + end + +OneIsland_PokemonCenter_1F_EventScript_ExplainRainbowPass:: + msgbox OneIsland_PokemonCenter_1F_Text_PassLetYouGetToAllIslands + release + end + +OneIsland_PokemonCenter_1F_EventScript_GiveCelioRuby:: + msgbox OneIsland_PokemonCenter_1F_Text_OhThats + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_OBTAIN_TMHM + message OneIsland_PokemonCenter_1F_Text_HandedRubyToCelio + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + closemessage + applymovement LOCALID_CELIO, OneIsland_PokemonCenter_1F_Movement_CelioPutGemInMachine + waitmovement 0 + playse SE_CLICK + call OneIsland_PokemonCenter_1F_EventScript_SetRubyMetatile + special DrawWholeMapView + delay 30 + applymovement LOCALID_CELIO, Common_Movement_FacePlayer + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_MayIAskOneMoreFavor, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, OneIsland_PokemonCenter_1F_EventScript_DeclineHelpCelio + goto OneIsland_PokemonCenter_1F_EventScript_GiveRainbowPass + end + +OneIsland_PokemonCenter_1F_EventScript_DeclineHelpCelio:: + msgbox OneIsland_PokemonCenter_1F_Text_PleaseINeedYourHelp, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, OneIsland_PokemonCenter_1F_EventScript_DeclineHelpCelio + goto OneIsland_PokemonCenter_1F_EventScript_GiveRainbowPass + end + +OneIsland_PokemonCenter_1F_EventScript_GiveRainbowPass:: + msgbox OneIsland_PokemonCenter_1F_Text_AnotherGemstoneInSeviiIslands + removeitem ITEM_RUBY + removeitem ITEM_TRI_PASS + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5 + additem ITEM_RAINBOW_PASS + setflag FLAG_SYS_SEVII_MAP_4567 + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message OneIsland_PokemonCenter_1F_Text_ReturnedTriPassForRainbowPass + waitmessage + waitfanfare + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message OneIsland_PokemonCenter_1F_Text_ObtainedExtraMapPage + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + goto OneIsland_PokemonCenter_1F_EventScript_ExplainRainbowPass + end + +OneIsland_PokemonCenter_1F_EventScript_CelioWaitingForRuby:: + msgbox OneIsland_PokemonCenter_1F_Text_TryingToFindGem + release + end + +OneIsland_PokemonCenter_1F_EventScript_CelioRequestRuby:: + msgbox OneIsland_PokemonCenter_1F_Text_CelioCaughtMoreMonMaybeICanBeUseful + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_YoullBeTradingFromTrainersFarAway + applymovement LOCALID_CELIO, Common_Movement_FacePlayer + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_NeedsSpecialGemstone + setvar VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 1 + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4 + release + end + +OneIsland_PokemonCenter_1F_EventScript_CelioPlayerMissingNationalDex:: + msgbox OneIsland_PokemonCenter_1F_Text_CelioImModifyingMyNetworkMachine + release + end + +OneIsland_PokemonCenter_1F_Movement_CelioCheckMachine:: + walk_in_place_up + delay_8 + walk_in_place_up + step_end + +OneIsland_PokemonCenter_1F_Movement_CelioPutGemInMachine:: + walk_in_place_faster_up + walk_in_place_up + delay_16 + walk_in_place_up + walk_in_place_up + step_end + +OneIsland_PokemonCenter_1F_EventScript_LittleBoy:: + msgbox OneIsland_PokemonCenter_1F_Text_CameFromPalletDontKnowIt, MSGBOX_NPC + end + +OneIsland_PokemonCenter_1F_EventScript_Hiker:: + msgbox OneIsland_PokemonCenter_1F_Text_EnormousVolcanoOnIsland, MSGBOX_NPC + end + +OneIsland_PokemonCenter_1F_EventScript_BattleGirl:: + lock + faceplayer + goto_if_set FLAG_IS_CHAMPION, OneIsland_PokemonCenter_1F_EventScript_BattleGirlHoennLinked + msgbox OneIsland_PokemonCenter_1F_Text_WishICouldTradeWithBoyfriend + release + end + +OneIsland_PokemonCenter_1F_EventScript_BattleGirlHoennLinked:: + msgbox OneIsland_PokemonCenter_1F_Text_TradedWithFarAwayBoyfriend + release + end + +OneIsland_PokemonCenter_1F_EventScript_NetworkMachine:: + lockall + goto_if_set FLAG_IS_CHAMPION, OneIsland_PokemonCenter_1F_EventScript_NetworkMachineLinkedWithHoenn + goto_if_set FLAG_SEVII_DETOUR_FINISHED, OneIsland_PokemonCenter_1F_EventScript_NetworkMachineLinkedWithKanto + msgbox OneIsland_PokemonCenter_1F_Text_MachineUnderAdjustment + releaseall + end + +OneIsland_PokemonCenter_1F_EventScript_NetworkMachineLinkedWithKanto:: + msgbox OneIsland_PokemonCenter_1F_Text_MachineLinkedWithKanto + releaseall + end + +OneIsland_PokemonCenter_1F_EventScript_NetworkMachineLinkedWithHoenn:: + msgbox OneIsland_PokemonCenter_1F_Text_MachineLinkedWithKantoAndHoenn + releaseall + end + +OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerTop:: + lockall + setvar VAR_TEMP_1, 1 + goto OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene + end + +OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerMidTop:: + lockall + setvar VAR_TEMP_1, 2 + goto OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene + end + +OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerMidBottom:: + lockall + setvar VAR_TEMP_1, 3 + goto OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene + end + +OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerBottom:: + lockall + setvar VAR_TEMP_1, 4 + goto OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene + end + +OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene:: + textcolor NPC_TEXT_COLOR_MALE + playse SE_PIN + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_ExclamationMark + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_BillOhHeyPlayer + closemessage + call_if_eq VAR_TEMP_1, 1, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillTop + call_if_eq VAR_TEMP_1, 2, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillMidTop + call_if_eq VAR_TEMP_1, 3, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillMidBottom + call_if_eq VAR_TEMP_1, 4, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillBottom + delay 10 + msgbox OneIsland_PokemonCenter_1F_Text_BillWeGotItDone + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CelioJobWentQuick + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_BillYouveLearnedALot + msgbox OneIsland_PokemonCenter_1F_Text_CelioOhReallyEhehe + closemessage + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + delay 10 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + delay 15 + msgbox OneIsland_PokemonCenter_1F_Text_BillWeShouldHeadBackToKanto + closemessage + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + delay 15 + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + msgbox OneIsland_PokemonCenter_1F_Text_CelioPromiseIllShowYouAroundSometime + closemessage + delay 25 + applymovement LOCALID_PLAYER, OneIsland_PokemonCenter_1F_Movement_PlayerExit + applymovement LOCALID_ONE_ISLAND_POKEMON_CENTER_BILL, OneIsland_PokemonCenter_1F_Movement_BillExit + waitmovement 0 + playse SE_EXIT + setflag FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 3 + clearflag FLAG_HIDE_CINNABAR_BILL + setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 3 + setvar VAR_0x8004, SEAGALLOP_ONE_ISLAND + setvar VAR_0x8006, SEAGALLOP_CINNABAR_ISLAND + goto EventScript_SetSail + end + +OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillTop:: + applymovement LOCALID_PLAYER, OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillTop + waitmovement 0 + return + +OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillMidTop:: + applymovement LOCALID_PLAYER, OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidTop + waitmovement 0 + return + +OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillMidBottom:: + applymovement LOCALID_PLAYER, OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidBottom + waitmovement 0 + return + +OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillBottom:: + applymovement LOCALID_PLAYER, OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillBottom + waitmovement 0 + return + +OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillTop:: + walk_right + walk_down + walk_in_place_faster_right + step_end + +OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidTop:: + walk_right + step_end + +OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidBottom:: + walk_right + walk_up + walk_in_place_faster_right + step_end + +OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillBottom:: + walk_right + walk_up + walk_up + walk_in_place_faster_right + step_end + +@ Unused +OneIsland_PokemonCenter_1F_Movement_DelayWalkInPlaceLeft:: + delay_16 + delay_16 + delay_4 + walk_in_place_faster_left + step_end + +@ Unused +OneIsland_PokemonCenter_1F_Movement_WalkInPlaceDown:: + walk_in_place_fast_down + step_end + +OneIsland_PokemonCenter_1F_Movement_PlayerExit:: + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +OneIsland_PokemonCenter_1F_Movement_BillExit:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_down + step_end + +OneIsland_PokemonCenter_1F_Text_BillHeyThereCelio:: + .string "BILL: Hey, there!\n" + .string "CELIO!$" + +OneIsland_PokemonCenter_1F_Text_CelioCantBelieveYouCameOut:: + .string "CELIO: BILL!\n" + .string "I can't believe you came out here.$" + +OneIsland_PokemonCenter_1F_Text_BillHowsYourResearchComing:: + .string "BILL: Well, absolutely!\n" + .string "How's your research coming along?\p" + .string "…Oh, wait a sec.$" + +OneIsland_PokemonCenter_1F_Text_ThisIsMyBuddyCelio:: + .string "{PLAYER}, this is my buddy CELIO.\n" + .string "He's one dedicated PC MANIAC!$" + +OneIsland_PokemonCenter_1F_Text_PlayerIsRisingPokemonChamp:: + .string "CELIO, this is {PLAYER}, a rising\n" + .string "contender as the POKéMON CHAMP!$" + +OneIsland_PokemonCenter_1F_Text_PlayerIsReigningPokemonChamp:: + .string "CELIO, this is {PLAYER}, the\n" + .string "reigning POKéMON CHAMP!$" + +OneIsland_PokemonCenter_1F_Text_CelioThatsReallyImpressive:: + .string "CELIO: That's really impressive.\p" + .string "I hate to say it, but I have zero\n" + .string "aptitude for battling.\p" + .string "Anyways, I'm glad to meet you.$" + +OneIsland_PokemonCenter_1F_Text_BillBringMeUpToSpeed:: + .string "BILL: So, bring me up to speed.\n" + .string "How's your machine running?$" + +OneIsland_PokemonCenter_1F_Text_CelioPCsCantLinkWithYours:: + .string "CELIO: It's running fine, but we're\n" + .string "too remote out here.\p" + .string "The PCs on this island just can't\n" + .string "link with your PC, BILL.$" + +OneIsland_PokemonCenter_1F_Text_BillLetMeHelpYou:: + .string "BILL: Oh, yeah?\n" + .string "Okay, let me take a look-see.\p" + .string "…Hang on here…\n" + .string "I think we can make it work.\l" + .string "Let me help you, okay?$" + +OneIsland_PokemonCenter_1F_Text_CanYouDeliverThisMeteoritePlayer:: + .string "{PLAYER}, can I get you to wait for\n" + .string "me just a bit?\p" + .string "…Actually, can I get you to do\n" + .string "me a favor?\p" + .string "The island next to this one's\n" + .string "called TWO ISLAND.\p" + .string "There's a guy there that runs\n" + .string "a GAME CORNER.\p" + .string "He has this thing for rare rocks\n" + .string "and gems.\p" + .string "We keep in touch, being fellow\n" + .string "maniacs.\p" + .string "So, can I get you to deliver this\n" + .string "METEORITE to him?$" + +OneIsland_PokemonCenter_1F_Text_AcceptedMeteoriteFromBill:: + .string "{PLAYER} accepted the METEORITE\n" + .string "from BILL.$" + +OneIsland_PokemonCenter_1F_Text_CelioPleaseTakeThis:: + .string "CELIO: {PLAYER}, if you are going\n" + .string "to TWO ISLAND, please take this.$" + +OneIsland_PokemonCenter_1F_Text_PassLetsYouTravelBetweenIslands:: + .string "It's a PASS for the ferry service\n" + .string "serving the local islands.\p" + .string "It will let you travel between the\n" + .string "ISLANDS ONE, TWO, and THREE.\p" + .string "Oh, you should have this, too.$" + +OneIsland_PokemonCenter_1F_Text_ReceivedExtraPageForTownMap:: + .string "{PLAYER} received an extra page\n" + .string "for the TOWN MAP!$" + +OneIsland_PokemonCenter_1F_Text_ReceivedTownMap:: + .string "{PLAYER} received\n" + .string "a TOWN MAP!$" + +OneIsland_PokemonCenter_1F_Text_BillCatchYouLater:: + .string "BILL: I'll catch you later!\n" + .string "Say hi to the guy for me!$" + +OneIsland_PokemonCenter_1F_Text_HmmHowAboutLikeThis:: + .string "Hmm…\p" + .string "How about we try this like this…$" + +OneIsland_PokemonCenter_1F_Text_GotPCWorkingStrollAWhileMore:: + .string "Oh, hey, {PLAYER}!\p" + .string "Did you see?\n" + .string "We got the PC working!\p" + .string "I've got a few things to show\n" + .string "CELIO here.\p" + .string "Can you go out on a stroll or\n" + .string "something for a while more?$" + +OneIsland_PokemonCenter_1F_Text_SorryForBeingPoorHost:: + .string "I'm sorry for taking up so much of\n" + .string "BILL's time.\p" + .string "I'm also sorry for being such a \n" + .string "poor host on your visit here.$" + +OneIsland_PokemonCenter_1F_Text_UsualPCServicesUnavailable:: + .string "The usual PC services aren't\n" + .string "available…$" + +OneIsland_PokemonCenter_1F_Text_BillOhHeyPlayer:: + .string "BILL: Oh, hey!\n" + .string "{PLAYER}!$" + +OneIsland_PokemonCenter_1F_Text_BillWeGotItDone:: + .string "BILL: What kept you so long?\n" + .string "Been out having a good time?\p" + .string "We got it done.\n" + .string "The PCs are up and running!$" + +OneIsland_PokemonCenter_1F_Text_CelioJobWentQuick:: + .string "CELIO: The job went incredibly\n" + .string "quick.\p" + .string "BILL is one amazing guy…$" + +OneIsland_PokemonCenter_1F_Text_BillYouveLearnedALot:: + .string "BILL: No, no! There was almost\n" + .string "nothing left for me to do.\p" + .string "CELIO, I have to hand it to you.\n" + .string "You've learned a lot.$" + +OneIsland_PokemonCenter_1F_Text_CelioOhReallyEhehe:: + .string "CELIO: Oh, really?\n" + .string "Ehehe…$" + +OneIsland_PokemonCenter_1F_Text_BillWeShouldHeadBackToKanto:: + .string "BILL: Well, there you have it.\n" + .string "I'm finished with the job.\l" + .string "We should head back to KANTO.\p" + .string "CELIO, I'll be seeing you again.$" + +OneIsland_PokemonCenter_1F_Text_CelioPromiseIllShowYouAroundSometime:: + .string "CELIO: {PLAYER}, I'm really sorry\n" + .string "that we sent you off alone today.\p" + .string "I promise, I will show you around\n" + .string "these islands sometime.$" + +OneIsland_PokemonCenter_1F_Text_CelioImModifyingMyNetworkMachine:: + .string "CELIO: Hello!\n" + .string "You look awfully busy as always.\p" + .string "How am I doing?\p" + .string "Well, I'm modifying my Network\n" + .string "Machine.\p" + .string "When I get done with the machine,\n" + .string "I hope you'll be first to use it,\l" + .string "{PLAYER}.$" + +OneIsland_PokemonCenter_1F_Text_CelioCaughtMoreMonMaybeICanBeUseful:: + .string "CELIO: {PLAYER}, how have things\n" + .string "been for you?\p" + .string "Oh, is that right?\n" + .string "You've caught more POKéMON.\p" + .string "Do you know what?\n" + .string "Maybe I can be useful to you.$" + +OneIsland_PokemonCenter_1F_Text_YoullBeTradingFromTrainersFarAway:: + .string "I'm modifying the Network Machine\n" + .string "right now.\p" + .string "I'm changing it so it can handle\n" + .string "trades over long distances.\p" + .string "When I get finished, you'll be\n" + .string "trading for exotic POKéMON from\l" + .string "TRAINERS far away.$" + +OneIsland_PokemonCenter_1F_Text_NeedsSpecialGemstone:: + .string "But, there is a slight catch.\p" + .string "For the link to work, the Machine\n" + .string "needs a special gemstone.\p" + .string "It's supposed to be on ONE ISLAND,\n" + .string "but I haven't found one yet.\p" + .string "Who knows where it could be.$" + +OneIsland_PokemonCenter_1F_Text_TryingToFindGem:: + .string "I was trying to find the gem\n" + .string "even while I was studying.\p" + .string "As a result, I've made no headway\n" + .string "in both my search and studies…\p" + .string "If I relied on BILL, I'm sure my\n" + .string "research would progress.\p" + .string "But this time, I want to try to do\n" + .string "things by myself.$" + +OneIsland_PokemonCenter_1F_Text_OhThats:: + .string "Oh!\n" + .string "Th-that's…$" + +OneIsland_PokemonCenter_1F_Text_HandedRubyToCelio:: + .string "{PLAYER} handed the RUBY\n" + .string "to CELIO.$" + +OneIsland_PokemonCenter_1F_Text_MayIAskOneMoreFavor:: + .string "Thank you!\n" + .string "{PLAYER}, you're simply amazing.\p" + .string "… … … … … …\p" + .string "Um… May I ask one more giant favor\n" + .string "of you?$" + +OneIsland_PokemonCenter_1F_Text_PleaseINeedYourHelp:: + .string "It… It's not anything weird.\n" + .string "Please, I need your help.$" + +OneIsland_PokemonCenter_1F_Text_AnotherGemstoneInSeviiIslands:: + .string "While I was studying gemstones,\n" + .string "I discovered something important.\p" + .string "There is another gem that forms\n" + .string "a pair with this RUBY.\p" + .string "That other gemstone is supposed to\n" + .string "be in the SEVII ISLANDS.\p" + .string "{PLAYER}, please, I need you to go\n" + .string "find the other gem.\p" + .string "{PLAYER}, may I have your ferry\n" + .string "PASS and the TOWN MAP?$" + +OneIsland_PokemonCenter_1F_Text_ReturnedTriPassForRainbowPass:: + .string "{PLAYER} returned the TRI-PASS and\n" + .string "received the RAINBOW PASS.$" + +OneIsland_PokemonCenter_1F_Text_ObtainedExtraMapPage:: + .string "Obtained an extra page for the\n" + .string "TOWN MAP!$" + +OneIsland_PokemonCenter_1F_Text_PassLetYouGetToAllIslands:: + .string "This is my own ferry PASS.\p" + .string "It will let you get to all the\n" + .string "SEVII ISLANDS.\p" + .string "{PLAYER}, please, I can't do\n" + .string "it without your help.$" + +OneIsland_PokemonCenter_1F_Text_HandedSapphireToCelio:: + .string "{PLAYER} handed the SAPPHIRE\n" + .string "to CELIO.$" + +OneIsland_PokemonCenter_1F_Text_ThankYouGiveMeTime:: + .string "CELIO: So this is the gem that\n" + .string "forms a pair with the RUBY…\p" + .string "{PLAYER}, you've gone through a lot\n" + .string "to get this, didn't you?\p" + .string "You don't have to tell me. I know\n" + .string "it wasn't easy.\p" + .string "Thank you so much!\p" + .string "Now it's my turn to work for you!\n" + .string "Please give me a little time.$" + +OneIsland_PokemonCenter_1F_Text_OkayThisIsGood:: + .string "Okay, this is good…$" + +OneIsland_PokemonCenter_1F_Text_LinkedUpWithLanette:: + .string "I did it!\n" + .string "I linked up with LANETTE!$" + +OneIsland_PokemonCenter_1F_Text_ManagedToLinkWithHoennThankYou:: + .string "{PLAYER}…\n" + .string "{PLAYER}, I did it!\p" + .string "I've managed to link up with\n" + .string "TRAINERS in the HOENN region!\p" + .string "Finally, the Network Machine is\n" + .string "fully operational!\p" + .string "{PLAYER}, I owe it all to you!\p" + .string "Thanks to you, my dream came\n" + .string "true…$" + +OneIsland_PokemonCenter_1F_Text_WishYouBestOfLuck:: + .string "I…\n" + .string "I'm not crying.\p" + .string "That's enough about me!\p" + .string "{PLAYER}, you're going to keep\n" + .string "looking for exotic POKéMON, right?\p" + .string "I wish you the best of luck!$" + +OneIsland_PokemonCenter_1F_Text_CelioHearingRumorsAboutYou:: + .string "CELIO: Hello!\p" + .string "{PLAYER}, I've been hearing rumors\n" + .string "about you.$" + +OneIsland_PokemonCenter_1F_Text_BillsFirstMonWasAbra:: + .string "{PLAYER}, what's your favorite kind\n" + .string "of POKéMON?\p" + .string "BILL is a POKéMANIAC, so he loves\n" + .string "every kind.\p" + .string "Apparently, the first one he caught\n" + .string "was an ABRA.$" + +OneIsland_PokemonCenter_1F_Text_BillsHometownInGoldenrod:: + .string "By the way, {PLAYER}, you're from\n" + .string "PALLET TOWN, aren't you?\p" + .string "I've heard that it's a quiet and\n" + .string "pleasant place.\p" + .string "BILL's hometown is GOLDENROD CITY,\n" + .string "where his folks still live.\p" + .string "I've heard that it's quite the\n" + .string "festive, bustling city.\p" + .string "I'd like to go there one day.$" + +OneIsland_PokemonCenter_1F_Text_BillCantStomachMilk:: + .string "{PLAYER}, is there anything that\n" + .string "you can't stand?\p" + .string "Apparently, BILL simply can't\n" + .string "stomach milk at all.$" + +OneIsland_PokemonCenter_1F_Text_CameFromPalletDontKnowIt:: + .string "Oh, you're a stranger here!\n" + .string "Hi! Where did you come from?\p" + .string "…PALLET TOWN?\n" + .string "I don't know it!$" + +OneIsland_PokemonCenter_1F_Text_EnormousVolcanoOnIsland:: + .string "On this island, there's an enormous\n" + .string "volcano.\p" + .string "It hasn't erupted lately, so why\n" + .string "not enjoy a hike?$" + +OneIsland_PokemonCenter_1F_Text_WishICouldTradeWithBoyfriend:: + .string "I wish I could trade POKéMON with\n" + .string "my boyfriend who lives far away…$" + +OneIsland_PokemonCenter_1F_Text_TradedWithFarAwayBoyfriend:: + .string "I traded POKéMON with my boyfriend\n" + .string "far away!\p" + .string "Everyone's saying that we can\n" + .string "thank you and CELIO.\p" + .string "So, thank you!$" + +OneIsland_PokemonCenter_1F_Text_MachineUnderAdjustment:: + .string "Network Machine\n" + .string "Link Level 0\p" + .string "…POKéMON Storage System under\n" + .string "adjustment…$" + +OneIsland_PokemonCenter_1F_Text_MachineLinkedWithKanto:: + .string "Network Machine\n" + .string "Link Level 1\p" + .string "Link established with the KANTO\n" + .string "region.$" + +OneIsland_PokemonCenter_1F_Text_MachineLinkedWithKantoAndHoenn:: + .string "Network Machine\n" + .string "Link Level 2\p" + .string "Link established with the KANTO\n" + .string "and HOENN regions.$" + +OneIsland_PokemonCenter_1F_Text_ObtainedTriPass:: + .string "Obtained the TRI-PASS!$" + diff --git a/data/maps/OneIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/OneIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..e27b71f9ff21 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_ONE_ISLAND_POKEMON_CENTER_2F", + "name": "OneIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_ONE_ISLAND_POKEMON_CENTER_2F", + "music": "MUS_RG_NET_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ONE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/OneIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/OneIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..6e7e4cdfb8e8 --- /dev/null +++ b/data/maps/OneIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +OneIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +OneIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +OneIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +OneIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/OneIsland_TreasureBeach_Frlg/map.json b/data/maps/OneIsland_TreasureBeach_Frlg/map.json new file mode 100644 index 000000000000..065329d546ff --- /dev/null +++ b/data/maps/OneIsland_TreasureBeach_Frlg/map.json @@ -0,0 +1,142 @@ +{ + "id": "MAP_ONE_ISLAND_TREASURE_BEACH", + "name": "OneIsland_TreasureBeach_Frlg", + "layout": "LAYOUT_ONE_ISLAND_TREASURE_BEACH", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TREASURE_BEACH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ONE_ISLAND", + "offset": 0, + "direction": "up" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 8, + "y": 11, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "OneIsland_TreasureBeach_EventScript_Amara", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 13, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "OneIsland_TreasureBeach_EventScript_Boy", + "flag": "0" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 8, + "y": 20, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 13, + "y": 27, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 11, + "y": 31, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 9, + "y": 34, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 15, + "y": 22, + "elevation": 3, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 16, + "y": 33, + "elevation": 3, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 15, + "y": 29, + "elevation": 3, + "item": "ITEM_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 8, + "y": 27, + "elevation": 3, + "item": "ITEM_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/OneIsland_TreasureBeach_Frlg/scripts.inc b/data/maps/OneIsland_TreasureBeach_Frlg/scripts.inc new file mode 100644 index 000000000000..bf0116c22148 --- /dev/null +++ b/data/maps/OneIsland_TreasureBeach_Frlg/scripts.inc @@ -0,0 +1,25 @@ +OneIsland_TreasureBeach_Frlg_MapScripts:: + .byte 0 + +OneIsland_TreasureBeach_EventScript_Boy:: + msgbox OneIsland_TreasureBeach_Text_GoodThingsWashUpOnBeach, MSGBOX_NPC + end + +OneIsland_TreasureBeach_Text_AmaraIntro:: + .string "Lying back, rocked by the waves…\n" + .string "It's exquisite.$" + +OneIsland_TreasureBeach_Text_AmaraDefeat:: + .string "I lost…\n" + .string "It feels awful.$" + +OneIsland_TreasureBeach_Text_AmaraPostBattle:: + .string "The sea is pleasantly warm in these\n" + .string "parts.$" + +OneIsland_TreasureBeach_Text_GoodThingsWashUpOnBeach:: + .string "Good things get washed up by the\n" + .string "ocean current onto this beach.\p" + .string "That's why I often come here for\n" + .string "some beachcombing.$" + diff --git a/data/maps/PacifidlogTown_House3/scripts.inc b/data/maps/PacifidlogTown_House3/scripts.inc index 5582f3b6b9c1..22abdecec89b 100644 --- a/data/maps/PacifidlogTown_House3/scripts.inc +++ b/data/maps/PacifidlogTown_House3/scripts.inc @@ -5,27 +5,7 @@ PacifidlogTown_House3_EventScript_Trader:: lock faceplayer goto_if_set FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED, PacifidlogTown_House3_EventScript_TradeCompleted - setvar VAR_0x8008, INGAME_TRADE_HORSEA - copyvar VAR_0x8004, VAR_0x8008 - specialvar VAR_RESULT, GetInGameTradeSpeciesInfo - copyvar VAR_0x8009, VAR_RESULT - msgbox PacifidlogTown_House3_Text_WillingToTradeIt, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, PacifidlogTown_House3_EventScript_DeclineTrade - special ChoosePartyMon - waitstate - copyvar VAR_0x800A, VAR_0x8004 - 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 - 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 STR_VAR_1, VAR_0x8009 - msgbox PacifidlogTown_House3_Text_ItsSubtlyDifferentThankYou, MSGBOX_DEFAULT + ingame_trade INGAME_TRADE_HORSEA, PacifidlogTown_House3_Text_WillingToTradeIt, PacifidlogTown_House3_EventScript_DeclineTrade, PacifidlogTown_House3_EventScript_NotRequestedMon, PacifidlogTown_House3_Text_ItsSubtlyDifferentThankYou setflag FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED release end diff --git a/data/maps/PalletTown_Frlg/map.json b/data/maps/PalletTown_Frlg/map.json new file mode 100644 index 000000000000..c50a207f2d13 --- /dev/null +++ b/data/maps/PalletTown_Frlg/map.json @@ -0,0 +1,170 @@ +{ + "id": "MAP_PALLET_TOWN", + "name": "PalletTown_Frlg", + "layout": "LAYOUT_PALLET_TOWN", + "music": "MUS_RG_PALLET", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE1", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE21_NORTH", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "local_id": "LOCALID_PALLET_SIGN_LADY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 3, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_EventScript_SignLady", + "flag": "0" + }, + { + "local_id": "LOCALID_PALLET_FAT_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 13, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 6, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_EventScript_FatMan", + "flag": "0" + }, + { + "local_id": "LOCALID_PALLET_PROF_OAK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", + "x": 10, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_OAK_IN_PALLET_TOWN" + } + ], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN_RIVALS_HOUSE", + "dest_warp_id": "0" + }, + { + "x": 16, + "y": 13, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 12, + "y": 1, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_OAK", + "var_value": "0", + "script": "PalletTown_EventScript_OakTriggerLeft" + }, + { + "type": "trigger", + "x": 13, + "y": 1, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_OAK", + "var_value": "0", + "script": "PalletTown_EventScript_OakTriggerRight" + }, + { + "type": "trigger", + "x": 13, + "y": 2, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "1", + "script": "PalletTown_EventScript_SignLadyTrigger" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 16, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_EventScript_OaksLabSign" + }, + { + "type": "sign", + "x": 4, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_EventScript_PlayersHouseSign" + }, + { + "type": "sign", + "x": 13, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_EventScript_RivalsHouseSign" + }, + { + "type": "sign", + "x": 9, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_EventScript_TownSign" + }, + { + "type": "sign", + "x": 5, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_EventScript_TrainerTips" + } + ] +} diff --git a/data/maps/PalletTown_Frlg/scripts.inc b/data/maps/PalletTown_Frlg/scripts.inc new file mode 100644 index 000000000000..47e6a2bcf0c3 --- /dev/null +++ b/data/maps/PalletTown_Frlg/scripts.inc @@ -0,0 +1,548 @@ +.equ SIGN_LADY_READY, VAR_TEMP_2 + +PalletTown_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PalletTown_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, PalletTown_OnFrame + .byte 0 + +PalletTown_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_PALLET_TOWN + call_if_set FLAG_PALLET_LADY_NOT_BLOCKING_SIGN, PalletTown_EventScript_TryReadySignLady + call_if_eq VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 0, PalletTown_EventScript_SetSignLadyPos + call_if_eq VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1, PalletTown_EventScript_SetSignLadyDone + end + +PalletTown_EventScript_TryReadySignLady:: + goto_if_unset FLAG_OPENED_START_MENU, Common_EventScript_NopReturn + goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1, Common_EventScript_NopReturn + setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1 + return + +PalletTown_EventScript_SetSignLadyDone:: + setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 2 + return + +PalletTown_EventScript_SetSignLadyPos:: + goto_if_set FLAG_PALLET_LADY_NOT_BLOCKING_SIGN, PalletTown_EventScript_MoveSignLadyToRouteEntrance + setobjectxyperm LOCALID_PALLET_SIGN_LADY, 5, 15 + setobjectmovementtype LOCALID_PALLET_SIGN_LADY, MOVEMENT_TYPE_FACE_UP + return + +PalletTown_EventScript_MoveSignLadyToRouteEntrance:: + setobjectxyperm LOCALID_PALLET_SIGN_LADY, 12, 2 + setobjectmovementtype LOCALID_PALLET_SIGN_LADY, MOVEMENT_TYPE_FACE_DOWN + setvar SIGN_LADY_READY, TRUE + return + +PalletTown_OnFrame:: + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_OAK, 2, PalletTown_EventScript_OakRatingScene + .2byte 0 + +@ Oak approaches player after exiting their house post Elite Four to check if they should receieve the National Dex +PalletTown_EventScript_OakRatingScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + setobjectxyperm LOCALID_PALLET_PROF_OAK, 14, 14 + setobjectmovementtype LOCALID_PALLET_PROF_OAK, MOVEMENT_TYPE_FACE_LEFT + addobject LOCALID_PALLET_PROF_OAK + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakWalkToPlayersDoor + waitmovement 0 + goto_if_unset FLAG_WORLD_MAP_ONE_ISLAND, PalletTown_EventScript_NotBeenToOneIslandYet + msgbox PalletTown_Text_OakLetMeSeePokedex + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + copyvar VAR_0x8008, VAR_0x8005 + copyvar VAR_0x8009, VAR_0x8006 + buffernumberstring STR_VAR_1, VAR_0x8008 + buffernumberstring STR_VAR_2, VAR_0x8009 + goto_if_lt VAR_0x8009, 60, PalletTown_EventScript_NotEnoughMonsForNationalDex + msgbox PalletTown_Text_CaughtXImpressiveFollowMe + closemessage + playbgm MUS_FOLLOW_ME, 0 + applymovement LOCALID_PLAYER, PalletTown_Movement_PlayerWalkToLabFromHouse + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakWalkToLabFromHouse + waitmovement 0 + opendoor 16, 13 + waitdooranim + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakEnterLab + applymovement LOCALID_PLAYER, PalletTown_Movement_PlayerEnterLab + waitmovement 0 + closedoor 16, 13 + waitdooranim + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7 + setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 3 + setflag FLAG_HIDE_OAK_IN_PALLET_TOWN + warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6, 12 + waitstate + releaseall + end + +PalletTown_EventScript_EndOakRatingScene:: + closemessage + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakExit + waitmovement 0 + removeobject LOCALID_PALLET_PROF_OAK + setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 3 + releaseall + end + +PalletTown_EventScript_NotEnoughMonsForNationalDex:: + msgbox PalletTown_Text_CaughtXPuttingInHonestEffort + goto PalletTown_EventScript_EndOakRatingScene + end + +PalletTown_EventScript_NotBeenToOneIslandYet:: + msgbox PalletTown_Text_OakYouEnjoyingTraveling + goto PalletTown_EventScript_EndOakRatingScene + end + +PalletTown_Movement_OakWalkToPlayersDoor:: + walk_left + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_in_place_faster_up + step_end + +PalletTown_Movement_OakExit:: + walk_right + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right + walk_right + walk_right + step_end + +PalletTown_Movement_OakWalkToLabFromHouse:: + walk_right + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right + walk_right + walk_right + walk_right + walk_right + walk_in_place_faster_up + step_end + +PalletTown_Movement_PlayerWalkToLabFromHouse:: + walk_down + walk_right + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right + walk_right + walk_right + walk_right + step_end + +PalletTown_EventScript_OakTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto PalletTown_EventScript_OakTrigger + end + +PalletTown_EventScript_OakTriggerRight:: + lockall + setvar VAR_TEMP_1, 1 + goto PalletTown_EventScript_OakTrigger + end + +PalletTown_EventScript_OakTrigger:: + famechecker FAMECHECKER_OAK, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + textcolor NPC_TEXT_COLOR_MALE + delay 30 + playbgm MUS_RG_OAK, 0 + message PalletTown_Text_OakDontGoOut + waitmessage + delay 85 + closemessage + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playse SE_PIN + applymovement LOCALID_PLAYER, Common_Movement_ExclamationMark + waitmovement 0 + delay 30 + addobject LOCALID_PALLET_PROF_OAK + call_if_eq VAR_TEMP_1, 0, PalletTown_EventScript_OakEnterLeft + call_if_eq VAR_TEMP_1, 1, PalletTown_EventScript_OakEnterRight + delay 30 + msgbox PalletTown_Text_OakGrassUnsafeNeedMon + closemessage + delay 30 + call_if_eq VAR_TEMP_1, 0, PalletTown_EventScript_OakLeadPlayerToLabLeft + call_if_eq VAR_TEMP_1, 1, PalletTown_EventScript_OakLeadPlayerToLabRight + opendoor 16, 13 + waitdooranim + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakEnterLab + applymovement LOCALID_PLAYER, PalletTown_Movement_PlayerEnterLab + waitmovement 0 + closedoor 16, 13 + waitdooranim + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1 + clearflag FLAG_HIDE_OAK_IN_HIS_LAB + setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 1 + setflag FLAG_HIDE_OAK_IN_PALLET_TOWN + setflag FLAG_DONT_TRANSITION_MUSIC + warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6, 12 + waitstate + releaseall + end + +PalletTown_EventScript_OakEnterLeft:: + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakEnterLeft + waitmovement 0 + return + +PalletTown_EventScript_OakEnterRight:: + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakEnterRight + waitmovement 0 + return + +PalletTown_EventScript_OakLeadPlayerToLabLeft:: + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakWalkToLabLeft + applymovement LOCALID_PLAYER, PalletTown_Movement_PlayerWalkToLabLeft + waitmovement 0 + return + +PalletTown_EventScript_OakLeadPlayerToLabRight:: + applymovement LOCALID_PALLET_PROF_OAK, PalletTown_Movement_OakWalkToLabRight + applymovement LOCALID_PLAYER, PalletTown_Movement_PlayerWalkToLabRight + waitmovement 0 + return + +PalletTown_Movement_OakEnterLeft:: + walk_up + walk_up + walk_right + walk_up + walk_up + walk_right + walk_up + walk_up + step_end + +PalletTown_Movement_OakEnterRight:: + walk_right + walk_up + walk_up + walk_right + walk_up + walk_up + walk_right + walk_up + walk_up + step_end + + .macro walk_to_lab + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right + walk_right + walk_right + walk_right + .endm + +PalletTown_Movement_OakWalkToLabLeft:: + walk_down + walk_to_lab + walk_right + walk_in_place_faster_up + step_end + +PalletTown_Movement_OakWalkToLabRight:: + walk_down + walk_left + walk_to_lab + walk_right + walk_in_place_faster_up + step_end + +PalletTown_Movement_OakEnterLab:: + walk_up + set_invisible + step_end + +PalletTown_Movement_PlayerWalkToLabLeft:: + walk_down + walk_down + walk_to_lab + step_end + +PalletTown_Movement_PlayerWalkToLabRight:: + walk_down + walk_down + walk_left + walk_to_lab + step_end + +PalletTown_Movement_PlayerEnterLab:: + walk_right + walk_up + set_invisible + step_end + +PalletTown_EventScript_SignLady:: + lock + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 2, PalletTown_EventScript_SignLadyDone + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1, PalletTown_EventScript_SignLadyJustShowedSign + goto_if_eq SIGN_LADY_READY, TRUE, PalletTown_EventScript_SignLadyStartShowSign + goto_if_set FLAG_TEMP_2, PalletTown_EventScript_SignLadyGoReadSign + msgbox PalletTown_Text_HmmIsThatRight + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_FacePlayer + waitmovement 0 + playse SE_PIN + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_Delay48 + waitmovement 0 + msgbox PalletTown_Text_OhLookLook + closemessage + call_if_eq VAR_FACING, DIR_EAST, PalletTown_EventScript_SignLadyMoveOutOfWayRight + call_if_ne VAR_FACING, DIR_EAST, PalletTown_EventScript_SignLadyMoveOutOfWayLeft + copyobjectxytoperm LOCALID_PALLET_SIGN_LADY + setflag FLAG_TEMP_2 + release + end + +PalletTown_EventScript_SignLadyMoveOutOfWayRight:: + applymovement LOCALID_PALLET_SIGN_LADY, PalletTown_Movement_SignLadyMoveOutOfWayRight + waitmovement 0 + return + +PalletTown_EventScript_SignLadyMoveOutOfWayLeft:: + applymovement LOCALID_PALLET_SIGN_LADY, PalletTown_Movement_SignLadyMoveOutOfWayLeft + waitmovement 0 + return + +PalletTown_EventScript_SignLadyDone:: + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_FacePlayer + waitmovement 0 + msgbox PalletTown_Text_RaisingMonsToo + release + end + +PalletTown_EventScript_SignLadyGoReadSign:: + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_FacePlayer + waitmovement 0 + msgbox PalletTown_Text_ReadItReadIt + release + end + +PalletTown_EventScript_SignLadyJustShowedSign:: + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_FacePlayer + waitmovement 0 + msgbox PalletTown_Text_SignsAreUsefulArentThey + release + end + +PalletTown_Movement_SignLadyMoveOutOfWayRight:: + walk_right + walk_in_place_faster_left + step_end + +PalletTown_Movement_SignLadyMoveOutOfWayLeft:: + walk_left + walk_in_place_faster_right + step_end + +PalletTown_EventScript_FatMan:: + msgbox PalletTown_Text_CanStoreItemsAndMonsInPC, MSGBOX_NPC + end + +PalletTown_EventScript_OaksLabSign:: + lockall + famechecker FAMECHECKER_OAK, 0 + msgbox PalletTown_Text_OakPokemonResearchLab + releaseall + end + +PalletTown_EventScript_PlayersHouseSign:: + msgbox PalletTown_Text_PlayersHouse, MSGBOX_SIGN + end + +PalletTown_EventScript_RivalsHouseSign:: + msgbox PalletTown_Text_RivalsHouse, MSGBOX_SIGN + end + +PalletTown_EventScript_TownSign:: + msgbox PalletTown_Text_TownSign, MSGBOX_SIGN + end + +PalletTown_EventScript_TrainerTips:: + lockall + msgbox PalletTown_Text_PressStartToOpenMenu + setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1 + releaseall + end + +PalletTown_EventScript_SignLadyTrigger:: + lockall + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + call PalletTown_EventScript_SignLadyShowSign + releaseall + end + +PalletTown_EventScript_SignLadyShowSign:: + textcolor NPC_TEXT_COLOR_FEMALE + msgbox PalletTown_Text_LookCopiedTrainerTipsSign + closemessage + delay 20 + textcolor NPC_TEXT_COLOR_NEUTRAL + setflag FLAG_OPENED_START_MENU + setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1 + setvar SIGN_LADY_READY, FALSE + special SetWalkingIntoSignVars + special DisableMsgBoxWalkaway + signmsg + msgbox PalletTown_Text_PressStartToOpenMenuCopy + normalmsg + return + +PalletTown_EventScript_SignLadyStartShowSign:: + applymovement LOCALID_PALLET_SIGN_LADY, Common_Movement_FacePlayer + waitmovement 0 + call PalletTown_EventScript_SignLadyShowSign + release + end + +PalletTown_Text_OakDontGoOut:: + .string "OAK: Hey! Wait!\n" + .string "Don't go out!$" + +PalletTown_Text_OakGrassUnsafeNeedMon:: + .string "OAK: It's unsafe!\n" + .string "Wild POKéMON live in tall grass!\p" + .string "You need your own POKéMON for\n" + .string "your protection.\p" + .string "I know!\n" + .string "Here, come with me!$" + +PalletTown_Text_RaisingMonsToo:: + .string "I'm raising POKéMON, too.\p" + .string "When they get strong, they can\n" + .string "protect me.$" + +PalletTown_Text_CanStoreItemsAndMonsInPC:: + .string "Technology is incredible!\p" + .string "You can now store and recall items\n" + .string "and POKéMON as data via PC.$" + +PalletTown_Text_OakPokemonResearchLab:: + .string "OAK POKéMON RESEARCH LAB$" + +PalletTown_Text_PlayersHouse:: + .string "{PLAYER}'s house$" + +PalletTown_Text_RivalsHouse:: + .string "{RIVAL}'s house$" + +PalletTown_Text_TownSign:: + .string "PALLET TOWN\n" + .string "Shades of your journey await!$" + +PalletTown_Text_OakLetMeSeePokedex:: + .string "OAK: Ah, {PLAYER}!\n" + .string "You're back, are you?\p" + .string "How much have you filled in your\n" + .string "POKéDEX?\p" + .string "May I see it?\p" + .string "Let's see…$" + +PalletTown_Text_CaughtXPuttingInHonestEffort:: + .string "You've caught {STR_VAR_2}…\p" + .string "Hm, it looks as if you're putting\n" + .string "in an honest effort.\p" + .string "When you manage to fill it some\n" + .string "more, come show me, please.$" + +PalletTown_Text_CaughtXImpressiveFollowMe:: + .string "You've caught… {STR_VAR_2}!?\n" + .string "Now, this is impressive!\p" + .string "There's something I wanted to ask\n" + .string "of you, {PLAYER}.\p" + .string "Come.\n" + .string "Follow me.$" + +PalletTown_Text_OakYouEnjoyingTraveling:: + .string "OAK: Ah, {PLAYER}!\n" + .string "You seem to be enjoying traveling.\p" + .string "Knowing you, {PLAYER}, I can easily\n" + .string "imagine you going out to even more\l" + .string "exotic locales.\p" + .string "Good for you, good for you.\n" + .string "Hohoho.$" + +@ For the NPC in Pallet Town that talks about the Trainer Tips sign +PalletTown_Text_HmmIsThatRight:: + .string "Hmm…\n" + .string "Is that right…$" + +PalletTown_Text_OhLookLook:: + .string "Oh!\n" + .string "Look, look!$" + +PalletTown_Text_ReadItReadIt:: + .string "Read it, read it!$" + +@ Used by sign +PalletTown_Text_PressStartToOpenMenu:: + .string "TRAINER TIPS\p" + .string "Press START to open the MENU!$" + +PalletTown_Text_SignsAreUsefulArentThey:: + .string "Signs are useful, aren't they?$" + +PalletTown_Text_LookCopiedTrainerTipsSign:: + .string "Look, look!\p" + .string "I copied what it said on one of\n" + .string "those TRAINER TIPS signs!$" + +@ Used by NPC +PalletTown_Text_PressStartToOpenMenuCopy:: + .string "TRAINER TIPS!\p" + .string "Press START to open the MENU!$" + + diff --git a/data/maps/PalletTown_PlayersHouse_1F_Frlg/map.json b/data/maps/PalletTown_PlayersHouse_1F_Frlg/map.json new file mode 100644 index 000000000000..a7310bfc8a0c --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_1F_Frlg/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", + "name": "PalletTown_PlayersHouse_1F_Frlg", + "layout": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_1F_FRLG", + "music": "MUS_LITTLEROOT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_MOM", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MOM_FRLG", + "x": 8, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_PlayersHouse_1F_EventScript_Mom", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_2F", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 9, + "elevation": 0, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_PlayersHouse_1F_EventScript_TV" + } + ] +} diff --git a/data/maps/PalletTown_PlayersHouse_1F_Frlg/scripts.inc b/data/maps/PalletTown_PlayersHouse_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..bead054c269d --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_1F_Frlg/scripts.inc @@ -0,0 +1,92 @@ +PalletTown_PlayersHouse_1F_Frlg_MapScripts:: + .byte 0 + +PalletTown_PlayersHouse_1F_EventScript_Mom:: + lock + faceplayer + goto_if_set FLAG_BEAT_RIVAL_IN_OAKS_LAB, PalletTown_PlayersHouse_1F_EventScript_MomHeal + checkplayergender + call_if_eq VAR_RESULT, MALE, PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouMale + call_if_eq VAR_RESULT, FEMALE, PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouFemale + closemessage + applymovement LOCALID_MOM, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouMale:: + msgbox PalletTown_PlayersHouse_1F_Text_AllBoysLeaveOakLookingForYou + return + +PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouFemale:: + msgbox PalletTown_PlayersHouse_1F_Text_AllGirlsLeaveOakLookingForYou + return + +PalletTown_PlayersHouse_1F_EventScript_MomHeal:: + msgbox PalletTown_PlayersHouse_1F_Text_YouShouldTakeQuickRest + closemessage + call Common_EventScript_OutOfCenterPartyHeal + msgbox PalletTown_PlayersHouse_1F_Text_LookingGreatTakeCare + release + end + +@ Displays special text if interacted with from side or back (which are normally inaccessible) +PalletTown_PlayersHouse_1F_EventScript_TV:: + lockall + goto_if_eq VAR_FACING, DIR_NORTH, PalletTown_PlayersHouse_1F_EventScript_TVScreen + msgbox PalletTown_PlayersHouse_1F_Text_OopsWrongSide + releaseall + end + +PalletTown_PlayersHouse_1F_EventScript_TVScreen:: + checkplayergender + call_if_eq VAR_RESULT, MALE, PalletTown_PlayersHouse_1F_EventScript_TVScreenMale + call_if_eq VAR_RESULT, FEMALE, PalletTown_PlayersHouse_1F_EventScript_TVScreenFemale + releaseall + end + +PalletTown_PlayersHouse_1F_EventScript_TVScreenMale:: + msgbox PalletTown_PlayersHouse_1F_Text_MovieOnTVFourBoysOnRailroad + return + +PalletTown_PlayersHouse_1F_EventScript_TVScreenFemale:: + msgbox PalletTown_PlayersHouse_1F_Text_MovieOnTVGirlOnBrickRoad + return + +PalletTown_PlayersHouse_1F_Text_AllBoysLeaveOakLookingForYou:: + .string "MOM: …Right.\n" + .string "All boys leave home someday.\l" + .string "It said so on TV.\p" + .string "Oh, yes. PROF. OAK, next door, was\n" + .string "looking for you.$" + +PalletTown_PlayersHouse_1F_Text_AllGirlsLeaveOakLookingForYou:: + .string "MOM: …Right.\n" + .string "All girls dream of traveling.\l" + .string "It said so on TV.\p" + .string "Oh, yes. PROF. OAK, next door, was\n" + .string "looking for you.$" + +PalletTown_PlayersHouse_1F_Text_YouShouldTakeQuickRest:: + .string "MOM: {PLAYER}!\n" + .string "You should take a quick rest.$" + +PalletTown_PlayersHouse_1F_Text_LookingGreatTakeCare:: + .string "MOM: Oh, good! You and your\n" + .string "POKéMON are looking great.\l" + .string "Take care now!$" + +PalletTown_PlayersHouse_1F_Text_MovieOnTVFourBoysOnRailroad:: + .string "There's a movie on TV.\n" + .string "Four boys are walking on railroad\l" + .string "tracks.\p" + .string "…I better go, too.$" + +PalletTown_PlayersHouse_1F_Text_MovieOnTVGirlOnBrickRoad:: + .string "There's a movie on TV.\n" + .string "A girl with her hair in pigtails is\l" + .string "walking up a brick road.\p" + .string "…I better go, too.$" + +PalletTown_PlayersHouse_1F_Text_OopsWrongSide:: + .string "Oops, wrong side…$" diff --git a/data/maps/PalletTown_PlayersHouse_2F_Frlg/map.json b/data/maps/PalletTown_PlayersHouse_2F_Frlg/map.json new file mode 100644 index 000000000000..6efcd06fdb6c --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_2F_Frlg/map.json @@ -0,0 +1,55 @@ +{ + "id": "MAP_PALLET_TOWN_PLAYERS_HOUSE_2F", + "name": "PalletTown_PlayersHouse_2F_Frlg", + "layout": "LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_2F_FRLG", + "music": "MUS_LITTLEROOT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 5, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_PlayersHouse_2F_EventScript_NES" + }, + { + "type": "sign", + "x": 1, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "EventScript_PalletTown_PlayersHouse_2F_TurnOnPC" + }, + { + "type": "sign", + "x": 11, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_PlayersHouse_2F_EventScript_Sign" + } + ] +} diff --git a/data/maps/PalletTown_PlayersHouse_2F_Frlg/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..152961253a5c --- /dev/null +++ b/data/maps/PalletTown_PlayersHouse_2F_Frlg/scripts.inc @@ -0,0 +1,40 @@ +PalletTown_PlayersHouse_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PalletTown_PlayersHouse_2F_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PalletTown_PlayersHouse_2F_OnWarp + .byte 0 + +PalletTown_PlayersHouse_2F_OnTransition:: + call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F, 0, PalletTown_PlayersHouse_2F_EventScript_SetRespawn + end + +PalletTown_PlayersHouse_2F_EventScript_SetRespawn:: + setrespawn HEAL_LOCATION_PALLET_TOWN + return + +PalletTown_PlayersHouse_2F_OnWarp:: + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F, 0, PalletTown_PlayersHouse_2F_FirstWarpIn + .2byte 0 + +PalletTown_PlayersHouse_2F_FirstWarpIn:: + turnobject LOCALID_PLAYER, DIR_NORTH + setvar VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F, 1 + end + +PalletTown_PlayersHouse_2F_EventScript_NES:: + msgbox PalletTown_PlayersHouse_2F_Text_PlayedWithNES, MSGBOX_SIGN + end + +PalletTown_PlayersHouse_2F_EventScript_Sign:: + msgbox PalletTown_PlayersHouse_2F_Text_PressLRForHelp, MSGBOX_SIGN + end + +PalletTown_PlayersHouse_2F_Text_PlayedWithNES:: + .string "{PLAYER} played with the NES.\p" + .string "…Okay!\n" + .string "It's time to go!$" + +PalletTown_PlayersHouse_2F_Text_PressLRForHelp:: + .string "It's a posted notice…\p" + .string "If you're confused, ask for HELP!\n" + .string "Press the L or R Button!$" + diff --git a/data/maps/PalletTown_ProfessorOaksLab_Frlg/map.json b/data/maps/PalletTown_ProfessorOaksLab_Frlg/map.json new file mode 100644 index 000000000000..459a37f24985 --- /dev/null +++ b/data/maps/PalletTown_ProfessorOaksLab_Frlg/map.json @@ -0,0 +1,280 @@ +{ + "id": "MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "name": "PalletTown_ProfessorOaksLab_Frlg", + "layout": "LAYOUT_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "music": "MUS_RG_OAK_LAB", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_Aide1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 2, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 0, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_Aide3", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_Aide2", + "flag": "0" + }, + { + "local_id": "LOCALID_OAKS_LAB_PROF_OAK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_ProfOak", + "flag": "FLAG_HIDE_OAK_IN_HIS_LAB" + }, + { + "local_id": "LOCALID_BULBASAUR_BALL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 8, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_BulbasaurBall", + "flag": "FLAG_HIDE_BULBASAUR_BALL" + }, + { + "local_id": "LOCALID_SQUIRTLE_BALL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 9, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_SquirtleBall", + "flag": "FLAG_HIDE_SQUIRTLE_BALL" + }, + { + "local_id": "LOCALID_CHARMANDER_BALL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 10, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_CharmanderBall", + "flag": "FLAG_HIDE_CHARMANDER_BALL" + }, + { + "local_id": "LOCALID_OAKS_LAB_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_Rival", + "flag": "FLAG_HIDE_RIVAL_IN_LAB" + }, + { + "local_id": "LOCALID_POKEDEX_1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POKEDEX", + "x": 4, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_Pokedex", + "flag": "FLAG_HIDE_POKEDEX" + }, + { + "local_id": "LOCALID_POKEDEX_2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POKEDEX", + "x": 5, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_ProfessorOaksLab_EventScript_Pokedex", + "flag": "FLAG_HIDE_POKEDEX" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 12, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 12, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "2" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 5, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": "2", + "script": "PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger" + }, + { + "type": "trigger", + "x": 6, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": "2", + "script": "PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger" + }, + { + "type": "trigger", + "x": 7, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": "2", + "script": "PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger" + }, + { + "type": "trigger", + "x": 5, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": "3", + "script": "PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerLeft" + }, + { + "type": "trigger", + "x": 6, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": "3", + "script": "PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerMid" + }, + { + "type": "trigger", + "x": 7, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB", + "var_value": "3", + "script": "PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 2, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_ProfessorOaksLab_EventScript_Computer" + }, + { + "type": "sign", + "x": 3, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_ProfessorOaksLab_EventScript_Computer" + }, + { + "type": "sign", + "x": 6, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_ProfessorOaksLab_EventScript_LeftSign" + }, + { + "type": "sign", + "x": 7, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_ProfessorOaksLab_EventScript_RightSign" + } + ] +} diff --git a/data/maps/PalletTown_ProfessorOaksLab_Frlg/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab_Frlg/scripts.inc new file mode 100644 index 000000000000..3efd13cd19ba --- /dev/null +++ b/data/maps/PalletTown_ProfessorOaksLab_Frlg/scripts.inc @@ -0,0 +1,1657 @@ +.equ PLAYER_STARTER_NUM, VAR_TEMP_1 +.equ PLAYER_STARTER_SPECIES, VAR_TEMP_2 +.equ RIVAL_STARTER_SPECIES, VAR_TEMP_3 +.equ RIVAL_STARTER_ID, VAR_TEMP_4 + +.equ SHOWED_OAK_COMPLETE_DEX, FLAG_TEMP_2 + +PalletTown_ProfessorOaksLab_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PalletTown_ProfessorOaksLab_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PalletTown_ProfessorOaksLab_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, PalletTown_ProfessorOaksLab_OnFrame + .byte 0 + +PalletTown_ProfessorOaksLab_OnTransition:: + setflag FLAG_VISITED_OAKS_LAB + call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_EventScript_ReadyOakForStarterScene + call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7, PalletTown_ProfessorOaksLab_EventScript_ReadyOakForNationalDexScene + call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8, PalletTown_ProfessorOaksLab_EventScript_SetNationalDexSceneFinished + call_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_SetSkipPokeBallCheck + end + +PalletTown_ProfessorOaksLab_EventScript_SetSkipPokeBallCheck:: + setflag FLAG_OAK_SKIP_22_RIVAL_CHECK + return + +PalletTown_ProfessorOaksLab_EventScript_SetNationalDexSceneFinished:: + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9 + return + +PalletTown_ProfessorOaksLab_EventScript_ReadyOakForStarterScene:: + setobjectxyperm LOCALID_OAKS_LAB_PROF_OAK, 6, 11 + setobjectmovementtype LOCALID_OAKS_LAB_PROF_OAK, MOVEMENT_TYPE_FACE_UP + savebgm MUS_RG_OAK + return + +PalletTown_ProfessorOaksLab_EventScript_ReadyOakForNationalDexScene:: + setobjectxyperm LOCALID_OAKS_LAB_PROF_OAK, 6, 11 + setobjectmovementtype LOCALID_OAKS_LAB_PROF_OAK, MOVEMENT_TYPE_FACE_UP + return + +PalletTown_ProfessorOaksLab_OnWarp:: + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_EventScript_ReadyPlayerForStarterScene + .2byte 0 + +PalletTown_ProfessorOaksLab_EventScript_ReadyPlayerForStarterScene:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PalletTown_ProfessorOaksLab_OnFrame:: + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_ChooseStarterScene + map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7, PalletTown_ProfessorOaksLab_EventScript_EnterForNationalDexScene + .2byte 0 + +PalletTown_ProfessorOaksLab_EventScript_EnterForNationalDexScene:: @ 8169002 + lockall + setvar VAR_FACING, DIR_NORTH + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakEnter + waitmovement 0 + removeobject LOCALID_OAKS_LAB_PROF_OAK + setobjectxyperm LOCALID_OAKS_LAB_PROF_OAK, 6, 3 + setobjectmovementtype LOCALID_OAKS_LAB_PROF_OAK, MOVEMENT_TYPE_FACE_DOWN + clearflag FLAG_HIDE_OAK_IN_HIS_LAB + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_NationalDexScene + end + +PalletTown_ProfessorOaksLab_EventScript_NationalDexScene:: + msgbox PalletTown_ProfessorOaksLab_Text_OakSightingsOfRareMons + closemessage + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest + msgbox PalletTown_ProfessorOaksLab_Text_RivalJustLetMeHandleEverything + fadedefaultbgm + msgbox PalletTown_ProfessorOaksLab_Text_OakNeedYourHelpTooNeedToSeePokedexes + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PalletTown_ProfessorOaksLab_Text_OakTookBothPokedexUnits + closemessage + call EventScript_RestorePrevTextColor + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskEast + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskWest + addobject LOCALID_POKEDEX_1 + addobject LOCALID_POKEDEX_2 + delay 30 + msgbox PalletTown_ProfessorOaksLab_Text_OakNowTheseUnitsCanRecordMoreData + closemessage + removeobject LOCALID_POKEDEX_1 + removeobject LOCALID_POKEDEX_2 + delay 30 + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message PalletTown_ProfessorOaksLab_Text_PlayersPokedexWasUpgraded + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + special EnableNationalPokedex + msgbox PalletTown_ProfessorOaksLab_Text_OakMustReallyWorkToFillPokedex + msgbox PalletTown_ProfessorOaksLab_Text_RivalIllCompleteThePokedex + closemessage + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_RivalExit + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_RivalExit + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_RivalExit + removeobject LOCALID_OAKS_LAB_RIVAL + fadedefaultbgm + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8 + releaseall + end + +PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterNorth:: + setobjectxyperm LOCALID_OAKS_LAB_RIVAL, 5, 10 + addobject LOCALID_OAKS_LAB_RIVAL + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest:: + setobjectxyperm LOCALID_OAKS_LAB_RIVAL, 6, 10 + addobject LOCALID_OAKS_LAB_RIVAL + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth:: + setobjectxyperm LOCALID_OAKS_LAB_RIVAL, 6, 10 + addobject LOCALID_OAKS_LAB_RIVAL + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskNorth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskSouth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDeskSouth + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk + waitmovement LOCALID_OAKS_LAB_PROF_OAK + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskEast:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast + waitmovement LOCALID_OAKS_LAB_PROF_OAK + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskWest:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk:: + walk_up + walk_left + walk_in_place_faster_up + delay_16 + delay_4 + step_end + +PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDeskSouth:: + walk_left + walk_left + walk_up + delay_16 + delay_4 + step_end + +PalletTown_ProfessorOaksLab_ChooseStarterScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakEnter + waitmovement 0 + removeobject LOCALID_OAKS_LAB_PROF_OAK + setobjectxyperm LOCALID_OAKS_LAB_PROF_OAK, 6, 3 + setobjectmovementtype LOCALID_OAKS_LAB_PROF_OAK, MOVEMENT_TYPE_FACE_DOWN + clearflag FLAG_HIDE_OAK_IN_HIS_LAB + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter + waitmovement 0 + applymovement LOCALID_OAKS_LAB_RIVAL, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + clearflag FLAG_DONT_TRANSITION_MUSIC + savebgm MUS_DUMMY + fadedefaultbgm + msgbox PalletTown_ProfessorOaksLab_Text_RivalFedUpWithWaiting + closemessage + delay 60 + msgbox PalletTown_ProfessorOaksLab_Text_OakThreeMonsChooseOne + closemessage + delay 30 + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalReact + waitmovement 0 + msgbox PalletTown_ProfessorOaksLab_Text_RivalNoFairWhatAboutMe + msgbox PalletTown_ProfessorOaksLab_Text_OakBePatientRival + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2 + releaseall + end + +PalletTown_ProfessorOaksLab_Movement_OakEnter:: + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +PalletTown_ProfessorOaksLab_Movement_PlayerEnter:: + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalReact:: + walk_in_place_up + walk_in_place_up + step_end + +PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FaceDown + waitmovement 0 + msgbox PalletTown_ProfessorOaksLab_Text_OakHeyDontGoAwayYet + closemessage + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWalkUp + waitmovement 0 + releaseall + end + +PalletTown_ProfessorOaksLab_Movement_PlayerWalkUp:: + walk_up + step_end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerLeft:: + lockall + setvar VAR_TEMP_2, 1 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerMid:: + lockall + setvar VAR_TEMP_2, 2 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight:: + lockall + setvar VAR_TEMP_2, 3 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattle:: + textcolor NPC_TEXT_COLOR_MALE + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_OAKS_LAB_RIVAL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons + closemessage + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FaceDown + waitmovement 0 + goto_if_eq VAR_STARTER_MON, 0, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander + goto_if_eq VAR_STARTER_MON, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur + goto_if_eq VAR_STARTER_MON, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtle + end + +@ The scripts for the rival approaching the player for battle are a bit bloated because +@ both the player and rival can be in 3 different positions, so theres 9 different approaches +@ NOTE: Names below refer to the Rival's mon (e.g. for RivalBattleSquirtle, player has Charmander) + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtle:: + goto_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleLeft + goto_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleMid + goto_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleRight + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleLeft:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleLeft + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleMid:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleMid + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleRight:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleRight + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle:: + trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_SQUIRTLE, RIVAL_BATTLE_TUTORIAL, PalletTown_ProfessorOaksLab_Text_RivalDefeat, Text_RivalVictory + goto PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle + end + +PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleLeft:: + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleMid:: + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleRight:: + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander:: + goto_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderLeft + goto_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderMid + goto_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderRight + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderLeft:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderLeft + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderMid:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderMid + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderRight:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderRight + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander + end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander:: + trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_CHARMANDER, RIVAL_BATTLE_TUTORIAL, PalletTown_ProfessorOaksLab_Text_RivalDefeat, Text_RivalVictory + goto PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle + end + +PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderLeft:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderMid:: + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderRight:: + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur:: + goto_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurLeft + goto_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurMid + goto_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurRight + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurLeft:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurLeft + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurMid:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurMid + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur + end + +PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurRight:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurRight + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur + end + +PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur:: + trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_BULBASAUR, RIVAL_BATTLE_TUTORIAL, PalletTown_ProfessorOaksLab_Text_RivalDefeat, Text_RivalVictory + goto PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle + end + +PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurLeft:: + walk_left + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurMid:: + walk_left + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurRight:: + walk_left + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle:: + special HealPlayerParty + msgbox PalletTown_ProfessorOaksLab_Text_RivalGoToughenMyMon + closemessage + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleLeft + call_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleMid + call_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleRight + removeobject LOCALID_OAKS_LAB_RIVAL + playse SE_EXIT + fadedefaultbgm + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4 + setflag FLAG_BEAT_RIVAL_IN_OAKS_LAB + releaseall + end + +PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleLeft:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleLeft + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle + waitmovement LOCALID_OAKS_LAB_RIVAL + return + +PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleMid:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle + waitmovement LOCALID_OAKS_LAB_RIVAL + return + +PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleRight:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleRight + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight + waitmovement LOCALID_OAKS_LAB_RIVAL + return + +PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleLeft:: + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + delay_8 + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleRight:: + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + delay_8 + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid:: + walk_right + walk_down + walk_down + walk_down + walk_left + walk_down + walk_down + delay_8 + step_end + +PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle:: + delay_16 + delay_8 + walk_in_place_faster_right + delay_16 + walk_in_place_faster_down + step_end + +PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight:: + delay_16 + delay_8 + walk_in_place_faster_left + delay_16 + walk_in_place_faster_down + step_end + +PalletTown_ProfessorOaksLab_EventScript_Rival:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_RivalChoseStarter + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_RivalWaitingForStarter + msgbox PalletTown_ProfessorOaksLab_Text_RivalGrampsIsntAround + release + end + +PalletTown_ProfessorOaksLab_EventScript_RivalWaitingForStarter:: + msgbox PalletTown_ProfessorOaksLab_Text_RivalGoChoosePlayer + release + end + +PalletTown_ProfessorOaksLab_EventScript_RivalChoseStarter:: + msgbox PalletTown_ProfessorOaksLab_Text_RivalMyMonLooksTougher + release + end + +PalletTown_ProfessorOaksLab_EventScript_ProfOak:: + lock + faceplayer + goto_if_set SHOWED_OAK_COMPLETE_DEX, PalletTown_ProfessorOaksLab_EventScript_OakJustShownCompleteDex + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9, PalletTown_ProfessorOaksLab_EventScript_RatePokedex + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8, PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait + goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_TryStartNationalDexScene + goto_if_eq VAR_MAP_SCENE_CERULEAN_CITY_RIVAL, 1, PalletTown_ProfessorOaksLab_EventScript_RatePokedex + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6, PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls + goto_if_ge VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1, PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4, PalletTown_ProfessorOaksLab_EventScript_OakBattleMonForItToGrow + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_OakCanReachNextTownWithMon + msgbox PalletTown_ProfessorOaksLab_Text_OakWhichOneWillYouChoose + release + end + +PalletTown_ProfessorOaksLab_EventScript_OakJustShownCompleteDex:: + msgbox PokedexRating_Text_ThankYouMadeDreamReality + release + end + +PalletTown_ProfessorOaksLab_EventScript_OakCanReachNextTownWithMon:: + msgbox PalletTown_ProfessorOaksLab_Text_OakCanReachNextTownWithMon + release + end + +PalletTown_ProfessorOaksLab_EventScript_OakBattleMonForItToGrow:: + msgbox PalletTown_ProfessorOaksLab_Text_OakBattleMonForItToGrow + release + end + +PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: + msgbox PalletTown_ProfessorOaksLab_Text_OakHaveSomethingForMe + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_OBTAIN_TMHM + message PalletTown_ProfessorOaksLab_Text_DeliveredOaksParcel + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + removeitem ITEM_OAKS_PARCEL + msgbox PalletTown_ProfessorOaksLab_Text_OakCustomBallIOrdered + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + msgbox PalletTown_ProfessorOaksLab_Text_RivalGramps + closemessage + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest + fadedefaultbgm + msgbox PalletTown_ProfessorOaksLab_Text_RivalWhatDidYouCallMeFor + closemessage + delay 30 + playse SE_PIN + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_Delay48 + waitmovement 0 + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth + msgbox PalletTown_ProfessorOaksLab_Text_OakHaveRequestForYouTwo + closemessage + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskEast + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskWest + msgbox PalletTown_ProfessorOaksLab_Text_OakPokedexOnDesk + closemessage + delay 40 + msgbox PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou + closemessage + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + removeobject LOCALID_POKEDEX_1 + delay 10 + removeobject LOCALID_POKEDEX_2 + delay 25 + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest + delay 10 + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message PalletTown_ProfessorOaksLab_Text_ReceivedPokedexFromOak + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + setflag FLAG_SYS_POKEDEX_GET + special SetUnlockedPokedexFlags + setvar VAR_MAP_SCENE_POKEMON_CENTER_TEALA, 1 + msgbox PalletTown_ProfessorOaksLab_Text_OakCatchMonsForDataTakeThese + giveitem_msg PalletTown_ProfessorOaksLab_Text_ReceivedFivePokeBalls, ITEM_POKE_BALL, 5 + msgbox PalletTown_ProfessorOaksLab_Text_OakExplainCatching + famechecker FAMECHECKER_OAK, 1 + msgbox PalletTown_ProfessorOaksLab_Text_OakCompleteMonGuideWasMyDream + msgbox PalletTown_ProfessorOaksLab_Text_RivalLeaveItToMeGramps + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest + msgbox PalletTown_ProfessorOaksLab_Text_RivalTellSisNotToGiveYouMap + closemessage + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_RivalExit + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_RivalExit + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_RivalExit + removeobject LOCALID_OAKS_LAB_RIVAL + fadedefaultbgm + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6 + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 2 + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1 + setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 1 + setvar VAR_MAP_SCENE_ROUTE22, 1 + release + end + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOverSouth + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast:: + delay_16 + delay_8 + walk_in_place_faster_right + step_end + +PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver:: + walk_right + walk_down + step_end + +PalletTown_ProfessorOaksLab_Movement_OakBringDexesOverSouth:: + walk_down + walk_right + step_end + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskNorth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskSouth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk + waitmovement LOCALID_OAKS_LAB_PROF_OAK + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskEast:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast + waitmovement LOCALID_OAKS_LAB_PROF_OAK + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskWest:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast:: + delay_16 + delay_8 + walk_in_place_faster_up + step_end + +PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk:: + delay_16 + delay_8 + walk_in_place_faster_left + step_end + +PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk:: + walk_up + walk_left + delay_16 + walk_in_place_faster_down + step_end + +PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth:: + walk_left + walk_left + walk_up + delay_16 + walk_in_place_faster_right + step_end + +PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls:: + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + copyvar VAR_0x8008, VAR_0x8005 + copyvar VAR_0x8009, VAR_0x8006 + buffernumberstring STR_VAR_1, VAR_0x8008 + buffernumberstring STR_VAR_2, VAR_0x8009 + goto_if_eq VAR_0x8009, 1, PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls @ Player only has starter + goto PalletTown_ProfessorOaksLab_EventScript_RatePokedex + end + +PalletTown_ProfessorOaksLab_EventScript_RatePokedex:: + call PokedexRating_EventScript_RateInPerson + goto_if_set FLAG_OAK_SAW_DEX_COMPLETION, PalletTown_ProfessorOaksLab_EventScript_DexCompleted + release + end + +PalletTown_ProfessorOaksLab_EventScript_DexCompleted:: + closemessage + delay 40 + message PokedexRating_Text_Wroooaaarrr + waitmessage + call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakExcitedNorth + call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth + call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast + call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FacePlayer + waitmovement 0 + closemessage + delay 70 + msgbox PokedexRating_Text_ThankYouMadeDreamReality + setflag SHOWED_OAK_COMPLETE_DEX + release + end + +PalletTown_ProfessorOaksLab_EventScript_OakExcitedNorth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedNorth + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedSouth + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedEast + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedWest + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_Movement_OakExcitedNorth:: + walk_in_place_down + walk_in_place_fast_down + walk_in_place_down + walk_in_place_down + walk_in_place_fast_down + walk_in_place_down + step_end + +PalletTown_ProfessorOaksLab_Movement_OakExcitedSouth:: + walk_in_place_up + walk_in_place_fast_up + walk_in_place_up + walk_in_place_up + walk_in_place_fast_up + walk_in_place_up + step_end + +PalletTown_ProfessorOaksLab_Movement_OakExcitedEast:: + walk_in_place_left + walk_in_place_fast_left + walk_in_place_left + walk_in_place_left + walk_in_place_fast_left + walk_in_place_left + step_end + +PalletTown_ProfessorOaksLab_Movement_OakExcitedWest:: + walk_in_place_right + walk_in_place_fast_right + walk_in_place_right + walk_in_place_right + walk_in_place_fast_right + walk_in_place_right + step_end + +@ Unused +PalletTown_ProfessorOaksLab_Movement_Search: + walk_left + walk_in_place_faster_down + delay_8 + walk_in_place_faster_right + delay_8 + walk_in_place_faster_up + delay_8 + walk_in_place_faster_left + delay_8 + walk_in_place_faster_down + delay_8 + walk_right + walk_right + walk_in_place_faster_up + delay_8 + walk_in_place_faster_left + delay_8 + walk_in_place_faster_down + delay_8 + walk_in_place_faster_right + delay_8 + walk_in_place_faster_up + delay_8 + walk_left + step_end + +@ Unused +PalletTown_ProfessorOaksLab_Movement_VerticalPacing: + walk_up + walk_down + walk_down + walk_in_place_down + walk_up + delay_16 + delay_16 + delay_16 + step_end + +PalletTown_ProfessorOaksLab_EventScript_TryStartNationalDexScene:: + call PokedexRating_EventScript_RateInPerson + closemessage + goto_if_lt VAR_0x8009, 60, PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene + goto_if_unset FLAG_WORLD_MAP_ONE_ISLAND, PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene + delay 30 + msgbox PalletTown_ProfessorOaksLab_Text_OakFavorToAskYouPlayer + goto PalletTown_ProfessorOaksLab_EventScript_NationalDexScene + end + +PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene:: + release + end + +PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls:: + goto_if_set FLAG_OAK_SKIP_22_RIVAL_CHECK, PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait + goto_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls + checkitem ITEM_POKE_BALL + goto_if_eq VAR_RESULT, FALSE, PalletTown_ProfessorOaksLab_EventScript_PlayerOutOfBalls + goto PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait + end + +PalletTown_ProfessorOaksLab_EventScript_PlayerOutOfBalls:: + goto_if_ge VAR_MAP_SCENE_ROUTE22, 2, PalletTown_ProfessorOaksLab_EventScript_GivePlayerMoreBalls + goto PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait + end + +PalletTown_ProfessorOaksLab_EventScript_GivePlayerMoreBalls:: + msgbox PalletTown_ProfessorOaksLab_Text_OakAddedNothingToPokedex + giveitem_msg PalletTown_ProfessorOaksLab_Text_ReceivedFivePokeBalls, ITEM_POKE_BALL, 5 + setflag FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL + release + end + +PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait:: + msgbox PalletTown_ProfessorOaksLab_Text_OakMonsAroundWorldWait + release + end + +PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls:: + msgbox PalletTown_ProfessorOaksLab_Text_OakComeSeeMeSometime + release + end + +PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth:: + setobjectxyperm LOCALID_OAKS_LAB_RIVAL, 5, 10 + addobject LOCALID_OAKS_LAB_RIVAL + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: + setobjectxyperm LOCALID_OAKS_LAB_RIVAL, 6, 10 + addobject LOCALID_OAKS_LAB_RIVAL + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth:: + setobjectxyperm LOCALID_OAKS_LAB_RIVAL, 6, 10 + addobject LOCALID_OAKS_LAB_RIVAL + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FacePlayer + waitmovement 0 + delay 15 + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FacePlayer + waitmovement 0 + delay 15 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FacePlayer + waitmovement 0 + delay 15 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth:: + applymovement LOCALID_OAKS_LAB_RIVAL, Common_Movement_FacePlayer + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth:: + applymovement LOCALID_OAKS_LAB_RIVAL, Common_Movement_WalkInPlaceFasterUp + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest:: + applymovement LOCALID_OAKS_LAB_RIVAL, Common_Movement_FacePlayer + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth:: + applymovement LOCALID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExit + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_RivalExit:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExit + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest:: + delay_4 + walk_in_place_faster_down + step_end + +PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth:: + walk_in_place_faster_down + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_8 + walk_in_place_faster_left + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalEnter:: + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalExit:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +PalletTown_ProfessorOaksLab_EventScript_BulbasaurBall:: + lock + faceplayer + setvar PLAYER_STARTER_NUM, 0 + setvar PLAYER_STARTER_SPECIES, SPECIES_BULBASAUR + setvar RIVAL_STARTER_SPECIES, SPECIES_CHARMANDER + setvar RIVAL_STARTER_ID, LOCALID_CHARMANDER_BALL + goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_LastPokeBall + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice + msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls + release + end + +PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice:: + applymovement LOCALID_OAKS_LAB_PROF_OAK, Common_Movement_FaceRight + waitmovement 0 + showmonpic PLAYER_STARTER_SPECIES, 10, 3 + textcolor NPC_TEXT_COLOR_MALE + goto_if_eq PLAYER_STARTER_NUM, 0, PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur + goto_if_eq PLAYER_STARTER_NUM, 1, PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle + goto_if_eq PLAYER_STARTER_NUM, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander + end + +PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur:: + msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingBulbasaur, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PalletTown_ProfessorOaksLab_EventScript_ChoseStarter + goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter + end + +PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle:: + msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingSquirtle, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PalletTown_ProfessorOaksLab_EventScript_ChoseStarter + goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter + end + +PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander:: + msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingCharmander, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PalletTown_ProfessorOaksLab_EventScript_ChoseStarter + goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter + end + +PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter:: + hidemonpic + release + end + +PalletTown_ProfessorOaksLab_EventScript_ChoseStarter:: + hidemonpic + removeobject VAR_LAST_TALKED + msgbox PalletTown_ProfessorOaksLab_Text_OakThisMonIsEnergetic + call EventScript_RestorePrevTextColor + setflag FLAG_SYS_POKEMON_GET + setflag FLAG_PALLET_LADY_NOT_BLOCKING_SIGN + givemon PLAYER_STARTER_SPECIES, 5 + copyvar VAR_STARTER_MON, PLAYER_STARTER_NUM + bufferspeciesname STR_VAR_1, PLAYER_STARTER_SPECIES + message PalletTown_ProfessorOaksLab_Text_ReceivedMonFromOak + waitmessage + playfanfare MUS_RG_OBTAIN_KEY_ITEM + waitfanfare + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, EventScript_GiveNicknameToStarter + goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter + end + +EventScript_GiveNicknameToStarter:: + setvar VAR_0x8004, 0 + call Common_EventScript_NameReceivedPartyMon + goto PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter + end + +PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter:: + closemessage + goto_if_eq PLAYER_STARTER_NUM, 0, PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander + goto_if_eq PLAYER_STARTER_NUM, 1, PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur + goto_if_eq PLAYER_STARTER_NUM, 2, PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle + end + +PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter + end + +PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter + end + +PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur:: + applymovement LOCALID_OAKS_LAB_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur + waitmovement 0 + goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter + end + +PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter:: + textcolor NPC_TEXT_COLOR_MALE + msgbox PalletTown_ProfessorOaksLab_Text_RivalIllTakeThisOneThen + removeobject RIVAL_STARTER_ID + textcolor NPC_TEXT_COLOR_NEUTRAL + bufferspeciesname STR_VAR_1, RIVAL_STARTER_SPECIES + message PalletTown_ProfessorOaksLab_Text_RivalReceivedMonFromOak + waitmessage + playfanfare MUS_RG_OBTAIN_KEY_ITEM + waitfanfare + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3 + call_if_set FLAG_OPENED_START_MENU, PalletTown_ProfessorOaksLab_EventScript_ReadyEndSignLadyScene + release + end + +PalletTown_ProfessorOaksLab_EventScript_ReadyEndSignLadyScene:: + setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1 + return + +PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander:: + walk_down + walk_down + walk_right + walk_right + walk_right + walk_right + walk_right + walk_up + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle:: + walk_down + walk_right + walk_right + walk_right + walk_right + walk_in_place_faster_up + step_end + +PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: + walk_down + walk_right + walk_right + walk_right + walk_in_place_faster_up + step_end + +PalletTown_ProfessorOaksLab_EventScript_SquirtleBall:: + lock + faceplayer + setvar PLAYER_STARTER_NUM, 1 + setvar PLAYER_STARTER_SPECIES, SPECIES_SQUIRTLE + setvar RIVAL_STARTER_SPECIES, SPECIES_BULBASAUR + setvar RIVAL_STARTER_ID, LOCALID_BULBASAUR_BALL + goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_LastPokeBall + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice + msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls + release + end + +PalletTown_ProfessorOaksLab_EventScript_CharmanderBall:: + lock + faceplayer + setvar PLAYER_STARTER_NUM, 2 + setvar PLAYER_STARTER_SPECIES, SPECIES_CHARMANDER + setvar RIVAL_STARTER_SPECIES, SPECIES_SQUIRTLE + setvar RIVAL_STARTER_ID, LOCALID_SQUIRTLE_BALL + goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_LastPokeBall + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice + msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls + release + end + +PalletTown_ProfessorOaksLab_EventScript_LastPokeBall:: + msgbox PalletTown_ProfessorOaksLab_Text_OaksLastMon + release + end + +PalletTown_ProfessorOaksLab_EventScript_Aide1:: + lock + faceplayer + goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_Aide1GameClear + msgbox PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide + release + end + +PalletTown_ProfessorOaksLab_EventScript_Aide1GameClear:: + famechecker FAMECHECKER_OAK, 5 + msgbox PalletTown_ProfessorOaksLab_Text_OakIsGoingToHaveRadioShow + release + end + +PalletTown_ProfessorOaksLab_EventScript_Aide2:: + lock + faceplayer + goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_Aide2GameClear + msgbox PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide + release + end + +PalletTown_ProfessorOaksLab_EventScript_Aide2GameClear:: + famechecker FAMECHECKER_DAISY, 0 + msgbox PalletTown_ProfessorOaksLab_Text_DaisyWillGroomMons + release + end + +PalletTown_ProfessorOaksLab_EventScript_Aide3:: + lock + faceplayer + famechecker FAMECHECKER_OAK, 2 + msgbox PalletTown_ProfessorOaksLab_Text_OakIsAuthorityOnMons + release + end + +PalletTown_ProfessorOaksLab_EventScript_Pokedex:: + msgbox PalletTown_ProfessorOaksLab_Text_BlankEncyclopedia, MSGBOX_NPC + end + +PalletTown_ProfessorOaksLab_EventScript_Computer:: + msgbox PalletTown_ProfessorOaksLab_Text_EmailMessage, MSGBOX_SIGN + end + +PalletTown_ProfessorOaksLab_EventScript_LeftSign:: + msgbox PalletTown_ProfessorOaksLab_Text_PressStartToOpenMenu, MSGBOX_SIGN + end + +PalletTown_ProfessorOaksLab_EventScript_RightSign:: + lockall + goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6, PalletTown_ProfessorOaksLab_EventScript_RightSignAlt + msgbox PalletTown_ProfessorOaksLab_Text_SaveOptionInMenu + releaseall + end + +PalletTown_ProfessorOaksLab_EventScript_RightSignAlt:: + msgbox PalletTown_ProfessorOaksLab_Text_AllMonTypesHaveStrongAndWeakPoints + releaseall + end + +PalletTown_ProfessorOaksLab_Text_RivalGrampsIsntAround:: + .string "{RIVAL}: What, it's only {PLAYER}?\n" + .string "Gramps isn't around.$" + +PalletTown_ProfessorOaksLab_Text_RivalFedUpWithWaiting:: + .string "{RIVAL}: Gramps!\n" + .string "I'm fed up with waiting!$" + +PalletTown_ProfessorOaksLab_Text_RivalNoFairWhatAboutMe:: + .string "{RIVAL}: Hey! Gramps! No fair!\n" + .string "What about me?$" + +PalletTown_ProfessorOaksLab_Text_RivalGoChoosePlayer:: + .string "{RIVAL}: Heh, I don't need to be\n" + .string "greedy like you. I'm mature!\p" + .string "Go ahead and choose, {PLAYER}!$" + +PalletTown_ProfessorOaksLab_Text_RivalIllTakeThisOneThen:: + .string "{RIVAL}: I'll take this one, then!$" + +PalletTown_ProfessorOaksLab_Text_RivalReceivedMonFromOak:: + .string "{RIVAL} received the {STR_VAR_1}\n" + .string "from PROF. OAK!$" + +PalletTown_ProfessorOaksLab_Text_RivalMyMonLooksTougher:: + .string "{RIVAL}: My POKéMON looks a lot\n" + .string "tougher than yours.$" + +PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons:: + .string "{RIVAL}: Wait, {PLAYER}!\n" + .string "Let's check out our POKéMON!\p" + .string "Come on, I'll take you on!$" + +PalletTown_ProfessorOaksLab_Text_RivalDefeat:: + .string "WHAT?\n" + .string "Unbelievable!\l" + .string "I picked the wrong POKéMON!$" + +@ Also used for early Route 22 battle +Text_RivalVictory:: + .string "{RIVAL}: Yeah!\n" + .string "Am I great or what?$" + +PalletTown_ProfessorOaksLab_Text_RivalGoToughenMyMon:: + .string "{RIVAL}: Okay! I'll make my\n" + .string "POKéMON battle to toughen it up!\p" + .string "{PLAYER}! Gramps!\n" + .string "Smell you later!$" + +PalletTown_ProfessorOaksLab_Text_RivalGramps:: + .string "{RIVAL}: Gramps!$" + +PalletTown_ProfessorOaksLab_Text_RivalWhatDidYouCallMeFor:: + .string "{RIVAL}: I almost forgot!\n" + .string "What did you call me for?$" + +PalletTown_ProfessorOaksLab_Text_RivalLeaveItToMeGramps:: + .string "{RIVAL}: All right, Gramps!\n" + .string "Leave it all to me!$" + +PalletTown_ProfessorOaksLab_Text_RivalTellSisNotToGiveYouMap:: + .string "{PLAYER}, I hate to say it, but you\n" + .string "won't be necessary for this.\p" + .string "I know! I'll borrow a TOWN MAP\n" + .string "from my sis!\p" + .string "I'll tell her not to lend you one,\n" + .string "{PLAYER}! Hahaha!\p" + .string "Don't bother coming around to\n" + .string "my place after this!$" + +PalletTown_ProfessorOaksLab_Text_OakThreeMonsChooseOne:: + .string "OAK: {RIVAL}?\n" + .string "Let me think…\p" + .string "Oh, that's right, I told you to\n" + .string "come! Just wait!\p" + .string "Here, {PLAYER}.\p" + .string "There are three POKéMON here.\p" + .string "Haha!\p" + .string "The POKéMON are held inside\n" + .string "these POKé BALLS.\p" + .string "When I was young, I was a serious\n" + .string "POKéMON TRAINER.\p" + .string "But now, in my old age, I have\n" + .string "only these three left.\p" + .string "You can have one.\n" + .string "Go on, choose!$" + +PalletTown_ProfessorOaksLab_Text_OakBePatientRival:: + .string "OAK: Be patient, {RIVAL}.\n" + .string "You can have one, too!$" + +PalletTown_ProfessorOaksLab_Text_OakWhichOneWillYouChoose:: + .string "OAK: Now, {PLAYER}.\p" + .string "Inside those three POKé BALLS are\n" + .string "POKéMON.\p" + .string "Which one will you choose for\n" + .string "yourself?$" + +PalletTown_ProfessorOaksLab_Text_OakHeyDontGoAwayYet:: + .string "OAK: Hey!\n" + .string "Don't go away yet!$" + +PalletTown_ProfessorOaksLab_Text_OakChoosingCharmander:: + .string "Ah! CHARMANDER is your choice.\n" + .string "You should raise it patiently.\p" + .string "So, {PLAYER}, you're claiming the\n" + .string "FIRE POKéMON CHARMANDER?$" + +PalletTown_ProfessorOaksLab_Text_OakChoosingSquirtle:: + .string "Hm! SQUIRTLE is your choice.\n" + .string "It's one worth raising.\p" + .string "So, {PLAYER}, you've decided on the\n" + .string "WATER POKéMON SQUIRTLE?$" + +PalletTown_ProfessorOaksLab_Text_OakChoosingBulbasaur:: + .string "I see! BULBASAUR is your choice.\n" + .string "It's very easy to raise.\p" + .string "So, {PLAYER}, you want to go with\n" + .string "the GRASS POKéMON BULBASAUR?$" + +PalletTown_ProfessorOaksLab_Text_OakThisMonIsEnergetic:: + .string "This POKéMON is really quite\n" + .string "energetic!$" + +PalletTown_ProfessorOaksLab_Text_ReceivedMonFromOak:: + .string "{PLAYER} received the {STR_VAR_1}\n" + .string "from PROF. OAK!$" + +PalletTown_ProfessorOaksLab_Text_OakCanReachNextTownWithMon:: + .string "OAK: If a wild POKéMON appears,\n" + .string "your POKéMON can battle it.\p" + .string "With it at your side, you should be\n" + .string "able to reach the next town.$" + +PalletTown_ProfessorOaksLab_Text_OakBattleMonForItToGrow:: + .string "OAK: {PLAYER}, raise your young\n" + .string "POKéMON by making it battle.\p" + .string "It has to battle for it to grow.$" + +PalletTown_ProfessorOaksLab_Text_OakHaveSomethingForMe:: + .string "OAK: Oh, {PLAYER}!\n" + .string "How is my old POKéMON?\p" + .string "Well, it seems to be growing more\n" + .string "attached to you.\p" + .string "You must be talented as a POKéMON\n" + .string "TRAINER.\p" + .string "What's that?\n" + .string "You have something for me?$" + +PalletTown_ProfessorOaksLab_Text_DeliveredOaksParcel:: + .string "{PLAYER} delivered OAK'S PARCEL.$" + +PalletTown_ProfessorOaksLab_Text_OakCustomBallIOrdered:: + .string "Ah! \n" + .string "It's the custom POKé BALL!\p" + .string "I had it on order.\n" + .string "Thank you!$" + +PalletTown_ProfessorOaksLab_Text_OakHaveRequestForYouTwo:: + .string "OAK: Oh, right!\n" + .string "I have a request for you two.$" + +PalletTown_ProfessorOaksLab_Text_OakPokedexOnDesk:: + .string "On the desk there is my invention,\n" + .string "the POKéDEX!\p" + .string "It automatically records data on\n" + .string "POKéMON you've seen or caught.\p" + .string "It's a high-tech encyclopedia!$" + +PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou:: + .string "OAK: {PLAYER} and {RIVAL}.\n" + .string "Take these with you.$" + +PalletTown_ProfessorOaksLab_Text_ReceivedPokedexFromOak:: + .string "{PLAYER} received the POKéDEX\n" + .string "from PROF. OAK.$" + +PalletTown_ProfessorOaksLab_Text_OakCatchMonsForDataTakeThese:: + .string "OAK: You can't get detailed data\n" + .string "on POKéMON by just seeing them.\p" + .string "You must catch them to obtain\n" + .string "complete data.\p" + .string "So, here are some tools for\n" + .string "catching wild POKéMON.$" + +PalletTown_ProfessorOaksLab_Text_ReceivedFivePokeBalls:: + .string "{PLAYER} received five POKé BALLS.$" + +PalletTown_ProfessorOaksLab_Text_OakExplainCatching:: + .string "When a wild POKéMON appears,\n" + .string "it's fair game.\p" + .string "Just throw a POKé BALL at it and\n" + .string "try to catch it!\p" + .string "This won't always work, however.\p" + .string "A healthy POKéMON can escape.\n" + .string "You have to be lucky!$" + +PalletTown_ProfessorOaksLab_Text_OakCompleteMonGuideWasMyDream:: + .string "To make a complete guide on all\n" + .string "the POKéMON in the world…\p" + .string "That was my dream!\p" + .string "But, I'm too old.\n" + .string "I can't get the job done.\p" + .string "So, I want you two to fulfill my\n" + .string "dream for me.\p" + .string "Get moving, you two.\p" + .string "This is a great undertaking in\n" + .string "POKéMON history!$" + +PalletTown_ProfessorOaksLab_Text_OakMonsAroundWorldWait:: + .string "POKéMON around the world wait for\n" + .string "you, {PLAYER}!$" + +PalletTown_ProfessorOaksLab_Text_OakAddedNothingToPokedex:: + .string "Ah, {PLAYER}!\n" + .string "How is your POKéDEX shaping up?\p" + .string "{RIVAL} has already caught some\n" + .string "POKéMON and added to the data.\p" + .string "So, {PLAYER}, let's have a look at\n" + .string "your POKéDEX.\p" + .string "…What's the matter?\n" + .string "You've added no new data at all.\p" + .string "I'll give you these, so do try a\n" + .string "little harder.$" + +PalletTown_ProfessorOaksLab_Text_OakComeSeeMeSometime:: + .string "OAK: Come see me sometime.\p" + .string "After all, I want to know how your\n" + .string "POKéDEX is coming along.$" + +PalletTown_ProfessorOaksLab_Text_BlankEncyclopedia:: + .string "It's like an encyclopedia, but the\n" + .string "pages are blank.$" + +PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls:: + .string "Those are POKé BALLS.\n" + .string "They contain POKéMON!$" + +PalletTown_ProfessorOaksLab_Text_OaksLastMon:: + .string "That's PROF. OAK's last POKéMON.$" + +PalletTown_ProfessorOaksLab_Text_PressStartToOpenMenu:: + .string "Press START to open the MENU!$" + +PalletTown_ProfessorOaksLab_Text_SaveOptionInMenu:: + .string "The SAVE option is on the MENU.\n" + .string "Use it regularly.$" + +PalletTown_ProfessorOaksLab_Text_AllMonTypesHaveStrongAndWeakPoints:: + .string "All POKéMON types have strong and\n" + .string "weak points against others.$" + +PalletTown_ProfessorOaksLab_Text_EmailMessage:: + .string "There's an e-mail message here.\p" + .string "…\p" + .string "Finally!\n" + .string "The ultimate TRAINERS of the\l" + .string "POKéMON LEAGUE are ready to\l" + .string "take on all comers!\p" + .string "Bring your best POKéMON and see\n" + .string "how you rate as a TRAINER!\p" + .string "POKéMON LEAGUE HQ\n" + .string "INDIGO PLATEAU\p" + .string "PROF. OAK, please visit us!\n" + .string "…$" + +PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide:: + .string "I study POKéMON as PROF. OAK's\n" + .string "AIDE.$" + +PalletTown_ProfessorOaksLab_Text_DaisyWillGroomMons:: + .string "Hi, {PLAYER}. I bet you've become\n" + .string "good friends with your POKéMON.\p" + .string "By the way, did you know about\n" + .string "DAISY?\p" + .string "If you show DAISY your POKéMON,\n" + .string "she can tell how much it likes you.\p" + .string "Occasionally, she will even groom\n" + .string "a POKéMON for you.\p" + .string "This is a secret, so please don't\n" + .string "tell anyone.$" + +PalletTown_ProfessorOaksLab_Text_OakIsGoingToHaveRadioShow:: + .string "PROF. OAK is going to have his own\n" + .string "radio show soon.\p" + .string "The program will be called PROF.\n" + .string "OAK's POKéMON SEMINAR.$" + +PalletTown_ProfessorOaksLab_Text_OakIsAuthorityOnMons:: + .string "PROF. OAK may not look like much,\n" + .string "but he's the authority on POKéMON.\p" + .string "Many POKéMON TRAINERS hold him in\n" + .string "high regard.$" + +PalletTown_ProfessorOaksLab_Text_OakFavorToAskYouPlayer:: + .string "Ah, now this is excellent!\p" + .string "{PLAYER}, I have another important\n" + .string "favor to ask of you.\p" + .string "I need you to listen closely.$" + +PalletTown_ProfessorOaksLab_Text_OakSightingsOfRareMons:: + .string "Recently, there have been sightings\n" + .string "of many rare POKéMON species.\p" + .string "I'm talking about POKéMON that\n" + .string "have never been seen in KANTO.\p" + .string "I would love to go see things for\n" + .string "myself, but I'm much too old.\p" + .string "Since I can't do it, {PLAYER}, I'd\n" + .string "like you to go in my place.$" + +PalletTown_ProfessorOaksLab_Text_RivalJustLetMeHandleEverything:: + .string "{RIVAL}: Hey, I heard that!\p" + .string "Gramps, what's with favoring\n" + .string "{PLAYER} over me all the time?\p" + .string "I went and collected more POKéMON,\n" + .string "and faster, too.\p" + .string "You should just let me handle\n" + .string "everything.$" + +PalletTown_ProfessorOaksLab_Text_OakNeedYourHelpTooNeedToSeePokedexes:: + .string "OAK: I know, I know.\n" + .string "Of course I need your help, too.\p" + .string "Now, I need to see both your\n" + .string "POKéDEXES.$" + +PalletTown_ProfessorOaksLab_Text_OakTookBothPokedexUnits:: + .string "PROF. OAK took both POKéDEX\n" + .string "units.$" + +PalletTown_ProfessorOaksLab_Text_OakNowTheseUnitsCanRecordMoreData:: + .string "… … … … … …\p" + .string "… … … … … …\p" + .string "…And that's done!\p" + .string "Now these units can record data on\n" + .string "a lot more POKéMON.$" + +PalletTown_ProfessorOaksLab_Text_PlayersPokedexWasUpgraded:: + .string "{PLAYER}'s POKéDEX was upgraded!$" + +PalletTown_ProfessorOaksLab_Text_OakMustReallyWorkToFillPokedex:: + .string "Now, {PLAYER} and {RIVAL}!\p" + .string "This time, you really must work\n" + .string "towards filling your POKéDEXES.\p" + .string "I urge you to make them the best\n" + .string "and the most complete of all time!\p" + .string "Truly, this is a monumentally great\n" + .string "undertaking in POKéMON history!$" + +PalletTown_ProfessorOaksLab_Text_RivalIllCompleteThePokedex:: + .string "{RIVAL}: Gramps, calm down.\n" + .string "Don't get so excited.\p" + .string "I'll get the POKéDEX completed,\n" + .string "don't you worry about a thing.\p" + .string "I think I'll try looking around\n" + .string "ONE ISLAND first…\p" + .string "Anyways, I'm outta here!$" + diff --git a/data/maps/PalletTown_RivalsHouse_Frlg/map.json b/data/maps/PalletTown_RivalsHouse_Frlg/map.json new file mode 100644 index 000000000000..e48d07c77c92 --- /dev/null +++ b/data/maps/PalletTown_RivalsHouse_Frlg/map.json @@ -0,0 +1,100 @@ +{ + "id": "MAP_PALLET_TOWN_RIVALS_HOUSE", + "name": "PalletTown_RivalsHouse_Frlg", + "layout": "LAYOUT_PALLET_TOWN_RIVALS_HOUSE", + "music": "MUS_RG_PALLET", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PALLET_TOWN", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_DAISY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_DAISY", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_RivalsHouse_EventScript_Daisy", + "flag": "0" + }, + { + "local_id": "LOCALID_TOWN_MAP", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TOWN_MAP", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PalletTown_RivalsHouse_EventScript_TownMap", + "flag": "FLAG_HIDE_TOWN_MAP" + } + ], + "warp_events": [ + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "1" + }, + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PALLET_TOWN", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_RivalsHouse_EventScript_Bookshelf" + }, + { + "type": "sign", + "x": 11, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_RivalsHouse_EventScript_Bookshelf" + }, + { + "type": "sign", + "x": 9, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PalletTown_RivalsHouse_EventScript_Picture" + } + ] +} diff --git a/data/maps/PalletTown_RivalsHouse_Frlg/scripts.inc b/data/maps/PalletTown_RivalsHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..fe7fa5e2f25e --- /dev/null +++ b/data/maps/PalletTown_RivalsHouse_Frlg/scripts.inc @@ -0,0 +1,293 @@ +.equ RECEIVED_TOWN_MAP, VAR_TEMP_1 + +PalletTown_RivalsHouse_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PalletTown_RivalsHouse_OnTransition + .byte 0 + +PalletTown_RivalsHouse_OnTransition:: + call_if_lt VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2, PalletTown_RivalsHouse_EventScript_MoveDaisyToTable + call_if_ge VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2, PalletTown_RivalsHouse_EventScript_AlreadyReceivedTownMap + end + +PalletTown_RivalsHouse_EventScript_MoveDaisyToTable:: + setobjectmovementtype LOCALID_DAISY, MOVEMENT_TYPE_FACE_RIGHT + setobjectxyperm LOCALID_DAISY, 5, 4 + return + +PalletTown_RivalsHouse_EventScript_AlreadyReceivedTownMap:: + setvar RECEIVED_TOWN_MAP, TRUE + return + +PalletTown_RivalsHouse_EventScript_Daisy:: + lock + faceplayer + famechecker FAMECHECKER_DAISY, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_RivalsHouse_EventScript_GroomMon + goto_if_eq RECEIVED_TOWN_MAP, TRUE, PalletTown_RivalsHouse_EventScript_PleaseGiveMonsRest + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2, PalletTown_RivalsHouse_EventScript_ExplainTownMap + goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 1, PalletTown_RivalsHouse_EventScript_GiveTownMap + goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_RivalsHouse_EventScript_HeardBattledRival + msgbox PalletTown_RivalsHouse_Text_HiBrothersAtLab + closemessage + applymovement LOCALID_DAISY, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +PalletTown_RivalsHouse_EventScript_HeardBattledRival:: + msgbox PalletTown_RivalsHouse_Text_HeardYouBattledRival + release + end + +PalletTown_RivalsHouse_EventScript_GroomMon:: + goto_if_lt VAR_MASSAGE_COOLDOWN_STEP_COUNTER, 500, PalletTown_RivalsHouse_EventScript_RateMonFriendship + msgbox PalletTown_RivalsHouse_Text_LikeMeToGroomMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, PalletTown_RivalsHouse_EventScript_DeclineGrooming + msgbox PalletTown_RivalsHouse_Text_GroomWhichOne + special ChoosePartyMon + waitstate + lock + faceplayer + goto_if_ge VAR_0x8004, PARTY_SIZE, PalletTown_RivalsHouse_EventScript_DeclineGrooming + specialvar VAR_RESULT, ScriptGetPartyMonSpecies + goto_if_eq VAR_RESULT, SPECIES_EGG, PalletTown_RivalsHouse_EventScript_CantGroomEgg + msgbox PalletTown_RivalsHouse_Text_LookingNiceInNoTime + closemessage + fadescreen FADE_TO_BLACK + playfanfare MUS_HEAL + waitfanfare + special DaisyMassageServices + fadescreen FADE_FROM_BLACK + special BufferMonNickname + msgbox PalletTown_RivalsHouse_Text_ThereYouGoAllDone + release + end + +PalletTown_RivalsHouse_EventScript_CantGroomEgg:: + msgbox PalletTown_RivalsHouse_Text_CantGroomAnEgg + release + end + +PalletTown_RivalsHouse_EventScript_DeclineGrooming:: + msgbox PalletTown_RivalsHouse_Text_DontNeedAnyGrooming + release + end + +PalletTown_RivalsHouse_EventScript_RateMonFriendship:: + msgbox PalletTown_RivalsHouse_Text_MayISeeFirstMon + specialvar VAR_RESULT, GetLeadMonFriendship + switch VAR_RESULT + case 0, PalletTown_RivalsHouse_EventScript_MonFriendshipLowest + case 1, PalletTown_RivalsHouse_EventScript_MonFriendshipLower + case 2, PalletTown_RivalsHouse_EventScript_MonFriendshipLow + case 3, PalletTown_RivalsHouse_EventScript_MonFriendshipMid + case 4, PalletTown_RivalsHouse_EventScript_MonFriendshipHigh + case 5, PalletTown_RivalsHouse_EventScript_MonFriendshipHigher + case 6, PalletTown_RivalsHouse_EventScript_MonFriendshipHighest + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipLowest:: + msgbox PalletTown_RivalsHouse_Text_WhyWouldMonHateYouSoMuch + release + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipLower:: + msgbox PalletTown_RivalsHouse_Text_DontLikeWayItGlaresAtYou + release + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipLow:: + msgbox PalletTown_RivalsHouse_Text_NotFamiliarWithYouYet + release + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipMid:: + msgbox PalletTown_RivalsHouse_Text_ItsWarmingUpToYou + release + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipHigh:: + msgbox PalletTown_RivalsHouse_Text_ItsQuiteFriendly + release + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipHigher:: + msgbox PalletTown_RivalsHouse_Text_ItLooksVeryHappy + release + end + +PalletTown_RivalsHouse_EventScript_MonFriendshipHighest:: + msgbox PalletTown_RivalsHouse_Text_CouldntLoveYouMore + release + end + +PalletTown_RivalsHouse_EventScript_PleaseGiveMonsRest:: + msgbox PalletTown_RivalsHouse_Text_PleaseGiveMonsRest + release + end + +PalletTown_RivalsHouse_EventScript_GiveTownMap:: + msgbox PalletTown_RivalsHouse_Text_ErrandForGrandpaThisWillHelp + closemessage + checkitemspace ITEM_TOWN_MAP + goto_if_eq VAR_RESULT, FALSE, PalletTown_RivalsHouse_EventScript_NoRoomForTownMap + applymovement LOCALID_DAISY, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + removeobject LOCALID_TOWN_MAP + setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2 + delay 15 + applymovement LOCALID_DAISY, Common_Movement_FacePlayer + waitmovement 0 + delay 12 + giveitem_msg PalletTown_RivalsHouse_Text_ReceivedTownMapFromDaisy, ITEM_TOWN_MAP, 1, MUS_RG_OBTAIN_KEY_ITEM + release + end + +PalletTown_RivalsHouse_EventScript_NoRoomForTownMap:: + msgbox PalletTown_RivalsHouse_Text_DontHaveSpaceForThis + release + end + +PalletTown_RivalsHouse_EventScript_ExplainTownMap:: + msgbox PalletTown_RivalsHouse_Text_ExplainTownMap + release + end + +PalletTown_RivalsHouse_EventScript_TownMap:: + msgbox PalletTown_RivalsHouse_Text_ItsBigMapOfKanto, MSGBOX_NPC + end + +PalletTown_RivalsHouse_EventScript_Bookshelf:: + msgbox PalletTown_RivalsHouse_Text_ShelvesCrammedFullOfBooks, MSGBOX_SIGN + end + +PalletTown_RivalsHouse_EventScript_Picture:: + msgbox PalletTown_RivalsHouse_Text_LovelyAndSweetClefairy, MSGBOX_SIGN + end + +PalletTown_RivalsHouse_Text_HiBrothersAtLab:: + .string "DAISY: Hi, {PLAYER}!\p" + .string "My brother, {RIVAL}, is out at\n" + .string "Grandpa's LAB.$" + +PalletTown_RivalsHouse_Text_HeardYouBattledRival:: + .string "DAISY: {PLAYER}, I heard you had\n" + .string "a battle against {RIVAL}.\p" + .string "I wish I'd seen that!$" + +PalletTown_RivalsHouse_Text_ErrandForGrandpaThisWillHelp:: + .string "Grandpa asked you to run an\n" + .string "errand?\p" + .string "Gee, that's lazy of him.\n" + .string "Here, this will help you.$" + +PalletTown_RivalsHouse_Text_ReceivedTownMapFromDaisy:: + .string "{PLAYER} received a TOWN MAP\n" + .string "from DAISY.$" + +PalletTown_RivalsHouse_Text_DontHaveSpaceForThis:: + .string "You don't have space for this in\n" + .string "your BAG.$" + +PalletTown_RivalsHouse_Text_ExplainTownMap:: + .string "You can use the TOWN MAP to find\n" + .string "out where you are, or check the\l" + .string "names of places.$" + +PalletTown_RivalsHouse_Text_PleaseGiveMonsRest:: + .string "DAISY: Just like people, POKéMON\n" + .string "are living things.\p" + .string "When they get tired, please give\n" + .string "them a rest.$" + +PalletTown_RivalsHouse_Text_ItsBigMapOfKanto:: + .string "It's a big map of the KANTO region.\n" + .string "Now this would be useful!$" + +PalletTown_RivalsHouse_Text_ShelvesCrammedFullOfBooks:: + .string "The shelves are crammed full of\n" + .string "books on POKéMON.$" + +PalletTown_RivalsHouse_Text_LikeMeToGroomMon:: + .string "DAISY: Hi, {PLAYER}!\n" + .string "Good timing.\p" + .string "I'm about to have some tea.\n" + .string "Would you like to join me?\p" + .string "Oh, but look.\n" + .string "Your POKéMON are a little dirty.\p" + .string "Would you like me to groom one?$" + +PalletTown_RivalsHouse_Text_DontNeedAnyGrooming:: + .string "You don't need any grooming done?\n" + .string "Okay, we'll just have tea.$" + +PalletTown_RivalsHouse_Text_GroomWhichOne:: + .string "Which one should I groom?$" + +PalletTown_RivalsHouse_Text_LookingNiceInNoTime:: + .string "DAISY: Okay, I'll get it looking\n" + .string "nice in no time.$" + +PalletTown_RivalsHouse_Text_ThereYouGoAllDone:: +#ifdef BUGFIX @ The localizers missed what should be a textcolor change in the localizations. + .string "{COLOR DARK_GRAY}{STR_VAR_1} looks dreamily content…\p" + .string "{COLOR RED}DAISY: There you go! All done.\n" +#else @ In the JP games, gender-based text used a different font instead of different colors. + .string "{FONT_NORMAL}{STR_VAR_1} looks dreamily content…\p" + .string "{FONT_FEMALE}DAISY: There you go! All done.\n" +#endif + .string "See? Doesn't it look nice?\p" + .string "Giggle…\n" + .string "It's such a cute POKéMON.$" + +PalletTown_RivalsHouse_Text_CantGroomAnEgg:: + .string "Oh, sorry. I honestly can't\n" + .string "groom an EGG.$" + +PalletTown_RivalsHouse_Text_MayISeeFirstMon:: + .string "DAISY: Your POKéMON grow to love\n" + .string "you if you raise them with love.\p" + .string "For example, {PLAYER}, may I see\n" + .string "your first POKéMON?$" + +PalletTown_RivalsHouse_Text_CouldntLoveYouMore:: + .string "It couldn't possibly love you\n" + .string "any more than it does now.\p" + .string "Your POKéMON is happy beyond\n" + .string "words.$" + +PalletTown_RivalsHouse_Text_ItLooksVeryHappy:: + .string "It looks very happy.\p" + .string "I wish {RIVAL} could see this and\n" + .string "learn something from it.$" + +PalletTown_RivalsHouse_Text_ItsQuiteFriendly:: + .string "It's quite friendly with you.\n" + .string "Keep being good to it!$" + +PalletTown_RivalsHouse_Text_ItsWarmingUpToYou:: + .string "It's warming up to you.\n" + .string "Trust must be growing between you.$" + +PalletTown_RivalsHouse_Text_NotFamiliarWithYouYet:: + .string "It's not quite familiar with you\n" + .string "yet.\p" + .string "POKéMON are all quite wary when\n" + .string "you first get them.$" + +PalletTown_RivalsHouse_Text_DontLikeWayItGlaresAtYou:: + .string "{PLAYER}, I don't like the way it\n" + .string "glares at you.\p" + .string "Could you try being a little nicer\n" + .string "to it?$" + +PalletTown_RivalsHouse_Text_WhyWouldMonHateYouSoMuch:: + .string "…Um, it's not easy for me to say\n" + .string "this, but…\p" + .string "Is there some reason why your\n" + .string "POKéMON would hate you so much?$" + +PalletTown_RivalsHouse_Text_LovelyAndSweetClefairy:: + .string "“The lovely and sweet\n" + .string "CLEFAIRY”$" + diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index 53a6d8feb8e6..1fc42611d489 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -100,6 +100,7 @@ PetalburgCity_Gym_Movement_WallyExitGym: step_end PetalburgCity_Gym_EventScript_Norman:: + vsseeker_rematchid TRAINER_NORMAN_1 lock faceplayer switch VAR_PETALBURG_GYM_STATE diff --git a/data/maps/PewterCity_Frlg/map.json b/data/maps/PewterCity_Frlg/map.json new file mode 100644 index 000000000000..749bc9402a75 --- /dev/null +++ b/data/maps/PewterCity_Frlg/map.json @@ -0,0 +1,300 @@ +{ + "id": "MAP_PEWTER_CITY", + "name": "PewterCity_Frlg", + "layout": "LAYOUT_PEWTER_CITY", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE2", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE3", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 6, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_EventScript_Lass", + "flag": "0" + }, + { + "local_id": "LOCALID_PEWTER_MUSEUM_GUIDE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 33, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_EventScript_MuseumGuide", + "flag": "FLAG_HIDE_PEWTER_MUSEUM_GUIDE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 21, + "y": 28, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_EventScript_FatMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 33, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_EventScript_BugCatcher", + "flag": "0" + }, + { + "local_id": "LOCALID_PEWTER_GYM_GUIDE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 42, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_EventScript_GymGuide", + "flag": "FLAG_HIDE_PEWTER_CITY_GYM_GUIDE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 30, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "local_id": "LOCALID_PEWTER_AIDE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 46, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_EventScript_RunningShoesAide", + "flag": "FLAG_HIDE_PEWTER_CITY_RUNNING_SHOES_GUY" + } + ], + "warp_events": [ + { + "x": 17, + "y": 6, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 4, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", + "dest_warp_id": "3" + }, + { + "x": 15, + "y": 16, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_GYM", + "dest_warp_id": "1" + }, + { + "x": 28, + "y": 18, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_MART", + "dest_warp_id": "1" + }, + { + "x": 33, + "y": 11, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_HOUSE1", + "dest_warp_id": "1" + }, + { + "x": 17, + "y": 25, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 30, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY_HOUSE2", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 42, + "y": 21, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "0", + "script": "PewterCity_EventScript_GymGuideTriggerTop" + }, + { + "type": "trigger", + "x": 42, + "y": 22, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "0", + "script": "PewterCity_EventScript_GymGuideTriggerMid" + }, + { + "type": "trigger", + "x": 42, + "y": 23, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "0", + "script": "PewterCity_EventScript_GymGuideTriggerBottom" + }, + { + "type": "trigger", + "x": 43, + "y": 23, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "0", + "script": "PewterCity_EventScript_GymGuideTriggerRight" + }, + { + "type": "trigger", + "x": 46, + "y": 21, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "1", + "script": "PewterCity_EventScript_RunningShoesAideTriggerTop" + }, + { + "type": "trigger", + "x": 46, + "y": 22, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "1", + "script": "PewterCity_EventScript_RunningShoesAideTriggerMid" + }, + { + "type": "trigger", + "x": 46, + "y": 23, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY", + "var_value": "1", + "script": "PewterCity_EventScript_RunningShoesAideTriggerBottom" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 19, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_EventScript_MuseumSign" + }, + { + "type": "sign", + "x": 39, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_EventScript_PoliceNotice" + }, + { + "type": "sign", + "x": 11, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_EventScript_GymSign" + }, + { + "type": "sign", + "x": 20, + "y": 30, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_EventScript_TrainerTips" + }, + { + "type": "sign", + "x": 31, + "y": 25, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_EventScript_CitySign" + }, + { + "type": "hidden_item", + "x": 6, + "y": 3, + "elevation": 3, + "item": "ITEM_POKE_BALL", + "flag": "FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/PewterCity_Frlg/scripts.inc b/data/maps/PewterCity_Frlg/scripts.inc new file mode 100644 index 000000000000..866f360ad373 --- /dev/null +++ b/data/maps/PewterCity_Frlg/scripts.inc @@ -0,0 +1,976 @@ +PewterCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PewterCity_OnTransition + .byte 0 + +PewterCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_PEWTER_CITY + setvar VAR_MAP_SCENE_PEWTER_CITY_MUSEUM_1F, 0 + end + +@ Impossible to speak to this NPC from a facing dir != DIR_EAST normally, so they arent checked +@ Additionally, no movement script exists for facing DIR_SOUTH, which would necessitate walking out of bounds +PewterCity_EventScript_GymGuide:: + lock + faceplayer + msgbox PewterCity_Text_BrocksLookingForChallengersFollowMe + closemessage + playbgm MUS_FOLLOW_ME, 0 + call_if_eq VAR_FACING, DIR_EAST, PewterCity_EventScript_WalkToGymEast + msgbox PewterCity_Text_GoTakeOnBrock + closemessage + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GymGuideExit + waitmovement 0 + fadedefaultbgm + removeobject LOCALID_PEWTER_GYM_GUIDE + clearflag FLAG_HIDE_PEWTER_CITY_GYM_GUIDE + release + end + +PewterCity_EventScript_WalkToGymEast:: + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWaitForGuideEast + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideMoveToLeadEast + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymEast + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymEast + waitmovement 0 + return + +@ Unused +PewterCity_EventScript_WalkToGymWest:: + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWaitForGuideWest + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideMoveToLeadWest + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymWest + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymWest + waitmovement 0 + return + +@ Unused +PewterCity_EventScript_WalkToGymNorth:: + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWaitForGuideNorth + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideMoveToLeadNorth + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymNorth + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymNorth + waitmovement 0 + return + +.macro walk_to_gym + walk_left + walk_left + walk_left + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right +.endm + +.macro walk_to_gym_alt + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right +.endm + +PewterCity_Movement_PlayerWaitForGuideEast:: + delay_16 + delay_16 + delay_4 + walk_in_place_faster_down + step_end + +PewterCity_Movement_PlayerWalkToGymEast:: + walk_down + walk_to_gym + step_end + +PewterCity_Movement_PlayerWaitForGuideWest:: + delay_16 + step_end + +PewterCity_Movement_PlayerWalkToGymWest:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_to_gym_alt + step_end + +PewterCity_Movement_PlayerWaitForGuideNorth:: + delay_16 + step_end + +PewterCity_Movement_PlayerWalkToGymNorth:: + walk_up + walk_left + walk_left + walk_left + walk_left + walk_to_gym_alt + step_end + +PewterCity_Movement_GuideMoveToLeadEast:: + walk_down + walk_left + walk_in_place_faster_up + walk_in_place_up + step_end + +PewterCity_Movement_GuideWalkToGymEast:: + walk_to_gym + walk_right + walk_in_place_faster_left + step_end + +PewterCity_Movement_GuideMoveToLeadWest:: + walk_in_place_right + step_end + +PewterCity_Movement_GuideWalkToGymWest:: + walk_left + walk_left + walk_left + walk_left + walk_to_gym_alt + walk_right + walk_in_place_faster_left + step_end + +PewterCity_Movement_GuideMoveToLeadNorth:: + walk_in_place_down + step_end + +PewterCity_Movement_GuideWalkToGymNorth:: + walk_left + walk_left + walk_left + walk_left + walk_to_gym_alt + walk_right + walk_in_place_faster_left + step_end + +PewterCity_Movement_GymGuideExit:: + walk_down + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + step_end + +PewterCity_EventScript_GymGuideTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + goto PewterCity_EventScript_GymGuideTrigger + end + +PewterCity_EventScript_GymGuideTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + goto PewterCity_EventScript_GymGuideTrigger + end + +PewterCity_EventScript_GymGuideTriggerBottom:: + lockall + setvar VAR_TEMP_1, 2 + goto PewterCity_EventScript_GymGuideTrigger + end + +@ This trigger is inaccessible and its corresponding movement script isnt linked +PewterCity_EventScript_GymGuideTriggerRight:: + lockall + setvar VAR_TEMP_1, 3 + goto PewterCity_EventScript_GymGuideTrigger + end + +PewterCity_EventScript_GymGuideTrigger:: + textcolor NPC_TEXT_COLOR_MALE + msgbox PewterCity_Text_BrocksLookingForChallengersFollowMe + closemessage + playbgm MUS_FOLLOW_ME, 0 + call_if_eq VAR_TEMP_1, 0, PewterCity_EventScript_WalkToGymTop + call_if_eq VAR_TEMP_1, 1, PewterCity_EventScript_WalkToGymMid + call_if_eq VAR_TEMP_1, 2, PewterCity_EventScript_WalkToGymBottom + msgbox PewterCity_Text_GoTakeOnBrock + closemessage + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GymGuideExit + waitmovement 0 + fadedefaultbgm + removeobject LOCALID_PEWTER_GYM_GUIDE + clearflag FLAG_HIDE_PEWTER_CITY_GYM_GUIDE + releaseall + end + +PewterCity_EventScript_WalkToGymTop:: + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideMoveToLeadTop + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymTop + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymTop + waitmovement 0 + return + +PewterCity_EventScript_WalkToGymMid:: + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideMoveToLeadMid + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymMid + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymMid + waitmovement 0 + return + +PewterCity_EventScript_WalkToGymBottom:: + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideMoveToLeadBottom + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymBottom + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymBottom + waitmovement 0 + return + +@ Unused +PewterCity_EventScript_WalkToGymRight:: + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideApproachPlayerRight + waitmovement 0 + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToGymRight + applymovement LOCALID_PEWTER_GYM_GUIDE, PewterCity_Movement_GuideWalkToGymRight + waitmovement 0 + return + +PewterCity_Movement_PlayerWalkToGymTop:: + walk_left + walk_to_gym + step_end + +PewterCity_Movement_PlayerWalkToGymMid:: + walk_up + walk_left + walk_to_gym + step_end + +PewterCity_Movement_PlayerWalkToGymBottom:: + walk_up + walk_up + walk_left + walk_to_gym + step_end + +PewterCity_Movement_PlayerWalkToGymRight:: + walk_left + walk_left + walk_left + walk_left + walk_up + walk_left + walk_left + walk_left + walk_up + walk_up + walk_to_gym_alt + step_end + +PewterCity_Movement_GuideMoveToLeadTop:: + walk_left + walk_down + walk_in_place_faster_right + walk_in_place_right + step_end + +PewterCity_Movement_GuideMoveToLeadMid:: + walk_down + walk_in_place_down + step_end + +PewterCity_Movement_GuideMoveToLeadBottom:: + walk_down + walk_down + walk_in_place_down + step_end + +PewterCity_Movement_GuideApproachPlayerRight:: + walk_down + walk_down + walk_right + walk_down + walk_right + walk_in_place_right + step_end + +PewterCity_Movement_GuideWalkToGymTop:: + walk_to_gym + walk_right + walk_in_place_faster_left + step_end + +PewterCity_Movement_GuideWalkToGymMid:: + walk_left + walk_to_gym + walk_right + walk_in_place_faster_left + step_end + +PewterCity_Movement_GuideWalkToGymBottom:: + walk_up + walk_left + walk_to_gym + walk_right + walk_in_place_faster_left + step_end + +PewterCity_Movement_GuideWalkToGymRight:: + walk_left + walk_left + walk_left + walk_up + walk_left + walk_left + walk_left + walk_up + walk_up + walk_to_gym_alt + walk_right + walk_in_place_faster_left + step_end + +PewterCity_EventScript_Lass:: + msgbox PewterCity_Text_ClefairyCameFromMoon, MSGBOX_NPC + end + +PewterCity_EventScript_MuseumGuide:: + lock + faceplayer + msgbox PewterCity_Text_DidYouCheckOutMuseum, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PewterCity_EventScript_CheckedOutMuseum + msgbox PewterCity_Text_ReallyYouHaveToGo + closemessage + delay 10 + playbgm MUS_FOLLOW_ME, 0 + call_if_eq VAR_FACING, DIR_NORTH, PewterCity_EventScript_LeadToMuseumNorth + call_if_eq VAR_FACING, DIR_SOUTH, PewterCity_EventScript_LeadToMuseumSouth + call_if_eq VAR_FACING, DIR_WEST, PewterCity_EventScript_LeadToMuseumWest + call_if_eq VAR_FACING, DIR_EAST, PewterCity_EventScript_LeadToMuseumEast + msgbox PewterCity_Text_ThisIsTheMuseum + closemessage + delay 10 + applymovement LOCALID_PEWTER_MUSEUM_GUIDE, PewterCity_Movement_MuseumGuideExit + waitmovement 0 + fadedefaultbgm + removeobject LOCALID_PEWTER_MUSEUM_GUIDE + clearflag FLAG_HIDE_PEWTER_MUSEUM_GUIDE + release + end + +PewterCity_EventScript_LeadToMuseumNorth:: + applymovement LOCALID_PEWTER_MUSEUM_GUIDE, PewterCity_Movement_GuideWalkToMuseumNorth + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToMuseumNorth + waitmovement 0 + return + +PewterCity_EventScript_LeadToMuseumSouth:: + applymovement LOCALID_PEWTER_MUSEUM_GUIDE, PewterCity_Movement_GuideWalkToMuseumSouth + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToMuseumSouth + waitmovement 0 + return + +PewterCity_EventScript_LeadToMuseumWest:: + applymovement LOCALID_PEWTER_MUSEUM_GUIDE, PewterCity_Movement_GuideWalkToMuseumWest + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToMuseumWest + waitmovement 0 + return + +PewterCity_EventScript_LeadToMuseumEast:: + applymovement LOCALID_PEWTER_MUSEUM_GUIDE, PewterCity_Movement_GuideWalkToMuseumEast + applymovement LOCALID_PLAYER, PewterCity_Movement_PlayerWalkToMuseumEast + waitmovement 0 + return + +PewterCity_EventScript_CheckedOutMuseum:: + msgbox PewterCity_Text_WerentThoseFossilsAmazing + release + end + +.macro walk_to_museum + walk_up + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left +.endm + +.macro walk_to_museum_south + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left +.endm + +PewterCity_Movement_PlayerWalkToMuseumNorth:: + walk_up + walk_to_museum + delay_8 + walk_in_place_faster_up + step_end + +PewterCity_Movement_GuideWalkToMuseumNorth:: + walk_to_museum + walk_left + walk_in_place_faster_up + step_end + +PewterCity_Movement_PlayerWalkToMuseumSouth:: + delay_16 + delay_16 + walk_left + walk_to_museum_south + delay_8 + walk_in_place_faster_up + step_end + +PewterCity_Movement_GuideWalkToMuseumSouth:: + walk_left + walk_up + walk_to_museum_south + walk_left + walk_in_place_faster_up + step_end + +PewterCity_Movement_PlayerWalkToMuseumWest:: + walk_left + walk_to_museum + delay_8 + walk_in_place_faster_up + step_end + +PewterCity_Movement_GuideWalkToMuseumWest:: + walk_to_museum + walk_left + walk_in_place_faster_up + step_end + +PewterCity_Movement_PlayerWalkToMuseumEast:: + walk_right + walk_to_museum + delay_8 + walk_in_place_faster_up + step_end + +PewterCity_Movement_GuideWalkToMuseumEast:: + walk_to_museum + walk_left + walk_in_place_faster_up + step_end + +PewterCity_Movement_MuseumGuideExit:: + walk_down + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + walk_down + walk_right + walk_right + walk_right + step_end + +PewterCity_EventScript_FatMan:: + lock + faceplayer + famechecker FAMECHECKER_BROCK, 2 + msgbox PewterCity_Text_BrockOnlySeriousTrainerHere + release + end + +PewterCity_EventScript_BugCatcher:: + lock + faceplayer + msgbox PewterCity_Text_DoYouKnowWhatImDoing, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PewterCity_EventScript_KnowWhatTheyreDoing + msgbox PewterCity_Text_SprayingRepelToKeepWildMonsOut + release + end + +PewterCity_EventScript_KnowWhatTheyreDoing:: + msgbox PewterCity_Text_ThatsRightItsHardWork + release + end + +PewterCity_EventScript_TrainerTips:: + msgbox PewterCity_Text_TrainerTipsEarningEXP, MSGBOX_SIGN + end + +PewterCity_EventScript_PoliceNotice:: + msgbox PewterCity_Text_CallPoliceIfInfoOnThieves, MSGBOX_SIGN + end + +PewterCity_EventScript_MuseumSign:: + msgbox PewterCity_Text_MuseumOfScience, MSGBOX_SIGN + end + +PewterCity_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_BROCK, 0 + msgbox PewterCity_Text_GymSign + releaseall + end + +PewterCity_EventScript_CitySign:: + msgbox PewterCity_Text_CitySign, MSGBOX_SIGN + end + +PewterCity_EventScript_RunningShoesAide:: + lock + faceplayer + setvar VAR_TEMP_1, 0 + call PewterCity_EventScript_AideGiveRunningShoes + release + end + +PewterCity_EventScript_RunningShoesAideTriggerTop:: + lockall + setvar VAR_TEMP_1, 1 + call PewterCity_EventScript_AideGiveRunningShoes + releaseall + end + +PewterCity_EventScript_RunningShoesAideTriggerMid:: + lockall + setvar VAR_TEMP_1, 2 + call PewterCity_EventScript_AideGiveRunningShoes + releaseall + end + +PewterCity_EventScript_RunningShoesAideTriggerBottom:: + lockall + setvar VAR_TEMP_1, 3 + call PewterCity_EventScript_AideGiveRunningShoes + releaseall + end + +PewterCity_EventScript_AideGiveRunningShoes:: + textcolor NPC_TEXT_COLOR_MALE + call_if_eq VAR_TEMP_1, 1, PewterCity_EventScript_AideNoticePlayer + call_if_eq VAR_TEMP_1, 2, PewterCity_EventScript_AideNoticePlayer + call_if_eq VAR_TEMP_1, 3, PewterCity_EventScript_AideNoticePlayer + waitse + playse SE_PIN + applymovement LOCALID_PEWTER_AIDE, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_PEWTER_AIDE, Common_Movement_Delay48 + waitmovement 0 + msgbox PewterCity_Text_OhPlayer + call_if_eq VAR_TEMP_1, 0, PewterCity_EventScript_AideApproachPlayer0 + call_if_eq VAR_TEMP_1, 1, PewterCity_EventScript_AideApproachPlayer1 + call_if_eq VAR_TEMP_1, 2, PewterCity_EventScript_AideApproachPlayer2 + call_if_eq VAR_TEMP_1, 3, PewterCity_EventScript_AideApproachPlayer3 + msgbox PewterCity_Text_AskedToDeliverThis + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message PewterCity_Text_ReceivedRunningShoesFromAide + waitmessage + waitfanfare + msgbox PewterCity_Text_SwitchedShoesWithRunningShoes + special DisableMsgBoxWalkaway + signmsg + msgbox PewterCity_Text_ExplainRunningShoes + normalmsg + call EventScript_RestorePrevTextColor + msgbox PewterCity_Text_MustBeGoingBackToLab + closemessage + call_if_eq VAR_TEMP_1, 0, PewterCity_EventScript_AideExit0 + call_if_eq VAR_TEMP_1, 1, PewterCity_EventScript_AideExit1 + call_if_eq VAR_TEMP_1, 2, PewterCity_EventScript_AideExit2 + call_if_eq VAR_TEMP_1, 3, PewterCity_EventScript_AideExit3 + delay 30 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PewterCity_Text_RunningShoesLetterFromMom + closemessage + removeobject LOCALID_PEWTER_AIDE + setflag FLAG_SYS_B_DASH + setvar VAR_MAP_SCENE_PEWTER_CITY, 2 + return + +PewterCity_EventScript_AideNoticePlayer:: + applymovement LOCALID_PEWTER_AIDE, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +@ Aide already at player +PewterCity_EventScript_AideApproachPlayer0:: + closemessage + delay 20 + return + +PewterCity_EventScript_AideApproachPlayer1:: + closemessage + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +PewterCity_EventScript_AideApproachPlayer2:: + closemessage + applymovement LOCALID_PEWTER_AIDE, PewterCity_Movement_AideApproachPlayerMid + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +PewterCity_EventScript_AideApproachPlayer3:: + closemessage + applymovement LOCALID_PEWTER_AIDE, PewterCity_Movement_AideApproachPlayerBottom + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +PewterCity_EventScript_AideExit0:: + applymovement LOCALID_PEWTER_AIDE, PewterCity_Movement_AideExit0 + waitmovement 0 + return + +PewterCity_EventScript_AideExit1:: + applymovement LOCALID_PEWTER_AIDE, PewterCity_Movement_AideExit1 + waitmovement 0 + return + +PewterCity_EventScript_AideExit2:: + applymovement LOCALID_PEWTER_AIDE, PewterCity_Movement_AideExit2 + waitmovement 0 + return + +PewterCity_EventScript_AideExit3:: + applymovement LOCALID_PEWTER_AIDE, PewterCity_Movement_AideExit3 + waitmovement 0 + return + +PewterCity_Movement_AideApproachPlayerMid:: + delay_4 + walk_down + step_end + +PewterCity_Movement_AideApproachPlayerBottom:: + delay_4 + walk_down + walk_down + step_end + +PewterCity_Movement_AideExit0:: + walk_down + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + step_end + +PewterCity_Movement_AideExit1:: + walk_left + walk_down + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + step_end + +PewterCity_Movement_AideExit2:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + step_end + +PewterCity_Movement_AideExit3:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + step_end + +@ Unused +PewterCity_Movement_WalkInPlaceLeft:: + walk_in_place_left + step_end + +Text_DreamEaterTeach:: + .string "Yawn!\n" + .string "I must have dozed off in the sun.\p" + .string "I had this weird dream about\n" + .string "a DROWZEE eating my dream.\p" + .string "And…\n" + .string "I learned how to eat dreams…\p" + .string "Oogh, this is too spooky!\p" + .string "Let me teach it to a POKéMON so\n" + .string "I can forget about it!$" + +Text_DreamEaterDeclined:: + .string "…Snore…$" + +Text_DreamEaterWhichMon:: + .string "Which POKéMON wants to learn\n" + .string "DREAM EATER?$" + +Text_DreamEaterTaught:: + .string "…ZZZ…\n" + .string "I…can't eat…anymore…$" + +PewterCity_Text_ClefairyCameFromMoon:: + .string "CLEFAIRY came from the moon.\n" + .string "That's what the rumor is.\p" + .string "They appeared after MOON STONES\n" + .string "fell on MT. MOON.$" + +PewterCity_Text_BrockOnlySeriousTrainerHere:: + .string "There aren't many serious POKéMON\n" + .string "TRAINERS here.\p" + .string "They're all like BUG CATCHERS,\n" + .string "you know, just hobbyists.\p" + .string "But PEWTER GYM's BROCK isn't like\n" + .string "that, not one bit.$" + +PewterCity_Text_DidYouCheckOutMuseum:: + .string "Did you check out the MUSEUM?$" + +PewterCity_Text_WerentThoseFossilsAmazing:: + .string "Weren't those fossils from MT. MOON\n" + .string "amazing?$" + +PewterCity_Text_ReallyYouHaveToGo:: + .string "Really?\n" + .string "You absolutely have to go!$" + +PewterCity_Text_ThisIsTheMuseum:: + .string "This is it, the MUSEUM.\p" + .string "You have to pay to get in, but it's\n" + .string "worth it. See you around!$" + +PewterCity_Text_DoYouKnowWhatImDoing:: + .string "Psssst!\n" + .string "Do you know what I'm doing?$" + +PewterCity_Text_ThatsRightItsHardWork:: + .string "That's right!\n" + .string "It's hard work!$" + +PewterCity_Text_SprayingRepelToKeepWildMonsOut:: + .string "I'm spraying REPEL to keep wild\n" + .string "POKéMON out of my garden!$" + +PewterCity_Text_BrocksLookingForChallengersFollowMe:: + .string "You're a TRAINER, right?\p" + .string "BROCK's looking for new\n" + .string "challengers. Follow me!$" + +PewterCity_Text_GoTakeOnBrock:: + .string "If you have the right stuff,\n" + .string "go take on BROCK!$" + +PewterCity_Text_TrainerTipsEarningEXP:: + .string "TRAINER TIPS\p" + .string "All POKéMON that appear in battle,\n" + .string "however briefly, earn EXP Points.$" + +PewterCity_Text_CallPoliceIfInfoOnThieves:: + .string "NOTICE!\p" + .string "Thieves have been stealing POKéMON\n" + .string "fossils from MT. MOON.\p" + .string "Please call the PEWTER POLICE if\n" + .string "you have any information.$" + +PewterCity_Text_MuseumOfScience:: + .string "PEWTER MUSEUM OF SCIENCE$" + +PewterCity_Text_GymSign:: + .string "PEWTER CITY POKéMON GYM\n" + .string "LEADER: BROCK\l" + .string "The Rock-Solid POKéMON TRAINER!$" + +PewterCity_Text_CitySign:: + .string "PEWTER CITY\n" + .string "A Stone Gray City$" + +PewterCity_Text_OhPlayer:: + .string "Oh, {PLAYER}{KUN}!$" + +PewterCity_Text_AskedToDeliverThis:: + .string "I'm glad I caught up to you.\n" + .string "I'm PROF. OAK's AIDE.\p" + .string "I've been asked to deliver this,\n" + .string "so here you go.$" + +PewterCity_Text_ReceivedRunningShoesFromAide:: + .string "{PLAYER} received the\n" + .string "RUNNING SHOES from the AIDE.$" + +PewterCity_Text_SwitchedShoesWithRunningShoes:: + .string "{PLAYER} switched shoes with the\n" + .string "RUNNING SHOES.$" + +PewterCity_Text_ExplainRunningShoes:: + .string "Press the B Button to run.\n" + .string "But only where there's room to run!$" + +PewterCity_Text_MustBeGoingBackToLab:: + .string "Well, I must be going back to\n" + .string "the LAB.\p" + .string "Bye-bye!$" + +PewterCity_Text_RunningShoesLetterFromMom:: + .string "There's a letter attached…\p" + .string "Dear {PLAYER},\p" + .string "Here is a pair of RUNNING SHOES\n" + .string "for my beloved challenger.\p" + .string "Remember, I'll always cheer for\n" + .string "you! Don't ever give up!\p" + .string "From Mom$" + diff --git a/data/maps/PewterCity_Gym_Frlg/map.json b/data/maps/PewterCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..3c1d9a9f3493 --- /dev/null +++ b/data/maps/PewterCity_Gym_Frlg/map.json @@ -0,0 +1,104 @@ +{ + "id": "MAP_PEWTER_CITY_GYM", + "name": "PewterCity_Gym_Frlg", + "layout": "LAYOUT_PEWTER_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BROCK", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Gym_EventScript_Brock", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 3, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "PewterCity_Gym_EventScript_Liam", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Gym_EventScript_GymGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 14, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 14, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 14, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 8, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Gym_EventScript_GymStatue" + } + ] +} diff --git a/data/maps/PewterCity_Gym_Frlg/scripts.inc b/data/maps/PewterCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..b656d9b23696 --- /dev/null +++ b/data/maps/PewterCity_Gym_Frlg/scripts.inc @@ -0,0 +1,202 @@ +PewterCity_Gym_Frlg_MapScripts:: + .byte 0 + +PewterCity_Gym_EventScript_Brock:: + famechecker FAMECHECKER_BROCK, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_BROCK, PewterCity_Gym_Text_BrockIntro, PewterCity_Gym_Text_BrockDefeat, PewterCity_Gym_EventScript_DefeatedBrock, NO_MUSIC + goto_if_unset FLAG_GOT_TM39_FROM_BROCK, PewterCity_Gym_EventScript_GiveTM39 + msgbox PewterCity_Gym_Text_BrockPostBattle + release + end + +PewterCity_Gym_EventScript_DefeatedBrock:: + famechecker FAMECHECKER_BROCK, 1 + setflag FLAG_DEFEATED_BROCK + setflag FLAG_BADGE01_GET + setvar VAR_MAP_SCENE_PEWTER_CITY, 1 + setflag FLAG_HIDE_PEWTER_CITY_GYM_GUIDE + clearflag FLAG_HIDE_PEWTER_CITY_RUNNING_SHOES_GUY + set_gym_trainers_frlg 1 + goto PewterCity_Gym_EventScript_GiveTM39 + end + +PewterCity_Gym_EventScript_GiveTM39:: + msgbox PewterCity_Gym_Text_TakeThisWithYou + checkitemspace ITEM_TM39 + goto_if_eq VAR_RESULT, FALSE, PewterCity_Gym_EventScript_NoRoomForTM39 + giveitem_msg PewterCity_Gym_Text_ReceivedTM39FromBrock, ITEM_TM39 + setflag FLAG_GOT_TM39_FROM_BROCK + msgbox PewterCity_Gym_Text_ExplainTM39 + release + end + +PewterCity_Gym_EventScript_NoRoomForTM39:: + msgbox PewterCity_Gym_Text_DontHaveRoomForThis + release + end + +PewterCity_Gym_EventScript_Liam:: + trainerbattle_single TRAINER_CAMPER_LIAM, PewterCity_Gym_Text_LiamIntro, PewterCity_Gym_Text_LiamDefeat + msgbox PewterCity_Gym_Text_LiamPostBattle, MSGBOX_AUTOCLOSE + end + +PewterCity_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_BROCK, PewterCity_Gym_EventScript_GymGuyPostVictory + msgbox PewterCity_Gym_Text_LetMeTakeYouToTheTop, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PewterCity_Gym_EventScript_GymGuyTakeMeToTop + goto_if_eq VAR_RESULT, NO, PewterCity_Gym_EventScript_GymGuyDontTakeMeToTop + end + +PewterCity_Gym_EventScript_GymGuyPostVictory:: + msgbox PewterCity_Gym_Text_YoureChampMaterial + release + end + +PewterCity_Gym_EventScript_GymGuyTakeMeToTop:: + msgbox PewterCity_Gym_Text_LetsGetHappening + goto PewterCity_Gym_EventScript_GymGuyAdvice + end + +PewterCity_Gym_EventScript_GymGuyDontTakeMeToTop:: + msgbox PewterCity_Gym_Text_ItsFreeLetsGetHappening + goto PewterCity_Gym_EventScript_GymGuyAdvice + end + +PewterCity_Gym_EventScript_GymGuyAdvice:: + msgbox PewterCity_Gym_Text_TryDifferentPartyOrders + release + end + +PewterCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE01_GET, PewterCity_Gym_EventScript_GymStatuePostVictory + msgbox PewterCity_Gym_Text_GymStatue + releaseall + end + +PewterCity_Gym_EventScript_GymStatuePostVictory:: + msgbox PewterCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +PewterCity_Gym_Text_BrockIntro:: + .string "So, you're here. I'm BROCK.\n" + .string "I'm PEWTER's GYM LEADER.\p" + .string "My rock-hard willpower is evident\n" + .string "even in my POKéMON.\p" + .string "My POKéMON are all rock hard, and\n" + .string "have true-grit determination.\p" + .string "That's right - my POKéMON are all\n" + .string "the ROCK type!\p" + .string "Fuhaha! You're going to challenge\n" + .string "me knowing that you'll lose?\p" + .string "That's the TRAINER's honor that\n" + .string "compels you to challenge me.\p" + .string "Fine, then!\n" + .string "Show me your best!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PewterCity_Gym_Text_BrockDefeat:: + .string "I took you for granted, and so\n" + .string "I lost.\p" + .string "As proof of your victory, I confer\n" + .string "on you this…the official POKéMON\l" + .string "LEAGUE BOULDERBADGE.\p" + .string "{FONT_NORMAL}{PLAYER} received the BOULDERBADGE\n" + .string "from BROCK!{PAUSE_MUSIC}{PLAY_BGM}{MUS_OBTAIN_BADGE}{PAUSE 0xFE}{PAUSE 0x56}{RESUME_MUSIC}\p" + .string "{FONT_MALE}Just having the BOULDERBADGE makes\n" + .string "your POKéMON more powerful.\p" + .string "It also enables the use of the\n" + .string "move FLASH outside of battle.\p" + .string "Of course, a POKéMON must know the\n" + .string "move FLASH to use it.$" + +PewterCity_Gym_Text_TakeThisWithYou:: + .string "Wait!\n" + .string "Take this with you.$" + +PewterCity_Gym_Text_ReceivedTM39FromBrock:: + .string "{PLAYER} received TM39\n" + .string "from BROCK.$" + +PewterCity_Gym_Text_ExplainTM39:: + .string "A TM, Technical Machine, contains a\n" + .string "technique for POKéMON.\p" + .string "Using a TM teaches the move it\n" + .string "contains to a POKéMON.\p" + .string "A TM is good for only one use.\p" + .string "So, when you use one, pick the\n" + .string "POKéMON carefully.\p" + .string "Anyways…\n" + .string "TM39 contains ROCK TOMB.\p" + .string "It hurls boulders at the foe and\n" + .string "lowers its SPEED.$" + +PewterCity_Gym_Text_BrockPostBattle:: + .string "There are all kinds of TRAINERS in\n" + .string "this huge world of ours.\p" + .string "You appear to be very gifted as a\n" + .string "POKéMON TRAINER.\p" + .string "So let me make a suggestion.\p" + .string "Go to the GYM in CERULEAN and test\n" + .string "your abilities.$" + +PewterCity_Gym_Text_DontHaveRoomForThis:: + .string "You don't have room for this.$" + +PewterCity_Gym_Text_LiamIntro:: + .string "Stop right there, kid!\p" + .string "You're ten thousand light-years \n" + .string "from facing BROCK!$" + +PewterCity_Gym_Text_LiamDefeat:: + .string "Darn!\p" + .string "Light-years isn't time…\n" + .string "It measures distance!$" + +PewterCity_Gym_Text_LiamPostBattle:: + .string "You're pretty hot.\n" + .string "…But not as hot as BROCK!$" + +PewterCity_Gym_Text_LetMeTakeYouToTheTop:: + .string "Hiya!\n" + .string "Do you want to dream big?\p" + .string "Do you dare to dream of becoming\n" + .string "the POKéMON champ?\p" + .string "I'm no TRAINER, but I can advise\n" + .string "you on how to win.\p" + .string "Let me take you to the top!$" + +PewterCity_Gym_Text_LetsGetHappening:: + .string "All right!\n" + .string "Let's get happening!$" + +PewterCity_Gym_Text_TryDifferentPartyOrders:: + .string "The first POKéMON out in a match is\n" + .string "at the left of the POKéMON LIST.\p" + .string "By changing the order of POKéMON,\n" + .string "you may gain an advantage.\p" + .string "Try different orders to suit your\n" + .string "opponent's party.$" + +PewterCity_Gym_Text_ItsFreeLetsGetHappening:: + .string "It's a free service!\n" + .string "Let's get happening!$" + +PewterCity_Gym_Text_YoureChampMaterial:: + .string "Just as I thought!\n" + .string "You're POKéMON champ material!$" + +PewterCity_Gym_Text_GymStatue:: + .string "PEWTER POKéMON GYM\n" + .string "LEADER: BROCK\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +PewterCity_Gym_Text_GymStatuePlayerWon:: + .string "PEWTER POKéMON GYM\n" + .string "LEADER: BROCK\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/PewterCity_House1_Frlg/map.json b/data/maps/PewterCity_House1_Frlg/map.json new file mode 100644 index 000000000000..c8b4fca506fd --- /dev/null +++ b/data/maps/PewterCity_House1_Frlg/map.json @@ -0,0 +1,88 @@ +{ + "id": "MAP_PEWTER_CITY_HOUSE1", + "name": "PewterCity_House1_Frlg", + "layout": "LAYOUT_HOUSE2_FRLG", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_House1_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_House1_EventScript_LittleBoy", + "flag": "0" + }, + { + "local_id": "LOCALID_PEWTER_HOUSE_NIDORAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_House1_EventScript_Nidoran", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "4" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_House1_Frlg/scripts.inc b/data/maps/PewterCity_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..c83439961247 --- /dev/null +++ b/data/maps/PewterCity_House1_Frlg/scripts.inc @@ -0,0 +1,47 @@ +PewterCity_House1_Frlg_MapScripts:: + .byte 0 + +PewterCity_House1_EventScript_BaldingMan:: + msgbox PewterCity_House1_Text_TradeMonsAreFinicky, MSGBOX_NPC + end + +PewterCity_House1_EventScript_LittleBoy:: + lock + msgbox PewterCity_House1_Text_NidoranSit + call PewterCity_House1_EventScript_DoNidoranCry + release + end + +PewterCity_House1_EventScript_Nidoran:: + lock + faceplayer + call PewterCity_House1_EventScript_DoNidoranCry + applymovement LOCALID_PEWTER_HOUSE_NIDORAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +PewterCity_House1_EventScript_DoNidoranCry:: + textcolor NPC_TEXT_COLOR_NEUTRAL + waitse + playmoncry SPECIES_NIDORAN_M, CRY_MODE_NORMAL + msgbox PewterCity_House1_Text_Nidoran + waitmoncry + call EventScript_RestorePrevTextColor + return + +PewterCity_House1_Text_Nidoran:: + .string "NIDORAN♂: Bowbow!$" + +PewterCity_House1_Text_NidoranSit:: + .string "NIDORAN, sit!$" + +PewterCity_House1_Text_TradeMonsAreFinicky:: + .string "Our POKéMON's an outsider, so it's\n" + .string "finicky and hard to handle.\p" + .string "An outsider is a POKéMON that you\n" + .string "get in a trade.\p" + .string "It grows fast, but it may ignore an\n" + .string "unskilled TRAINER in battle.\p" + .string "If only we had some BADGES…$" + diff --git a/data/maps/PewterCity_House2_Frlg/map.json b/data/maps/PewterCity_House2_Frlg/map.json new file mode 100644 index 000000000000..374e9589598b --- /dev/null +++ b/data/maps/PewterCity_House2_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_PEWTER_CITY_HOUSE2", + "name": "PewterCity_House2_Frlg", + "layout": "LAYOUT_HOUSE2_FRLG", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_House2_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_House2_EventScript_LittleBoy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "6" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "6" + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_House2_Frlg/scripts.inc b/data/maps/PewterCity_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..dc1a88233531 --- /dev/null +++ b/data/maps/PewterCity_House2_Frlg/scripts.inc @@ -0,0 +1,25 @@ +PewterCity_House2_Frlg_MapScripts:: + .byte 0 + +PewterCity_House2_EventScript_OldMan:: + msgbox PewterCity_House2_Text_MonsLearnTechniquesAsTheyGrow, MSGBOX_NPC + end + +PewterCity_House2_EventScript_LittleBoy:: + msgbox PewterCity_House2_Text_MonsEasierCatchIfStatused, MSGBOX_NPC + end + +PewterCity_House2_Text_MonsLearnTechniquesAsTheyGrow:: + .string "POKéMON learn new techniques as\n" + .string "they grow.\p" + .string "But some moves must be taught to\n" + .string "them by people.$" + +PewterCity_House2_Text_MonsEasierCatchIfStatused:: + .string "A POKéMON becomes easier to \n" + .string "catch if it has a status problem.\p" + .string "Sleep, poison, burn, or paralysis…\n" + .string "Those are all effective.\p" + .string "But catching POKéMON is never\n" + .string "a sure thing!$" + diff --git a/data/maps/PewterCity_Mart_Frlg/map.json b/data/maps/PewterCity_Mart_Frlg/map.json new file mode 100644 index 000000000000..7bc6b699f11c --- /dev/null +++ b/data/maps/PewterCity_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_PEWTER_CITY_MART", + "name": "PewterCity_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Mart_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Mart_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Mart_EventScript_Clerk", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "3" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_Mart_Frlg/scripts.inc b/data/maps/PewterCity_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..2fa94240bf53 --- /dev/null +++ b/data/maps/PewterCity_Mart_Frlg/scripts.inc @@ -0,0 +1,46 @@ +PewterCity_Mart_Frlg_MapScripts:: + .byte 0 + +PewterCity_Mart_EventScript_Youngster:: + msgbox PewterCity_Mart_Text_BoughtWeirdFishFromShadyGuy, MSGBOX_NPC + end + +PewterCity_Mart_EventScript_Boy:: + msgbox PewterCity_Mart_Text_GoodThingsIfRaiseMonsDiligently, MSGBOX_NPC + end + +PewterCity_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart PewterCity_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +PewterCity_Mart_Items:: + .2byte ITEM_POKE_BALL + .2byte ITEM_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_BURN_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_REPEL + .2byte ITEM_NONE + release + end + +PewterCity_Mart_Text_BoughtWeirdFishFromShadyGuy:: + .string "A shady old guy sucked me into\n" + .string "buying this weird fish POKéMON!\p" + .string "It's totally weak and it cost ¥500!$" + +PewterCity_Mart_Text_GoodThingsIfRaiseMonsDiligently:: + .string "Good things can happen if you raise\n" + .string "POKéMON diligently.\p" + .string "Even the weak ones can surprise\n" + .string "you if you don't give up on them.$" + diff --git a/data/maps/PewterCity_Museum_1F_Frlg/map.json b/data/maps/PewterCity_Museum_1F_Frlg/map.json new file mode 100644 index 000000000000..ed298b58c426 --- /dev/null +++ b/data/maps/PewterCity_Museum_1F_Frlg/map.json @@ -0,0 +1,213 @@ +{ + "id": "MAP_PEWTER_CITY_MUSEUM_1F", + "name": "PewterCity_Museum_1F_Frlg", + "layout": "LAYOUT_PEWTER_CITY_MUSEUM_1F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_MUSEUM_SCIENTIST1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_1F_EventScript_Scientist1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_1F_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 21, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_1F_EventScript_OldAmberScientist", + "flag": "0" + }, + { + "local_id": "LOCALID_OLD_AMBER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_AMBER", + "x": 22, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_1F_EventScript_OldAmber", + "flag": "FLAG_HIDE_OLD_AMBER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 26, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_1F_EventScript_Scientist2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 26, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_1F_EventScript_SeismicTossTutor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "0" + }, + { + "x": 14, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "0" + }, + { + "x": 15, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "0" + }, + { + "x": 21, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "1" + }, + { + "x": 22, + "y": 9, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "1" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 12, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY_MUSEUM_1F", + "var_value": "0", + "script": "PewterCity_Museum_1F_EventScript_EntranceTriggerLeft" + }, + { + "type": "trigger", + "x": 13, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY_MUSEUM_1F", + "var_value": "0", + "script": "PewterCity_Museum_1F_EventScript_EntranceTriggerMid" + }, + { + "type": "trigger", + "x": 14, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_PEWTER_CITY_MUSEUM_1F", + "var_value": "0", + "script": "PewterCity_Museum_1F_EventScript_EntranceTriggerRight" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_1F_EventScript_AerodactylFossil" + }, + { + "type": "sign", + "x": 4, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_1F_EventScript_KabutopsFossil" + }, + { + "type": "sign", + "x": 27, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PewterCity_Museum_1F_EventScript_PokemonJournalBrock" + }, + { + "type": "sign", + "x": 26, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PewterCity_Museum_1F_EventScript_PokemonJournalBrock" + } + ] +} diff --git a/data/maps/PewterCity_Museum_1F_Frlg/scripts.inc b/data/maps/PewterCity_Museum_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..a30b96ac99b5 --- /dev/null +++ b/data/maps/PewterCity_Museum_1F_Frlg/scripts.inc @@ -0,0 +1,277 @@ +PewterCity_Museum_1F_Frlg_MapScripts:: + .byte 0 + +PewterCity_Museum_1F_EventScript_Scientist1:: + lock + faceplayer + goto_if_eq VAR_FACING, DIR_WEST, PewterCity_Museum_1F_EventScript_Scientist1BehindCounter + goto_if_eq VAR_FACING, DIR_SOUTH, PewterCity_Museum_1F_EventScript_Scientist1BehindCounter + goto_if_eq VAR_FACING, DIR_NORTH, PewterCity_Museum_1F_EventScript_Scientist1BehindCounter + msgbox PewterCity_Museum_1F_Text_PleaseEnjoyYourself + release + end + +PewterCity_Museum_1F_EventScript_Scientist1BehindCounter:: + msgbox PewterCity_Museum_1F_Text_DoYouKnowWhatAmberIs, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PewterCity_Museum_1F_EventScript_AmberHasGeneticMatter + goto_if_eq VAR_RESULT, NO, PewterCity_Museum_1F_EventScript_ExplainAmber + end + +PewterCity_Museum_1F_EventScript_AmberHasGeneticMatter:: + msgbox PewterCity_Museum_1F_Text_AmberContainsGeneticMatter + applymovement LOCALID_MUSEUM_SCIENTIST1, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +PewterCity_Museum_1F_EventScript_ExplainAmber:: + msgbox PewterCity_Museum_1F_Text_AmberIsFossilizedSap + applymovement LOCALID_MUSEUM_SCIENTIST1, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + goto PewterCity_Museum_1F_EventScript_EntranceTrigger + end + +PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + goto PewterCity_Museum_1F_EventScript_EntranceTrigger + end + +PewterCity_Museum_1F_EventScript_EntranceTriggerRight:: + lockall + setvar VAR_TEMP_1, 2 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + goto PewterCity_Museum_1F_EventScript_EntranceTrigger + end + +PewterCity_Museum_1F_EventScript_EntranceTrigger:: + textcolor NPC_TEXT_COLOR_MALE + showmoneybox 0, 0 + msgbox PewterCity_Museum_1F_Text_Its50YForChildsTicket, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, PewterCity_Museum_1F_EventScript_TryPayForTicket + msgbox PewterCity_Museum_1F_Text_ComeAgain + closemessage + hidemoneybox + applymovement LOCALID_PLAYER, PewterCity_Museum_1F_Movement_ForcePlayerExit + waitmovement 0 + releaseall + end + +PewterCity_Museum_1F_EventScript_TryPayForTicket:: + checkmoney 50 + goto_if_eq VAR_RESULT, FALSE, PewterCity_Museum_1F_EventScript_NotEnoughMoney + closemessage + call_if_eq VAR_TEMP_1, 0, PewterCity_Museum_1F_EventScript_PlayerApproachCounterLeft + call_if_eq VAR_TEMP_1, 1, PewterCity_Museum_1F_EventScript_PlayerApproachCounterMid + call_if_eq VAR_TEMP_1, 2, PewterCity_Museum_1F_EventScript_PlayerApproachCounterRight + playse SE_SHOP + removemoney 50 + updatemoneybox + waitse + msgbox PewterCity_Museum_1F_Text_Right50YThankYou + setvar VAR_MAP_SCENE_PEWTER_CITY_MUSEUM_1F, 1 + hidemoneybox + releaseall + end + +PewterCity_Museum_1F_EventScript_PlayerApproachCounterLeft:: + applymovement LOCALID_PLAYER, PewterCity_Museum_1F_Movement_ApproachCounterLeft + waitmovement 0 + return + +PewterCity_Museum_1F_EventScript_PlayerApproachCounterMid:: + applymovement LOCALID_PLAYER, PewterCity_Museum_1F_Movement_ApproachCounterMid + waitmovement 0 + return + +PewterCity_Museum_1F_EventScript_PlayerApproachCounterRight:: + applymovement LOCALID_PLAYER, PewterCity_Museum_1F_Movement_ApproachCounterRight + waitmovement 0 + return + +PewterCity_Museum_1F_EventScript_NotEnoughMoney:: + msgbox PewterCity_Museum_1F_Text_DontHaveEnoughMoney + closemessage + hidemoneybox + applymovement LOCALID_PLAYER, PewterCity_Museum_1F_Movement_ForcePlayerExit + waitmovement 0 + releaseall + end + +PewterCity_Museum_1F_Movement_ForcePlayerExit:: + walk_down + step_end + +PewterCity_Museum_1F_Movement_ApproachCounterLeft:: + walk_right + walk_right + delay_8 + walk_in_place_right + step_end + +PewterCity_Museum_1F_Movement_ApproachCounterMid:: + walk_right + delay_8 + walk_in_place_right + step_end + +PewterCity_Museum_1F_Movement_ApproachCounterRight:: + delay_8 + walk_in_place_right + step_end + +PewterCity_Museum_1F_EventScript_Scientist2:: + msgbox PewterCity_Museum_1F_Text_WeHaveTwoFossilsOnExhibit, MSGBOX_NPC + end + +PewterCity_Museum_1F_EventScript_OldMan:: + msgbox PewterCity_Museum_1F_Text_ShouldBeGratefulForLongLife, MSGBOX_NPC + end + +PewterCity_Museum_1F_EventScript_OldAmberScientist:: + lock + faceplayer + goto_if_set FLAG_GOT_OLD_AMBER, PewterCity_Museum_1F_EventScript_AlreadyGotOldAmber + msgbox PewterCity_Museum_1F_Text_WantYouToGetAmberExamined + checkitemspace ITEM_OLD_AMBER + goto_if_eq VAR_RESULT, FALSE, PewterCity_Museum_1F_EventScript_NoRoomForOldAmber + setflag FLAG_GOT_OLD_AMBER + removeobject LOCALID_OLD_AMBER + giveitem_msg PewterCity_Museum_1F_Text_ReceivedOldAmberFromMan, ITEM_OLD_AMBER, 1, MUS_RG_OBTAIN_KEY_ITEM + release + end + +PewterCity_Museum_1F_EventScript_NoRoomForOldAmber:: + msgbox PewterCity_Museum_1F_Text_DontHaveSpaceForThis + release + end + +PewterCity_Museum_1F_EventScript_AlreadyGotOldAmber:: + msgbox PewterCity_Museum_1F_Text_GetOldAmberChecked + release + end + +PewterCity_Museum_1F_EventScript_OldAmber:: + msgbox PewterCity_Museum_1F_Text_BeautifulPieceOfAmber, MSGBOX_NPC + end + +PewterCity_Museum_1F_EventScript_AerodactylFossil:: + lockall + setvar VAR_0x8004, SPECIES_AERODACTYL + setvar VAR_0x8005, 10 + setvar VAR_0x8006, 3 + special OpenMuseumFossilPic + msgbox PewterCity_Museum_1F_Text_AerodactylFossil + special CloseMuseumFossilPic + releaseall + end + +PewterCity_Museum_1F_EventScript_KabutopsFossil:: + lockall + setvar VAR_0x8004, SPECIES_KABUTOPS + setvar VAR_0x8005, 10 + setvar VAR_0x8006, 3 + special OpenMuseumFossilPic + msgbox PewterCity_Museum_1F_Text_KabutopsFossil + special CloseMuseumFossilPic + releaseall + end + +PewterCity_Museum_1F_Text_Its50YForChildsTicket:: + .string "Yes, yes.\n" + .string "It's ¥50 for a child's ticket.\p" + .string "Would you like to come in?$" + +PewterCity_Museum_1F_Text_ComeAgain:: + .string "Come again!$" + +PewterCity_Museum_1F_Text_Right50YThankYou:: + .string "Right, ¥50!\n" + .string "Thank you!$" + +PewterCity_Museum_1F_Text_DontHaveEnoughMoney:: + .string "You don't have enough money.$" + +PewterCity_Museum_1F_Text_PleaseEnjoyYourself:: + .string "Please enjoy yourself.$" + +PewterCity_Museum_1F_Text_DoYouKnowWhatAmberIs:: + .string "You can't sneak in the back way!\n" + .string "Nice try, kid, but no.\p" + .string "Oh, whatever!\n" + .string "Do you know what AMBER is?$" + +PewterCity_Museum_1F_Text_AmberContainsGeneticMatter:: + .string "AMBER contains the genetic matter\n" + .string "of ancient POKéMON.\p" + .string "There's a LAB somewhere trying to\n" + .string "resurrect POKéMON from AMBER.$" + +PewterCity_Museum_1F_Text_AmberIsFossilizedSap:: + .string "AMBER is actually sap, that gooey\n" + .string "stuff that oozes from trees.\p" + .string "The ancient sap fossilized over\n" + .string "time to become rock-hard AMBER.$" + +@ Unused +PewterCity_Museum_1F_Text_PleaseGoAround:: + .string "あちらへ おまわりください$" + +PewterCity_Museum_1F_Text_ShouldBeGratefulForLongLife:: + .string "I should be grateful for my long\n" + .string "life.\p" + .string "Never did I think I would get to\n" + .string "see the bones of a dragon!$" + +PewterCity_Museum_1F_Text_WantYouToGetAmberExamined:: + .string "Ssh! Listen, I need to share a\n" + .string "secret with someone.\p" + .string "I think that this chunk of AMBER\n" + .string "contains POKéMON DNA!\p" + .string "It would be a shattering scientific\n" + .string "breakthrough if POKéMON could be\l" + .string "resurrected from it.\p" + .string "But, my colleagues just ignore\n" + .string "what I have to say.\p" + .string "So, I have a favor to ask!\p" + .string "I want you to get this examined at\n" + .string "a POKéMON LAB somewhere.$" + +PewterCity_Museum_1F_Text_ReceivedOldAmberFromMan:: + .string "{PLAYER} received the OLD AMBER\n" + .string "from the man.$" + +PewterCity_Museum_1F_Text_GetOldAmberChecked:: + .string "Ssh!\n" + .string "Get the OLD AMBER checked!$" + +PewterCity_Museum_1F_Text_DontHaveSpaceForThis:: + .string "You don't have space for this.$" + +PewterCity_Museum_1F_Text_WeHaveTwoFossilsOnExhibit:: + .string "We have two fossils of rare,\n" + .string "prehistoric POKéMON on exhibit.$" + +PewterCity_Museum_1F_Text_BeautifulPieceOfAmber:: + .string "There is a beautiful piece of\n" + .string "AMBER in a clear gold color.$" + +PewterCity_Museum_1F_Text_AerodactylFossil:: + .string "AERODACTYL Fossil\n" + .string "A primitive and rare POKéMON.$" + +PewterCity_Museum_1F_Text_KabutopsFossil:: + .string "KABUTOPS Fossil\n" + .string "A primitive and rare POKéMON.$" + diff --git a/data/maps/PewterCity_Museum_2F_Frlg/map.json b/data/maps/PewterCity_Museum_2F_Frlg/map.json new file mode 100644 index 000000000000..7c24c2a8c806 --- /dev/null +++ b/data/maps/PewterCity_Museum_2F_Frlg/map.json @@ -0,0 +1,166 @@ +{ + "id": "MAP_PEWTER_CITY_MUSEUM_2F", + "name": "PewterCity_Museum_2F_Frlg", + "layout": "LAYOUT_PEWTER_CITY_MUSEUM_2F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_2F_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_2F_EventScript_Man", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 0, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_2F_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 15, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_2F_EventScript_LittleGirl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 16, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_Museum_2F_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_MoonStone" + }, + { + "type": "sign", + "x": 15, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_SpaceShuttle" + }, + { + "type": "sign", + "x": 14, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_SpaceShuttle" + }, + { + "type": "sign", + "x": 16, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_SpaceShuttle" + }, + { + "type": "sign", + "x": 14, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_SpaceShuttle" + }, + { + "type": "sign", + "x": 15, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_SpaceShuttle" + }, + { + "type": "sign", + "x": 16, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_SpaceShuttle" + }, + { + "type": "sign", + "x": 3, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PewterCity_Museum_2F_EventScript_MoonStone" + } + ] +} diff --git a/data/maps/PewterCity_Museum_2F_Frlg/scripts.inc b/data/maps/PewterCity_Museum_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..65ed5bdc4838 --- /dev/null +++ b/data/maps/PewterCity_Museum_2F_Frlg/scripts.inc @@ -0,0 +1,85 @@ +PewterCity_Museum_2F_Frlg_MapScripts:: + .byte 0 + +PewterCity_Museum_2F_EventScript_Man:: + msgbox PewterCity_Museum_1F_Text_WhatsSpecialAboutMoonStone, MSGBOX_NPC + end + +PewterCity_Museum_2F_EventScript_OldMan:: + msgbox PewterCity_Museum_1F_Text_BoughtColorTVForMoonLanding, MSGBOX_NPC + end + +PewterCity_Museum_2F_EventScript_Scientist:: + msgbox PewterCity_Museum_1F_Text_RunningSpaceExhibitThisMonth, MSGBOX_NPC + end + +PewterCity_Museum_2F_EventScript_LittleGirl:: + msgbox PewterCity_Museum_1F_Text_AskedDaddyToCatchPikachu, MSGBOX_NPC + end + +PewterCity_Museum_2F_EventScript_BaldingMan:: + msgbox PewterCity_Museum_1F_Text_PikachuSoonIPromise, MSGBOX_NPC + end + +PewterCity_Museum_2F_EventScript_SpaceShuttle:: + msgbox PewterCity_Museum_1F_Text_SpaceShuttle, MSGBOX_SIGN + end + +PewterCity_Museum_2F_EventScript_MoonStone:: + msgbox PewterCity_Museum_1F_Text_MeteoriteThatFellOnMtMoon, MSGBOX_SIGN + end + +Text_SeismicTossTeach:: + .string "The secrets of space…\n" + .string "The mysteries of earth…\p" + .string "There are so many things about\n" + .string "which we know so little.\p" + .string "But that should spur us to study\n" + .string "harder, not toss in the towel.\p" + .string "The only thing you should toss…\p" + .string "Well, how about SEISMIC TOSS?\n" + .string "Should I teach that to a POKéMON?$" + +Text_SeismicTossDeclined:: + .string "Is that so?\n" + .string "I'm sure you'll be back for it.$" + +Text_SeismicTossWhichMon:: + .string "Which POKéMON wants to learn\n" + .string "SEISMIC TOSS?$" + +Text_SeismicTossTaught:: + .string "I hope you won't toss in the towel.\n" + .string "Keep it up.$" + +PewterCity_Museum_1F_Text_WhatsSpecialAboutMoonStone:: + .string "MOON STONE, huh?\p" + .string "What's so special about it?\n" + .string "Looks like an ordinary rock to me.$" + +PewterCity_Museum_1F_Text_BoughtColorTVForMoonLanding:: + .string "July 20, 1969!\p" + .string "Humankind first set foot on the\n" + .string "moon that day.\p" + .string "I bought a color TV just so I\n" + .string "could watch that news.$" + +PewterCity_Museum_1F_Text_RunningSpaceExhibitThisMonth:: + .string "This month, we're running a space\n" + .string "exhibit.$" + +PewterCity_Museum_1F_Text_AskedDaddyToCatchPikachu:: + .string "I want a PIKACHU!\n" + .string "It's so cute!\p" + .string "I asked my daddy to catch me one!$" + +PewterCity_Museum_1F_Text_PikachuSoonIPromise:: + .string "Yeah, a PIKACHU soon, I promise!$" + +PewterCity_Museum_1F_Text_SpaceShuttle:: + .string "Space Shuttle$" + +PewterCity_Museum_1F_Text_MeteoriteThatFellOnMtMoon:: + .string "A meteorite that fell on MT. MOON.\n" + .string "It is thought to be a MOON STONE.$" + diff --git a/data/maps/PewterCity_PokemonCenter_1F_Frlg/map.json b/data/maps/PewterCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..bf5ca43fbef6 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,151 @@ +{ + "id": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", + "name": "PewterCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_PokemonCenter_1F_EventScript_Jigglypuff", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "local_id": "LOCALID_PEWTER_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 13, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "MysteryEventClub_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 10, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_PokemonCenter_1F_EventScript_GBAKid1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PewterCity_PokemonCenter_1F_EventScript_GBAKid2", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "5" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "5" + }, + { + "x": 8, + "y": 8, + "elevation": 0, + "dest_map": "MAP_PEWTER_CITY", + "dest_warp_id": "5" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/PewterCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d4a7e9ef7894 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,73 @@ +PewterCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PewterCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +PewterCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_PEWTER_CITY + end + +PewterCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +PewterCity_PokemonCenter_1F_EventScript_Gentleman:: + msgbox PewterCity_PokemonCenter_1F_Text_TeamRocketMtMoonImOnPhone, MSGBOX_NPC + end + +PewterCity_PokemonCenter_1F_EventScript_Jigglypuff:: + lock + faceplayer + fadeoutbgm 0 + playbgm MUS_RG_JIGGLYPUFF, 0 + message PewterCity_PokemonCenter_1F_Text_Jigglypuff + waitmessage + delay 455 + playbgm MUS_POKE_CENTER, 1 + release + end + +PewterCity_PokemonCenter_1F_EventScript_Youngster:: + msgbox PewterCity_PokemonCenter_1F_Text_WhenJiggylypuffSingsMonsGetDrowsy, MSGBOX_NPC + end + +PewterCity_PokemonCenter_1F_EventScript_GBAKid1:: + lock + msgbox PewterCity_PokemonCenter_1F_Text_TradingMyClefairyForPikachu + release + end + +PewterCity_PokemonCenter_1F_EventScript_GBAKid2:: + msgbox PewterCity_PokemonCenter_1F_Text_TradingPikachuWithKid, MSGBOX_NPC + end + +PewterCity_PokemonCenter_1F_Text_TeamRocketMtMoonImOnPhone:: + .string "What!?\p" + .string "TEAM ROCKET is at MT. MOON?\n" + .string "Huh?\p" + .string "I'm on the phone!\n" + .string "Scram!$" + +PewterCity_PokemonCenter_1F_Text_Jigglypuff:: + .string "JIGGLYPUFF: Puu pupuu!$" + +PewterCity_PokemonCenter_1F_Text_WhenJiggylypuffSingsMonsGetDrowsy:: + .string "Yawn!\p" + .string "When JIGGLYPUFF sings, POKéMON get\n" + .string "drowsy…\p" + .string "…Me, too…\n" + .string "Snore…$" + +PewterCity_PokemonCenter_1F_Text_TradingMyClefairyForPikachu:: + .string "I really want a PIKACHU, so I'm\n" + .string "trading my CLEFAIRY for one.$" + +PewterCity_PokemonCenter_1F_Text_TradingPikachuWithKid:: + .string "I'm trading POKéMON with that kid\n" + .string "there.\p" + .string "I had two PIKACHU, so I figured\n" + .string "I might as well trade one.$" + diff --git a/data/maps/PewterCity_PokemonCenter_2F_Frlg/map.json b/data/maps/PewterCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..61a3b9412717 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_PEWTER_CITY_POKEMON_CENTER_2F", + "name": "PewterCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PEWTER_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PewterCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/PewterCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..5748ea29a629 --- /dev/null +++ b/data/maps/PewterCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +PewterCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +PewterCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +PewterCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +PewterCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/PokemonLeague_AgathasRoom_Frlg/map.json b/data/maps/PokemonLeague_AgathasRoom_Frlg/map.json new file mode 100644 index 000000000000..1f9e74f9f868 --- /dev/null +++ b/data/maps/PokemonLeague_AgathasRoom_Frlg/map.json @@ -0,0 +1,52 @@ +{ + "id": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", + "name": "PokemonLeague_AgathasRoom_Frlg", + "layout": "LAYOUT_POKEMON_LEAGUE_AGATHAS_ROOM", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_AGATHA", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_AGATHA", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonLeague_AgathasRoom_EventScript_Agatha", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_AgathasRoom_Frlg/scripts.inc b/data/maps/PokemonLeague_AgathasRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..f3fe48d1738c --- /dev/null +++ b/data/maps/PokemonLeague_AgathasRoom_Frlg/scripts.inc @@ -0,0 +1,131 @@ +PokemonLeague_AgathasRoom_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, PokemonLeague_AgathasRoom_OnResume + map_script MAP_SCRIPT_ON_LOAD, PokemonLeague_AgathasRoom_OnLoad + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PokemonLeague_AgathasRoom_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, PokemonLeague_AgathasRoom_OnFrame + .byte 0 + +PokemonLeague_AgathasRoom_OnResume:: + setvar VAR_0x8004, 2 + call PokemonLeague_EventScript_DoLightingEffect + end + +PokemonLeague_AgathasRoom_OnLoad:: + call_if_set FLAG_DEFEATED_AGATHA, PokemonLeague_AgathasRoom_EventScript_SetDoorOpen + call_if_eq VAR_MAP_SCENE_POKEMON_LEAGUE, 3, PokemonLeague_AgathasRoom_EventScript_CloseEntry + end + +PokemonLeague_AgathasRoom_EventScript_CloseEntry:: + call PokemonLeague_EventScript_CloseEntry + return + +PokemonLeague_AgathasRoom_EventScript_SetDoorOpen:: + call PokemonLeague_EventScript_SetDoorOpen + return + +PokemonLeague_AgathasRoom_OnWarp:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_AgathasRoom_EventScript_TurnPlayerNorth + .2byte 0 + +PokemonLeague_AgathasRoom_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PokemonLeague_AgathasRoom_OnFrame:: + map_script_2 VAR_MAP_SCENE_POKEMON_LEAGUE, 2, PokemonLeague_AgathasRoom_EventScript_EnterRoom + .2byte 0 + +PokemonLeague_AgathasRoom_EventScript_EnterRoom:: + lockall + call PokemonLeague_EventScript_EnterRoom + setvar VAR_MAP_SCENE_POKEMON_LEAGUE, 3 + releaseall + end + +PokemonLeague_AgathasRoom_EventScript_Agatha:: + lock + faceplayer + famechecker FAMECHECKER_AGATHA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + goto_if_set FLAG_DEFEATED_AGATHA, PokemonLeague_AgathasRoom_EventScript_PostBattle + famechecker FAMECHECKER_AGATHA, 0 + famechecker FAMECHECKER_AGATHA, 4 + famechecker FAMECHECKER_OAK, 4 + call_if_unset FLAG_SYS_GAME_CLEAR, PokemonLeague_AgathasRoom_EventScript_Intro + call_if_set FLAG_SYS_GAME_CLEAR, PokemonLeague_AgathasRoom_EventScript_RematchIntro + setflag FLAG_TEMP_3 + setflag FLAG_TEMP_5 + call_if_unset FLAG_IS_CHAMPION, PokemonLeague_AgathasRoom_EventScript_Battle + call_if_set FLAG_IS_CHAMPION, PokemonLeague_AgathasRoom_EventScript_Rematch + clearflag FLAG_TEMP_5 + goto PokemonLeague_AgathasRoom_EventScript_DefeatedAgatha + end + +PokemonLeague_AgathasRoom_EventScript_Intro:: + msgbox PokemonLeague_AgathasRoom_Text_Intro + return + +PokemonLeague_AgathasRoom_EventScript_RematchIntro:: + msgbox PokemonLeague_AgathasRoom_Text_RematchIntro + return + +PokemonLeague_AgathasRoom_EventScript_Battle:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_AGATHA, PokemonLeague_AgathasRoom_Text_Defeat + return + +PokemonLeague_AgathasRoom_EventScript_Rematch:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_AGATHA_2, PokemonLeague_AgathasRoom_Text_Defeat + return + +PokemonLeague_AgathasRoom_EventScript_PostBattle:: + msgbox PokemonLeague_AgathasRoom_Text_PostBattle + release + end + +PokemonLeague_AgathasRoom_EventScript_DefeatedAgatha:: + setflag FLAG_DEFEATED_AGATHA + call PokemonLeague_EventScript_OpenDoor + msgbox PokemonLeague_AgathasRoom_Text_PostBattle + release + end + +PokemonLeague_AgathasRoom_Text_Intro:: + .string "I am AGATHA of the ELITE FOUR.\p" + .string "I hear OAK's taken a lot of\n" + .string "interest in you, child.\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He's a shadow of his former self.\p" + .string "Now he just wants to fiddle with\n" + .string "his POKéDEX.\p" + .string "He's wrong.\n" + .string "POKéMON are for battling!\p" + .string "{PLAYER}! I'll show you how a real\n" + .string "TRAINER battles!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_AgathasRoom_Text_RematchIntro:: + .string "I am AGATHA of the ELITE FOUR.\p" + .string "You're the child that OAK's taken\n" + .string "under his wing, aren't you?\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He's a shadow of his former self.\p" + .string "Now he just wants to fiddle with\n" + .string "his POKéDEX.\p" + .string "He's wrong.\n" + .string "POKéMON are for battling!\p" + .string "{PLAYER}! I'll show you how a real\n" + .string "TRAINER battles!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_AgathasRoom_Text_Defeat:: + .string "Oh, my!\n" + .string "You're something special, child!$" + +PokemonLeague_AgathasRoom_Text_PostBattle:: + .string "You win!\p" + .string "I see what the old duff sees in\n" + .string "you now.\p" + .string "I have nothing else to say.\n" + .string "Run along now, child!$" + diff --git a/data/maps/PokemonLeague_BrunosRoom_Frlg/map.json b/data/maps/PokemonLeague_BrunosRoom_Frlg/map.json new file mode 100644 index 000000000000..cf35349ef177 --- /dev/null +++ b/data/maps/PokemonLeague_BrunosRoom_Frlg/map.json @@ -0,0 +1,53 @@ +{ + "id": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", + "name": "PokemonLeague_BrunosRoom_Frlg", + "layout": "LAYOUT_POKEMON_LEAGUE_BRUNOS_ROOM", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_BRUNO", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_BRUNO", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BRUNO", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonLeague_BrunosRoom_EventScript_Bruno", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_BrunosRoom_Frlg/scripts.inc b/data/maps/PokemonLeague_BrunosRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..c74eda1ea9d1 --- /dev/null +++ b/data/maps/PokemonLeague_BrunosRoom_Frlg/scripts.inc @@ -0,0 +1,148 @@ +PokemonLeague_BrunosRoom_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, PokemonLeague_BrunosRoom_OnResume + map_script MAP_SCRIPT_ON_LOAD, PokemonLeague_BrunosRoom_OnLoad + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PokemonLeague_BrunosRoom_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, PokemonLeague_BrunosRoom_OnFrame + .byte 0 + +PokemonLeague_BrunosRoom_OnResume:: + setvar VAR_0x8004, 1 + call PokemonLeague_EventScript_DoLightingEffect + end + +PokemonLeague_BrunosRoom_OnLoad:: + call_if_set FLAG_DEFEATED_BRUNO, PokemonLeague_BrunosRoom_EventScript_SetDoorOpen + call_if_eq VAR_MAP_SCENE_POKEMON_LEAGUE, 2, PokemonLeague_BrunosRoom_EventScript_CloseEntry + end + +PokemonLeague_BrunosRoom_EventScript_CloseEntry:: + call PokemonLeague_EventScript_CloseEntry + return + +PokemonLeague_BrunosRoom_EventScript_SetDoorOpen:: + call PokemonLeague_EventScript_SetDoorOpen + return + +PokemonLeague_BrunosRoom_OnWarp:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_BrunosRoom_EventScript_TurnPlayerNorth + .2byte 0 + +PokemonLeague_BrunosRoom_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PokemonLeague_BrunosRoom_OnFrame:: + map_script_2 VAR_MAP_SCENE_POKEMON_LEAGUE, 1, PokemonLeague_BrunosRoom_EventScript_EnterRoom + .2byte 0 + +PokemonLeague_BrunosRoom_EventScript_EnterRoom:: + lockall + call PokemonLeague_EventScript_EnterRoom + setvar VAR_MAP_SCENE_POKEMON_LEAGUE, 2 + releaseall + end + +PokemonLeague_BrunosRoom_EventScript_Bruno:: + lock + faceplayer + famechecker FAMECHECKER_BRUNO, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + goto_if_set FLAG_DEFEATED_BRUNO, PokemonLeague_BrunosRoom_EventScript_PostBattle + famechecker FAMECHECKER_BRUNO, 0 + famechecker FAMECHECKER_BRUNO, 1 + call_if_unset FLAG_SYS_GAME_CLEAR, PokemonLeague_BrunosRoom_EventScript_Intro + call_if_set FLAG_SYS_GAME_CLEAR, PokemonLeague_BrunosRoom_EventScript_RematchIntro + setflag FLAG_TEMP_3 + setflag FLAG_TEMP_5 + call_if_unset FLAG_IS_CHAMPION, PokemonLeague_BrunosRoom_EventScript_Battle + call_if_set FLAG_IS_CHAMPION, PokemonLeague_BrunosRoom_EventScript_Rematch + clearflag FLAG_TEMP_5 + goto PokemonLeague_BrunosRoom_EventScript_DefeatedBruno + end + +PokemonLeague_BrunosRoom_EventScript_Intro:: + msgbox PokemonLeague_BrunosRoom_Text_Intro + return + +PokemonLeague_BrunosRoom_EventScript_RematchIntro:: + msgbox PokemonLeague_BrunosRoom_Text_RematchIntro + return + +PokemonLeague_BrunosRoom_EventScript_Battle:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_BRUNO, PokemonLeague_BrunosRoom_Text_Defeat + return + +PokemonLeague_BrunosRoom_EventScript_Rematch:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_BRUNO_2, PokemonLeague_BrunosRoom_Text_Defeat + return + +PokemonLeague_BrunosRoom_EventScript_PostBattle:: + msgbox PokemonLeague_BrunosRoom_Text_PostBattle + closemessage + call_if_eq VAR_FACING, DIR_NORTH, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayRight + call_if_eq VAR_FACING, DIR_SOUTH, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayLeft + call_if_eq VAR_FACING, DIR_WEST, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown + call_if_eq VAR_FACING, DIR_EAST, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown + release + end + +PokemonLeague_BrunosRoom_EventScript_DefeatedBruno:: + setflag FLAG_DEFEATED_BRUNO + call PokemonLeague_EventScript_OpenDoor + msgbox PokemonLeague_BrunosRoom_Text_PostBattle + closemessage + call_if_eq VAR_FACING, DIR_NORTH, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayRight + call_if_eq VAR_FACING, DIR_SOUTH, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayLeft + call_if_eq VAR_FACING, DIR_WEST, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown + call_if_eq VAR_FACING, DIR_EAST, PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown + release + end + +PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayLeft:: + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayRight:: + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + return + +PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown:: + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +PokemonLeague_BrunosRoom_Text_Intro:: + .string "I am BRUNO of the ELITE FOUR!\p" + .string "Through rigorous training, people\n" + .string "and POKéMON can become stronger\l" + .string "without limit.\p" + .string "I've lived and trained with my\n" + .string "fighting POKéMON!\l" + .string "And that will never change!\p" + .string "{PLAYER}!\p" + .string "We will grind you down with our\n" + .string "superior power!\p" + .string "Hoo hah!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_BrunosRoom_Text_RematchIntro:: + .string "I am BRUNO of the ELITE FOUR!\p" + .string "Through rigorous training, people\n" + .string "and POKéMON can become stronger\l" + .string "without limit.\p" + .string "I've lived and trained with my\n" + .string "fighting POKéMON!\l" + .string "And that will never change!\p" + .string "{PLAYER}!\p" + .string "We will grind you down with our\n" + .string "superior power!\p" + .string "Hoo hah!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_BrunosRoom_Text_Defeat:: + .string "Why?\n" + .string "How could I lose?$" + +PokemonLeague_BrunosRoom_Text_PostBattle:: + .string "My job is done.\n" + .string "Go face your next challenge.$" + diff --git a/data/maps/PokemonLeague_ChampionsRoom_Frlg/map.json b/data/maps/PokemonLeague_ChampionsRoom_Frlg/map.json new file mode 100644 index 000000000000..68bcd9e6cf46 --- /dev/null +++ b/data/maps/PokemonLeague_ChampionsRoom_Frlg/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "name": "PokemonLeague_ChampionsRoom_Frlg", + "layout": "LAYOUT_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "music": "MUS_VICTORY_ROAD", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_KANTO_CHAMPIONS_ROOM_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "local_id": "LOCALID_CHAMPIONS_ROOM_PROF_OAK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", + "x": 6, + "y": 15, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_OAK_IN_CHAMP_ROOM" + } + ], + "warp_events": [ + { + "x": 6, + "y": 19, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 2, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_HALL_OF_FAME", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_ChampionsRoom_Frlg/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..9b66bc9b8e0b --- /dev/null +++ b/data/maps/PokemonLeague_ChampionsRoom_Frlg/scripts.inc @@ -0,0 +1,327 @@ +PokemonLeague_ChampionsRoom_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PokemonLeague_ChampionsRoom_OnWarp + map_script MAP_SCRIPT_ON_RESUME, PokemonLeague_ChampionsRoom_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, PokemonLeague_ChampionsRoom_OnFrame + .byte 0 + +PokemonLeague_ChampionsRoom_OnResume:: + setvar VAR_0x8004, 4 + call PokemonLeague_EventScript_DoLightingEffect + call_if_eq VAR_STARTER_MON, 2, PokemonLeague_ChampionsRoom_EventScript_CheckStopTriggerSquirtle + call_if_eq VAR_STARTER_MON, 1, PokemonLeague_ChampionsRoom_EventScript_CheckStopTriggerBulbasaur + call_if_eq VAR_STARTER_MON, 0, PokemonLeague_ChampionsRoom_EventScript_CheckStopTriggerCharmander + end + +PokemonLeague_ChampionsRoom_EventScript_CheckStopTriggerSquirtle:: + goto_if_defeated TRAINER_CHAMPION_FIRST_SQUIRTLE, PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + goto_if_defeated TRAINER_CHAMPION_REMATCH_SQUIRTLE, PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + return + +PokemonLeague_ChampionsRoom_EventScript_CheckStopTriggerBulbasaur:: + goto_if_defeated TRAINER_CHAMPION_FIRST_BULBASAUR, PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + goto_if_defeated TRAINER_CHAMPION_REMATCH_BULBASAUR, PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + return + +PokemonLeague_ChampionsRoom_EventScript_CheckStopTriggerCharmander:: + goto_if_defeated TRAINER_CHAMPION_FIRST_CHARMANDER, PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + goto_if_defeated TRAINER_CHAMPION_REMATCH_CHARMANDER, PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + return + +PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger:: + setvar VAR_TEMP_1, 1 + return + +PokemonLeague_ChampionsRoom_OnWarp:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_ChampionsRoom_EventScript_TurnPlayerNorth + .2byte 0 + +PokemonLeague_ChampionsRoom_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PokemonLeague_ChampionsRoom_OnFrame:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_ChampionsRoom_EventScript_EnterRoom + .2byte 0 + +PokemonLeague_ChampionsRoom_EventScript_EnterRoom:: + lockall + textcolor NPC_TEXT_COLOR_MALE + setflag FLAG_TEMP_2 + applymovement LOCALID_PLAYER, PokemonLeague_ChampionsRoom_Movement_PlayerEnter + waitmovement 0 + delay 20 + call_if_unset FLAG_SYS_GAME_CLEAR, PokemonLeague_ChampionsRoom_EventScript_Intro + call_if_set FLAG_SYS_GAME_CLEAR, PokemonLeague_ChampionsRoom_EventScript_RematchIntro + setflag FLAG_TEMP_3 + setflag FLAG_TEMP_5 + savebgm MUS_VICTORY_GYM_LEADER + call_if_unset FLAG_IS_CHAMPION, PokemonLeague_ChampionsRoom_EventScript_Battle + call_if_set FLAG_IS_CHAMPION, PokemonLeague_ChampionsRoom_EventScript_Rematch + setflag FLAG_TEMP_4 + clearflag FLAG_TEMP_5 + setflag FLAG_DEFEATED_CHAMP + setflag FLAG_TEMP_4 + msgbox PokemonLeague_ChampionsRoom_Text_PostBattle + playbgm MUS_RG_SLOW_PALLET, 0 + addobject LOCALID_CHAMPIONS_ROOM_PROF_OAK + msgbox PokemonLeague_ChampionsRoom_Text_OakPlayer + closemessage + applymovement LOCALID_PLAYER, PokemonLeague_ChampionsRoom_Movement_PlayerWatchOakEnter + applymovement LOCALID_KANTO_CHAMPIONS_ROOM_RIVAL, PokemonLeague_ChampionsRoom_Movement_RivalWatchOakEnter + applymovement LOCALID_CHAMPIONS_ROOM_PROF_OAK, PokemonLeague_ChampionsRoom_Movement_OakEnter + waitmovement 0 + delay 25 + specialvar VAR_RESULT, GetStarterPokemon + bufferspeciesname STR_VAR_1, VAR_RESULT + msgbox PokemonLeague_ChampionsRoom_Text_OakCongratulations + applymovement LOCALID_CHAMPIONS_ROOM_PROF_OAK, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_KANTO_CHAMPIONS_ROOM_RIVAL, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + msgbox PokemonLeague_ChampionsRoom_Text_OakImDisappointedRival + closemessage + applymovement LOCALID_CHAMPIONS_ROOM_PROF_OAK, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + delay 20 + msgbox PokemonLeague_ChampionsRoom_Text_OakPlayerComeWithMe + closemessage + delay 13 + applymovement LOCALID_CHAMPIONS_ROOM_PROF_OAK, PokemonLeague_ChampionsRoom_Movement_OakExit + applymovement LOCALID_PLAYER, PokemonLeague_ChampionsRoom_Movement_PlayerExit + waitmovement 0 + setvar VAR_TEMP_1, 1 + warp MAP_POKEMON_LEAGUE_HALL_OF_FAME, 5, 12 + waitstate + releaseall + end + +PokemonLeague_ChampionsRoom_EventScript_QuestLogEnd:: + call PokemonLeague_ChampionsRoom_EventScript_StopSceneTrigger + releaseall + end + +PokemonLeague_ChampionsRoom_EventScript_Battle:: + call_if_eq VAR_STARTER_MON, 2, PokemonLeague_ChampionsRoom_EventScript_BattleSquirtle + call_if_eq VAR_STARTER_MON, 1, PokemonLeague_ChampionsRoom_EventScript_BattleBulbasaur + call_if_eq VAR_STARTER_MON, 0, PokemonLeague_ChampionsRoom_EventScript_BattleCharmander + return + +PokemonLeague_ChampionsRoom_EventScript_Rematch:: + call_if_eq VAR_STARTER_MON, 2, PokemonLeague_ChampionsRoom_EventScript_RematchSquirtle + call_if_eq VAR_STARTER_MON, 1, PokemonLeague_ChampionsRoom_EventScript_RematchBulbasaur + call_if_eq VAR_STARTER_MON, 0, PokemonLeague_ChampionsRoom_EventScript_RematchCharmander + return + +PokemonLeague_ChampionsRoom_EventScript_Intro:: + msgbox PokemonLeague_ChampionsRoom_Text_Intro + return + +PokemonLeague_ChampionsRoom_EventScript_RematchIntro:: + msgbox PokemonLeague_ChampionsRoom_Text_RematchIntro + return + +PokemonLeague_ChampionsRoom_EventScript_BattleSquirtle:: + trainerbattle_no_intro TRAINER_CHAMPION_FIRST_SQUIRTLE, PokemonLeague_ChampionsRoom_Text_Defeat + return + +PokemonLeague_ChampionsRoom_EventScript_BattleBulbasaur:: + trainerbattle_no_intro TRAINER_CHAMPION_FIRST_BULBASAUR, PokemonLeague_ChampionsRoom_Text_Defeat + return + +PokemonLeague_ChampionsRoom_EventScript_BattleCharmander:: + trainerbattle_no_intro TRAINER_CHAMPION_FIRST_CHARMANDER, PokemonLeague_ChampionsRoom_Text_Defeat + return + +PokemonLeague_ChampionsRoom_EventScript_RematchSquirtle:: + trainerbattle_no_intro TRAINER_CHAMPION_REMATCH_SQUIRTLE, PokemonLeague_ChampionsRoom_Text_Defeat + return + +PokemonLeague_ChampionsRoom_EventScript_RematchBulbasaur:: + trainerbattle_no_intro TRAINER_CHAMPION_REMATCH_BULBASAUR, PokemonLeague_ChampionsRoom_Text_Defeat + return + +PokemonLeague_ChampionsRoom_EventScript_RematchCharmander:: + trainerbattle_no_intro TRAINER_CHAMPION_REMATCH_CHARMANDER, PokemonLeague_ChampionsRoom_Text_Defeat + return + +PokemonLeague_ChampionsRoom_Movement_PlayerEnter:: + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +PokemonLeague_ChampionsRoom_Movement_PlayerExit:: + delay_16 + walk_left + walk_up + walk_up + walk_up + walk_right + walk_up + walk_up + walk_up + walk_up + delay_8 + set_invisible + step_end + +PokemonLeague_ChampionsRoom_Movement_PlayerWatchOakEnter:: + delay_8 + walk_in_place_faster_down + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_left + step_end + +PokemonLeague_ChampionsRoom_Movement_OakEnter:: + delay_16 + delay_16 + walk_up + walk_up + walk_up + walk_up + walk_up + walk_left + walk_up + walk_up + walk_in_place_faster_down + delay_16 + step_end + +PokemonLeague_ChampionsRoom_Movement_OakExit:: + walk_up + walk_up + walk_right + walk_up + walk_up + walk_up + walk_up + delay_8 + set_invisible + step_end + +PokemonLeague_ChampionsRoom_Movement_RivalWatchOakEnter:: + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_left + step_end + +PokemonLeague_ChampionsRoom_Text_Intro:: + .string "{RIVAL}: Hey, {PLAYER}!\p" + .string "I was looking forward to seeing\n" + .string "you, {PLAYER}.\p" + .string "My rival should be strong to keep\n" + .string "me sharp.\p" + .string "While working on my POKéDEX, I\n" + .string "looked all over for POKéMON.\p" + .string "Not only that, I assembled teams\n" + .string "that would beat any POKéMON type.\p" + .string "And now…\p" + .string "I'm the POKéMON LEAGUE CHAMPION!\p" + .string "{PLAYER}!\n" + .string "Do you know what that means?\p" + .string "I'll tell you.\p" + .string "I am the most powerful TRAINER in\n" + .string "the world!$" + +PokemonLeague_ChampionsRoom_Text_RematchIntro:: + .string "{RIVAL}: Hey, {PLAYER}!\p" + .string "You came back, {PLAYER}!\n" + .string "Hahah, that is so great!\p" + .string "My rival should be strong to keep\n" + .string "me sharp.\p" + .string "While working on my POKéDEX, I\n" + .string "looked all over for POKéMON.\p" + .string "Not only that, I assembled teams\n" + .string "that would beat any POKéMON type.\p" + .string "And now…\p" + .string "I'm the POKéMON LEAGUE CHAMPION!\p" + .string "{PLAYER}!\n" + .string "Do you know what that means?\p" + .string "I'll tell you.\p" + .string "I am the most powerful TRAINER in\n" + .string "the world!$" + +PokemonLeague_ChampionsRoom_Text_Defeat:: + .string "NO!\n" + .string "That can't be!\l" + .string "You beat me at my best!\p" + .string "After all that work to become\n" + .string "the LEAGUE CHAMP?\p" + .string "My reign is over already?\n" + .string "It's not fair!$" + +PokemonLeague_ChampionsRoom_Text_Victory:: + .string "はーはッ!\n" + .string "かった! かった! かった!\p" + .string "{PLAYER}に まける ような\n" + .string "おれさま では なーい!\p" + .string "ま! ポケモンの\n" + .string "てんさい {RIVAL}さま あいてに\l" + .string "ここまで よく がんばった!\p" + .string "ほめて つかわす!\n" + .string "はーッ! はーはッはッ!$" + +PokemonLeague_ChampionsRoom_Text_PostBattle:: + .string "Why?\n" + .string "Why did I lose?\p" + .string "I never made any mistakes raising\n" + .string "my POKéMON…\p" + .string "Darn it! You're the new POKéMON\n" + .string "LEAGUE CHAMPION!\p" + .string "Although I don't like to admit it…$" + +PokemonLeague_ChampionsRoom_Text_OakPlayer:: + .string "OAK: {PLAYER}!$" + +PokemonLeague_ChampionsRoom_Text_OakCongratulations:: + .string "OAK: So, you've won!\n" + .string "Sincerely, congratulations!\p" + .string "You're the new POKéMON LEAGUE\n" + .string "CHAMPION!\p" + .string "You've grown up so much since you\n" + .string "first left with {STR_VAR_1} to work\l" + .string "on the POKéDEX.\p" + .string "{PLAYER}, you have come of age!$" + +PokemonLeague_ChampionsRoom_Text_OakImDisappointedRival:: + .string "OAK: {RIVAL}…\n" + .string "I'm disappointed in you.\p" + .string "I came when I heard you'd beaten\n" + .string "the ELITE FOUR.\p" + .string "But, when I got here, you had\n" + .string "already lost!\p" + .string "{RIVAL}, do you understand why\n" + .string "you lost?\p" + .string "You have forgotten to treat your\n" + .string "POKéMON with love and trust.\p" + .string "Without them, you will never\n" + .string "become a CHAMP again!$" + +PokemonLeague_ChampionsRoom_Text_OakPlayerComeWithMe:: + .string "OAK: {PLAYER}.\p" + .string "You understand that your victory\n" + .string "was not just your own doing.\p" + .string "The bond you share with your\n" + .string "POKéMON is marvelous.\p" + .string "{PLAYER}!\n" + .string "Come with me!$" + diff --git a/data/maps/PokemonLeague_HallOfFame_Frlg/map.json b/data/maps/PokemonLeague_HallOfFame_Frlg/map.json new file mode 100644 index 000000000000..202ad1b8fe85 --- /dev/null +++ b/data/maps/PokemonLeague_HallOfFame_Frlg/map.json @@ -0,0 +1,46 @@ +{ + "id": "MAP_POKEMON_LEAGUE_HALL_OF_FAME", + "name": "PokemonLeague_HallOfFame_Frlg", + "layout": "LAYOUT_POKEMON_LEAGUE_HALL_OF_FAME", + "music": "MUS_RG_SLOW_PALLET", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_HALL_OF_FAME_PROF_OAK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 12, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_HallOfFame_Frlg/scripts.inc b/data/maps/PokemonLeague_HallOfFame_Frlg/scripts.inc new file mode 100644 index 000000000000..71734550fbf8 --- /dev/null +++ b/data/maps/PokemonLeague_HallOfFame_Frlg/scripts.inc @@ -0,0 +1,70 @@ +PokemonLeague_HallOfFame_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, PokemonLeague_HallOfFame_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PokemonLeague_HallOfFame_OnWarp + .byte 0 + +PokemonLeague_HallOfFame_OnWarp:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_HallOfFame_EventScript_TurnPlayerNorth + .2byte 0 + +PokemonLeague_HallOfFame_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PokemonLeague_HallOfFame_OnFrame:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_HallOfFame_EventScript_EnterRoom + .2byte 0 + +PokemonLeague_HallOfFame_EventScript_EnterRoom:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, PokemonLeague_HallOfFame_Movement_EnterRoom + waitmovement 0 + applymovement LOCALID_HALL_OF_FAME_PROF_OAK, Common_Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + delay 18 + msgbox PokemonLeague_HallOfFame_Text_OakCongratulations + closemessage + applymovement LOCALID_HALL_OF_FAME_PROF_OAK, Common_Movement_WalkInPlaceFasterUp + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + delay 20 + dofieldeffect FLDEFF_HALL_OF_FAME_RECORD_FRLG + waitfieldeffect FLDEFF_HALL_OF_FAME_RECORD_FRLG + delay 40 + setvar VAR_TEMP_1, 1 + call EventScript_SetDefeatedEliteFourFlagsVars + setrespawn HEAL_LOCATION_PALLET_TOWN + fadescreenspeed FADE_TO_BLACK, 24 + special EnterHallOfFame + waitstate + releaseall + end + +PokemonLeague_HallOfFame_Movement_EnterRoom:: + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +PokemonLeague_HallOfFame_Text_OakCongratulations:: + .string "OAK: Er-hem!\n" + .string "Congratulations, {PLAYER}!\p" + .string "This floor is the POKéMON HALL OF\n" + .string "FAME.\p" + .string "POKéMON LEAGUE CHAMPIONS are\n" + .string "honored for their exploits here.\p" + .string "Their POKéMON are also recorded in\n" + .string "the HALL OF FAME.\p" + .string "{PLAYER}!\p" + .string "You have worked hard to become\n" + .string "the new LEAGUE CHAMPION.\p" + .string "Congratulations, {PLAYER}, you and\n" + .string "your POKéMON are HALL OF FAMERS!$" + diff --git a/data/maps/PokemonLeague_LancesRoom_Frlg/map.json b/data/maps/PokemonLeague_LancesRoom_Frlg/map.json new file mode 100644 index 000000000000..f57bb46707be --- /dev/null +++ b/data/maps/PokemonLeague_LancesRoom_Frlg/map.json @@ -0,0 +1,53 @@ +{ + "id": "MAP_POKEMON_LEAGUE_LANCES_ROOM", + "name": "PokemonLeague_LancesRoom_Frlg", + "layout": "LAYOUT_POKEMON_LEAGUE_LANCES_ROOM", + "music": "MUS_VICTORY_ROAD", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_LANCE", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_LANCE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LANCE", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonLeague_LancesRoom_EventScript_Lance", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 23, + "y": 13, + "elevation": 3, + "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 5, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonLeague_LancesRoom_Frlg/scripts.inc b/data/maps/PokemonLeague_LancesRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..d83e3c6ddc0c --- /dev/null +++ b/data/maps/PokemonLeague_LancesRoom_Frlg/scripts.inc @@ -0,0 +1,218 @@ +PokemonLeague_LancesRoom_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, PokemonLeague_LancesRoom_OnResume + map_script MAP_SCRIPT_ON_LOAD, PokemonLeague_LancesRoom_OnLoad + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PokemonLeague_LancesRoom_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, PokemonLeague_LancesRoom_OnFrame + .byte 0 + +PokemonLeague_LancesRoom_OnResume:: + setvar VAR_0x8004, 3 + call PokemonLeague_EventScript_DoLightingEffect + end + +PokemonLeague_LancesRoom_OnLoad:: + call_if_eq VAR_MAP_SCENE_POKEMON_LEAGUE, 4, PokemonLeague_LancesRoom_EventScript_CloseEntry + call_if_set FLAG_DEFEATED_LANCE, PokemonLeague_LancesRoom_EventScript_SetDoorOpen + end + +PokemonLeague_LancesRoom_EventScript_CloseEntry:: + call PokemonLeague_LancesRoom_EventScript_SetEntryClosed + return + +PokemonLeague_LancesRoom_EventScript_SetDoorOpen:: + call PokemonLeague_EventScript_SetDoorOpenLance + return + +PokemonLeague_LancesRoom_OnWarp:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_LancesRoom_EventScript_TurnPlayerNorth + .2byte 0 + +PokemonLeague_LancesRoom_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PokemonLeague_LancesRoom_OnFrame:: + map_script_2 VAR_MAP_SCENE_POKEMON_LEAGUE, 3, PokemonLeague_LancesRoom_EventScript_EnterRoom + .2byte 0 + +PokemonLeague_LancesRoom_EventScript_EnterRoom:: + lockall + applymovement LOCALID_PLAYER, PokemonLeague_LancesRoom_Movement_WalkThroughCorridor + waitmovement 0 + setflag FLAG_TEMP_2 + call PokemonLeague_LancesRoom_EventScript_SetEntryClosed + playse SE_UNLOCK + special DrawWholeMapView + waitse + setvar VAR_MAP_SCENE_POKEMON_LEAGUE, 4 + releaseall + end + +PokemonLeague_LancesRoom_EventScript_SetEntryClosed:: + setmetatile 5, 14, METATILE_PokemonLeague_Entry_TopLeft_Closed, 1 + setmetatile 6, 14, METATILE_PokemonLeague_Entry_TopMid_Closed, 1 + setmetatile 7, 14, METATILE_PokemonLeague_Entry_TopRight_Closed, 1 + setmetatile 5, 15, METATILE_PokemonLeague_Entry_BottomLeft_Closed, 1 + setmetatile 6, 15, METATILE_PokemonLeague_Entry_BottomMid_Closed, 1 + setmetatile 7, 15, METATILE_PokemonLeague_Entry_BottomRight_Closed, 1 + setmetatile 6, 16, METATILE_PokemonLeague_Floor_ShadeFull_Lance, 0 + setmetatile 7, 16, METATILE_PokemonLeague_Floor_ShadeFull_Lance, 0 + return + +PokemonLeague_LancesRoom_Movement_WalkThroughCorridor:: + walk_up + walk_up + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +PokemonLeague_LancesRoom_EventScript_Lance:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + goto_if_set FLAG_DEFEATED_LANCE, PokemonLeague_LancesRoom_EventScript_PostBattle + famechecker FAMECHECKER_LANCE, 0 + famechecker FAMECHECKER_LANCE, 1 + call_if_unset FLAG_SYS_GAME_CLEAR, PokemonLeague_LancesRoom_EventScript_Intro + call_if_set FLAG_SYS_GAME_CLEAR, PokemonLeague_LancesRoom_EventScript_RematchIntro + setflag FLAG_TEMP_3 + setflag FLAG_TEMP_5 + call_if_unset FLAG_IS_CHAMPION, PokemonLeague_LancesRoom_EventScript_Battle + call_if_set FLAG_IS_CHAMPION, PokemonLeague_LancesRoom_EventScript_Rematch + clearflag FLAG_TEMP_5 + goto PokemonLeague_LancesRoom_EventScript_DefeatedLance + end + +PokemonLeague_LancesRoom_EventScript_Intro:: + msgbox PokemonLeague_LancesRoom_Text_Intro + return + +PokemonLeague_LancesRoom_EventScript_RematchIntro:: + msgbox PokemonLeague_LancesRoom_Text_RematchIntro + return + +PokemonLeague_LancesRoom_EventScript_Battle:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_LANCE, PokemonLeague_LancesRoom_Text_Defeat + return + +PokemonLeague_LancesRoom_EventScript_Rematch:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_LANCE_2, PokemonLeague_LancesRoom_Text_Defeat + return + +PokemonLeague_LancesRoom_EventScript_PostBattle:: + msgbox PokemonLeague_LancesRoom_Text_PostBattle + release + end + +PokemonLeague_LancesRoom_EventScript_DefeatedLance:: + setvar VAR_0x8004, 0 + special Script_TryGainNewFanFromCounterFrlg + setflag FLAG_DEFEATED_LANCE + call PokemonLeague_EventScript_OpenDoorLance + msgbox PokemonLeague_LancesRoom_Text_PostBattle + closemessage + release + end + +PokemonLeague_LancesRoom_EventScript_LanceMoveOutOfWayLeft:: + applymovement LOCALID_LANCE, PokemonLeague_LancesRoom_Movement_LanceMoveOutOfWayLeft + waitmovement 0 + return + +PokemonLeague_LancesRoom_EventScript_LanceMoveOutOfWayRight:: + applymovement LOCALID_LANCE, PokemonLeague_LancesRoom_Movement_LanceMoveOutOfWayRight + waitmovement 0 + return + +PokemonLeague_LancesRoom_Movement_LanceMoveOutOfWayLeft:: + walk_left + walk_in_place_faster_right + step_end + +PokemonLeague_LancesRoom_Movement_LanceMoveOutOfWayRight:: + walk_right + walk_in_place_faster_left + step_end + +PokemonLeague_LancesRoom_Text_Intro:: + .string "Ah! I've heard about you,\n" + .string "{PLAYER}!\p" + .string "I lead the ELITE FOUR.\p" + .string "You can call me LANCE the dragon\n" + .string "TRAINER.\p" + .string "You know that dragons are\n" + .string "mythical POKéMON.\p" + .string "They're hard to catch and raise,\n" + .string "but their powers are superior.\p" + .string "They're virtually indestructible.\n" + .string "There's no being clever with them.\p" + .string "Well, are you ready to lose?\p" + .string "Your LEAGUE challenge ends with\n" + .string "me, {PLAYER}!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_LancesRoom_Text_RematchIntro:: + .string "Ah!\n" + .string "So, you've returned, {PLAYER}!\p" + .string "I lead the ELITE FOUR.\p" + .string "You can call me LANCE the dragon\n" + .string "TRAINER.\p" + .string "You know that dragons are\n" + .string "mythical POKéMON.\p" + .string "They're hard to catch and raise,\n" + .string "but their powers are superior.\p" + .string "They're virtually indestructible.\n" + .string "There's no being clever with them.\p" + .string "Well, are you ready to lose?\p" + .string "Your LEAGUE challenge ends with\n" + .string "me, {PLAYER}!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_LancesRoom_Text_Defeat:: + .string "That's it!\p" + .string "I hate to admit it, but you are a\n" + .string "POKéMON master!$" + +PokemonLeague_LancesRoom_Text_PostBattle:: + .string "I still can't believe my dragons\n" + .string "lost to you, {PLAYER}.\p" + .string "You are now the POKéMON LEAGUE\n" + .string "CHAMPION!\p" + .string "…Or, you would have been, but\n" + .string "you have one more challenge left.\p" + .string "There is one more TRAINER to face!\n" + .string "His name is…\p" + .string "{RIVAL}!\p" + .string "He beat the ELITE FOUR before\n" + .string "you.\p" + .string "He is the real POKéMON LEAGUE\n" + .string "CHAMPION.$" + diff --git a/data/maps/PokemonLeague_LoreleisRoom_Frlg/map.json b/data/maps/PokemonLeague_LoreleisRoom_Frlg/map.json new file mode 100644 index 000000000000..98da4e804d8e --- /dev/null +++ b/data/maps/PokemonLeague_LoreleisRoom_Frlg/map.json @@ -0,0 +1,56 @@ +{ + "id": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", + "name": "PokemonLeague_LoreleisRoom_Frlg", + "layout": "LAYOUT_POKEMON_LEAGUE_LORELEIS_ROOM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_LEAGUE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_LORELEI", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LORELEI", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonLeague_LoreleisRoom_EventScript_Lorelei", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 12, + "elevation": 0, + "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/PokemonLeague_LoreleisRoom_Frlg/scripts.inc b/data/maps/PokemonLeague_LoreleisRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..979343bedd94 --- /dev/null +++ b/data/maps/PokemonLeague_LoreleisRoom_Frlg/scripts.inc @@ -0,0 +1,127 @@ +PokemonLeague_LoreleisRoom_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, PokemonLeague_LoreleisRoom_OnResume + map_script MAP_SCRIPT_ON_LOAD, PokemonLeague_LoreleisRoom_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, PokemonLeague_LoreleisRoom_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PokemonLeague_LoreleisRoom_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, PokemonLeague_LoreleisRoom_OnFrame + .byte 0 + +PokemonLeague_LoreleisRoom_OnResume:: + setvar VAR_0x8004, 0 + call PokemonLeague_EventScript_DoLightingEffect + end + +PokemonLeague_LoreleisRoom_OnLoad:: + call_if_set FLAG_DEFEATED_LORELEI, PokemonLeague_LoreleisRoom_EventScript_SetDoorOpen + call_if_eq VAR_MAP_SCENE_POKEMON_LEAGUE, 1, PokemonLeague_LoreleisRoom_EventScript_CloseEntry + end + +PokemonLeague_LoreleisRoom_EventScript_CloseEntry:: + call PokemonLeague_EventScript_CloseEntry + return + +PokemonLeague_LoreleisRoom_EventScript_SetDoorOpen:: + call PokemonLeague_EventScript_SetDoorOpen + return + +PokemonLeague_LoreleisRoom_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM + end + +PokemonLeague_LoreleisRoom_OnWarp:: + map_script_2 VAR_TEMP_1, 0, PokemonLeague_LoreleisRoom_EventScript_TurnPlayerNorth + .2byte 0 + +PokemonLeague_LoreleisRoom_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +PokemonLeague_LoreleisRoom_OnFrame:: + map_script_2 VAR_MAP_SCENE_POKEMON_LEAGUE, 0, PokemonLeague_LoreleisRoom_EventScript_EnterRoom + .2byte 0 + +PokemonLeague_LoreleisRoom_EventScript_EnterRoom:: + lockall + call PokemonLeague_EventScript_EnterRoom + setvar VAR_MAP_SCENE_POKEMON_LEAGUE, 1 + releaseall + end + +PokemonLeague_LoreleisRoom_EventScript_Lorelei:: + lock + faceplayer + famechecker FAMECHECKER_LORELEI, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + goto_if_set FLAG_DEFEATED_LORELEI, PokemonLeague_LoreleisRoom_EventScript_PostBattle + famechecker FAMECHECKER_LORELEI, 0 + famechecker FAMECHECKER_LORELEI, 1 + call_if_unset FLAG_IS_CHAMPION, PokemonLeague_LoreleisRoom_EventScript_Intro + call_if_set FLAG_IS_CHAMPION, PokemonLeague_LoreleisRoom_EventScript_RematchIntro + setflag FLAG_TEMP_3 + setflag FLAG_TEMP_5 + call_if_unset FLAG_IS_CHAMPION, PokemonLeague_LoreleisRoom_EventScript_Battle + call_if_set FLAG_IS_CHAMPION, PokemonLeague_LoreleisRoom_EventScript_Rematch + clearflag FLAG_TEMP_5 + goto PokemonLeague_LoreleisRoom_EventScript_DefeatedLorelei + end + +PokemonLeague_LoreleisRoom_EventScript_Intro:: + msgbox PokemonLeague_LoreleisRoom_Text_Intro + return + +PokemonLeague_LoreleisRoom_EventScript_RematchIntro:: + msgbox PokemonLeague_LoreleisRoom_Text_RematchIntro + return + +PokemonLeague_LoreleisRoom_EventScript_Battle:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_LORELEI, PokemonLeague_LoreleisRoom_Text_Defeat + return + +PokemonLeague_LoreleisRoom_EventScript_Rematch:: + trainerbattle_no_intro TRAINER_ELITE_FOUR_LORELEI_2, PokemonLeague_LoreleisRoom_Text_Defeat + return + +PokemonLeague_LoreleisRoom_EventScript_PostBattle:: + msgbox PokemonLeague_LoreleisRoom_Text_PostBattle + release + end + +PokemonLeague_LoreleisRoom_EventScript_DefeatedLorelei:: + setflag FLAG_DEFEATED_LORELEI + call PokemonLeague_EventScript_OpenDoor + msgbox PokemonLeague_LoreleisRoom_Text_PostBattle + release + end + +PokemonLeague_LoreleisRoom_Text_Intro:: + .string "Welcome to the POKéMON LEAGUE.\p" + .string "I am LORELEI of the ELITE FOUR.\p" + .string "No one can best me when it comes\n" + .string "to icy POKéMON.\p" + .string "Freezing moves are powerful.\p" + .string "Your POKéMON will be at my mercy\n" + .string "when they are frozen solid.\p" + .string "Hahaha!\n" + .string "Are you ready?{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_LoreleisRoom_Text_RematchIntro:: + .string "Welcome to the POKéMON LEAGUE.\p" + .string "I, LORELEI of the ELITE FOUR,\n" + .string "have returned!\p" + .string "You know how it goes.\n" + .string "No one can best me when it comes\l" + .string "to icy POKéMON.\p" + .string "Freezing moves are powerful.\p" + .string "Your POKéMON will be at my mercy\n" + .string "when they are frozen solid.\p" + .string "Hahaha!\n" + .string "Are you ready?{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +PokemonLeague_LoreleisRoom_Text_Defeat:: + .string "…Things shouldn't be this way!$" + +PokemonLeague_LoreleisRoom_Text_PostBattle:: + .string "You're better than I thought.\n" + .string "Go on ahead.\p" + .string "You only got a taste of the\n" + .string "POKéMON LEAGUE's power.$" + diff --git a/data/maps/PokemonMansion_1F_Frlg/map.json b/data/maps/PokemonMansion_1F_Frlg/map.json new file mode 100644 index 000000000000..f1370efadcb6 --- /dev/null +++ b/data/maps/PokemonMansion_1F_Frlg/map.json @@ -0,0 +1,185 @@ +{ + "id": "MAP_POKEMON_MANSION_1F", + "name": "PokemonMansion_1F_Frlg", + "layout": "LAYOUT_POKEMON_MANSION_1F", + "music": "MUS_RG_POKE_MANSION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 22, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "PokemonMansion_1F_EventScript_Ted", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 29, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_1F_EventScript_ItemCarbos", + "flag": "FLAG_HIDE_POKEMON_MANSION_1F_CARBOS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 22, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_1F_EventScript_ItemEscapeRope", + "flag": "FLAG_HIDE_POKEMON_MANSION_1F_ESCAPE_ROPE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 27, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_1F_EventScript_ItemProtein", + "flag": "FLAG_HIDE_POKEMON_MANSION_1F_PROTEIN" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 8, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "PokemonMansion_1F_EventScript_Johnson", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 13, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "2" + }, + { + "x": 25, + "y": 27, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_B1F", + "dest_warp_id": "0" + }, + { + "x": 34, + "y": 33, + "elevation": 3, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 35, + "y": 34, + "elevation": 0, + "dest_map": "MAP_CINNABAR_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 19, + "y": 22, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": "3" + }, + { + "x": 20, + "y": 22, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": "4" + }, + { + "x": 11, + "y": 13, + "elevation": 0, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "2" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 5, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PokemonMansion_1F_EventScript_Statue" + }, + { + "type": "hidden_item", + "x": 2, + "y": 21, + "elevation": 0, + "item": "ITEM_MOON_STONE", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/PokemonMansion_1F_Frlg/scripts.inc b/data/maps/PokemonMansion_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..09c722d20dcc --- /dev/null +++ b/data/maps/PokemonMansion_1F_Frlg/scripts.inc @@ -0,0 +1,57 @@ +PokemonMansion_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, PokemonMansion_1F_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, PokemonMansion_1F_OnTransition + .byte 0 + +PokemonMansion_1F_OnLoad:: + call_if_set FLAG_POKEMON_MANSION_SWITCH_STATE, PokemonMansion_EventScript_PressSwitch_1F + end + +PokemonMansion_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_POKEMON_MANSION_1F + end + +PokemonMansion_1F_EventScript_Statue:: + lockall + setvar VAR_0x8004, 0 + call PokemonMansion_EventScript_SecretSwitch + playse SE_UNLOCK + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_1F_EventScript_Ted:: + trainerbattle_single TRAINER_SCIENTIST_TED, PokemonMansion_1F_Text_TedIntro, PokemonMansion_1F_Text_TedDefeat + msgbox PokemonMansion_1F_Text_TedPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_1F_EventScript_Johnson:: + trainerbattle_single TRAINER_YOUNGSTER_JOHNSON, PokemonMansion_1F_Text_JohnsonIntro, PokemonMansion_1F_Text_JohnsonDefeat + msgbox PokemonMansion_1F_Text_JohnsonPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_1F_Text_TedIntro:: + .string "Who are you?\n" + .string "There shouldn't be anyone here.$" + +PokemonMansion_1F_Text_TedDefeat:: + .string "Ouch!$" + +PokemonMansion_1F_Text_TedPostBattle:: + .string "A key? I don't know what you're\n" + .string "talking about.$" + +PokemonMansion_1F_Text_JohnsonIntro:: + .string "W-w-waah! You startled me!\n" + .string "I thought you were a ghost.$" + +PokemonMansion_1F_Text_JohnsonDefeat:: + .string "Tch!\n" + .string "I can't get any wins.$" + +PokemonMansion_1F_Text_JohnsonPostBattle:: + .string "I was exploring here by myself,\n" + .string "but I feel spooked.\p" + .string "I ought to go soon.$" + diff --git a/data/maps/PokemonMansion_2F_Frlg/map.json b/data/maps/PokemonMansion_2F_Frlg/map.json new file mode 100644 index 000000000000..d28a3ca6fcc7 --- /dev/null +++ b/data/maps/PokemonMansion_2F_Frlg/map.json @@ -0,0 +1,142 @@ +{ + "id": "MAP_POKEMON_MANSION_2F", + "name": "PokemonMansion_2F_Frlg", + "layout": "LAYOUT_POKEMON_MANSION_2F", + "music": "MUS_RG_POKE_MANSION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 5, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "PokemonMansion_2F_EventScript_Arnie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 36, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_2F_EventScript_ItemCalcium", + "flag": "FLAG_HIDE_POKEMON_MANSION_2F_CALCIUM" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 18, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_2F_EventScript_ItemZinc", + "flag": "FLAG_HIDE_POKEMON_MANSION_2F_ZINC" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 35, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_2F_EventScript_ItemHPUp", + "flag": "FLAG_HIDE_POKEMON_MANSION_2F_HP_UP" + } + ], + "warp_events": [ + { + "x": 9, + "y": 3, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": "0" + }, + { + "x": 34, + "y": 22, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 14, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": "3" + }, + { + "x": 9, + "y": 14, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": "2" + }, + { + "x": 27, + "y": 17, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_3F", + "dest_warp_id": "5" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 2, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PokemonMansion_2F_EventScript_Statue" + }, + { + "type": "sign", + "x": 6, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PokemonMansion_2F_EventScript_DiaryJuly10th" + }, + { + "type": "sign", + "x": 25, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PokemonMansion_2F_EventScript_DiaryJuly5th" + } + ] +} diff --git a/data/maps/PokemonMansion_2F_Frlg/scripts.inc b/data/maps/PokemonMansion_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..168649c8092e --- /dev/null +++ b/data/maps/PokemonMansion_2F_Frlg/scripts.inc @@ -0,0 +1,64 @@ +PokemonMansion_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, PokemonMansion_2F_OnLoad + .byte 0 + +PokemonMansion_2F_OnLoad:: + call_if_set FLAG_POKEMON_MANSION_SWITCH_STATE, PokemonMansion_EventScript_PressSwitch_2F + end + +PokemonMansion_2F_EventScript_Statue:: + lockall + setvar VAR_0x8004, 1 + call PokemonMansion_EventScript_SecretSwitch + playse SE_UNLOCK + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_2F_EventScript_DiaryJuly5th:: + msgbox PokemonMansion_1F_Text_NewMonDiscoveredInGuyanaJungle, MSGBOX_SIGN + end + +PokemonMansion_2F_EventScript_DiaryJuly10th:: + msgbox PokemonMansion_1F_Text_ChristenedDiscoveredMonMew, MSGBOX_SIGN + end + +PokemonMansion_2F_EventScript_Arnie:: + trainerbattle_single TRAINER_BURGLAR_ARNIE, PokemonMansion_1F_Text_ArnieIntro, PokemonMansion_1F_Text_ArnieDefeat + msgbox PokemonMansion_1F_Text_ArniePostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_Text_PressSecretSwitch:: + .string "A secret switch!\p" + .string "Press it?$" + +PokemonMansion_Text_WhoWouldnt:: + .string "Who wouldn't?$" + +PokemonMansion_Text_NotQuiteYet:: + .string "Not quite yet!$" + +PokemonMansion_1F_Text_ArnieIntro:: + .string "I can't get out!\n" + .string "This old place is one big puzzle.$" + +PokemonMansion_1F_Text_ArnieDefeat:: + .string "Oh, no!\n" + .string "My bag of loot!$" + +PokemonMansion_1F_Text_ArniePostBattle:: + .string "The switches here open and close\n" + .string "alternating sets of doors.$" + +PokemonMansion_1F_Text_NewMonDiscoveredInGuyanaJungle:: + .string "Diary: July 5\n" + .string "Guyana, South America\p" + .string "A new POKéMON was discovered deep\n" + .string "in the jungle.$" + +PokemonMansion_1F_Text_ChristenedDiscoveredMonMew:: + .string "Diary: July 10\n" + .string "We christened the newly discovered\l" + .string "POKéMON, MEW.$" + diff --git a/data/maps/PokemonMansion_3F_Frlg/map.json b/data/maps/PokemonMansion_3F_Frlg/map.json new file mode 100644 index 000000000000..e57464a9d9b1 --- /dev/null +++ b/data/maps/PokemonMansion_3F_Frlg/map.json @@ -0,0 +1,163 @@ +{ + "id": "MAP_POKEMON_MANSION_3F", + "name": "PokemonMansion_3F_Frlg", + "layout": "LAYOUT_POKEMON_MANSION_3F", + "music": "MUS_RG_POKE_MANSION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 7, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "PokemonMansion_3F_EventScript_Simon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 22, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "PokemonMansion_3F_EventScript_Braydon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 9, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_3F_EventScript_ItemMaxPotion", + "flag": "FLAG_HIDE_POKEMON_MANSION_3F_MAX_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 32, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_3F_EventScript_ItemIron", + "flag": "FLAG_HIDE_POKEMON_MANSION_3F_IRON" + } + ], + "warp_events": [ + { + "x": 8, + "y": 3, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "0" + }, + { + "x": 34, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 11, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "3" + }, + { + "x": 18, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": "7" + }, + { + "x": 19, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": "8" + }, + { + "x": 23, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "4" + }, + { + "x": 20, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": "8" + }, + { + "x": 24, + "y": 18, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_2F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PokemonMansion_3F_EventScript_DiaryFeb6th" + }, + { + "type": "sign", + "x": 12, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PokemonMansion_3F_EventScript_Statue" + }, + { + "type": "hidden_item", + "x": 36, + "y": 13, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/PokemonMansion_3F_Frlg/scripts.inc b/data/maps/PokemonMansion_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..8954af009641 --- /dev/null +++ b/data/maps/PokemonMansion_3F_Frlg/scripts.inc @@ -0,0 +1,57 @@ +PokemonMansion_3F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, PokemonMansion_3F_OnLoad + .byte 0 + +PokemonMansion_3F_OnLoad:: + call_if_set FLAG_POKEMON_MANSION_SWITCH_STATE, PokemonMansion_EventScript_PressSwitch_3F + end + +PokemonMansion_3F_EventScript_Statue:: + lockall + setvar VAR_0x8004, 2 + call PokemonMansion_EventScript_SecretSwitch + playse SE_UNLOCK + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_3F_EventScript_DiaryFeb6th:: + msgbox PokemonMansion_1F_Text_MewGaveBirthToMewtwo, MSGBOX_SIGN + end + +PokemonMansion_3F_EventScript_Simon:: + trainerbattle_single TRAINER_BURGLAR_SIMON, PokemonMansion_1F_Text_SimonIntro, PokemonMansion_1F_Text_SimonDefeat + msgbox PokemonMansion_1F_Text_SimonPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_3F_EventScript_Braydon:: + trainerbattle_single TRAINER_SCIENTIST_BRAYDON, PokemonMansion_1F_Text_BraydonIntro, PokemonMansion_1F_Text_BraydonDefeat + msgbox PokemonMansion_1F_Text_BraydonPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_1F_Text_SimonIntro:: + .string "This place is, like, huge!$" + +PokemonMansion_1F_Text_SimonDefeat:: + .string "Ayah!$" + +PokemonMansion_1F_Text_SimonPostBattle:: + .string "I wonder where my partner went.$" + +PokemonMansion_1F_Text_BraydonIntro:: + .string "My mentor once lived here.$" + +PokemonMansion_1F_Text_BraydonDefeat:: + .string "Whew!\n" + .string "Overwhelming!$" + +PokemonMansion_1F_Text_BraydonPostBattle:: + .string "So, you're stuck?\n" + .string "Try jumping off over there!$" + +PokemonMansion_1F_Text_MewGaveBirthToMewtwo:: + .string "Diary: Feb. 6\n" + .string "MEW gave birth.\p" + .string "We named the newborn MEWTWO.$" + diff --git a/data/maps/PokemonMansion_B1F_Frlg/map.json b/data/maps/PokemonMansion_B1F_Frlg/map.json new file mode 100644 index 000000000000..f24914429896 --- /dev/null +++ b/data/maps/PokemonMansion_B1F_Frlg/map.json @@ -0,0 +1,150 @@ +{ + "id": "MAP_POKEMON_MANSION_B1F", + "name": "PokemonMansion_B1F_Frlg", + "layout": "LAYOUT_POKEMON_MANSION_B1F", + "music": "MUS_RG_POKE_MANSION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_MANSION", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 6, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_B1F_EventScript_ItemTM22", + "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_TM22" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 20, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "PokemonMansion_B1F_EventScript_Lewis", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 34, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "PokemonMansion_B1F_EventScript_Ivan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 23, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_B1F_EventScript_ItemTM14", + "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_TM14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_B1F_EventScript_ItemFullRestore", + "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_FULL_RESTORE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonMansion_B1F_EventScript_ItemSecretKey", + "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_SECRET_KEY" + } + ], + "warp_events": [ + { + "x": 34, + "y": 29, + "elevation": 3, + "dest_map": "MAP_POKEMON_MANSION_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 21, + "y": 27, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "PokemonMansion_B1F_EventScript_DiarySep1st" + }, + { + "type": "sign", + "x": 24, + "y": 29, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PokemonMansion_B1F_EventScript_Statue" + }, + { + "type": "sign", + "x": 27, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "PokemonMansion_B1F_EventScript_Statue" + }, + { + "type": "hidden_item", + "x": 35, + "y": 5, + "elevation": 3, + "item": "ITEM_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/PokemonMansion_B1F_Frlg/scripts.inc b/data/maps/PokemonMansion_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d33d3be37756 --- /dev/null +++ b/data/maps/PokemonMansion_B1F_Frlg/scripts.inc @@ -0,0 +1,60 @@ +PokemonMansion_B1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, PokemonMansion_B1F_OnLoad + .byte 0 + +PokemonMansion_B1F_OnLoad:: + call_if_set FLAG_POKEMON_MANSION_SWITCH_STATE, PokemonMansion_EventScript_PressSwitch_B1F + end + +PokemonMansion_B1F_EventScript_Statue:: + lockall + setvar VAR_0x8004, 3 + call PokemonMansion_EventScript_SecretSwitch + playse SE_UNLOCK + special DrawWholeMapView + waitse + releaseall + end + +PokemonMansion_B1F_EventScript_DiarySep1st:: + msgbox PokemonMansion_B1F_Text_MewtwoIsFarTooPowerful, MSGBOX_SIGN + end + +PokemonMansion_B1F_EventScript_Lewis:: + trainerbattle_single TRAINER_BURGLAR_LEWIS, PokemonMansion_B1F_Text_LewisIntro, PokemonMansion_B1F_Text_LewisDefeat + msgbox PokemonMansion_B1F_Text_LewisPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_B1F_EventScript_Ivan:: + trainerbattle_single TRAINER_SCIENTIST_IVAN, PokemonMansion_B1F_Text_IvanIntro, PokemonMansion_B1F_Text_IvanDefeat + msgbox PokemonMansion_B1F_Text_IvanPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonMansion_B1F_Text_LewisIntro:: + .string "Uh-oh…\n" + .string "Where am I now?$" + +PokemonMansion_B1F_Text_LewisDefeat:: + .string "Awooh!$" + +PokemonMansion_B1F_Text_LewisPostBattle:: + .string "You can find stuff lying around.\n" + .string "The residents must've left them.$" + +PokemonMansion_B1F_Text_IvanIntro:: + .string "This place is ideal for a lab.\n" + .string "Look at all this space.$" + +PokemonMansion_B1F_Text_IvanDefeat:: + .string "What was that for?$" + +PokemonMansion_B1F_Text_IvanPostBattle:: + .string "I like it here.\n" + .string "It's conducive to my studies.$" + +PokemonMansion_B1F_Text_MewtwoIsFarTooPowerful:: + .string "Diary: Sept. 1\n" + .string "MEWTWO is far too powerful.\p" + .string "We have failed to curb its vicious\n" + .string "tendencies…$" + diff --git a/data/maps/PokemonTower_1F_Frlg/map.json b/data/maps/PokemonTower_1F_Frlg/map.json new file mode 100644 index 000000000000..f56f29320ae7 --- /dev/null +++ b/data/maps/PokemonTower_1F_Frlg/map.json @@ -0,0 +1,122 @@ +{ + "id": "MAP_POKEMON_TOWER_1F", + "name": "PokemonTower_1F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_1F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 18, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_1F_EventScript_WorkerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 18, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_1F_EventScript_Channeler", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 15, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_1F_EventScript_Woman1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_1F_EventScript_Woman2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 8, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_1F_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 19, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 18, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 19, + "elevation": 3, + "dest_map": "MAP_LAVENDER_TOWN", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 9, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_2F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_1F_Frlg/scripts.inc b/data/maps/PokemonTower_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..4dc173f21db4 --- /dev/null +++ b/data/maps/PokemonTower_1F_Frlg/scripts.inc @@ -0,0 +1,67 @@ +PokemonTower_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, PokemonTower_1F_OnTransition + .byte 0 + +PokemonTower_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_POKEMON_TOWER_1F + end + +PokemonTower_1F_EventScript_Channeler:: + msgbox PokemonTower_1F_Text_SenseSpiritsUpToMischief, MSGBOX_NPC + end + +PokemonTower_1F_EventScript_Woman1:: + msgbox PokemonTower_1F_Text_GrowlitheWhyDidYouDie, MSGBOX_NPC + end + +PokemonTower_1F_EventScript_BaldingMan:: + msgbox PokemonTower_1F_Text_CameToPrayForDepartedClefairy, MSGBOX_NPC + end + +PokemonTower_1F_EventScript_Woman2:: + lock + faceplayer + checkplayergender + goto_if_eq VAR_RESULT, MALE, PokemonTower_1F_EventScript_Woman2MalePlayer + msgbox PokemonTower_1F_Text_ComeToPayRespectsGirl + release + end + +PokemonTower_1F_EventScript_Woman2MalePlayer:: + msgbox PokemonTower_1F_Text_ComeToPayRespectsSon + release + end + +PokemonTower_1F_EventScript_WorkerF:: + msgbox PokemonTower_1F_Text_ErectedInMemoryOfDeadMons, MSGBOX_NPC + end + +PokemonTower_1F_Text_ErectedInMemoryOfDeadMons:: + .string "POKéMON TOWER was erected in the\n" + .string "memory of POKéMON that died.$" + +PokemonTower_1F_Text_ComeToPayRespectsSon:: + .string "Did you come to pay respects?\p" + .string "Bless your POKéMON-loving heart,\n" + .string "son.$" + +PokemonTower_1F_Text_ComeToPayRespectsGirl:: + .string "Did you come to pay respects?\p" + .string "Bless your POKéMON-loving heart,\n" + .string "girl.$" + +PokemonTower_1F_Text_CameToPrayForDepartedClefairy:: + .string "I came to pray for my dearly\n" + .string "departed CLEFAIRY.\p" + .string "Sniff!\n" + .string "I'm awash in tears…$" + +PokemonTower_1F_Text_GrowlitheWhyDidYouDie:: + .string "My GROWLITHE…\n" + .string "Why did you die?$" + +PokemonTower_1F_Text_SenseSpiritsUpToMischief:: + .string "I am a CHANNELER.\p" + .string "There are spirits up to mischief.\n" + .string "I sense them high in the TOWER.$" + diff --git a/data/maps/PokemonTower_2F_Frlg/map.json b/data/maps/PokemonTower_2F_Frlg/map.json new file mode 100644 index 000000000000..1fff164c7f8c --- /dev/null +++ b/data/maps/PokemonTower_2F_Frlg/map.json @@ -0,0 +1,86 @@ +{ + "id": "MAP_POKEMON_TOWER_2F", + "name": "PokemonTower_2F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_2F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_POKEMON_TOWER_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_TOWER_RIVAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 3, + "y": 7, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_2F_EventScript_Channeler", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_3F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_1F", + "dest_warp_id": "3" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 17, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_POKEMON_TOWER_2F", + "var_value": "0", + "script": "PokemonTower_2F_EventScript_RivalTriggerRight" + }, + { + "type": "trigger", + "x": 16, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_POKEMON_TOWER_2F", + "var_value": "0", + "script": "PokemonTower_2F_EventScript_RivalTriggerDown" + } + ], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_2F_Frlg/scripts.inc b/data/maps/PokemonTower_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..5c0d880b555d --- /dev/null +++ b/data/maps/PokemonTower_2F_Frlg/scripts.inc @@ -0,0 +1,132 @@ +PokemonTower_2F_Frlg_MapScripts:: + .byte 0 + +PokemonTower_2F_EventScript_Channeler:: + msgbox PokemonTower_2F_Text_SilphScopeCouldUnmaskGhosts, MSGBOX_NPC + end + +PokemonTower_2F_EventScript_RivalTriggerRight:: + lockall + setvar VAR_TEMP_1, 0 + goto PokemonTower_2F_EventScript_Rival + end + +PokemonTower_2F_EventScript_RivalTriggerDown:: + lockall + setvar VAR_TEMP_1, 1 + goto PokemonTower_2F_EventScript_Rival + end + +PokemonTower_2F_EventScript_Rival:: + textcolor NPC_TEXT_COLOR_MALE + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + call_if_eq VAR_TEMP_1, 0, PokemonTower_2F_EventScript_RivalFacePlayerRight + call_if_eq VAR_TEMP_1, 1, PokemonTower_2F_EventScript_RivalFacePlayerDown + applymovement LOCALID_POKEMON_TOWER_RIVAL, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_POKEMON_TOWER_RIVAL, Common_Movement_Delay48 + waitmovement 0 + msgbox PokemonTower_2F_Text_RivalIntro + setvar VAR_LAST_TALKED, LOCALID_POKEMON_TOWER_RIVAL + call_if_eq VAR_STARTER_MON, 2, PokemonTower_2F_EventScript_RivalSquirtle + call_if_eq VAR_STARTER_MON, 1, PokemonTower_2F_EventScript_RivalBulbasaur + call_if_eq VAR_STARTER_MON, 0, PokemonTower_2F_EventScript_RivalCharmander + msgbox PokemonTower_2F_Text_RivalPostBattle + closemessage + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_TEMP_1, 0, PokemonTower_2F_EventScript_RivalExitRight + call_if_eq VAR_TEMP_1, 1, PokemonTower_2F_EventScript_RivalExitDown + playse SE_EXIT + delay 25 + fadedefaultbgm + removeobject LOCALID_POKEMON_TOWER_RIVAL + setvar VAR_MAP_SCENE_POKEMON_TOWER_2F, 1 + releaseall + end + +PokemonTower_2F_EventScript_RivalFacePlayerRight:: + applymovement LOCALID_POKEMON_TOWER_RIVAL, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +PokemonTower_2F_EventScript_RivalFacePlayerDown:: + applymovement LOCALID_POKEMON_TOWER_RIVAL, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +PokemonTower_2F_EventScript_RivalSquirtle:: + trainerbattle_no_intro TRAINER_RIVAL_POKEMON_TOWER_SQUIRTLE, PokemonTower_2F_Text_RivalDefeat + return + +PokemonTower_2F_EventScript_RivalBulbasaur:: + trainerbattle_no_intro TRAINER_RIVAL_POKEMON_TOWER_BULBASAUR, PokemonTower_2F_Text_RivalDefeat + return + +PokemonTower_2F_EventScript_RivalCharmander:: + trainerbattle_no_intro TRAINER_RIVAL_POKEMON_TOWER_CHARMANDER, PokemonTower_2F_Text_RivalDefeat + return + +PokemonTower_2F_EventScript_RivalExitRight:: + applymovement LOCALID_POKEMON_TOWER_RIVAL, PokemonTower_2F_Movement_RivalExitRight + waitmovement 0 + return + +PokemonTower_2F_EventScript_RivalExitDown:: + applymovement LOCALID_POKEMON_TOWER_RIVAL, PokemonTower_2F_Movement_RivalExitDown + waitmovement 0 + return + +PokemonTower_2F_Movement_RivalExitRight:: + walk_down + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_in_place_faster_right + step_end + +PokemonTower_2F_Movement_RivalExitDown:: + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_in_place_faster_right + step_end + +PokemonTower_2F_Text_RivalIntro:: + .string "{RIVAL}: Hey, {PLAYER}!\n" + .string "What brings you here?\l" + .string "Is your POKéMON dead?\p" + .string "Hey! It's alive!\p" + .string "I can at least make them faint!\n" + .string "Let's go!$" + +PokemonTower_2F_Text_RivalDefeat:: + .string "What?\n" + .string "You stinker!\p" + .string "I took it easy on you, too!$" + +PokemonTower_2F_Text_RivalPostBattle:: + .string "How's your POKéDEX coming?\n" + .string "I just caught a CUBONE!\p" + .string "I can't find the bigger MAROWAK.\n" + .string "Where could they be?\p" + .string "I bet there aren't any left!\p" + .string "Well, I better get going.\n" + .string "I've got a lot to accomplish,\l" + .string "unlike you.\p" + .string "Smell ya later!$" + +PokemonTower_2F_Text_SilphScopeCouldUnmaskGhosts:: + .string "Even we could not identify the\n" + .string "wayward ghosts.\p" + .string "A SILPH SCOPE might be able to\n" + .string "unmask them.$" + diff --git a/data/maps/PokemonTower_3F_Frlg/map.json b/data/maps/PokemonTower_3F_Frlg/map.json new file mode 100644 index 000000000000..2bbcbecb759c --- /dev/null +++ b/data/maps/PokemonTower_3F_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_POKEMON_TOWER_3F", + "name": "PokemonTower_3F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_3F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_3F_EventScript_Patricia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 9, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_3F_EventScript_Carly", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 12, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "PokemonTower_3F_EventScript_Hope", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 13, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_3F_EventScript_ItemEscapeRope", + "flag": "FLAG_HIDE_POKEMON_TOWER_3F_ESCAPE_ROPE" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_2F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_4F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_3F_Frlg/scripts.inc b/data/maps/PokemonTower_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..9cf60615c995 --- /dev/null +++ b/data/maps/PokemonTower_3F_Frlg/scripts.inc @@ -0,0 +1,54 @@ +PokemonTower_3F_Frlg_MapScripts:: + .byte 0 + +PokemonTower_3F_EventScript_Patricia:: + trainerbattle_single TRAINER_CHANNELER_PATRICIA, PokemonTower_3F_Text_PatriciaIntro, PokemonTower_3F_Text_PatriciaDefeat + msgbox PokemonTower_3F_Text_PatriciaPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_3F_EventScript_Carly:: + trainerbattle_single TRAINER_CHANNELER_CARLY, PokemonTower_3F_Text_CarlyIntro, PokemonTower_3F_Text_CarlyDefeat + msgbox PokemonTower_3F_Text_CarlyPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_3F_EventScript_Hope:: + trainerbattle_single TRAINER_CHANNELER_HOPE, PokemonTower_3F_Text_HopeIntro, PokemonTower_3F_Text_HopeDefeat + msgbox PokemonTower_3F_Text_HopePostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_3F_Text_HopeIntro:: + .string "Urrg… Awaa…\n" + .string "Huhu… Graa…$" + +PokemonTower_3F_Text_HopeDefeat:: + .string "Hwa!\n" + .string "I'm saved!$" + +PokemonTower_3F_Text_HopePostBattle:: + .string "The ghosts can be identified by\n" + .string "the SILPH SCOPE.$" + +PokemonTower_3F_Text_CarlyIntro:: + .string "Kekeke…\n" + .string "Kwaaah!$" + +PokemonTower_3F_Text_CarlyDefeat:: + .string "Hmm?\n" + .string "What am I doing?$" + +PokemonTower_3F_Text_CarlyPostBattle:: + .string "Sorry!\n" + .string "I was possessed!$" + +PokemonTower_3F_Text_PatriciaIntro:: + .string "Be gone!\n" + .string "Malevolent spirit!$" + +PokemonTower_3F_Text_PatriciaDefeat:: + .string "Whew!\n" + .string "The spirit left!$" + +PokemonTower_3F_Text_PatriciaPostBattle:: + .string "The others above…\n" + .string "They must have been possessed.$" + diff --git a/data/maps/PokemonTower_4F_Frlg/map.json b/data/maps/PokemonTower_4F_Frlg/map.json new file mode 100644 index 000000000000..fdf3ea80ff93 --- /dev/null +++ b/data/maps/PokemonTower_4F_Frlg/map.json @@ -0,0 +1,122 @@ +{ + "id": "MAP_POKEMON_TOWER_4F", + "name": "PokemonTower_4F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_4F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 17, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_4F_EventScript_Laurel", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "PokemonTower_4F_EventScript_Jody", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "PokemonTower_4F_EventScript_Paula", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_4F_EventScript_ItemElixir", + "flag": "FLAG_HIDE_POKEMON_TOWER_4F_ELIXIR" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 8, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_4F_EventScript_ItemAwakening", + "flag": "FLAG_HIDE_POKEMON_TOWER_4F_AWAKENING" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_4F_EventScript_ItemGreatBall", + "flag": "FLAG_HIDE_POKEMON_TOWER_4F_GREAT_BALL" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_5F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_3F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_4F_Frlg/scripts.inc b/data/maps/PokemonTower_4F_Frlg/scripts.inc new file mode 100644 index 000000000000..195f9d7dc197 --- /dev/null +++ b/data/maps/PokemonTower_4F_Frlg/scripts.inc @@ -0,0 +1,51 @@ +PokemonTower_4F_Frlg_MapScripts:: + .byte 0 + +PokemonTower_4F_EventScript_Paula:: + trainerbattle_single TRAINER_CHANNELER_PAULA, PokemonTower_4F_Text_PaulaIntro, PokemonTower_4F_Text_PaulaDefeat + msgbox PokemonTower_4F_Text_PaulaPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_4F_EventScript_Laurel:: + trainerbattle_single TRAINER_CHANNELER_LAUREL, PokemonTower_4F_Text_LaurelIntro, PokemonTower_4F_Text_LaurelDefeat + msgbox PokemonTower_4F_Text_LaurelPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_4F_EventScript_Jody:: + trainerbattle_single TRAINER_CHANNELER_JODY, PokemonTower_4F_Text_JodyIntro, PokemonTower_4F_Text_JodyDefeat + msgbox PokemonTower_4F_Text_JodyPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_4F_Text_PaulaIntro:: + .string "Ghost! No!\n" + .string "Kwaaah!$" + +PokemonTower_4F_Text_PaulaDefeat:: + .string "Where is the ghost?$" + +PokemonTower_4F_Text_PaulaPostBattle:: + .string "I must have been dreaming…$" + +PokemonTower_4F_Text_LaurelIntro:: + .string "Be cursed with me!\n" + .string "Kwaaah!$" + +PokemonTower_4F_Text_LaurelDefeat:: + .string "What!$" + +PokemonTower_4F_Text_LaurelPostBattle:: + .string "We can't determine the identity of\n" + .string "the ghosts…$" + +PokemonTower_4F_Text_JodyIntro:: + .string "Huhuhu…\n" + .string "Beat me not!$" + +PokemonTower_4F_Text_JodyDefeat:: + .string "Huh?\n" + .string "Who? What?$" + +PokemonTower_4F_Text_JodyPostBattle:: + .string "May the departed POKéMON rest in\n" + .string "peace…$" + diff --git a/data/maps/PokemonTower_5F_Frlg/map.json b/data/maps/PokemonTower_5F_Frlg/map.json new file mode 100644 index 000000000000..86b4c6416113 --- /dev/null +++ b/data/maps/PokemonTower_5F_Frlg/map.json @@ -0,0 +1,301 @@ +{ + "id": "MAP_POKEMON_TOWER_5F", + "name": "PokemonTower_5F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_5F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "PokemonTower_5F_EventScript_Ruth", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 19, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_5F_EventScript_Tammy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "PokemonTower_5F_EventScript_Karina", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "PokemonTower_5F_EventScript_Janae", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 12, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_5F_EventScript_Channeler", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 6, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_5F_EventScript_ItemNugget", + "flag": "FLAG_HIDE_POKEMON_TOWER_5F_NUGGET" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_5F_EventScript_ItemCleanseTag", + "flag": "FLAG_HIDE_POKEMON_TOWER_5F_CLEANSE_TAG" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_4F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_6F", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 11, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 12, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 10, + "y": 9, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 9, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 12, + "y": 9, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 10, + "y": 10, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 11, + "y": 10, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 12, + "y": 10, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "PokemonTower_5F_EventScript_PurifiedZone" + }, + { + "type": "trigger", + "x": 9, + "y": 9, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 9, + "y": 10, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 10, + "y": 11, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 11, + "y": 11, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 12, + "y": 11, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 13, + "y": 8, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 13, + "y": 9, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + }, + { + "type": "trigger", + "x": 13, + "y": 10, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "1", + "script": "PokemonTower_5F_EventScript_ExitPurifiedZone" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 7, + "y": 3, + "elevation": 3, + "item": "ITEM_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/PokemonTower_5F_Frlg/scripts.inc b/data/maps/PokemonTower_5F_Frlg/scripts.inc new file mode 100644 index 000000000000..13cd61b9c3a0 --- /dev/null +++ b/data/maps/PokemonTower_5F_Frlg/scripts.inc @@ -0,0 +1,94 @@ +PokemonTower_5F_Frlg_MapScripts:: + .byte 0 + +PokemonTower_5F_EventScript_Channeler:: + msgbox PokemonTower_5F_Text_RestHereInPurifiedSpace, MSGBOX_NPC + end + +PokemonTower_5F_EventScript_PurifiedZone:: + lockall + fadescreen FADE_TO_WHITE + special HealPlayerParty + fadescreen FADE_FROM_WHITE + msgbox PokemonTower_5F_Text_PurifiedZoneMonsFullyHealed + setvar VAR_TEMP_1, 1 + releaseall + end + +PokemonTower_5F_EventScript_ExitPurifiedZone:: + lockall + setvar VAR_TEMP_1, 0 + releaseall + end + +PokemonTower_5F_EventScript_Tammy:: + trainerbattle_single TRAINER_CHANNELER_TAMMY, PokemonTower_5F_Text_TammyIntro, PokemonTower_5F_Text_TammyDefeat + msgbox PokemonTower_5F_Text_TammyPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_5F_EventScript_Ruth:: + trainerbattle_single TRAINER_CHANNELER_RUTH, PokemonTower_5F_Text_RuthIntro, PokemonTower_5F_Text_RuthDefeat + msgbox PokemonTower_5F_Text_RuthPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_5F_EventScript_Karina:: + trainerbattle_single TRAINER_CHANNELER_KARINA, PokemonTower_5F_Text_KarinaIntro, PokemonTower_5F_Text_KarinaDefeat + msgbox PokemonTower_5F_Text_KarinaPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_5F_EventScript_Janae:: + trainerbattle_single TRAINER_CHANNELER_JANAE, PokemonTower_5F_Text_JanaeIntro, PokemonTower_5F_Text_JanaeDefeat + msgbox PokemonTower_5F_Text_JanaePostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_5F_Text_RestHereInPurifiedSpace:: + .string "Come, child!\n" + .string "I have purified this space.\l" + .string "You can rest here.$" + +PokemonTower_5F_Text_TammyIntro:: + .string "Give…me…\n" + .string "your…all…$" + +PokemonTower_5F_Text_TammyDefeat:: + .string "Gasp!$" + +PokemonTower_5F_Text_TammyPostBattle:: + .string "I was under possession.$" + +PokemonTower_5F_Text_RuthIntro:: + .string "You…shall…\n" + .string "join…us…$" + +PokemonTower_5F_Text_RuthDefeat:: + .string "What a nightmare!$" + +PokemonTower_5F_Text_RuthPostBattle:: + .string "I was possessed.$" + +PokemonTower_5F_Text_KarinaIntro:: + .string "Zombies!$" + +PokemonTower_5F_Text_KarinaDefeat:: + .string "Ha?$" + +PokemonTower_5F_Text_KarinaPostBattle:: + .string "I regained my senses.$" + +PokemonTower_5F_Text_JanaeIntro:: + .string "Urgah…\n" + .string "Urff…$" + +PokemonTower_5F_Text_JanaeDefeat:: + .string "Whoo!$" + +PokemonTower_5F_Text_JanaePostBattle:: + .string "I fell to evil spirits despite my\n" + .string "training in the mountains…$" + +PokemonTower_5F_Text_PurifiedZoneMonsFullyHealed:: + .string "Entered the purified and protected\n" + .string "zone.\p" + .string "{PLAYER}'s POKéMON were fully\n" + .string "healed.$" + diff --git a/data/maps/PokemonTower_6F_Frlg/map.json b/data/maps/PokemonTower_6F_Frlg/map.json new file mode 100644 index 000000000000..18bfcdc0fbfd --- /dev/null +++ b/data/maps/PokemonTower_6F_Frlg/map.json @@ -0,0 +1,127 @@ +{ + "id": "MAP_POKEMON_TOWER_6F", + "name": "PokemonTower_6F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_6F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 13, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_6F_EventScript_Angelica", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 18, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_6F_EventScript_Jennifer", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "PokemonTower_6F_EventScript_Emilia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_6F_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_POKEMON_TOWER_6F_RARE_CANDY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 15, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_6F_EventScript_ItemXAccuracy", + "flag": "FLAG_HIDE_POKEMON_TOWER_6F_X_ACCURACY" + } + ], + "warp_events": [ + { + "x": 11, + "y": 16, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_7F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 10, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_5F", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 11, + "y": 15, + "elevation": 3, + "var": "VAR_MAP_SCENE_POKEMON_TOWER_6F", + "var_value": "0", + "script": "PokemonTower_6F_EventScript_MarowakGhost" + }, + { + "type": "trigger", + "x": 12, + "y": 16, + "elevation": 3, + "var": "VAR_MAP_SCENE_POKEMON_TOWER_6F", + "var_value": "0", + "script": "PokemonTower_6F_EventScript_MarowakGhost" + } + ], + "bg_events": [] +} diff --git a/data/maps/PokemonTower_6F_Frlg/scripts.inc b/data/maps/PokemonTower_6F_Frlg/scripts.inc new file mode 100644 index 000000000000..86db6561e65d --- /dev/null +++ b/data/maps/PokemonTower_6F_Frlg/scripts.inc @@ -0,0 +1,90 @@ +PokemonTower_6F_Frlg_MapScripts:: + .byte 0 + +PokemonTower_6F_EventScript_MarowakGhost:: + lockall + textcolor NPC_TEXT_COLOR_MON + msgbox PokemonTower_6F_Text_BeGoneIntruders + setwildbattle SPECIES_MAROWAK, 30 + special StartMarowakBattle + waitstate + goto_if_eq VAR_RESULT, FALSE, PokemonTower_6F_EventScript_DefeatedMarowakGhost @ VAR_RESULT set by CB2_EndMarowakBattle + applymovement LOCALID_PLAYER, PokemonTower_6F_Movement_ForcePlayerUp + waitmovement 0 + releaseall + end + +PokemonTower_6F_EventScript_DefeatedMarowakGhost:: + message PokemonTower_6F_Text_GhostWasCubonesMother + waitmessage + waitse + playmoncry SPECIES_MAROWAK, CRY_MODE_NORMAL + waitbuttonpress + waitmoncry + msgbox PokemonTower_6F_Text_MothersSpiritWasCalmed + setvar VAR_MAP_SCENE_POKEMON_TOWER_6F, 1 + releaseall + end + +PokemonTower_6F_Movement_ForcePlayerUp:: + walk_up + step_end + +PokemonTower_6F_EventScript_Angelica:: + trainerbattle_single TRAINER_CHANNELER_ANGELICA, PokemonTower_6F_Text_AngelicaIntro, PokemonTower_6F_Text_AngelicaDefeat + msgbox PokemonTower_6F_Text_AngelicaPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_6F_EventScript_Emilia:: + trainerbattle_single TRAINER_CHANNELER_EMILIA, PokemonTower_6F_Text_EmiliaIntro, PokemonTower_6F_Text_EmiliaDefeat + msgbox PokemonTower_6F_Text_EmiliaPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_6F_EventScript_Jennifer:: + trainerbattle_single TRAINER_CHANNELER_JENNIFER, PokemonTower_6F_Text_JenniferIntro, PokemonTower_6F_Text_JenniferDefeat + msgbox PokemonTower_6F_Text_JenniferPostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_6F_Text_AngelicaIntro:: + .string "Give…me…\n" + .string "blood…$" + +PokemonTower_6F_Text_AngelicaDefeat:: + .string "Groan!$" + +PokemonTower_6F_Text_AngelicaPostBattle:: + .string "I feel anemic and weak…$" + +PokemonTower_6F_Text_EmiliaIntro:: + .string "Urff…\n" + .string "Kwaah!$" + +PokemonTower_6F_Text_EmiliaDefeat:: + .string "Something fell out!$" + +PokemonTower_6F_Text_EmiliaPostBattle:: + .string "My hair didn't fall out!\n" + .string "It was a malevolent spirit!$" + +PokemonTower_6F_Text_JenniferIntro:: + .string "Ke…ke…ke…\n" + .string "ke…ke…ke!$" + +PokemonTower_6F_Text_JenniferDefeat:: + .string "Keee!$" + +PokemonTower_6F_Text_JenniferPostBattle:: + .string "What's going on here?$" + +PokemonTower_6F_Text_BeGoneIntruders:: + .string "Be gone…\n" + .string "Intruders…$" + +PokemonTower_6F_Text_GhostWasCubonesMother:: + .string "The ghost was the restless spirit\n" + .string "of CUBONE's mother!$" + +PokemonTower_6F_Text_MothersSpiritWasCalmed:: + .string "The mother's spirit was calmed.\p" + .string "It departed to the afterlife…$" + diff --git a/data/maps/PokemonTower_7F_Frlg/map.json b/data/maps/PokemonTower_7F_Frlg/map.json new file mode 100644 index 000000000000..a5d3647d1e0b --- /dev/null +++ b/data/maps/PokemonTower_7F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_POKEMON_TOWER_7F", + "name": "PokemonTower_7F_Frlg", + "layout": "LAYOUT_POKEMON_TOWER_7F", + "music": "MUS_RG_POKE_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POKEMON_TOWER", + "requires_flash": false, + "weather": "WEATHER_FOG_HORIZONTAL", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MR_FUJI", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PokemonTower_7F_EventScript_MrFuji", + "flag": "FLAG_HIDE_TOWER_FUJI" + }, + { + "local_id": "LOCALID_POKEMON_TOWER_GRUNT1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 9, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "PokemonTower_7F_EventScript_Grunt1", + "flag": "FLAG_HIDE_TOWER_ROCKET_1" + }, + { + "local_id": "LOCALID_POKEMON_TOWER_GRUNT2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 13, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "PokemonTower_7F_EventScript_Grunt2", + "flag": "FLAG_HIDE_TOWER_ROCKET_2" + }, + { + "local_id": "LOCALID_POKEMON_TOWER_GRUNT3", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "PokemonTower_7F_EventScript_Grunt3", + "flag": "FLAG_HIDE_TOWER_ROCKET_3" + } + ], + "warp_events": [ + { + "x": 11, + "y": 16, + "elevation": 3, + "dest_map": "MAP_POKEMON_TOWER_6F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 11, + "y": 4, + "elevation": 3, + "item": "ITEM_SOOTHE_BELL", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL", + "quantity": 1, + "underfoot": true + } + ] +} diff --git a/data/maps/PokemonTower_7F_Frlg/scripts.inc b/data/maps/PokemonTower_7F_Frlg/scripts.inc new file mode 100644 index 000000000000..8a2087d77fa5 --- /dev/null +++ b/data/maps/PokemonTower_7F_Frlg/scripts.inc @@ -0,0 +1,282 @@ +PokemonTower_7F_Frlg_MapScripts:: + .byte 0 + +PokemonTower_7F_EventScript_MrFuji:: + lock + faceplayer + famechecker FAMECHECKER_MRFUJI, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + setflag FLAG_HIDE_TOWER_FUJI + clearflag FLAG_HIDE_POKEHOUSE_FUJI + setflag FLAG_RESCUED_MR_FUJI + msgbox PokemonTower_7F_Text_MrFujiThankYouFollowMe + closemessage + warp MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE, 4, 7 + waitstate + release + end + +PokemonTower_7F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_19, PokemonTower_7F_Text_Grunt1Intro, PokemonTower_7F_Text_Grunt1Defeat, PokemonTower_7F_EventScript_DefeatedGrunt1 + msgbox PokemonTower_7F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_7F_EventScript_DefeatedGrunt1:: + msgbox PokemonTower_7F_Text_Grunt1PostBattle + closemessage + getplayerxy VAR_0x8004, VAR_0x8005 + goto_if_eq VAR_0x8004, 10, PokemonTower_7F_EventScript_Grunt1ExitMid + goto_if_eq VAR_0x8004, 11, PokemonTower_7F_EventScript_Grunt1ExitRight + goto_if_eq VAR_0x8004, 9, PokemonTower_7F_EventScript_Grunt1ExitLeft + applymovement LOCALID_POKEMON_TOWER_GRUNT1, PokemonTower_7F_Movement_Grunt1Exit + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt1 + end + +PokemonTower_7F_EventScript_Grunt1ExitMid:: + applymovement LOCALID_POKEMON_TOWER_GRUNT1, PokemonTower_7F_Movement_Grunt1ExitMid + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt1 + end + +PokemonTower_7F_EventScript_Grunt1ExitRight:: + applymovement LOCALID_POKEMON_TOWER_GRUNT1, PokemonTower_7F_Movement_Grunt1ExitRight + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt1 + end + +PokemonTower_7F_EventScript_Grunt1ExitLeft:: + applymovement LOCALID_POKEMON_TOWER_GRUNT1, PokemonTower_7F_Movement_Grunt1ExitLeft + waitmovement 0 + playse SE_EXIT + delay 25 + goto PokemonTower_7F_EventScript_RemoveGrunt1 + end + +PokemonTower_7F_EventScript_RemoveGrunt1:: + removeobject LOCALID_POKEMON_TOWER_GRUNT1 + release + end + +PokemonTower_7F_Movement_Grunt1ExitMid:: + walk_down + walk_right + walk_down + walk_down + walk_down + walk_right + walk_down + walk_down + step_end + +PokemonTower_7F_Movement_Grunt1ExitRight:: + walk_down + walk_down + walk_down + walk_down + walk_right + walk_down + walk_down + step_end + +PokemonTower_7F_Movement_Grunt1Exit:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +PokemonTower_7F_Movement_Grunt1ExitLeft:: + walk_right + walk_down + walk_down + walk_down + walk_down + walk_right + walk_down + walk_down + walk_in_place_faster_left + step_end + +PokemonTower_7F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_20, PokemonTower_7F_Text_Grunt2Intro, PokemonTower_7F_Text_Grunt2Defeat, PokemonTower_7F_EventScript_DefeatedGrunt2 + msgbox PokemonTower_7F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_7F_EventScript_DefeatedGrunt2:: + famechecker FAMECHECKER_MRFUJI, 1 + msgbox PokemonTower_7F_Text_Grunt2PostBattle + closemessage + getplayerxy VAR_0x8004, VAR_0x8005 + goto_if_eq VAR_0x8004, 12, PokemonTower_7F_EventScript_Grunt2ExitLeft + goto_if_eq VAR_0x8004, 13, PokemonTower_7F_EventScript_Grunt2ExitRight + applymovement LOCALID_POKEMON_TOWER_GRUNT2, PokemonTower_7F_Movement_Grunt2Exit + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt2 + end + +PokemonTower_7F_EventScript_Grunt2ExitLeft:: + applymovement LOCALID_POKEMON_TOWER_GRUNT2, PokemonTower_7F_Movement_Grunt2ExitLeft + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt2 + end + +PokemonTower_7F_EventScript_Grunt2ExitRight:: + applymovement LOCALID_POKEMON_TOWER_GRUNT2, PokemonTower_7F_Movement_Grunt2ExitRight + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt2 + end + +PokemonTower_7F_EventScript_RemoveGrunt2:: + removeobject LOCALID_POKEMON_TOWER_GRUNT2 + release + end + +PokemonTower_7F_Movement_Grunt2ExitLeft:: + walk_down + walk_down + walk_down + walk_left + walk_down + walk_down + walk_down + step_end + +PokemonTower_7F_Movement_Grunt2Exit:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +PokemonTower_7F_Movement_Grunt2ExitRight:: + walk_left + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +PokemonTower_7F_EventScript_Grunt3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_21, PokemonTower_7F_Text_Grunt3Intro, PokemonTower_7F_Text_Grunt3Defeat, PokemonTower_7F_EventScript_DefeatedGrunt3 + msgbox PokemonTower_7F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE + end + +PokemonTower_7F_EventScript_DefeatedGrunt3:: + msgbox PokemonTower_7F_Text_Grunt3PostBattle + closemessage + getplayerxy VAR_0x8004, VAR_0x8005 + goto_if_eq VAR_0x8004, 10, PokemonTower_7F_EventScript_Grunt3ExitRight + goto_if_eq VAR_0x8004, 9, PokemonTower_7F_EventScript_Grunt3ExitLeft + applymovement LOCALID_POKEMON_TOWER_GRUNT3, PokemonTower_7F_Movement_Grunt3Exit + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt3 + end + +PokemonTower_7F_EventScript_Grunt3ExitRight:: + applymovement LOCALID_POKEMON_TOWER_GRUNT3, PokemonTower_7F_Movement_Grunt3ExitRight + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt3 + end + +PokemonTower_7F_EventScript_Grunt3ExitLeft:: + applymovement LOCALID_POKEMON_TOWER_GRUNT3, PokemonTower_7F_Movement_Grunt3ExitLeft + waitmovement 0 + goto PokemonTower_7F_EventScript_RemoveGrunt3 + end + +PokemonTower_7F_EventScript_RemoveGrunt3:: + removeobject LOCALID_POKEMON_TOWER_GRUNT3 + release + end + +PokemonTower_7F_EventScript_Unused:: + release + end + +PokemonTower_7F_Movement_Grunt3ExitRight:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_right + walk_down + step_end + +PokemonTower_7F_Movement_Grunt3Exit:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +PokemonTower_7F_Movement_Grunt3ExitLeft:: + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +PokemonTower_7F_Text_Grunt1Intro:: + .string "What do you want?\n" + .string "Why are you here?$" + +PokemonTower_7F_Text_Grunt1Defeat:: + .string "I give up!$" + +PokemonTower_7F_Text_Grunt1PostBattle:: + .string "I'm not going to forget this!$" + +PokemonTower_7F_Text_Grunt2Intro:: + .string "This old guy marched right up to\n" + .string "our HIDEOUT.\p" + .string "Then, he starts ranting about how\n" + .string "TEAM ROCKET's abusing POKéMON.\p" + .string "So, we're just talking it over as\n" + .string "adults.$" + +PokemonTower_7F_Text_Grunt2Defeat:: + .string "Please!\n" + .string "No more!$" + +PokemonTower_7F_Text_Grunt2PostBattle:: + .string "POKéMON are only good for making\n" + .string "money. Why not use them?\p" + .string "You stay out of our business!$" + +PokemonTower_7F_Text_Grunt3Intro:: + .string "You're not saving anyone, kid!$" + +PokemonTower_7F_Text_Grunt3Defeat:: + .string "Don't fight us ROCKETS!$" + +PokemonTower_7F_Text_Grunt3PostBattle:: + .string "You're not getting away with this!$" + +PokemonTower_7F_Text_MrFujiThankYouFollowMe:: + .string "MR. FUJI: Heh?\n" + .string "You came to save me?\p" + .string "Thank you. But, I came here of my\n" + .string "own free will.\p" + .string "I came to calm the spirit of\n" + .string "CUBONE's mother.\p" + .string "I think MAROWAK's spirit has\n" + .string "finally left us.\p" + .string "I must thank you for your kind\n" + .string "concern.\p" + .string "Follow me to my home, POKéMON\n" + .string "HOUSE, at the foot of this tower.$" + diff --git a/data/maps/PowerPlant_Frlg/map.json b/data/maps/PowerPlant_Frlg/map.json new file mode 100644 index 000000000000..e59ed523ac50 --- /dev/null +++ b/data/maps/PowerPlant_Frlg/map.json @@ -0,0 +1,194 @@ +{ + "id": "MAP_POWER_PLANT", + "name": "PowerPlant_Frlg", + "layout": "LAYOUT_POWER_PLANT", + "music": "MUS_RG_POKE_MANSION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_POWER_PLANT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 7, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_ItemMaxPotion", + "flag": "FLAG_HIDE_POWER_PLANT_MAX_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 40, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_ItemTM17", + "flag": "FLAG_HIDE_POWER_PLANT_TM17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 46, + "y": 37, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_ItemTM25", + "flag": "FLAG_HIDE_POWER_PLANT_TM25" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 45, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_ItemThunderStone", + "flag": "FLAG_HIDE_POWER_PLANT_THUNDER_STONE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 26, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_ItemElixir", + "flag": "FLAG_HIDE_POWER_PLANT_ELIXIR" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ZAPDOS", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_Zapdos", + "flag": "FLAG_HIDE_ZAPDOS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 36, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_Electrode2", + "flag": "FLAG_HIDE_POWER_PLANT_ELECTRODE_2" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 30, + "y": 38, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "PowerPlant_EventScript_Electrode1", + "flag": "FLAG_HIDE_POWER_PLANT_ELECTRODE_1" + } + ], + "warp_events": [ + { + "x": 4, + "y": 39, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 38, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 39, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "2" + }, + { + "x": 1, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "4" + }, + { + "x": 0, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "2" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 29, + "y": 16, + "elevation": 3, + "item": "ITEM_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 8, + "y": 12, + "elevation": 3, + "item": "ITEM_THUNDER_STONE", + "flag": "FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/PowerPlant_Frlg/scripts.inc b/data/maps/PowerPlant_Frlg/scripts.inc new file mode 100644 index 000000000000..3a11d69d1b7d --- /dev/null +++ b/data/maps/PowerPlant_Frlg/scripts.inc @@ -0,0 +1,115 @@ +PowerPlant_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, PowerPlant_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, PowerPlant_OnTransition + .byte 0 + +PowerPlant_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, PowerPlant_EventScript_TryRemoveStaticMon + end + +PowerPlant_EventScript_TryRemoveStaticMon:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject VAR_LAST_TALKED + return + +PowerPlant_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_POWER_PLANT + call_if_unset FLAG_FOUGHT_ZAPDOS, PowerPlant_EventScript_ShowZapdos + call_if_unset FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1, PowerPlant_EventScript_ShowElectrode1 + call_if_unset FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2, PowerPlant_EventScript_ShowElectrode2 + end + +PowerPlant_EventScript_ShowZapdos:: + clearflag FLAG_HIDE_ZAPDOS + return + +PowerPlant_EventScript_ShowElectrode1:: + clearflag FLAG_HIDE_POWER_PLANT_ELECTRODE_1 + return + +PowerPlant_EventScript_ShowElectrode2:: + clearflag FLAG_HIDE_POWER_PLANT_ELECTRODE_2 + return + +PowerPlant_EventScript_Zapdos:: + lock + faceplayer + setwildbattle SPECIES_ZAPDOS, 50 + waitse + playmoncry SPECIES_ZAPDOS, CRY_MODE_ENCOUNTER + message Text_Gyaoo + waitmessage + waitmoncry + delay 10 + playbgm MUS_RG_ENCOUNTER_GYM_LEADER, 0 + waitbuttonpress + setflag FLAG_SYS_CTRL_OBJ_DELETE + special BattleSetup_StartLegendaryBattle + waitstate + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, PowerPlant_EventScript_DefeatedZapdos + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, PowerPlant_EventScript_RanFromZapdos + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, PowerPlant_EventScript_RanFromZapdos + setflag FLAG_FOUGHT_ZAPDOS + release + end + +PowerPlant_EventScript_DefeatedZapdos:: + setflag FLAG_FOUGHT_ZAPDOS + goto EventScript_RemoveStaticMon + end + +PowerPlant_EventScript_RanFromZapdos:: + setvar VAR_0x8004, SPECIES_ZAPDOS + goto EventScript_MonFlewAway + end + +PowerPlant_EventScript_Electrode1:: + lock + faceplayer + setwildbattle SPECIES_ELECTRODE, 34 + waitse + playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER + delay 40 + waitmoncry + setflag FLAG_SYS_CTRL_OBJ_DELETE + dowildbattle + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, PowerPlant_EventScript_FoughtElectrode1 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, PowerPlant_EventScript_FoughtElectrode1 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, PowerPlant_EventScript_FoughtElectrode1 + setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1 + release + end + +PowerPlant_EventScript_FoughtElectrode1:: + setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1 + goto EventScript_RemoveStaticMon + end + +PowerPlant_EventScript_Electrode2:: + lock + faceplayer + setwildbattle SPECIES_ELECTRODE, 34 + waitse + playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER + delay 40 + waitmoncry + setflag FLAG_SYS_CTRL_OBJ_DELETE + dowildbattle + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, PowerPlant_EventScript_FoughtElectrode2 + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, PowerPlant_EventScript_FoughtElectrode2 + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, PowerPlant_EventScript_FoughtElectrode2 + setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2 + release + end + +PowerPlant_EventScript_FoughtElectrode2:: + setflag FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2 + goto EventScript_RemoveStaticMon + end diff --git a/data/maps/RecordCorner_Frlg/map.json b/data/maps/RecordCorner_Frlg/map.json new file mode 100644 index 000000000000..c7253ba78483 --- /dev/null +++ b/data/maps/RecordCorner_Frlg/map.json @@ -0,0 +1,103 @@ +{ + "id": "MAP_RECORD_CORNER_FRLG", + "name": "RecordCorner_Frlg", + "layout": "LAYOUT_RECORD_CORNER_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", + "x": 10, + "y": 5, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RecordCorner_EventScript_Attendant_Frlg", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 9, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 9, + "y": 9, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 11, + "y": 9, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "RecordCorner_EventScript_Spot0" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "RecordCorner_EventScript_Spot1" + }, + { + "type": "trigger", + "x": 13, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "RecordCorner_EventScript_Spot2" + }, + { + "type": "trigger", + "x": 13, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "RecordCorner_EventScript_Spot3" + } + ], + "bg_events": [] +} diff --git a/data/maps/RecordCorner_Frlg/scripts.inc b/data/maps/RecordCorner_Frlg/scripts.inc new file mode 100644 index 000000000000..6416ec19277b --- /dev/null +++ b/data/maps/RecordCorner_Frlg/scripts.inc @@ -0,0 +1,2 @@ +RecordCorner_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/RockTunnel_1F_Frlg/map.json b/data/maps/RockTunnel_1F_Frlg/map.json new file mode 100644 index 000000000000..309ca1fd4452 --- /dev/null +++ b/data/maps/RockTunnel_1F_Frlg/map.json @@ -0,0 +1,215 @@ +{ + "id": "MAP_ROCK_TUNNEL_1F", + "name": "RockTunnel_1F_Frlg", + "layout": "LAYOUT_ROCK_TUNNEL_1F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCK_TUNNEL", + "requires_flash": true, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 26, + "y": 28, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RockTunnel_1F_EventScript_Dana", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 39, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_1F_EventScript_Ariana", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 45, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "RockTunnel_1F_EventScript_Leah", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 20, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_1F_EventScript_Lucas", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 5, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_1F_EventScript_Oliver", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_1F_EventScript_Lenny", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 27, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RockTunnel_1F_EventScript_Ashton", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 37, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RockTunnel_1F_EventScript_ItemRepel", + "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_REPEL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 33, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RockTunnel_1F_EventScript_ItemPearl", + "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_PEARL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 22, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RockTunnel_1F_EventScript_ItemEscapeRope", + "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_ESCAPE_ROPE" + } + ], + "warp_events": [ + { + "x": 17, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "0" + }, + { + "x": 45, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": "2" + }, + { + "x": 45, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_B1F", + "dest_warp_id": "3" + }, + { + "x": 18, + "y": 37, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 14, + "y": 33, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "RockTunnel_1F_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/RockTunnel_1F_Frlg/scripts.inc b/data/maps/RockTunnel_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..84fafd001d29 --- /dev/null +++ b/data/maps/RockTunnel_1F_Frlg/scripts.inc @@ -0,0 +1,130 @@ +RockTunnel_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, RockTunnel_1F_OnTransition + .byte 0 + +RockTunnel_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_ROCK_TUNNEL_1F + end + +RockTunnel_1F_EventScript_RouteSign:: + msgbox RockTunnel_1F_Text_RouteSign, MSGBOX_SIGN + end + +RockTunnel_1F_EventScript_Lenny:: + trainerbattle_single TRAINER_HIKER_LENNY, RockTunnel_1F_Text_LennyIntro, RockTunnel_1F_Text_LennyDefeat + msgbox RockTunnel_1F_Text_LennyPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_EventScript_Oliver:: + trainerbattle_single TRAINER_HIKER_OLIVER, RockTunnel_1F_Text_OliverIntro, RockTunnel_1F_Text_OliverDefeat + msgbox RockTunnel_1F_Text_OliverPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_EventScript_Lucas:: + trainerbattle_single TRAINER_HIKER_LUCAS, RockTunnel_1F_Text_LucasIntro, RockTunnel_1F_Text_LucasDefeat + msgbox RockTunnel_1F_Text_LucasPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_EventScript_Ashton:: + trainerbattle_single TRAINER_POKEMANIAC_ASHTON, RockTunnel_1F_Text_AshtonIntro, RockTunnel_1F_Text_AshtonDefeat + msgbox RockTunnel_1F_Text_AshtonPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_EventScript_Leah:: + trainerbattle_single TRAINER_PICNICKER_LEAH, RockTunnel_1F_Text_LeahIntro, RockTunnel_1F_Text_LeahDefeat + msgbox RockTunnel_1F_Text_LeahPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_EventScript_Ariana:: + trainerbattle_single TRAINER_PICNICKER_ARIANA, RockTunnel_1F_Text_ArianaIntro, RockTunnel_1F_Text_ArianaDefeat + msgbox RockTunnel_1F_Text_ArianaPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_EventScript_Dana:: + trainerbattle_single TRAINER_PICNICKER_DANA, RockTunnel_1F_Text_DanaIntro, RockTunnel_1F_Text_DanaDefeat + msgbox RockTunnel_1F_Text_DanaPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_1F_Text_LennyIntro:: + .string "This tunnel goes a long way, kid!$" + +RockTunnel_1F_Text_LennyDefeat:: + .string "Doh!\n" + .string "You win!$" + +RockTunnel_1F_Text_LennyPostBattle:: + .string "Watch for ONIX.\n" + .string "They appear only occasionally.\p" + .string "High-level ones can put the\n" + .string "squeeze on you!$" + +RockTunnel_1F_Text_OliverIntro:: + .string "Hmm.\n" + .string "Maybe I'm lost in here…$" + +RockTunnel_1F_Text_OliverDefeat:: + .string "Ease up!\n" + .string "What am I doing?\l" + .string "Which way is out?$" + +RockTunnel_1F_Text_OliverPostBattle:: + .string "That sleeping POKéMON on ROUTE 12\n" + .string "forced me to take this detour.$" + +RockTunnel_1F_Text_LucasIntro:: + .string "Outsiders like you need to show me\n" + .string "some respect!$" + +RockTunnel_1F_Text_LucasDefeat:: + .string "I give!$" + +RockTunnel_1F_Text_LucasPostBattle:: + .string "You're talented enough to hike!$" + +RockTunnel_1F_Text_AshtonIntro:: + .string "POKéMON fight!\n" + .string "Ready, go!$" + +RockTunnel_1F_Text_AshtonDefeat:: + .string "Game over!$" + +RockTunnel_1F_Text_AshtonPostBattle:: + .string "Oh well, I'll get a ZUBAT as I go!$" + +RockTunnel_1F_Text_LeahIntro:: + .string "Eek!\p" + .string "Don't try anything funny in the\n" + .string "dark!$" + +RockTunnel_1F_Text_LeahDefeat:: + .string "It was too dark…$" + +RockTunnel_1F_Text_LeahPostBattle:: + .string "I saw a MACHOP in this tunnel.$" + +RockTunnel_1F_Text_DanaIntro:: + .string "I came this far looking for wild\n" + .string "POKéMON.$" + +RockTunnel_1F_Text_DanaDefeat:: + .string "I'm out of POKéMON!$" + +RockTunnel_1F_Text_DanaPostBattle:: + .string "You looked cute and harmless.\n" + .string "Was I ever wrong!$" + +RockTunnel_1F_Text_ArianaIntro:: + .string "You have POKéMON!\n" + .string "Let's start!$" + +RockTunnel_1F_Text_ArianaDefeat:: + .string "You play hard!$" + +RockTunnel_1F_Text_ArianaPostBattle:: + .string "Whew!\n" + .string "I'm all sweaty now.$" + +RockTunnel_1F_Text_RouteSign:: + .string "ROCK TUNNEL\n" + .string "CERULEAN CITY - LAVENDER TOWN$" + diff --git a/data/maps/RockTunnel_B1F_Frlg/map.json b/data/maps/RockTunnel_B1F_Frlg/map.json new file mode 100644 index 000000000000..eadaa2515d3a --- /dev/null +++ b/data/maps/RockTunnel_B1F_Frlg/map.json @@ -0,0 +1,416 @@ +{ + "id": "MAP_ROCK_TUNNEL_B1F", + "name": "RockTunnel_B1F_Frlg", + "layout": "LAYOUT_ROCK_TUNNEL_B1F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCK_TUNNEL", + "requires_flash": true, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "RockTunnel_B1F_EventScript_Cooper", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_B1F_EventScript_Dudley", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 11, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_B1F_EventScript_Sofia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 36, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RockTunnel_B1F_EventScript_Allen", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 41, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RockTunnel_B1F_EventScript_Eric", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 23, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RockTunnel_B1F_EventScript_Steve", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 15, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "RockTunnel_B1F_EventScript_Martha", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 29, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RockTunnel_B1F_EventScript_Winston", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 2, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RockTunnel_B1F_EventScript_RockSlideTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 37, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RockTunnel_B1F_EventScript_ItemRevive", + "flag": "FLAG_HIDE_ROCK_TUNNEL_B1F_REVIVE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 9, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RockTunnel_B1F_EventScript_ItemMaxEther", + "flag": "FLAG_HIDE_ROCK_TUNNEL_B1F_MAX_ETHER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 1, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 1, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 4, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 2, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 39, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 42, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 43, + "y": 28, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 45, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_19" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 45, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1A" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 25, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1B" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 27, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1C" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 23, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1D" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 26, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1E" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 24, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1F" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 27, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_11" + } + ], + "warp_events": [ + { + "x": 38, + "y": 28, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": "1" + }, + { + "x": 33, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": "2" + }, + { + "x": 27, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": "3" + }, + { + "x": 2, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/RockTunnel_B1F_Frlg/scripts.inc b/data/maps/RockTunnel_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..265bf5cc2b5a --- /dev/null +++ b/data/maps/RockTunnel_B1F_Frlg/scripts.inc @@ -0,0 +1,138 @@ +RockTunnel_B1F_Frlg_MapScripts:: + .byte 0 + +RockTunnel_B1F_EventScript_Sofia:: + trainerbattle_single TRAINER_PICNICKER_SOFIA, RockTunnel_B1F_Text_SofiaIntro, RockTunnel_B1F_Text_SofiaDefeat + msgbox RockTunnel_B1F_Text_SofiaPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Martha:: + trainerbattle_single TRAINER_PICNICKER_MARTHA, RockTunnel_B1F_Text_MarthaIntro, RockTunnel_B1F_Text_MarthaDefeat + msgbox RockTunnel_B1F_Text_MarthaPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Dudley:: + trainerbattle_single TRAINER_HIKER_DUDLEY, RockTunnel_B1F_Text_DudleyIntro, RockTunnel_B1F_Text_DudleyDefeat + msgbox RockTunnel_B1F_Text_DudleyPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Allen:: + trainerbattle_single TRAINER_HIKER_ALLEN, RockTunnel_B1F_Text_AllenIntro, RockTunnel_B1F_Text_AllenDefeat + msgbox RockTunnel_B1F_Text_AllenPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Eric:: + trainerbattle_single TRAINER_HIKER_ERIC, RockTunnel_B1F_Text_EricIntro, RockTunnel_B1F_Text_EricDefeat + msgbox RockTunnel_B1F_Text_EricPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Cooper:: + trainerbattle_single TRAINER_POKEMANIAC_COOPER, RockTunnel_B1F_Text_CooperIntro, RockTunnel_B1F_Text_CooperDefeat + msgbox RockTunnel_B1F_Text_CooperPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Steve:: + trainerbattle_single TRAINER_POKEMANIAC_STEVE, RockTunnel_B1F_Text_SteveIntro, RockTunnel_B1F_Text_SteveDefeat + msgbox RockTunnel_B1F_Text_StevePostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_EventScript_Winston:: + trainerbattle_single TRAINER_POKEMANIAC_WINSTON, RockTunnel_B1F_Text_WinstonIntro, RockTunnel_B1F_Text_WinstonDefeat + msgbox RockTunnel_B1F_Text_WinstonPostBattle, MSGBOX_AUTOCLOSE + end + +RockTunnel_B1F_Text_SofiaIntro:: + .string "Do you know how you can avoid\n" + .string "getting lost in the mountains?\p" + .string "You can bend twigs as trail\n" + .string "markers.$" + +RockTunnel_B1F_Text_SofiaDefeat:: + .string "Ohhh!\n" + .string "I did my best!$" + +RockTunnel_B1F_Text_SofiaPostBattle:: + .string "I want to go home!$" + +RockTunnel_B1F_Text_DudleyIntro:: + .string "Hahaha!\n" + .string "Can you beat my power?$" + +RockTunnel_B1F_Text_DudleyDefeat:: + .string "Oops!\n" + .string "Outmuscled!$" + +RockTunnel_B1F_Text_DudleyPostBattle:: + .string "I go for power because I hate\n" + .string "thinking.$" + +RockTunnel_B1F_Text_CooperIntro:: + .string "You have a POKéDEX?\n" + .string "I want one, too.$" + +RockTunnel_B1F_Text_CooperDefeat:: + .string "Shoot!\n" + .string "I am so jealous!$" + +RockTunnel_B1F_Text_CooperPostBattle:: + .string "When you finish your POKéDEX,\n" + .string "can I have it?$" + +RockTunnel_B1F_Text_SteveIntro:: + .string "Um… Do you know about POKéMON\n" + .string "cosplay?$" + +RockTunnel_B1F_Text_SteveDefeat:: + .string "Well, that's that.$" + +RockTunnel_B1F_Text_StevePostBattle:: + .string "POKéMON cosplay is dressing up as\n" + .string "POKéMON for fun.\p" + .string "CLEFAIRY is a favorite.$" + +RockTunnel_B1F_Text_AllenIntro:: + .string "My POKéMON techniques will leave\n" + .string "you crying!$" + +RockTunnel_B1F_Text_AllenDefeat:: + .string "I give!\n" + .string "You're a better technician!$" + +RockTunnel_B1F_Text_AllenPostBattle:: + .string "In mountains, you'll often find\n" + .string "ROCK-type POKéMON.$" + +RockTunnel_B1F_Text_MarthaIntro:: + .string "I don't often come here, but I will\n" + .string "battle you.$" + +RockTunnel_B1F_Text_MarthaDefeat:: + .string "Oh!\n" + .string "I lost!$" + +RockTunnel_B1F_Text_MarthaPostBattle:: + .string "I like tiny POKéMON.\n" + .string "Big ones are too scary!$" + +RockTunnel_B1F_Text_EricIntro:: + .string "Hit me with your best shot!$" + +RockTunnel_B1F_Text_EricDefeat:: + .string "Fired away!$" + +RockTunnel_B1F_Text_EricPostBattle:: + .string "I'll raise my POKéMON to beat\n" + .string "yours, kid.$" + +RockTunnel_B1F_Text_WinstonIntro:: + .string "I draw illustrations of POKéMON\n" + .string "when I'm home.$" + +RockTunnel_B1F_Text_WinstonDefeat:: + .string "Whew…\n" + .string "I'm exhausted…$" + +RockTunnel_B1F_Text_WinstonPostBattle:: + .string "I'm an artist, not a fighter.\n" + .string "I'll go home to draw.$" + diff --git a/data/maps/RocketHideout_B1F_Frlg/map.json b/data/maps/RocketHideout_B1F_Frlg/map.json new file mode 100644 index 000000000000..a6f1cd07e89a --- /dev/null +++ b/data/maps/RocketHideout_B1F_Frlg/map.json @@ -0,0 +1,177 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B1F", + "name": "RocketHideout_B1F_Frlg", + "layout": "LAYOUT_ROCKET_HIDEOUT_B1F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": -1, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "RocketHideout_B1F_EventScript_Grunt2", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 24, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "RocketHideout_B1F_EventScript_Grunt1", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 6, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RocketHideout_B1F_EventScript_Grunt4", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 10, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RocketHideout_B1F_EventScript_Grunt3", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 21, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "RocketHideout_B1F_EventScript_Grunt5", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 16, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B1F_EventScript_ItemEscapeRope", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B1F_ESCAPE_ROPE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B1F_EventScript_ItemHyperPotion", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B1F_HYPER_POTION" + } + ], + "warp_events": [ + { + "x": 12, + "y": 2, + "elevation": 3, + "dest_map": "MAP_CELADON_CITY_GAME_CORNER", + "dest_warp_id": "3" + }, + { + "x": 17, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B2F", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 30, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B2F", + "dest_warp_id": "2" + }, + { + "x": 23, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + }, + { + "x": 24, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 16, + "y": 17, + "elevation": 0, + "item": "ITEM_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/RocketHideout_B1F_Frlg/scripts.inc b/data/maps/RocketHideout_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d01ada0d4416 --- /dev/null +++ b/data/maps/RocketHideout_B1F_Frlg/scripts.inc @@ -0,0 +1,117 @@ +RocketHideout_B1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, RocketHideout_B1F_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, RocketHideout_B1F_OnTransition + .byte 0 + +RocketHideout_B1F_OnLoad:: + call_if_not_defeated TRAINER_TEAM_ROCKET_GRUNT_12 RocketHideout_B1F_EventScript_SetBarrier + end + +RocketHideout_B1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F + end + +RocketHideout_B1F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_8, RocketHideout_B1F_Text_Grunt1Intro, RocketHideout_B1F_Text_Grunt1Defeat + msgbox RocketHideout_B1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B1F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_9, RocketHideout_B1F_Text_Grunt2Intro, RocketHideout_B1F_Text_Grunt2Defeat + msgbox RocketHideout_B1F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B1F_EventScript_Grunt3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_10, RocketHideout_B1F_Text_Grunt3Intro, RocketHideout_B1F_Text_Grunt3Defeat + msgbox RocketHideout_B1F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B1F_EventScript_Grunt4:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_11, RocketHideout_B1F_Text_Grunt4Intro, RocketHideout_B1F_Text_Grunt4Defeat + msgbox RocketHideout_B1F_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B1F_EventScript_Grunt5:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_12, RocketHideout_B1F_Text_Grunt5Intro, RocketHideout_B1F_Text_Grunt5Defeat, RocketHideout_B1F_EventScript_DefeatedGrunt5 + msgbox RocketHideout_B1F_Text_Grunt5PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B1F_EventScript_DefeatedGrunt5:: + call RocketHideout_B1F_EventScript_RemoveBarrier + playse SE_UNLOCK + special DrawWholeMapView + waitse + release + end + +RocketHideout_B1F_EventScript_SetBarrier:: + setmetatile 20, 19, METATILE_SilphCo_HideoutBarrier_TopLeft_Floor, 1 + setmetatile 21, 19, METATILE_SilphCo_HideoutBarrier_TopRight_Floor, 1 + setmetatile 20, 20, METATILE_SilphCo_HideoutBarrier_BottomLeft, 1 + setmetatile 21, 20, METATILE_SilphCo_HideoutBarrier_BottomRight, 1 + setmetatile 20, 21, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 21, 21, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + return + +RocketHideout_B1F_EventScript_RemoveBarrier:: + setmetatile 20, 19, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 21, 19, METATILE_SilphCo_HideoutFloor, 0 + setmetatile 20, 20, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 21, 20, METATILE_SilphCo_HideoutFloor, 0 + setmetatile 20, 21, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 21, 21, METATILE_SilphCo_HideoutFloor, 0 + return + +RocketHideout_B1F_Text_Grunt1Intro:: + .string "Who are you?\n" + .string "How did you get here?$" + +RocketHideout_B1F_Text_Grunt1Defeat:: + .string "Oww!\n" + .string "Beaten!$" + +RocketHideout_B1F_Text_Grunt1PostBattle:: + .string "Blast it… You're dissing TEAM\n" + .string "ROCKET, aren't you?$" + +RocketHideout_B1F_Text_Grunt2Intro:: + .string "You broke into TEAM ROCKET's\n" + .string "operation? What nerve!$" + +RocketHideout_B1F_Text_Grunt2Defeat:: + .string "Boom!$" + +RocketHideout_B1F_Text_Grunt2PostBattle:: + .string "You're not going to get away with\n" + .string "this, brat!$" + +RocketHideout_B1F_Text_Grunt3Intro:: + .string "Intruder alert!$" + +RocketHideout_B1F_Text_Grunt3Defeat:: + .string "I can't do it!$" + +RocketHideout_B1F_Text_Grunt3PostBattle:: + .string "SILPH SCOPE? Humph!\n" + .string "I don't know where it is.$" + +RocketHideout_B1F_Text_Grunt4Intro:: + .string "Why did you come here?$" + +RocketHideout_B1F_Text_Grunt4Defeat:: + .string "This won't do!$" + +RocketHideout_B1F_Text_Grunt4PostBattle:: + .string "Okay, I'll talk…\n" + .string "Take the elevator to see my BOSS.$" + +RocketHideout_B1F_Text_Grunt5Intro:: + .string "Are you lost, you little mouse?$" + +RocketHideout_B1F_Text_Grunt5Defeat:: + .string "Why…?$" + +RocketHideout_B1F_Text_Grunt5PostBattle:: + .string "Uh-oh, that ruckus somehow opened\n" + .string "the door!$" + diff --git a/data/maps/RocketHideout_B2F_Frlg/map.json b/data/maps/RocketHideout_B2F_Frlg/map.json new file mode 100644 index 000000000000..de0de4e1c29d --- /dev/null +++ b/data/maps/RocketHideout_B2F_Frlg/map.json @@ -0,0 +1,129 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B2F", + "name": "RocketHideout_B2F_Frlg", + "layout": "LAYOUT_ROCKET_HIDEOUT_B2F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": -2, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 20, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "RocketHideout_B2F_EventScript_Grunt", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 15, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B2F_EventScript_ItemXSpeed", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_X_SPEED" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B2F_EventScript_ItemMoonStone", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_MOON_STONE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B2F_EventScript_ItemTM12", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_TM12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 0, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B2F_EventScript_ItemSuperPotion", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_SUPER_POTION" + } + ], + "warp_events": [ + { + "x": 21, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B3F", + "dest_warp_id": "0" + }, + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B1F", + "dest_warp_id": "1" + }, + { + "x": 23, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B1F", + "dest_warp_id": "2" + }, + { + "x": 28, + "y": 16, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + }, + { + "x": 29, + "y": 16, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/RocketHideout_B2F_Frlg/scripts.inc b/data/maps/RocketHideout_B2F_Frlg/scripts.inc new file mode 100644 index 000000000000..b0ff38a69d6c --- /dev/null +++ b/data/maps/RocketHideout_B2F_Frlg/scripts.inc @@ -0,0 +1,20 @@ +RocketHideout_B2F_Frlg_MapScripts:: + .byte 0 + +RocketHideout_B2F_EventScript_Grunt:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_13, RocketHideout_B2F_Text_GruntIntro, RocketHideout_B2F_Text_GruntDefeat + msgbox RocketHideout_B2F_Text_GruntPostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B2F_Text_GruntIntro:: + .string "BOSS said you can see ghosts with\n" + .string "the SILPH SCOPE.$" + +RocketHideout_B2F_Text_GruntDefeat:: + .string "I surrender!$" + +RocketHideout_B2F_Text_GruntPostBattle:: + .string "The TEAM ROCKET HQ has four\n" + .string "underground floors.\p" + .string "Think you can reach the BOSS?$" + diff --git a/data/maps/RocketHideout_B3F_Frlg/map.json b/data/maps/RocketHideout_B3F_Frlg/map.json new file mode 100644 index 000000000000..25a6d7f2ab34 --- /dev/null +++ b/data/maps/RocketHideout_B3F_Frlg/map.json @@ -0,0 +1,119 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B3F", + "name": "RocketHideout_B3F_Frlg", + "layout": "LAYOUT_ROCKET_HIDEOUT_B3F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": -3, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 19, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "RocketHideout_B3F_EventScript_Grunt2", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 2, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "RocketHideout_B3F_EventScript_Grunt1", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B3F_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_RARE_CANDY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 19, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B3F_EventScript_ItemTM21", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_TM21" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 14, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B3F_EventScript_ItemBlackGlasses", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_BLACK_GLASSES" + } + ], + "warp_events": [ + { + "x": 18, + "y": 2, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B2F", + "dest_warp_id": "0" + }, + { + "x": 15, + "y": 18, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B4F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 1, + "y": 3, + "elevation": 3, + "item": "ITEM_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/RocketHideout_B3F_Frlg/scripts.inc b/data/maps/RocketHideout_B3F_Frlg/scripts.inc new file mode 100644 index 000000000000..b08d750e847c --- /dev/null +++ b/data/maps/RocketHideout_B3F_Frlg/scripts.inc @@ -0,0 +1,39 @@ +RocketHideout_B3F_Frlg_MapScripts:: + .byte 0 + +RocketHideout_B3F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_14, RocketHideout_B3F_Text_Grunt1Intro, RocketHideout_B3F_Text_Grunt1Defeat + msgbox RocketHideout_B3F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B3F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_15, RocketHideout_B3F_Text_Grunt2Intro, RocketHideout_B3F_Text_Grunt2Defeat + msgbox RocketHideout_B3F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B3F_Text_Grunt1Intro:: + .string "Stop meddling in TEAM ROCKET's\n" + .string "affairs or else!$" + +RocketHideout_B3F_Text_Grunt1Defeat:: + .string "Oof!\n" + .string "Taken down!$" + +RocketHideout_B3F_Text_Grunt1PostBattle:: + .string "SILPH SCOPE?\n" + .string "Oh, that machine the BOSS stole.\p" + .string "It's here somewhere.$" + +RocketHideout_B3F_Text_Grunt2Intro:: + .string "We got word from upstairs that you\n" + .string "were coming!$" + +RocketHideout_B3F_Text_Grunt2Defeat:: + .string "What?\n" + .string "I lost? No!$" + +RocketHideout_B3F_Text_Grunt2PostBattle:: + .string "Go ahead and go!\p" + .string "But you can't run the elevator\n" + .string "without the LIFT KEY.$" + diff --git a/data/maps/RocketHideout_B4F_Frlg/map.json b/data/maps/RocketHideout_B4F_Frlg/map.json new file mode 100644 index 000000000000..321ae089499c --- /dev/null +++ b/data/maps/RocketHideout_B4F_Frlg/map.json @@ -0,0 +1,195 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_B4F", + "name": "RocketHideout_B4F_Frlg", + "layout": "LAYOUT_ROCKET_HIDEOUT_B4F", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": -4, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_HIDEOUT_GIOVANNI", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", + "x": 19, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_Giovanni", + "flag": "FLAG_HIDE_HIDEOUT_GIOVANNI" + }, + { + "local_id": "LOCALID_SILPH_SCOPE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 20, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_SilphScope", + "flag": "FLAG_HIDE_SILPH_SCOPE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "RocketHideout_B4F_EventScript_Grunt1", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "local_id": "LOCALID_LIFT_KEY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_LiftKey", + "flag": "FLAG_HIDE_LIFT_KEY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 19, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_Grunt3", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 16, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_Grunt2", + "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_ItemTM49", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_TM49" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 4, + "y": 14, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_ItemMaxEther", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_MAX_ETHER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 6, + "y": 23, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "RocketHideout_B4F_EventScript_ItemCalcium", + "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_CALCIUM" + } + ], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_ROCKET_HIDEOUT_B3F", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 23, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + }, + { + "x": 21, + "y": 23, + "elevation": 0, + "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 22, + "y": 6, + "elevation": 3, + "item": "ITEM_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 16, + "y": 6, + "elevation": 3, + "item": "ITEM_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/RocketHideout_B4F_Frlg/scripts.inc b/data/maps/RocketHideout_B4F_Frlg/scripts.inc new file mode 100644 index 000000000000..091c65d8ed24 --- /dev/null +++ b/data/maps/RocketHideout_B4F_Frlg/scripts.inc @@ -0,0 +1,178 @@ +.equ NUM_DOOR_GRUNTS_DEFEATED, VAR_TEMP_1 + +RocketHideout_B4F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, RocketHideout_B4F_OnLoad + .byte 0 + +RocketHideout_B4F_OnLoad:: + setvar NUM_DOOR_GRUNTS_DEFEATED, 0 + call_if_defeated TRAINER_TEAM_ROCKET_GRUNT_16, RocketHideout_B4F_EventScript_CountGruntDefeated + call_if_defeated TRAINER_TEAM_ROCKET_GRUNT_17, RocketHideout_B4F_EventScript_CountGruntDefeated + call_if_ne NUM_DOOR_GRUNTS_DEFEATED, 2, RocketHideout_B4F_EventScript_SetBarrier + end + +RocketHideout_B4F_EventScript_CountGruntDefeated:: + addvar NUM_DOOR_GRUNTS_DEFEATED, 1 + return + +RocketHideout_B4F_EventScript_Giovanni:: + lock + faceplayer + famechecker FAMECHECKER_GIOVANNI, 0 + message RocketHideout_B4F_Text_GiovanniIntro + waitmessage + playbgm MUS_RG_ENCOUNTER_ROCKET, 0 + waitbuttonpress + trainerbattle_no_intro TRAINER_BOSS_GIOVANNI, RocketHideout_B4F_Text_GiovanniDefeat + msgbox RocketHideout_B4F_Text_GiovanniPostBattle + fadescreen FADE_TO_BLACK + closemessage + removeobject LOCALID_HIDEOUT_GIOVANNI + addobject LOCALID_SILPH_SCOPE + clearflag FLAG_HIDE_SILPH_SCOPE + setflag FLAG_HIDE_CELADON_ROCKETS + famechecker FAMECHECKER_GIOVANNI, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + fadescreen FADE_FROM_BLACK + release + end + +RocketHideout_B4F_EventScript_SilphScope:: + lock + faceplayer + removeobject LOCALID_SILPH_SCOPE + giveitem ITEM_SILPH_SCOPE + goto_if_eq VAR_RESULT, FALSE, EventScript_BagIsFull + release + end + +RocketHideout_B4F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_18, RocketHideout_B4F_Text_Grunt1Intro, RocketHideout_B4F_Text_Grunt1Defeat, RocketHideout_B4F_EventScript_DefeatedGrunt1 + msgbox RocketHideout_B4F_Text_Grunt1PostBattle + release + end + +RocketHideout_B4F_EventScript_DefeatedGrunt1:: + msgbox RocketHideout_B4F_Text_Grunt1PostBattle + addobject LOCALID_LIFT_KEY + clearflag FLAG_HIDE_LIFT_KEY + release + end + +RocketHideout_B4F_EventScript_LiftKey:: + lock + faceplayer + setflag FLAG_CAN_USE_ROCKET_HIDEOUT_LIFT + removeobject LOCALID_LIFT_KEY + giveitem ITEM_LIFT_KEY + goto_if_eq VAR_RESULT, FALSE, EventScript_BagIsFull + release + end + +RocketHideout_B4F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_16, RocketHideout_B4F_Text_Grunt2Intro, RocketHideout_B4F_Text_Grunt2Defeat, RocketHideout_B4F_EventScript_DefeatedGrunt2 + msgbox RocketHideout_B4F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B4F_EventScript_DefeatedGrunt2:: + setvar NUM_DOOR_GRUNTS_DEFEATED, 0 + call_if_defeated TRAINER_TEAM_ROCKET_GRUNT_16, RocketHideout_B4F_EventScript_CountGruntDefeated + call_if_defeated TRAINER_TEAM_ROCKET_GRUNT_17, RocketHideout_B4F_EventScript_CountGruntDefeated + call_if_eq NUM_DOOR_GRUNTS_DEFEATED, 2, RocketHideout_B4F_EventScript_RemoveBarrier + call_if_eq NUM_DOOR_GRUNTS_DEFEATED, 2, RocketHideout_B4F_EventScript_DrawMapForBarrierRemoval + release + end + +RocketHideout_B4F_EventScript_Grunt3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_17, RocketHideout_B4F_Text_Grunt3Intro, RocketHideout_B4F_Text_Grunt3Defeat, RocketHideout_B4F_EventScript_DefeatedGrunt3 + msgbox RocketHideout_B4F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE + end + +RocketHideout_B4F_EventScript_DefeatedGrunt3:: + setvar NUM_DOOR_GRUNTS_DEFEATED, 0 + call_if_defeated TRAINER_TEAM_ROCKET_GRUNT_16, RocketHideout_B4F_EventScript_CountGruntDefeated + call_if_defeated TRAINER_TEAM_ROCKET_GRUNT_17, RocketHideout_B4F_EventScript_CountGruntDefeated + call_if_eq NUM_DOOR_GRUNTS_DEFEATED, 2, RocketHideout_B4F_EventScript_RemoveBarrier + call_if_eq NUM_DOOR_GRUNTS_DEFEATED, 2, RocketHideout_B4F_EventScript_DrawMapForBarrierRemoval + release + end + +RocketHideout_B4F_EventScript_DrawMapForBarrierRemoval:: + playse SE_UNLOCK + special DrawWholeMapView + waitse + return + +RocketHideout_B4F_EventScript_SetBarrier:: + setmetatile 17, 12, METATILE_SilphCo_HideoutBarrier_TopLeft_Floor, 1 + setmetatile 18, 12, METATILE_SilphCo_HideoutBarrier_TopRight_Floor, 1 + setmetatile 17, 13, METATILE_SilphCo_HideoutBarrier_BottomLeft, 1 + setmetatile 18, 13, METATILE_SilphCo_HideoutBarrier_BottomRight, 1 + setmetatile 17, 14, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 18, 14, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + return + +RocketHideout_B4F_EventScript_RemoveBarrier:: + setmetatile 17, 12, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 18, 12, METATILE_SilphCo_HideoutFloor, 0 + setmetatile 17, 13, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 18, 13, METATILE_SilphCo_HideoutFloor, 0 + setmetatile 17, 14, METATILE_SilphCo_HideoutFloor_ShadeFull, 0 + setmetatile 18, 14, METATILE_SilphCo_HideoutFloor, 0 + return + +RocketHideout_B4F_Text_GiovanniIntro:: + .string "So! I must say, I am impressed you\n" + .string "got here.\p" + .string "TEAM ROCKET captures POKéMON from\n" + .string "around the world.\p" + .string "They're important tools for keeping\n" + .string "our criminal enterprise going.\p" + .string "I am the leader, GIOVANNI!\p" + .string "For your insolence, you will feel a\n" + .string "world of pain!$" + +RocketHideout_B4F_Text_GiovanniDefeat:: + .string "WHAT!\n" + .string "This can't be!$" + +RocketHideout_B4F_Text_GiovanniPostBattle:: + .string "I see that you raise POKéMON with\n" + .string "utmost care.\p" + .string "A child like you would never\n" + .string "understand what I hope to achieve.\p" + .string "I shall step aside this time!\p" + .string "I hope we meet again…$" + +RocketHideout_B4F_Text_Grunt2Intro:: + .string "I know you!\n" + .string "You ruined our plans at MT. MOON!$" + +RocketHideout_B4F_Text_Grunt2Defeat:: + .string "Burned again!$" + +RocketHideout_B4F_Text_Grunt2PostBattle:: + .string "Do you have something against TEAM\n" + .string "ROCKET?$" + +RocketHideout_B4F_Text_Grunt3Intro:: + .string "How can you not see the beauty of\n" + .string "our evil?$" + +RocketHideout_B4F_Text_Grunt3Defeat:: + .string "Ayaya!$" + +RocketHideout_B4F_Text_Grunt3PostBattle:: + .string "BOSS!\n" + .string "I'm sorry I failed you!$" + +RocketHideout_B4F_Text_Grunt1Intro:: + .string "The elevator doesn't work?\n" + .string "Who has the LIFT KEY?$" + +RocketHideout_B4F_Text_Grunt1Defeat:: + .string "No!$" + +RocketHideout_B4F_Text_Grunt1PostBattle:: + .string "Oh, no!\n" + .string "I dropped the LIFT KEY!$" + diff --git a/data/maps/RocketHideout_Elevator_Frlg/map.json b/data/maps/RocketHideout_Elevator_Frlg/map.json new file mode 100644 index 000000000000..d01cfda16ea8 --- /dev/null +++ b/data/maps/RocketHideout_Elevator_Frlg/map.json @@ -0,0 +1,46 @@ +{ + "id": "MAP_ROCKET_HIDEOUT_ELEVATOR", + "name": "RocketHideout_Elevator_Frlg", + "layout": "LAYOUT_ROCKET_HIDEOUT_ELEVATOR", + "music": "MUS_RG_ROCKET_HIDEOUT", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROCKET_HIDEOUT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_2", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 0, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "RocketHideout_Elevator_EventScript_FloorSelect" + } + ] +} diff --git a/data/maps/RocketHideout_Elevator_Frlg/scripts.inc b/data/maps/RocketHideout_Elevator_Frlg/scripts.inc new file mode 100644 index 000000000000..8d698855fbf1 --- /dev/null +++ b/data/maps/RocketHideout_Elevator_Frlg/scripts.inc @@ -0,0 +1,93 @@ +RocketHideout_Elevator_Frlg_MapScripts:: + .byte 0 + +RocketHideout_Elevator_EventScript_FloorSelect:: + lockall + goto_if_unset FLAG_CAN_USE_ROCKET_HIDEOUT_LIFT, RocketHideout_Elevator_EventScript_NeedKey + setvar VAR_0x8004, 2 + call_if_unset FLAG_TEMP_2, EventScript_GetElevatorFloor + copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR + special DrawElevatorCurrentFloorWindow + message gText_WantWhichFloor + waitmessage + setvar VAR_0x8004, 2 + specialvar VAR_RESULT, InitElevatorFloorSelectMenuPos + switch VAR_RESULT + case 0, RocketHideout_Elevator_EventScript_FloorSelectFromB1F + case 1, RocketHideout_Elevator_EventScript_FloorSelectFromB2F + case 2, RocketHideout_Elevator_EventScript_FloorSelectFromB4F + end + +RocketHideout_Elevator_EventScript_FloorSelectFromB1F:: + multichoicedefault 0, 0, MULTI_ROCKET_HIDEOUT_ELEVATOR, 0, FALSE + goto RocketHideout_Elevator_EventScript_ChooseFloor + end + +RocketHideout_Elevator_EventScript_FloorSelectFromB2F:: + multichoicedefault 0, 0, MULTI_ROCKET_HIDEOUT_ELEVATOR, 1, FALSE + goto RocketHideout_Elevator_EventScript_ChooseFloor + end + +RocketHideout_Elevator_EventScript_FloorSelectFromB4F:: + multichoicedefault 0, 0, MULTI_ROCKET_HIDEOUT_ELEVATOR, 2, FALSE + goto RocketHideout_Elevator_EventScript_ChooseFloor + end + +RocketHideout_Elevator_EventScript_ChooseFloor:: + switch VAR_RESULT + case 0, RocketHideout_Elevator_EventScript_ToB1F + case 1, RocketHideout_Elevator_EventScript_ToB2F + case 2, RocketHideout_Elevator_EventScript_ToB4F + case 3, RocketHideout_Elevator_EventScript_ExitFloorSelect + case 127, RocketHideout_Elevator_EventScript_ExitFloorSelect + end + +RocketHideout_Elevator_EventScript_ToB1F:: + setvar VAR_0x8006, 3 + setdynamicwarp MAP_ROCKET_HIDEOUT_B1F, 255, 24, 25 + goto_if_eq VAR_ELEVATOR_FLOOR, 3, RocketHideout_Elevator_EventScript_ExitFloorSelect + call RocketHideout_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 3 + goto RocketHideout_Elevator_EventScript_ExitFloorSelect + end + +RocketHideout_Elevator_EventScript_ToB2F:: + setvar VAR_0x8006, 2 + setdynamicwarp MAP_ROCKET_HIDEOUT_B2F, 255, 28, 16 + goto_if_eq VAR_ELEVATOR_FLOOR, 2, RocketHideout_Elevator_EventScript_ExitFloorSelect + call RocketHideout_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 2 + goto RocketHideout_Elevator_EventScript_ExitFloorSelect + end + +RocketHideout_Elevator_EventScript_ToB4F:: + setvar VAR_0x8006, 0 + setdynamicwarp MAP_ROCKET_HIDEOUT_B4F, 255, 20, 23 + goto_if_eq VAR_ELEVATOR_FLOOR, 0, RocketHideout_Elevator_EventScript_ExitFloorSelect + call RocketHideout_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 0 + goto RocketHideout_Elevator_EventScript_ExitFloorSelect + end + +RocketHideout_Elevator_EventScript_ExitFloorSelect:: + special CloseElevatorCurrentFloorWindow + releaseall + end + +RocketHideout_Elevator_EventScript_MoveElevator:: + special CloseElevatorCurrentFloorWindow + closemessage + waitse + special AnimateElevator + waitstate + setflag FLAG_TEMP_2 + return + +RocketHideout_Elevator_EventScript_NeedKey:: + msgbox RocketHideout_Elevator_Text_AppearsToNeedAKey + releaseall + end + +RocketHideout_Elevator_Text_AppearsToNeedAKey:: + .string "It appears to need a key.$" + diff --git a/data/maps/Route10_Frlg/map.json b/data/maps/Route10_Frlg/map.json new file mode 100644 index 000000000000..3a9da3fe2657 --- /dev/null +++ b/data/maps/Route10_Frlg/map.json @@ -0,0 +1,287 @@ +{ + "id": "MAP_ROUTE10", + "name": "Route10_Frlg", + "layout": "LAYOUT_ROUTE10", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_10", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_LAVENDER_TOWN", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_ROUTE9", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 7, + "y": 60, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route10_EventScript_Carol", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 4, + "y": 62, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route10_EventScript_Clark", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 15, + "y": 70, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route10_EventScript_Herman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 4, + "y": 68, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route10_EventScript_Trent", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 13, + "y": 44, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route10_EventScript_Mark", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 9, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route10_EventScript_Heidi", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 10, + "y": 20, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 10, + "y": 22, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 10, + "y": 24, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 10, + "y": 26, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_15" + } + ], + "warp_events": [ + { + "x": 8, + "y": 19, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 57, + "elevation": 3, + "dest_map": "MAP_ROCK_TUNNEL_1F", + "dest_warp_id": "5" + }, + { + "x": 7, + "y": 40, + "elevation": 3, + "dest_map": "MAP_POWER_PLANT", + "dest_warp_id": "1" + }, + { + "x": 13, + "y": 20, + "elevation": 0, + "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 37, + "elevation": 3, + "dest_map": "MAP_POWER_PLANT", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 15, + "y": 59, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route10_EventScript_SouthRockTunnelSign" + }, + { + "type": "sign", + "x": 6, + "y": 42, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route10_EventScript_PowerPlantSign" + }, + { + "type": "sign", + "x": 7, + "y": 21, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route10_EventScript_NorthRockTunnelSign" + }, + { + "type": "hidden_item", + "x": 10, + "y": 19, + "elevation": 0, + "item": "ITEM_SUPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 12, + "y": 40, + "elevation": 3, + "item": "ITEM_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 6, + "y": 26, + "elevation": 3, + "item": "ITEM_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 17, + "y": 29, + "elevation": 3, + "item": "ITEM_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 20, + "y": 57, + "elevation": 3, + "item": "ITEM_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route10_Frlg/scripts.inc b/data/maps/Route10_Frlg/scripts.inc new file mode 100644 index 000000000000..faa53ca9adbb --- /dev/null +++ b/data/maps/Route10_Frlg/scripts.inc @@ -0,0 +1,104 @@ +Route10_Frlg_MapScripts:: + .byte 0 + +Route10_EventScript_Unused:: + end + +Route10_EventScript_NorthRockTunnelSign:: + msgbox Route10_Text_RockTunnelDetourToLavender, MSGBOX_SIGN + end + +Route10_EventScript_SouthRockTunnelSign:: + msgbox Route10_Text_RockTunnel, MSGBOX_SIGN + end + +Route10_EventScript_PowerPlantSign:: + msgbox Route10_Text_PowerPlant, MSGBOX_SIGN + end + +Route10_Text_MarkIntro:: + .string "Wow, you came all the way here?\n" + .string "Maybe you're a POKéMANIAC, too?\l" + .string "Want to see my collection?$" + +Route10_Text_MarkDefeat:: + .string "Humph.\n" + .string "I'm not angry!$" + +Route10_Text_MarkPostBattle:: + .string "I have more rare POKéMON at home!$" + +Route10_Text_ClarkIntro:: + .string "Ha-hahah-ah-ha!$" + +Route10_Text_ClarkDefeat:: + .string "Ha-haha!\n" + .string "Not laughing!\l" + .string "Ha-hay fever! Haha-ha-choo!$" + +Route10_Text_ClarkPostBattle:: + .string "Haha-ha-choo!\n" + .string "Ha-choo!\l" + .string "Snort! Snivel!$" + +Route10_Text_HermanIntro:: + .string "Hi, kid!\n" + .string "Want to see my POKéMON?$" + +Route10_Text_HermanDefeat:: + .string "Oh, no!\n" + .string "My POKéMON!$" + +Route10_Text_HermanPostBattle:: + .string "I don't like you.\n" + .string "I don't like anyone better than me!$" + +Route10_Text_HeidiIntro:: + .string "I've been out at a POKéMON GYM\n" + .string "a few times.\p" + .string "…But I always lose.$" + +Route10_Text_HeidiDefeat:: + .string "Ohh!\n" + .string "After all my training!$" + +Route10_Text_HeidiPostBattle:: + .string "I noticed some POKéMANIACS\n" + .string "prowling around.\p" + .string "Can you imagine? Them?\n" + .string "Up here in the mountains?$" + +Route10_Text_TrentIntro:: + .string "Ah!\n" + .string "This mountain air is delicious!$" + +Route10_Text_TrentDefeat:: + .string "That cleared my head!$" + +Route10_Text_TrentPostBattle:: + .string "I feel bloated on mountain air!$" + +Route10_Text_CarolIntro:: + .string "I'm feeling a bit faint.\n" + .string "I haven't hiked in some time.$" + +Route10_Text_CarolDefeat:: + .string "I'm too tired.\n" + .string "I wasn't up for it.$" + +Route10_Text_CarolPostBattle:: + .string "The POKéMON here in the mountains\n" + .string "are so chunky…\p" + .string "I wish there were pink POKéMON\n" + .string "with a floral pattern!$" + +Route10_Text_RockTunnelDetourToLavender:: + .string "ROCK TUNNEL\n" + .string "Detour to LAVENDER TOWN$" + +Route10_Text_RockTunnel:: + .string "ROCK TUNNEL$" + +Route10_Text_PowerPlant:: + .string "POWER PLANT$" + diff --git a/data/maps/Route10_PokemonCenter_1F_Frlg/map.json b/data/maps/Route10_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..a793e98ca47a --- /dev/null +++ b/data/maps/Route10_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,123 @@ +{ + "id": "MAP_ROUTE10_POKEMON_CENTER_1F", + "name": "Route10_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_10", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_ROUTE10_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route10_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route10_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 2, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route10_PokemonCenter_1F_EventScript_FatMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route10_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route10_PokemonCenter_1F_EventScript_Aide", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "3" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE10", + "dest_warp_id": "3" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE10_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route10_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/Route10_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..4e9d19d21cb5 --- /dev/null +++ b/data/maps/Route10_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,110 @@ +.equ REQUIRED_OWNED_MONS, 20 + +Route10_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route10_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +Route10_PokemonCenter_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F + setrespawn HEAL_LOCATION_ROUTE10 + end + +Route10_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +Route10_PokemonCenter_1F_EventScript_FatMan:: + msgbox Route10_PokemonCenter_1F_Text_NuggetUselessSoldFor5000, MSGBOX_NPC + end + +Route10_PokemonCenter_1F_EventScript_Gentleman:: + msgbox Route10_PokemonCenter_1F_Text_EveryTypeStrongerThanOthers, MSGBOX_NPC + end + +Route10_PokemonCenter_1F_EventScript_Youngster:: + msgbox Route10_PokemonCenter_1F_Text_HeardGhostsHauntLavender, MSGBOX_NPC + end + +Route10_PokemonCenter_1F_EventScript_Aide:: + lock + faceplayer + call Route10_PokemonCenter_1F_EventScript_GetAideRequestInfo + goto_if_set FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE, Route10_PokemonCenter_1F_EventScript_AlreadyGotEverstone + msgbox Route10_PokemonCenter_1F_Text_GiveEverstoneIfCaught20Mons, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Aide_EventScript_DeclineCheckMons + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + buffernumberstring STR_VAR_3, VAR_0x8006 + call Route10_PokemonCenter_1F_EventScript_GetAideRequestInfo + goto_if_lt VAR_0x8006, REQUIRED_OWNED_MONS, Aide_EventScript_HaventCaughtEnough + msgbox Route10_PokemonCenter_1F_Text_GreatHereYouGo + checkitemspace ITEM_EVERSTONE + goto_if_eq VAR_RESULT, FALSE, Aide_EventScript_NoRoomForItem + giveitem_msg Route10_PokemonCenter_1F_Text_ReceivedEverstoneFromAide, ITEM_EVERSTONE + setflag FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE + msgbox Route10_PokemonCenter_1F_Text_ExplainEverstone + release + end + +Route10_PokemonCenter_1F_EventScript_AlreadyGotEverstone:: + msgbox Route10_PokemonCenter_1F_Text_ExplainEverstone + release + end + +Route10_PokemonCenter_1F_EventScript_GetAideRequestInfo:: + buffernumberstring STR_VAR_1, REQUIRED_OWNED_MONS + bufferitemname STR_VAR_2, ITEM_EVERSTONE + return + +Route10_PokemonCenter_1F_Text_EveryTypeStrongerThanOthers:: + .string "The types of POKéMON match up\n" + .string "differently with each other.\p" + .string "Every type is stronger than some\n" + .string "types and weaker than others.$" + +Route10_PokemonCenter_1F_Text_NuggetUselessSoldFor5000:: + .string "A NUGGET is totally useless.\n" + .string "So I sold it for ¥5000.$" + +Route10_PokemonCenter_1F_Text_HeardGhostsHauntLavender:: + .string "I heard that ghosts haunt\n" + .string "LAVENDER TOWN.$" + +Route10_PokemonCenter_1F_Text_GiveEverstoneIfCaught20Mons:: + .string "Oh… {PLAYER}!\n" + .string "I've been looking for you!\p" + .string "It's me, one of the ever-present\n" + .string "AIDES to PROF. OAK.\p" + .string "If your POKéDEX has complete data\n" + .string "on twenty species, I'm supposed to\l" + .string "give you a reward from PROF. OAK.\p" + .string "He entrusted me with this\n" + .string "EVERSTONE.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "twenty kinds of POKéMON?$" + +Route10_PokemonCenter_1F_Text_GreatHereYouGo:: + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +Route10_PokemonCenter_1F_Text_ReceivedEverstoneFromAide:: + .string "{PLAYER} received the EVERSTONE\n" + .string "from the AIDE.$" + +Route10_PokemonCenter_1F_Text_ExplainEverstone:: + .string "Making POKéMON evolve certainly\n" + .string "can add to the POKéDEX.\p" + .string "However, at times, you may not\n" + .string "want a certain POKéMON to evolve.\p" + .string "In that case, give the EVERSTONE\n" + .string "to that POKéMON.\p" + .string "It will prevent evolution according\n" + .string "to the PROFESSOR.$" + diff --git a/data/maps/Route10_PokemonCenter_2F_Frlg/map.json b/data/maps/Route10_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..3db9e074400e --- /dev/null +++ b/data/maps/Route10_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_ROUTE10_POKEMON_CENTER_2F", + "name": "Route10_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_10", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route10_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/Route10_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..0c7a74326227 --- /dev/null +++ b/data/maps/Route10_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +Route10_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +Route10_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +Route10_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +Route10_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/Route11_EastEntrance_1F_Frlg/map.json b/data/maps/Route11_EastEntrance_1F_Frlg/map.json new file mode 100644 index 000000000000..addb1f19dfaf --- /dev/null +++ b/data/maps/Route11_EastEntrance_1F_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "name": "Route11_EastEntrance_1F_Frlg", + "layout": "LAYOUT_ENTRANCE_1F", + "music": "MUS_RG_VERMILLION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_11", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EastEntrance_1F_EventScript_TopGuard", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 4, + "y": 10, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EastEntrance_1F_EventScript_BottomGuard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": "2" + }, + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE11", + "dest_warp_id": "2" + }, + { + "x": 9, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route11_EastEntrance_1F_Frlg/scripts.inc b/data/maps/Route11_EastEntrance_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..b94be6931f9d --- /dev/null +++ b/data/maps/Route11_EastEntrance_1F_Frlg/scripts.inc @@ -0,0 +1,32 @@ +Route11_EastEntrance_1F_Frlg_MapScripts:: + .byte 0 + +Route11_EastEntrance_1F_EventScript_TopGuard:: + msgbox Route11_EastEntrance_1F_Text_ManInLavenderRatesNames, MSGBOX_NPC + end + +Route11_EastEntrance_1F_EventScript_BottomGuard:: + msgbox Route11_EastEntrance_1F_Text_RockTunnelToReachLavender, MSGBOX_NPC + end + +@ Unclear where this is originally from +Route11_EastEntrance_1F_Text_BagIsFull:: + .string "{PLAYER}{KUN}の バッグ\n" + .string "いっぱい みたい だね$" + +Route11_EastEntrance_1F_Text_ManInLavenderRatesNames:: + .string "Don't you think it's hard to think\n" + .string "up good names for POKéMON?\p" + .string "Especially if you've caught a\n" + .string "whole bunch?\p" + .string "In LAVENDER TOWN, there's a man\n" + .string "who rates POKéMON nicknames.\p" + .string "He can even help you rename your\n" + .string "POKéMON, too.$" + +Route11_EastEntrance_1F_Text_RockTunnelToReachLavender:: + .string "If you're aiming to reach LAVENDER\n" + .string "TOWN, take ROCK TUNNEL.\p" + .string "You can get to ROCK TUNNEL from\n" + .string "CERULEAN CITY.$" + diff --git a/data/maps/Route11_EastEntrance_2F_Frlg/map.json b/data/maps/Route11_EastEntrance_2F_Frlg/map.json new file mode 100644 index 000000000000..bcd6a8671dff --- /dev/null +++ b/data/maps/Route11_EastEntrance_2F_Frlg/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_ROUTE11_EAST_ENTRANCE_2F", + "name": "Route11_EastEntrance_2F_Frlg", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "MUS_RG_VERMILLION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_11", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EastEntrance_2F_EventScript_Turner", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EastEntrance_2F_EventScript_Aide", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route11_EastEntrance_2F_EventScript_LeftBinoculars" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route11_EastEntrance_2F_EventScript_RightBinoculars" + } + ] +} diff --git a/data/maps/Route11_EastEntrance_2F_Frlg/scripts.inc b/data/maps/Route11_EastEntrance_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..f4e526865a99 --- /dev/null +++ b/data/maps/Route11_EastEntrance_2F_Frlg/scripts.inc @@ -0,0 +1,138 @@ +.equ REQUIRED_CAUGHT_MONS, 30 + +Route11_EastEntrance_2F_Frlg_MapScripts:: + .byte 0 + +Route11_EastEntrance_2F_EventScript_LeftBinoculars:: + lockall + goto_if_set FLAG_WOKE_UP_ROUTE_12_SNORLAX, Route11_EastEntrance_2F_EventScript_LeftBinocularsSnorlaxGone + msgbox Route11_EastEntrance_2F_Text_BigMonAsleepOnRoad + releaseall + end + +Route11_EastEntrance_2F_EventScript_LeftBinocularsSnorlaxGone:: + msgbox Route11_EastEntrance_2F_Text_WhatABreathtakingView + releaseall + end + +Route11_EastEntrance_2F_EventScript_RightBinoculars:: + msgbox Route11_EastEntrance_2F_Text_RockTunnelGoodRouteToLavender, MSGBOX_SIGN + end + +Route11_EastEntrance_2F_EventScript_Turner:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_NIDORINOA + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_NINA_TRADE, Route11_EastEntrance_2F_EventScript_AlreadyTraded + msgbox Trade_Text_LookingForMonWannaTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route11_EastEntrance_2F_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, Route11_EastEntrance_2F_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, Route11_EastEntrance_2F_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_HeyThanks + setflag FLAG_DID_NINA_TRADE + release + end + +Route11_EastEntrance_2F_EventScript_DeclineTrade:: + msgbox Trade_Text_AwwOhWell + release + end + +Route11_EastEntrance_2F_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_WhatThatsNoMon + release + end + +Route11_EastEntrance_2F_EventScript_AlreadyTraded:: + msgbox Trade_Text_IsntMyOldMonGreat + release + end + +Route11_EastEntrance_2F_EventScript_Aide:: + lock + faceplayer + call Route11_EastEntrance_2F_EventScript_GetAideRequestInfo + goto_if_set FLAG_GOT_ITEMFINDER, Route11_EastEntrance_2F_EventScript_AlreadyGotItemfinder + msgbox Route11_EastEntrance_2F_Text_GiveItemfinderIfCaught30, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Aide_EventScript_DeclineCheckMons + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + buffernumberstring STR_VAR_3, VAR_0x8006 + call Route11_EastEntrance_2F_EventScript_GetAideRequestInfo + goto_if_lt VAR_0x8006, REQUIRED_CAUGHT_MONS, Aide_EventScript_HaventCaughtEnough + msgbox Route11_EastEntrance_2F_Text_GreatHereYouGo + checkitemspace ITEM_ITEMFINDER + goto_if_eq VAR_RESULT, FALSE, Aide_EventScript_NoRoomForItem + giveitem_msg Route11_EastEntrance_2F_Text_ReceivedItemfinderFromAide, ITEM_ITEMFINDER + setflag FLAG_GOT_ITEMFINDER + msgbox Route11_EastEntrance_2F_Text_ExplainItemfinder + release + end + +Route11_EastEntrance_2F_EventScript_AlreadyGotItemfinder:: + msgbox Route11_EastEntrance_2F_Text_ExplainItemfinder + release + end + +Route11_EastEntrance_2F_EventScript_GetAideRequestInfo:: + buffernumberstring STR_VAR_1, REQUIRED_CAUGHT_MONS + bufferitemname STR_VAR_2, ITEM_ITEMFINDER + return + +Route11_EastEntrance_2F_Text_GiveItemfinderIfCaught30:: + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on {STR_VAR_1} species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with the\n" + .string "{STR_VAR_2} for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "{STR_VAR_1} kinds of POKéMON?$" + +Route11_EastEntrance_2F_Text_GreatHereYouGo:: + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +Route11_EastEntrance_2F_Text_ReceivedItemfinderFromAide:: + .string "{PLAYER} received the {STR_VAR_2}\n" + .string "from the AIDE.$" + +Route11_EastEntrance_2F_Text_ExplainItemfinder:: + .string "There are items on the ground that\n" + .string "may be hidden from view.\p" + .string "Use the ITEMFINDER to detect any\n" + .string "hidden items close to you.\p" + .string "The machine is a bit limited.\n" + .string "It can't pinpoint item locations.\p" + .string "What it does is show the direction\n" + .string "where the item is.\p" + .string "Use it to get your bearings, then\n" + .string "search the suspect area by hand.$" + +Route11_EastEntrance_2F_Text_BigMonAsleepOnRoad:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "A big POKéMON is asleep on a road!$" + +Route11_EastEntrance_2F_Text_WhatABreathtakingView:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "What a breathtaking view!$" + +Route11_EastEntrance_2F_Text_RockTunnelGoodRouteToLavender:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "To get to LAVENDER TOWN from\n" + .string "CERULEAN CITY…\p" + .string "ROCK TUNNEL appears to be a good\n" + .string "route to take.$" + diff --git a/data/maps/Route11_Frlg/map.json b/data/maps/Route11_Frlg/map.json new file mode 100644 index 000000000000..92ffb436e917 --- /dev/null +++ b/data/maps/Route11_Frlg/map.json @@ -0,0 +1,257 @@ +{ + "id": "MAP_ROUTE11", + "name": "Route11_Frlg", + "layout": "LAYOUT_ROUTE11", + "music": "MUS_RG_ROUTE11", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_11", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_VERMILION_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_ROUTE12", + "offset": -60, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 19, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route11_EventScript_Eddie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 16, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route11_EventScript_Hugo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 31, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route11_EventScript_Dillon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 28, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP", + "movement_range_x": 8, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route11_EventScript_Dave", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 38, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route11_EventScript_Jasper", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 50, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route11_EventScript_Darian", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 42, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route11_EventScript_Braxton", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 50, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route11_EventScript_Yasu", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 57, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route11_EventScript_Dirk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 32, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "Route11_EventScript_Bernie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 42, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EventScript_ItemXDefend", + "flag": "FLAG_HIDE_ROUTE11_X_DEFEND" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 63, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EventScript_ItemGreatBall", + "flag": "FLAG_HIDE_ROUTE11_GREAT_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 13, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route11_EventScript_ItemAwakening", + "flag": "FLAG_HIDE_ROUTE11_AWAKENING" + } + ], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 0, + "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 58, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "dest_warp_id": "0" + }, + { + "x": 65, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 7, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route11_EventScript_DiglettsCaveSign" + }, + { + "type": "hidden_item", + "x": 58, + "y": 5, + "elevation": 0, + "item": "ITEM_ESCAPE_ROPE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route11_Frlg/scripts.inc b/data/maps/Route11_Frlg/scripts.inc new file mode 100644 index 000000000000..8ea9da93da68 --- /dev/null +++ b/data/maps/Route11_Frlg/scripts.inc @@ -0,0 +1,120 @@ +Route11_Frlg_MapScripts:: + .byte 0 + +Route11_EventScript_DiglettsCaveSign:: + msgbox Route11_Text_DiglettsCave, MSGBOX_SIGN + end + +Route11_Text_HugoIntro:: + .string "Win, lose, or draw!$" + +Route11_Text_HugoDefeat:: + .string "Atcha!\n" + .string "Didn't go my way!$" + +Route11_Text_HugoPostBattle:: + .string "POKéMON is life!\n" + .string "And to live is to play games!$" + +Route11_Text_JasperIntro:: + .string "Competition!\n" + .string "I can't get enough!$" + +Route11_Text_JasperDefeat:: + .string "I had a chance!$" + +Route11_Text_JasperPostBattle:: + .string "You can't be a coward in the world\n" + .string "of POKéMON!$" + +Route11_Text_EddieIntro:: + .string "Let's go, but don't cheat!$" + +Route11_Text_EddieDefeat:: + .string "Huh?\n" + .string "That's not right!$" + +Route11_Text_EddiePostBattle:: + .string "I did my best.\n" + .string "I have no regrets.$" + +Route11_Text_BraxtonIntro:: + .string "Careful!\n" + .string "I'm laying down some cables!$" + +Route11_Text_BraxtonDefeat:: + .string "That was electric!$" + +Route11_Text_BraxtonPostBattle:: + .string "Spread the word to save energy!$" + +Route11_Text_DillonIntro:: + .string "I just became a TRAINER.\n" + .string "But, I think I can win.$" + +Route11_Text_DillonDefeat:: + .string "My POKéMON couldn't win…\n" + .string "Haven't they grown enough?$" + +Route11_Text_DillonPostBattle:: + .string "What now?\n" + .string "Leave me alone!$" + +Route11_Text_DirkIntro:: + .string "Fwahaha!\n" + .string "I have never lost!$" + +Route11_Text_DirkDefeat:: + .string "My first loss!$" + +Route11_Text_DirkPostBattle:: + .string "You were just lucky, that's all.$" + +Route11_Text_DarianIntro:: + .string "I have never won before…$" + +Route11_Text_DarianDefeat:: + .string "I saw this coming…$" + +Route11_Text_DarianPostBattle:: + .string "I was unlucky, as always.$" + +Route11_Text_YasuIntro:: + .string "I'm the best in my class.\n" + .string "I train every morning.$" + +Route11_Text_YasuDefeat:: + .string "Darn!\n" + .string "My POKéMON need to be stronger!$" + +Route11_Text_YasuPostBattle:: + .string "There's a fat POKéMON that comes\n" + .string "down from the mountains.\p" + .string "I bet it'd be strong if you can\n" + .string "catch it.$" + +Route11_Text_BernieIntro:: + .string "Watch out for live wires!$" + +Route11_Text_BernieDefeat:: + .string "Whoa!\n" + .string "You spark plug!$" + +Route11_Text_BerniePostBattle:: + .string "Well, better get back to work.$" + +Route11_Text_DaveIntro:: + .string "I raised my POKéMON carefully.\n" + .string "They should be ready by now!$" + +Route11_Text_DaveDefeat:: + .string "Bye-bye!\n" + .string "Thank you, and good-bye!$" + +Route11_Text_DavePostBattle:: + .string "Tch…\n" + .string "I better go find stronger ones!$" + +Route11_Text_DiglettsCave:: + .string "DIGLETT'S CAVE$" + diff --git a/data/maps/Route12_FishingHouse_Frlg/map.json b/data/maps/Route12_FishingHouse_Frlg/map.json new file mode 100644 index 000000000000..9057b590c32a --- /dev/null +++ b/data/maps/Route12_FishingHouse_Frlg/map.json @@ -0,0 +1,68 @@ +{ + "id": "MAP_ROUTE12_FISHING_HOUSE", + "name": "Route12_FishingHouse_Frlg", + "layout": "LAYOUT_HOUSE4_FRLG", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_FishingHouse_EventScript_FishingGuruBrother", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 8, + "elevation": 0, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 8, + "elevation": 0, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route12_FishingHouse_EventScript_MagikarpRecordSign" + } + ] +} diff --git a/data/maps/Route12_FishingHouse_Frlg/scripts.inc b/data/maps/Route12_FishingHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..1ca7a1d9cd9a --- /dev/null +++ b/data/maps/Route12_FishingHouse_Frlg/scripts.inc @@ -0,0 +1,189 @@ +Route12_FishingHouse_Frlg_MapScripts:: + .byte 0 + +Route12_FishingHouse_EventScript_FishingGuruBrother:: + lock + faceplayer + goto_if_set FLAG_GOT_SUPER_ROD, Route12_FishingHouse_EventScript_CheckMagikarpRecord + msgbox Route12_FishingHouse_Text_DoYouLikeToFish, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, Route12_FishingHouse_EventScript_GiveSuperRod + msgbox Route12_FishingHouse_Text_OhThatsDisappointing + release + end + +Route12_FishingHouse_EventScript_GiveSuperRod:: + checkitemspace ITEM_SUPER_ROD + goto_if_eq VAR_RESULT, FALSE, Route12_FishingHouse_EventScript_NoRoomForSuperRod + additem ITEM_SUPER_ROD + msgbox Route12_FishingHouse_Text_TakeThisAndFish + msgreceiveditem Route12_FishingHouse_Text_ReceivedSuperRod, ITEM_SUPER_ROD + setflag FLAG_GOT_SUPER_ROD + msgbox Route12_FishingHouse_Text_IfYouCatchBigMagikarpShowMe + release + end + +Route12_FishingHouse_EventScript_NoRoomForSuperRod:: + msgbox Route12_FishingHouse_Text_NoRoomForGift + release + end + +Route12_FishingHouse_EventScript_CheckMagikarpRecord:: + setvar VAR_0x8004, SPECIES_MAGIKARP + specialvar VAR_RESULT, DoesPlayerPartyContainSpecies + goto_if_eq VAR_RESULT, FALSE, Route12_FishingHouse_EventScript_NoMagikarpInParty + special GetMagikarpSizeRecordInfo + msgbox Route12_FishingHouse_Text_OhMagikarpAllowMeToSee + special ChoosePartyMon + waitstate + copyvar VAR_RESULT, VAR_0x8004 + goto_if_ge VAR_RESULT, PARTY_SIZE, Route12_FishingHouse_EventScript_CancelShowMon + special CompareMagikarpSize + goto_if_eq VAR_RESULT, 1, Route12_FishingHouse_EventScript_NotMagikarp + goto_if_eq VAR_RESULT, 2, Route12_FishingHouse_EventScript_NotRecordMagikarp + goto_if_eq VAR_RESULT, 3, Route12_FishingHouse_EventScript_NewRecordMagikarp + goto_if_eq VAR_RESULT, 4, Route12_FishingHouse_EventScript_TieRecordMagikarp + release + end + +Route12_FishingHouse_EventScript_NoMagikarpInParty:: + msgbox Route12_FishingHouse_Text_TryFishingBringMeMagikarp + release + end + +Route12_FishingHouse_EventScript_CancelShowMon:: + release + end + +Route12_FishingHouse_EventScript_NotMagikarp:: + msgbox Route12_FishingHouse_Text_DoesntLookLikeMagikarp + release + end + +Route12_FishingHouse_EventScript_NotRecordMagikarp:: + goto_if_unset FLAG_GOT_RECORD_SETTING_MAGIKARP, Route12_FishingHouse_EventScript_NewRecordMagikarp + msgbox Route12_FishingHouse_Text_HmmXInchesDoesntMeasureUp + release + end + +Route12_FishingHouse_EventScript_TieRecordMagikarp:: + goto_if_unset FLAG_GOT_RECORD_SETTING_MAGIKARP, Route12_FishingHouse_EventScript_NewRecordMagikarp + msgbox Route12_FishingHouse_Text_HuhXInchesSameSizeAsLast + release + end + +Route12_FishingHouse_EventScript_NewRecordMagikarp:: + setflag FLAG_GOT_RECORD_SETTING_MAGIKARP + msgbox Route12_FishingHouse_Text_WhoaXInchesTakeThis + giveitem ITEM_NET_BALL + goto_if_eq VAR_RESULT, FALSE, Route12_FishingHouse_EventScript_NoRoomForNetBall + msgbox Route12_FishingHouse_Text_LookForwardToGreaterRecords + release + end + +Route12_FishingHouse_EventScript_NoRoomForNetBall:: + msgbox Route12_FishingHouse_Text_NoRoomForGift + release + end + +Route12_FishingHouse_EventScript_MagikarpRecordSign:: + lockall + goto_if_set FLAG_GOT_RECORD_SETTING_MAGIKARP, Route12_FishingHouse_EventScript_MagikarpRecordSignRecordSet + msgbox Route12_FishingHouse_Text_BlankChartOfSomeSort + releaseall + end + +Route12_FishingHouse_EventScript_MagikarpRecordSignRecordSet:: + special GetMagikarpSizeRecordInfo + msgbox Route12_FishingHouse_Text_MostGiganticMagikarpXInches + releaseall + end + +Route12_FishingHouse_Text_DoYouLikeToFish:: + .string "I'm the FISHING GURU's younger\n" + .string "brother.\p" + .string "I simply looove fishing!\n" + .string "I can't bear to go without.\p" + .string "Tell me, do you like to fish?$" + +Route12_FishingHouse_Text_TakeThisAndFish:: + .string "Grand! I like your style.\n" + .string "I think we can be friends.\p" + .string "Take this and fish, young friend!$" + +Route12_FishingHouse_Text_ReceivedSuperRod:: + .string "{PLAYER} received a SUPER ROD from\n" + .string "the FISHING GURU's brother.$" + +Route12_FishingHouse_Text_IfYouCatchBigMagikarpShowMe:: + .string "Fishing is a way of life!\n" + .string "It is like the finest poetry.\p" + .string "From the seas to rivers, go out\n" + .string "and land the big one, my friend.\p" + .string "Now, I have a request.\p" + .string "If you catch a big MAGIKARP \n" + .string "with that ROD, I want to see it.\p" + .string "As much as I love to fish, I also\n" + .string "love seeing gigantic MAGIKARP.$" + +Route12_FishingHouse_Text_OhThatsDisappointing:: + .string "Oh…\n" + .string "That's so disappointing…$" + +Route12_FishingHouse_Text_TryFishingBringMeMagikarp:: + .string "Hello there, {PLAYER}!\n" + .string "Have you been fishing?\p" + .string "Try fishing with the SUPER ROD in\n" + .string "any body of water.\p" + .string "You'll find different POKéMON in\n" + .string "different places.\p" + .string "Oh, and don't forget to bring me\n" + .string "gigantic MAGIKARP.$" + +Route12_FishingHouse_Text_OhMagikarpAllowMeToSee:: + .string "Oh? {PLAYER}?\n" + .string "Why, if it isn't a MAGIKARP!\p" + .string "Allow me to see it, quick!$" + +Route12_FishingHouse_Text_WhoaXInchesTakeThis:: + .string "… … …Whoa!\n" + .string "{STR_VAR_2} inches!\p" + .string "You have a rare appreciation for\n" + .string "the fine, poetic aspects of fishing!\p" + .string "You must take this.\n" + .string "I insist!$" + +Route12_FishingHouse_Text_LookForwardToGreaterRecords:: + .string "I'll look forward to seeing greater\n" + .string "records from you!$" + +Route12_FishingHouse_Text_HuhXInchesSameSizeAsLast:: + .string "Huh?\n" + .string "{STR_VAR_2} inches?\p" + .string "This is the same size as the one\n" + .string "I saw before.$" + +Route12_FishingHouse_Text_HmmXInchesDoesntMeasureUp:: + .string "Hmm…\n" + .string "This one is {STR_VAR_2} inches long.\p" + .string "It doesn't measure up to the\n" + .string "{STR_VAR_3}-inch one you brought before.$" + +Route12_FishingHouse_Text_DoesntLookLikeMagikarp:: + .string "Uh… That doesn't look much like\n" + .string "a MAGIKARP.$" + +Route12_FishingHouse_Text_NoRoomForGift:: + .string "Oh, no!\p" + .string "I had a gift for you, but you have\n" + .string "no room for it.$" + +Route12_FishingHouse_Text_MostGiganticMagikarpXInches:: + .string "The most gigantic MAGIKARP\n" + .string "I have ever witnessed…\p" + .string "{STR_VAR_3} inches!$" + +Route12_FishingHouse_Text_BlankChartOfSomeSort:: + .string "It's a blank chart of some sort.\p" + .string "It has spaces for writing in\n" + .string "records of some kind.$" + diff --git a/data/maps/Route12_Frlg/map.json b/data/maps/Route12_Frlg/map.json new file mode 100644 index 000000000000..1e9f49e28bc8 --- /dev/null +++ b/data/maps/Route12_Frlg/map.json @@ -0,0 +1,311 @@ +{ + "id": "MAP_ROUTE12", + "name": "Route12_Frlg", + "layout": "LAYOUT_ROUTE12", + "music": "MUS_RG_ROUTE11", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_LAVENDER_TOWN", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE13", + "offset": -48, + "direction": "down" + }, + { + "map": "MAP_ROUTE11", + "offset": 60, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 17, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route12_EventScript_Ned", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 9, + "y": 40, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route12_EventScript_Chip", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 16, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route12_EventScript_Hank", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 13, + "y": 59, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route12_EventScript_Elliot", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SNORLAX", + "x": 14, + "y": 70, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_EventScript_Snorlax", + "flag": "FLAG_HIDE_ROUTE_12_SNORLAX" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 13, + "y": 92, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT", + "movement_range_x": 4, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route12_EventScript_Luca", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 10, + "y": 99, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route12_EventScript_Justin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 18, + "y": 108, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route12_EventScript_Andrew", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 11, + "y": 100, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 18, + "y": 36, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_EventScript_ItemTM48", + "flag": "FLAG_HIDE_ROUTE12_TM48" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 9, + "y": 101, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_EventScript_ItemIron", + "flag": "FLAG_HIDE_ROUTE12_IRON" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 19, + "y": 64, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_EventScript_Gia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 19, + "y": 63, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_EventScript_Jes", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 12, + "y": 111, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + } + ], + "warp_events": [ + { + "x": 12, + "y": 86, + "elevation": 0, + "dest_map": "MAP_ROUTE12_FISHING_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 14, + "y": 15, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": "0" + }, + { + "x": 15, + "y": 15, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": "1" + }, + { + "x": 14, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 17, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route12_EventScript_RouteSign" + }, + { + "type": "sign", + "x": 15, + "y": 69, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route12_EventScript_FishingSign" + }, + { + "type": "hidden_item", + "x": 18, + "y": 57, + "elevation": 3, + "item": "ITEM_HYPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 14, + "y": 70, + "elevation": 3, + "item": "ITEM_LEFTOVERS", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS", + "quantity": 1, + "underfoot": true + }, + { + "type": "hidden_item", + "x": 9, + "y": 116, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route12_Frlg/scripts.inc b/data/maps/Route12_Frlg/scripts.inc new file mode 100644 index 000000000000..c74b5c1a7793 --- /dev/null +++ b/data/maps/Route12_Frlg/scripts.inc @@ -0,0 +1,202 @@ +Route12_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, Route12_OnResume + .byte 0 + +Route12_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route12_EventScript_TryRemoveSnorlax + end + +Route12_EventScript_TryRemoveSnorlax:: + removeobject VAR_LAST_TALKED + return + +Route12_EventScript_Snorlax:: + lock + faceplayer + goto_if_unset FLAG_GOT_POKE_FLUTE, Route12_EventScript_SnorlaxNoPokeFlute + msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route12_EventScript_DontUsePokeFlute + call EventScript_AwakenSnorlax + setwildbattle SPECIES_SNORLAX, 30 + waitse + playmoncry SPECIES_SNORLAX, CRY_MODE_ENCOUNTER + delay 40 + waitmoncry + setflag FLAG_HIDE_ROUTE_12_SNORLAX + setflag FLAG_SYS_CTRL_OBJ_DELETE + setflag FLAG_WOKE_UP_ROUTE_12_SNORLAX + dowildbattle + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, Route12_EventScript_FoughtSnorlax + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, Route12_EventScript_FoughtSnorlax + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, Route12_EventScript_FoughtSnorlax + release + end + +Route12_EventScript_DontUsePokeFlute:: + release + end + +Route12_EventScript_FoughtSnorlax:: + msgbox Text_SnorlaxReturnedToMountains + release + end + +Route12_EventScript_SnorlaxNoPokeFlute:: + msgbox Route12_Text_MonSprawledOutInSlumber + release + end + +Route12_EventScript_RouteSign:: + msgbox Route12_Text_RouteSign, MSGBOX_SIGN + end + +Route12_EventScript_FishingSign:: + msgbox Route12_Text_SportfishingArea, MSGBOX_SIGN + end + +Route12_Text_MonSprawledOutInSlumber:: + .string "A POKéMON is sprawled out in\n" + .string "a deep and comfortable slumber.$" + +Text_SnorlaxWokeUp:: + .string "SNORLAX woke up!\p" + .string "It attacked in a grumpy rage!$" + +Text_SnorlaxReturnedToMountains:: + .string "SNORLAX calmed down.\n" + .string "It gave a huge yawn…\l" + .string "And returned to the mountains.$" + +Text_WantToUsePokeFlute:: + .string "Want to use the POKé FLUTE?$" + +Text_PlayedPokeFlute:: + .string "{PLAYER} played the POKé FLUTE.$" + +Route12_Text_NedIntro:: + .string "Yeah!\n" + .string "I got a bite here!$" + +Route12_Text_NedDefeat:: + .string "Tch!\n" + .string "Just a small fry…$" + +Route12_Text_NedPostBattle:: + .string "Hang on!\n" + .string "My line's snagged!$" + +Route12_Text_ChipIntro:: + .string "Be patient.\n" + .string "Fishing is a waiting game.$" + +Route12_Text_ChipDefeat:: + .string "That one got away!$" + +Route12_Text_ChipPostBattle:: + .string "With a better ROD, I could catch\n" + .string "better POKéMON…$" + +Route12_Text_JustinIntro:: + .string "I'm searching for a MOON STONE.\n" + .string "Have you found one?$" + +Route12_Text_JustinDefeat:: + .string "Oww!$" + +Route12_Text_JustinPostBattle:: + .string "I could have made my POKéMON\n" + .string "evolve with a MOON STONE.\p" + .string "I would have won then, I bet.$" + +Route12_Text_LucaIntro:: + .string "Electricity is my specialty.\p" + .string "I don't know a thing about POKéMON\n" + .string "of the sea, though.$" + +Route12_Text_LucaDefeat:: + .string "Unplugged!$" + +Route12_Text_LucaPostBattle:: + .string "Water conducts electricity, so you\n" + .string "should zap sea POKéMON.$" + +Route12_Text_HankIntro:: + .string "The FISHING FOOL versus POKéMON\n" + .string "KID!$" + +Route12_Text_HankDefeat:: + .string "Touch too much!$" + +Route12_Text_HankPostBattle:: + .string "I guess you get to be good at\n" + .string "what you like.\p" + .string "Well, you beat me at POKéMON,\n" + .string "but you can't top me at fishing.$" + +Route12_Text_ElliotIntro:: + .string "I love fishing, don't get me wrong.\p" + .string "But it'd be best if I also had more\n" + .string "work.$" + +Route12_Text_ElliotDefeat:: + .string "It's not easy…$" + +Route12_Text_ElliotPostBattle:: + .string "It's all right.\n" + .string "Losing doesn't bug me anymore.$" + +Route12_Text_AndrewIntro:: + .string "What's catching?\p" + .string "You never know what you could\n" + .string "catch!$" + +Route12_Text_AndrewDefeat:: + .string "Lost it!$" + +Route12_Text_AndrewPostBattle:: + .string "What, MAGIKARP?\p" + .string "I catch them all the time, sure.\n" + .string "But, boy are they wimpy.$" + +Route12_Text_RouteSign:: + .string "ROUTE 12 \n" + .string "North to LAVENDER$" + +Route12_Text_SportfishingArea:: + .string "SPORTFISHING AREA$" + +Route12_Text_JesIntro:: + .string "JES: If I win, I'm going to\n" + .string "propose to GIA.$" + +Route12_Text_JesDefeat:: + .string "JES: Oh, please, why couldn't you\n" + .string "let us win?$" + +Route12_Text_JesPostBattle:: + .string "JES: Oh, GIA, forgive me,\n" + .string "my love!$" + +Route12_Text_JesNotEnoughMons:: + .string "JES: GIA and I, we'll be\n" + .string "together forever.\p" + .string "We won't battle unless you have\n" + .string "two POKéMON of your own.$" + +Route12_Text_GiaIntro:: + .string "GIA: Hey, JES…\p" + .string "If we win, I'll marry you!$" + +Route12_Text_GiaDefeat:: + .string "GIA: Oh, but why?$" + +Route12_Text_GiaPostBattle:: + .string "GIA: JES, you silly!\n" + .string "You ruined this!$" + +Route12_Text_GiaNotEnoughMons:: + .string "GIA: I can't bear to battle\n" + .string "without my JES!\p" + .string "Don't you have one more POKéMON?$" diff --git a/data/maps/Route12_NorthEntrance_1F_Frlg/map.json b/data/maps/Route12_NorthEntrance_1F_Frlg/map.json new file mode 100644 index 000000000000..62c3894f8f24 --- /dev/null +++ b/data/maps/Route12_NorthEntrance_1F_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "name": "Route12_NorthEntrance_1F_Frlg", + "layout": "LAYOUT_ROUTE12_NORTH_ENTRANCE_1F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_NorthEntrance_1F_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 1, + "elevation": 0, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE12", + "dest_warp_id": "3" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route12_NorthEntrance_1F_Frlg/scripts.inc b/data/maps/Route12_NorthEntrance_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..8620cca46b70 --- /dev/null +++ b/data/maps/Route12_NorthEntrance_1F_Frlg/scripts.inc @@ -0,0 +1,11 @@ +Route12_NorthEntrance_1F_Frlg_MapScripts:: + .byte 0 + +Route12_NorthEntrance_1F_EventScript_Guard:: + msgbox Route12_NorthEntrance_1F_Text_LookoutSpotUpstairs, MSGBOX_NPC + end + +Route12_NorthEntrance_1F_Text_LookoutSpotUpstairs:: + .string "There's a lookout spot upstairs.\n" + .string "The view is magnificent.$" + diff --git a/data/maps/Route12_NorthEntrance_2F_Frlg/map.json b/data/maps/Route12_NorthEntrance_2F_Frlg/map.json new file mode 100644 index 000000000000..8ff0bc6ad56e --- /dev/null +++ b/data/maps/Route12_NorthEntrance_2F_Frlg/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_ROUTE12_NORTH_ENTRANCE_2F", + "name": "Route12_NorthEntrance_2F_Frlg", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_12", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route12_NorthEntrance_2F_EventScript_Lass", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route12_NorthEntrance_2F_EventScript_LeftBinoculars" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route12_NorthEntrance_2F_EventScript_RightBinoculars" + } + ] +} diff --git a/data/maps/Route12_NorthEntrance_2F_Frlg/scripts.inc b/data/maps/Route12_NorthEntrance_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..4786ee1c4ea2 --- /dev/null +++ b/data/maps/Route12_NorthEntrance_2F_Frlg/scripts.inc @@ -0,0 +1,80 @@ +Route12_NorthEntrance_2F_Frlg_MapScripts:: + .byte 0 + +Route12_NorthEntrance_2F_EventScript_LeftBinoculars:: + msgbox Route12_NorthEntrance_2F_Text_TheresManFishing, MSGBOX_SIGN + end + +Route12_NorthEntrance_2F_EventScript_RightBinoculars:: + msgbox Route12_NorthEntrance_2F_Text_ItsPokemonTower, MSGBOX_SIGN + end + +Route12_NorthEntrance_2F_EventScript_Lass:: + lock + faceplayer + goto_if_set FLAG_GOT_TM27, Route12_NorthEntrance_2F_EventScript_ExplainTM27 + checkplayergender + call_if_eq VAR_RESULT, MALE, Route12_NorthEntrance_2F_EventScript_TakeTMMale + call_if_eq VAR_RESULT, FEMALE, Route12_NorthEntrance_2F_EventScript_TakeTMFemale + checkitemspace ITEM_TM27 + goto_if_eq VAR_RESULT, FALSE, Route12_NorthEntrance_2F_EventScript_NoRoomForTM27 + giveitem_msg Route12_NorthEntrance_2F_Text_ReceivedTM27FromLittleGirl, ITEM_TM27 + msgbox Route12_NorthEntrance_2F_Text_ExplainTM27 + setflag FLAG_GOT_TM27 + release + end + +Route12_NorthEntrance_2F_EventScript_TakeTMMale:: + msgbox Route12_NorthEntrance_2F_Text_TakeTMDontNeedAnymoreMale + return + +Route12_NorthEntrance_2F_EventScript_TakeTMFemale:: + msgbox Route12_NorthEntrance_2F_Text_TakeTMDontNeedAnymoreFemale + return + +Route12_NorthEntrance_2F_EventScript_NoRoomForTM27:: + msgbox Route12_NorthEntrance_2F_Text_DontHaveRoomForThis + release + end + +Route12_NorthEntrance_2F_EventScript_ExplainTM27:: + msgbox Route12_NorthEntrance_2F_Text_ExplainTM27 + release + end + +@ Male and female text identical, differ (presumably) in JP +Route12_NorthEntrance_2F_Text_TakeTMDontNeedAnymoreMale:: + .string "My POKéMON's ashes are stored in\n" + .string "POKéMON TOWER.\p" + .string "You can have this TM.\n" + .string "I don't need it anymore…$" + +Route12_NorthEntrance_2F_Text_TakeTMDontNeedAnymoreFemale:: + .string "My POKéMON's ashes are stored in\n" + .string "POKéMON TOWER.\p" + .string "You can have this TM.\n" + .string "I don't need it anymore…$" + +Route12_NorthEntrance_2F_Text_ReceivedTM27FromLittleGirl:: + .string "{PLAYER} received TM27\n" + .string "from the little girl.$" + +Route12_NorthEntrance_2F_Text_ExplainTM27:: + .string "TM27 is a move called RETURN…\p" + .string "If you treat your POKéMON good,\n" + .string "it will return your love by working\l" + .string "its hardest in battle.$" + +Route12_NorthEntrance_2F_Text_DontHaveRoomForThis:: + .string "You don't have room for this.$" + +Route12_NorthEntrance_2F_Text_TheresManFishing:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "There's a man fishing!$" + +Route12_NorthEntrance_2F_Text_ItsPokemonTower:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "It's POKéMON TOWER!$" + diff --git a/data/maps/Route13_Frlg/map.json b/data/maps/Route13_Frlg/map.json new file mode 100644 index 000000000000..534a02eec22c --- /dev/null +++ b/data/maps/Route13_Frlg/map.json @@ -0,0 +1,223 @@ +{ + "id": "MAP_ROUTE13", + "name": "Route13_Frlg", + "layout": "LAYOUT_ROUTE13", + "music": "MUS_RG_ROUTE11", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_13", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE12", + "offset": 48, + "direction": "up" + }, + { + "map": "MAP_ROUTE14", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 62, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route13_EventScript_Alma", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 63, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route13_EventScript_Sebastian", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 54, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route13_EventScript_Susie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 42, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route13_EventScript_Sheila", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 43, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route13_EventScript_Lola", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 35, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route13_EventScript_Valerie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 29, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route13_EventScript_Gwen", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 9, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route13_EventScript_Robert", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route13_EventScript_Perry", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 14, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route13_EventScript_Jared", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 44, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 41, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route13_EventScript_RouteSign" + }, + { + "type": "sign", + "x": 37, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route13_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 21, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route13_EventScript_TrainerTips1" + }, + { + "type": "hidden_item", + "x": 23, + "y": 14, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROUTE13_PP_UP", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route13_Frlg/scripts.inc b/data/maps/Route13_Frlg/scripts.inc new file mode 100644 index 000000000000..3c24222f2699 --- /dev/null +++ b/data/maps/Route13_Frlg/scripts.inc @@ -0,0 +1,143 @@ +Route13_Frlg_MapScripts:: + .byte 0 + +Route13_EventScript_TrainerTips1:: + msgbox Route13_Text_LookToLeftOfThatPost, MSGBOX_SIGN + end + +Route13_EventScript_TrainerTips2:: + msgbox Route13_Text_SelectToSwitchItems, MSGBOX_SIGN + end + +Route13_EventScript_RouteSign:: + msgbox Route13_Text_RouteSign, MSGBOX_SIGN + end + +Route13_Text_SebastianIntro:: + .string "My bird POKéMON want to battle\n" + .string "with you!$" + +Route13_Text_SebastianDefeat:: + .string "My PIDGEY and PIDGEOTTO combo\n" + .string "lost?$" + +Route13_Text_SebastianPostBattle:: + .string "My POKéMON look happy even though\n" + .string "they lost.$" + +Route13_Text_SusieIntro:: + .string "I'm told I'm good for a kid.$" + +Route13_Text_SusieDefeat:: + .string "Ohh!\n" + .string "I lost!$" + +Route13_Text_SusiePostBattle:: + .string "I want to become a good TRAINER.\n" + .string "I'll train hard, just watch.$" + +Route13_Text_ValerieIntro:: + .string "Wow!\n" + .string "Your BADGES are too cool!$" + +Route13_Text_ValerieDefeat:: + .string "Not enough!$" + +Route13_Text_ValeriePostBattle:: + .string "You got those BADGES from GYM\n" + .string "LEADERS. I know!$" + +Route13_Text_GwenIntro:: + .string "My cute POKéMON wish to make your\n" + .string "acquaintance.$" + +Route13_Text_GwenDefeat:: + .string "Good going!\n" + .string "You totally won!$" + +Route13_Text_GwenPostBattle:: + .string "You have to make POKéMON battle\n" + .string "to toughen them up.$" + +Route13_Text_AlmaIntro:: + .string "I found CARBOS in a cave once\n" + .string "while I was spelunking.$" + +Route13_Text_AlmaDefeat:: + .string "Oh, too bad!\n" + .string "I just messed up!$" + +Route13_Text_AlmaPostBattle:: + .string "CARBOS boosted the SPEED of my\n" + .string "POKéMON.$" + +Route13_Text_PerryIntro:: + .string "I'm not going to lose.\n" + .string "Not when the wind's blowing my way!$" + +Route13_Text_PerryDefeat:: + .string "The wind turned!$" + +Route13_Text_PerryPostBattle:: + .string "I'm beat.\n" + .string "I guess I'll FLY home.$" + +Route13_Text_LolaIntro:: + .string "Sure, I'll play with you, sweetie.$" + +Route13_Text_LolaDefeat:: + .string "Oh!\n" + .string "You little beast!$" + +Route13_Text_LolaPostBattle:: + .string "I wonder which is stronger, male or\n" + .string "female POKéMON?$" + +Route13_Text_SheilaIntro:: + .string "Do you want to battle some\n" + .string "POKéMON with me?$" + +Route13_Text_SheilaDefeat:: + .string "It's over already?$" + +Route13_Text_SheilaPostBattle:: + .string "I don't know anything about\n" + .string "POKéMON actually.\p" + .string "The ones I use… I picked them\n" + .string "for their looks!$" + +Route13_Text_JaredIntro:: + .string "What're you lookin' at?$" + +Route13_Text_JaredDefeat:: + .string "Dang!\n" + .string "Stripped gears!$" + +Route13_Text_JaredPostBattle:: + .string "Get lost!$" + +Route13_Text_RobertIntro:: + .string "I always go with bird POKéMON.\n" + .string "I've dedicated myself to them.$" + +Route13_Text_RobertDefeat:: + .string "Out of power!$" + +Route13_Text_RobertPostBattle:: + .string "I wish I could fly like PIDGEY and\n" + .string "PIDGEOTTO…$" + +Route13_Text_LookToLeftOfThatPost:: + .string "TRAINER TIPS\p" + .string "Look, look!\n" + .string "Look to the left of that post!$" + +Route13_Text_SelectToSwitchItems:: + .string "TRAINER TIPS\p" + .string "Use SELECT to switch items in the\n" + .string "ITEMS window.$" + +Route13_Text_RouteSign:: + .string "ROUTE 13\n" + .string "North to SILENCE BRIDGE$" + diff --git a/data/maps/Route14_Frlg/map.json b/data/maps/Route14_Frlg/map.json new file mode 100644 index 000000000000..0e5dbc383b34 --- /dev/null +++ b/data/maps/Route14_Frlg/map.json @@ -0,0 +1,278 @@ +{ + "id": "MAP_ROUTE14", + "name": "Route14_Frlg", + "layout": "LAYOUT_ROUTE14", + "music": "MUS_RG_ROUTE11", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_14", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE15", + "offset": 40, + "direction": "left" + }, + { + "map": "MAP_ROUTE13", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 7, + "y": 37, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route14_EventScript_Gerald", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 18, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Donald", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route14_EventScript_Beck", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 16, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route14_EventScript_Marlon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 7, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route14_EventScript_Isaac", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 7, + "y": 34, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route14_EventScript_Malik", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Mitch", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Carter", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 10, + "y": 37, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 6, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Lukas", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 18, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Benny", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 7, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 12, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "local_id": "LOCALID_ROUTE14_BORDER_TREE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 1, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 13, + "y": 51, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Jan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 12, + "y": 51, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route14_EventScript_Kiri", + "flag": "0" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 17, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route14_EventScript_RouteSign" + }, + { + "type": "hidden_item", + "x": 9, + "y": 20, + "elevation": 3, + "item": "ITEM_ZINC", + "flag": "FLAG_HIDDEN_ITEM_ROUTE14_ZINC", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 19, + "y": 53, + "elevation": 3, + "item": "ITEM_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route14_Frlg/scripts.inc b/data/maps/Route14_Frlg/scripts.inc new file mode 100644 index 000000000000..033cb96e79c3 --- /dev/null +++ b/data/maps/Route14_Frlg/scripts.inc @@ -0,0 +1,163 @@ +Route14_Frlg_MapScripts:: + .byte 0 + +Route14_EventScript_RouteSign:: + msgbox Route14_Text_RouteSign, MSGBOX_SIGN + end + +Route14_Text_CarterIntro:: + .string "You need to use TMs to teach good\n" + .string "moves to POKéMON.$" + +Route14_Text_CarterDefeat:: + .string "Not good enough quite yet.$" + +Route14_Text_CarterPostBattle:: + .string "You have some HMs, right? POKéMON\n" + .string "can't forget those moves easily.$" + +Route14_Text_MitchIntro:: + .string "My bird POKéMON should be ready\n" + .string "for battle.$" + +Route14_Text_MitchDefeat:: + .string "Not ready yet!$" + +Route14_Text_MitchPostBattle:: + .string "My bird POKéMON need to learn\n" + .string "better moves.$" + +Route14_Text_BeckIntro:: + .string "They have TMs on sale at the\n" + .string "CELADON DEPT. STORE.\p" + .string "TMs aren't really rare, but not\n" + .string "many people have HMs.$" + +Route14_Text_BeckDefeat:: + .string "Aww, bummer!$" + +Route14_Text_BeckPostBattle:: + .string "Try teaching POKéMON a move that's\n" + .string "the same type as it.\p" + .string "That apparently boosts the power\n" + .string "of the move.$" + +Route14_Text_MarlonIntro:: + .string "Have you taught your bird POKéMON\n" + .string "how to FLY?\p" + .string "You'll be able to soar with it into\n" + .string "the sky!$" + +Route14_Text_MarlonDefeat:: + .string "Shot down in flames!$" + +Route14_Text_MarlonPostBattle:: + .string "Bird POKéMON are my one true love.\n" + .string "I don't want to raise anything else.$" + +Route14_Text_DonaldIntro:: + .string "Have you heard the legend of the\n" + .string "winged mirages?$" + +Route14_Text_DonaldDefeat:: + .string "Why?\n" + .string "Why'd I lose?$" + +Route14_Text_DonaldPostBattle:: + .string "Well, the winged mirages are the\n" + .string "legendary bird POKéMON.\p" + .string "There are three of them: ARTICUNO,\n" + .string "ZAPDOS, and MOLTRES.$" + +Route14_Text_BennyIntro:: + .string "I'm not into it, but okay.\n" + .string "Let's go!$" + +Route14_Text_BennyDefeat:: + .string "I knew it!$" + +Route14_Text_BennyPostBattle:: + .string "Winning, losing… It's insignificant\n" + .string "under this huge sky.$" + +Route14_Text_LukasIntro:: + .string "C'mon, c'mon.\n" + .string "Let's go, let's go, let's go!$" + +Route14_Text_LukasDefeat:: + .string "Arrg!\n" + .string "Lost! Get lost!$" + +Route14_Text_LukasPostBattle:: + .string "What, what, what?\n" + .string "What do you want still?$" + +Route14_Text_IsaacIntro:: + .string "I need to burn some time.\n" + .string "Shut up and battle.$" + +Route14_Text_IsaacDefeat:: + .string "What?\n" + .string "You!?$" + +Route14_Text_IsaacPostBattle:: + .string "Raising POKéMON is a drag, man.$" + +Route14_Text_GeraldIntro:: + .string "We ride out here because of the\n" + .string "wide-open spaces.$" + +Route14_Text_GeraldDefeat:: + .string "Wipeout!$" + +Route14_Text_GeraldPostBattle:: + .string "It's cool you made your POKéMON so\n" + .string "strong.\p" + .string "Might is right!\n" + .string "And you know it!$" + +Route14_Text_MalikIntro:: + .string "POKéMON battle?\n" + .string "Cool! Rumble!$" + +Route14_Text_MalikDefeat:: + .string "Blown away!$" + +Route14_Text_MalikPostBattle:: + .string "You know who'd win, you and me\n" + .string "one-on-one!$" + +Route14_Text_RouteSign:: + .string "ROUTE 14\n" + .string "West to FUCHSIA CITY$" + +Route14_Text_KiriIntro:: + .string "KIRI: JAN, let's try really,\n" + .string "really hard together.$" + +Route14_Text_KiriDefeat:: + .string "KIRI: Whimper…\n" + .string "We lost, didn't we?$" + +Route14_Text_KiriPostBattle:: + .string "KIRI: Did we lose because of me?$" + +Route14_Text_KiriNotEnoughMons:: + .string "KIRI: We can battle if you have\n" + .string "two POKéMON.$" + +Route14_Text_JanIntro:: + .string "JAN: KIRI, here we go!\n" + .string "We have to try hard!$" + +Route14_Text_JanDefeat:: + .string "JAN: Eeeeh!\n" + .string "No fair!$" + +Route14_Text_JanPostBattle:: + .string "JAN: KIRI, don't cry!\n" + .string "We'll just try harder next time.$" + +Route14_Text_JanNotEnoughMons:: + .string "JAN: You want to battle?\n" + .string "You don't have enough POKéMON.$" diff --git a/data/maps/Route15_Frlg/map.json b/data/maps/Route15_Frlg/map.json new file mode 100644 index 000000000000..c3150eacb321 --- /dev/null +++ b/data/maps/Route15_Frlg/map.json @@ -0,0 +1,248 @@ +{ + "id": "MAP_ROUTE15", + "name": "Route15_Frlg", + "layout": "LAYOUT_ROUTE15", + "music": "MUS_RG_ROUTE11", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_15", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FUCHSIA_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_ROUTE14", + "offset": -40, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 22, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Yazmin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 31, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route15_EventScript_Edwin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 37, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route15_EventScript_Chester", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 44, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Kindra", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 50, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route15_EventScript_Olivia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 59, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route15_EventScript_Alex", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 63, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Ernest", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 52, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Becky", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 54, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route15_EventScript_Grace", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 28, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Celia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 20, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route15_EventScript_ItemTM18", + "flag": "FLAG_HIDE_ROUTE15_TM18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 39, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Ron", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route15_EventScript_Mya", + "flag": "0" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 73, + "y": 7, + "target_local_id": "LOCALID_ROUTE14_BORDER_TREE", + "target_map": "MAP_ROUTE14" + } + ], + "warp_events": [ + { + "x": 9, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "dest_warp_id": "0" + }, + { + "x": 16, + "y": 11, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 41, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route15_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/Route15_Frlg/scripts.inc b/data/maps/Route15_Frlg/scripts.inc new file mode 100644 index 000000000000..a93869cc03dd --- /dev/null +++ b/data/maps/Route15_Frlg/scripts.inc @@ -0,0 +1,161 @@ +Route15_Frlg_MapScripts:: + .byte 0 + +Route15_EventScript_RouteSign:: + msgbox Route15_Text_RouteSign, MSGBOX_SIGN + end + +Route15_Text_KindraIntro:: + .string "I just got some POKéMON in trades.\n" + .string "Can I try them out on you?$" + +Route15_Text_KindraDefeat:: + .string "Not good enough!$" + +Route15_Text_KindraPostBattle:: + .string "You can't change the nickname of\n" + .string "any POKéMON you get in a trade.\p" + .string "Only the Original TRAINER can get\n" + .string "the nickname changed.$" + +Route15_Text_BeckyIntro:: + .string "You look gentle, so I think I can\n" + .string "beat you.\p" + .string "I'll give it a go!$" + +Route15_Text_BeckyDefeat:: + .string "No, wrong!$" + +Route15_Text_BeckyPostBattle:: + .string "I'm afraid of BIKERS. They look so\n" + .string "ugly and mean!$" + +Route15_Text_EdwinIntro:: + .string "When I whistle, I can summon bird\n" + .string "POKéMON.$" + +Route15_Text_EdwinDefeat:: + .string "Ow!\n" + .string "That's tragic!$" + +Route15_Text_EdwinPostBattle:: + .string "Maybe I'm not cut out for battles.\n" + .string "I'm not the right type, I guess.$" + +Route15_Text_ChesterIntro:: + .string "Hmm? My birds are shivering!\n" + .string "You're good, aren't you?$" + +Route15_Text_ChesterDefeat:: + .string "Just as I thought!$" + +Route15_Text_ChesterPostBattle:: + .string "This is so obvious, you should know\n" + .string "this, but…\p" + .string "Moves like EARTHQUAKE and FISSURE\n" + .string "have no effect on bird POKéMON.$" + +Route15_Text_GraceIntro:: + .string "Oh, you're a little cutie!\n" + .string "So like a darling POKéMON!$" + +Route15_Text_GraceDefeat:: + .string "You looked so cute, too!$" + +Route15_Text_GracePostBattle:: + .string "I forgive you.\n" + .string "I can take it.\l" + .string "I'm a big girl now.$" + +Route15_Text_OliviaIntro:: + .string "I raise POKéMON for protection\n" + .string "because I live alone.$" + +Route15_Text_OliviaDefeat:: + .string "POKéMON isn't about winning or\n" + .string "losing for me.$" + +Route15_Text_OliviaPostBattle:: + .string "I love having my POKéMON greet me\n" + .string "when I get home.\p" + .string "It's so reassuring.$" + +Route15_Text_ErnestIntro:: + .string "Hey, kid! C'mon!\n" + .string "I just got these off some loser!$" + +Route15_Text_ErnestDefeat:: + .string "Why not?$" + +Route15_Text_ErnestPostBattle:: + .string "Life's too short.\n" + .string "It's cool to live as an outlaw.\l" + .string "TEAM ROCKET RULES!$" + +Route15_Text_AlexIntro:: + .string "Fork over all your cash when you\n" + .string "lose to me, kid!$" + +Route15_Text_AlexDefeat:: + .string "That can't be true!$" + +Route15_Text_AlexPostBattle:: + .string "I was just joking about the money.\n" + .string "Don't take me all serious.$" + +Route15_Text_CeliaIntro:: + .string "What's cool and happening?\n" + .string "Trading POKéMON!$" + +Route15_Text_CeliaDefeat:: + .string "I said trade!$" + +Route15_Text_CeliaPostBattle:: + .string "I trade POKéMON with my friends\n" + .string "all the time.$" + +Route15_Text_YazminIntro:: + .string "Want to play with my POKéMON?$" + +Route15_Text_YazminDefeat:: + .string "I was too impatient!$" + +Route15_Text_YazminPostBattle:: + .string "I'll go train with weaker people.$" + +Route15_Text_RouteSign:: + .string "ROUTE 15\n" + .string "West to FUCHSIA CITY$" + +Route15_Text_MyaIntro:: + .string "MYA: You're perfect.\n" + .string "Help me train my little brother?$" + +Route15_Text_MyaDefeat:: + .string "MYA: RON, you have to focus!\n" + .string "Concentrate on what you're doing!$" + +Route15_Text_MyaPostBattle:: + .string "MYA: Okay, we'll turn it up.\n" + .string "I'll add to our training menu!$" + +Route15_Text_MyaNotEnoughMons:: + .string "MYA: Do you want to challenge us?\n" + .string "You'll need two POKéMON, though.$" + +Route15_Text_RonIntro:: + .string "RON: My sister gets scary when we\n" + .string "lose.$" + +Route15_Text_RonDefeat:: + .string "RON: Oh, no, no…\n" + .string "Sis, I'm sorry!$" + +Route15_Text_RonPostBattle:: + .string "RON: Oh, bleah…\n" + .string "I wish I had a nice sister…$" + +Route15_Text_RonNotEnoughMons:: + .string "RON: Did you want to battle with\n" + .string "my sister and me?\p" + .string "You need two POKéMON, then.$" diff --git a/data/maps/Route15_WestEntrance_1F_Frlg/map.json b/data/maps/Route15_WestEntrance_1F_Frlg/map.json new file mode 100644 index 000000000000..713307457868 --- /dev/null +++ b/data/maps/Route15_WestEntrance_1F_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "name": "Route15_WestEntrance_1F_Frlg", + "layout": "LAYOUT_ENTRANCE_1F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_15", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route15_WestEntrance_1F_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": "0" + }, + { + "x": 1, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE15", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route15_WestEntrance_1F_Frlg/scripts.inc b/data/maps/Route15_WestEntrance_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..6ec089074495 --- /dev/null +++ b/data/maps/Route15_WestEntrance_1F_Frlg/scripts.inc @@ -0,0 +1,12 @@ +Route15_WestEntrance_1F_Frlg_MapScripts:: + .byte 0 + +Route15_WestEntrance_1F_EventScript_Guard:: + msgbox Route15_WestEntrance_1F_Text_OaksAideCameByHere, MSGBOX_NPC + end + +Route15_WestEntrance_1F_Text_OaksAideCameByHere:: + .string "Are you the kid who's working on\n" + .string "a POKéDEX?\p" + .string "PROF. OAK's AIDE came by here.$" + diff --git a/data/maps/Route15_WestEntrance_2F_Frlg/map.json b/data/maps/Route15_WestEntrance_2F_Frlg/map.json new file mode 100644 index 000000000000..d700bf5e3ecc --- /dev/null +++ b/data/maps/Route15_WestEntrance_2F_Frlg/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_ROUTE15_WEST_ENTRANCE_2F", + "name": "Route15_WestEntrance_2F_Frlg", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_15", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route15_WestEntrance_2F_EventScript_Aide", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route15_WestEntrance_2F_EventScript_LeftBinoculars" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route15_WestEntrance_2F_EventScript_RightBinoculars" + } + ] +} diff --git a/data/maps/Route15_WestEntrance_2F_Frlg/scripts.inc b/data/maps/Route15_WestEntrance_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..d6ade0b38fd4 --- /dev/null +++ b/data/maps/Route15_WestEntrance_2F_Frlg/scripts.inc @@ -0,0 +1,93 @@ +.equ REQUIRED_CAUGHT_MONS, 50 + +Route15_WestEntrance_2F_Frlg_MapScripts:: + .byte 0 + +Route15_WestEntrance_2F_EventScript_LeftBinoculars:: + lockall + msgbox Route15_WestEntrance_2F_Text_LargeShiningBird + showmonpic SPECIES_ARTICUNO, 10, 3 + delay 20 + waitbuttonpress + hidemonpic + setvar VAR_0x8004, SPECIES_ARTICUNO + special SetSeenMon + releaseall + end + +Route15_WestEntrance_2F_EventScript_RightBinoculars:: + msgbox Route15_WestEntrance_2F_Text_SmallIslandOnHorizon, MSGBOX_SIGN + end + +Route15_WestEntrance_2F_EventScript_Aide:: + lock + faceplayer + call Route15_WestEntrance_2F_EventScript_GetAideRequestInfo + goto_if_set FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE, Route15_WestEntrance_2F_EventScript_AlreadyGotExpShare + msgbox Route15_WestEntrance_2F_Text_GiveItemIfCaughtEnough, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Aide_EventScript_DeclineCheckMons + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + buffernumberstring STR_VAR_3, VAR_0x8006 + call Route15_WestEntrance_2F_EventScript_GetAideRequestInfo + goto_if_lt VAR_0x8006, REQUIRED_CAUGHT_MONS, Aide_EventScript_HaventCaughtEnough + msgbox Route15_WestEntrance_2F_Text_GreatHereYouGo + checkitemspace ITEM_EXP_SHARE + goto_if_eq VAR_RESULT, FALSE, Aide_EventScript_NoRoomForItem + giveitem_msg Route15_WestEntrance_2F_Text_ReceivedItemFromAide, ITEM_EXP_SHARE + setflag FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE + msgbox Route15_WestEntrance_2F_Text_ExplainExpShare + release + end + +Route15_WestEntrance_2F_EventScript_AlreadyGotExpShare:: + msgbox Route15_WestEntrance_2F_Text_ExplainExpShare + release + end + +Route15_WestEntrance_2F_EventScript_GetAideRequestInfo:: + buffernumberstring STR_VAR_1, REQUIRED_CAUGHT_MONS + bufferitemname STR_VAR_2, ITEM_EXP_SHARE + return + +Route15_WestEntrance_2F_Text_GiveItemIfCaughtEnough:: + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on {STR_VAR_1} species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with the\n" + .string "{STR_VAR_2} for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "{STR_VAR_1} kinds of POKéMON?$" + +Route15_WestEntrance_2F_Text_GreatHereYouGo:: + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +Route15_WestEntrance_2F_Text_ReceivedItemFromAide:: + .string "{PLAYER} received the {STR_VAR_2}\n" + .string "from the AIDE.$" + +Route15_WestEntrance_2F_Text_ExplainExpShare:: + .string "EXP. SHARE is an item to be held\n" + .string "by a POKéMON.\p" + .string "The POKéMON will receive a share\n" + .string "of the EXP. Points without having\l" + .string "to battle.$" + +Route15_WestEntrance_2F_Text_LargeShiningBird:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "A large, shining bird is flying\n" + .string "toward the sea.$" + +Route15_WestEntrance_2F_Text_SmallIslandOnHorizon:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "It looks like a small island on\n" + .string "the horizon!$" + diff --git a/data/maps/Route16_Frlg/map.json b/data/maps/Route16_Frlg/map.json new file mode 100644 index 000000000000..a49179724cf8 --- /dev/null +++ b/data/maps/Route16_Frlg/map.json @@ -0,0 +1,240 @@ +{ + "id": "MAP_ROUTE16", + "name": "Route16_Frlg", + "layout": "LAYOUT_ROUTE16", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE17", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_CELADON_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Lao", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 14, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Koji", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 12, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Luke", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 8, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Ruben", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 10, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Hideo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 6, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Camron", + "flag": "0" + }, + { + "local_id": "LOCALID_ROUTE16_CUT_TREE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 41, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 30, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Lea", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 31, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route16_EventScript_Jed", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SNORLAX", + "x": 31, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_EventScript_Snorlax", + "flag": "FLAG_HIDE_ROUTE_16_SNORLAX" + } + ], + "warp_events": [ + { + "x": 10, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE16_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": "0" + }, + { + "x": 27, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": "2" + }, + { + "x": 27, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route16_EventScript_RouteSign" + }, + { + "type": "sign", + "x": 33, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route16_EventScript_CyclingRoadSign" + }, + { + "type": "hidden_item", + "x": 31, + "y": 13, + "elevation": 3, + "item": "ITEM_LEFTOVERS", + "flag": "FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS", + "quantity": 1, + "underfoot": true + } + ] +} diff --git a/data/maps/Route16_Frlg/scripts.inc b/data/maps/Route16_Frlg/scripts.inc new file mode 100644 index 000000000000..cca973610aec --- /dev/null +++ b/data/maps/Route16_Frlg/scripts.inc @@ -0,0 +1,188 @@ +Route16_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, Route16_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, Route16_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, Route16_OnWarp + .byte 0 + +Route16_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route16_EventScript_RemoveSnorlax + end + +Route16_EventScript_RemoveSnorlax:: + removeobject VAR_LAST_TALKED + return + +Route16_OnTransition:: + call_if_eq VAR_MAP_SCENE_ROUTE16, 1, Route16_OnTransitionCyclingRoad + end + +Route16_OnTransitionCyclingRoad:: + setflag FLAG_SYS_ON_CYCLING_ROAD + return + +Route16_OnWarp:: + map_script_2 VAR_MAP_SCENE_ROUTE16, 1, Route16_OnWarpCyclingRoad + .2byte 0 + +Route16_OnWarpCyclingRoad:: + special ForcePlayerOntoBike + end + +Route16_EventScript_Snorlax:: + lock + faceplayer + goto_if_unset FLAG_GOT_POKE_FLUTE, Route16_EventScript_SnorlaxNoPokeFlute + msgbox Text_WantToUsePokeFlute, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route16_EventScript_DontUsePokeFlute + call EventScript_AwakenSnorlax + setwildbattle SPECIES_SNORLAX, 30 + waitse + playmoncry SPECIES_SNORLAX, CRY_MODE_ENCOUNTER + delay 40 + waitmoncry + setflag FLAG_HIDE_ROUTE_16_SNORLAX + setflag FLAG_SYS_CTRL_OBJ_DELETE + dowildbattle + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, Route16_EventScript_FoughtSnorlax + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, Route16_EventScript_FoughtSnorlax + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, Route16_EventScript_FoughtSnorlax + release + end + +Route16_EventScript_DontUsePokeFlute:: + release + end + +Route16_EventScript_FoughtSnorlax:: + msgbox Text_SnorlaxReturnedToMountains + release + end + +Route16_EventScript_SnorlaxNoPokeFlute:: + msgbox Route16_Text_MonSprawledOutInSlumber + release + end + +Route16_EventScript_CyclingRoadSign:: + msgbox Route16_Text_CyclingRoadSign, MSGBOX_SIGN + end + +Route16_EventScript_RouteSign:: + msgbox Route16_Text_RouteSign, MSGBOX_SIGN + end + +Route16_Text_LaoIntro:: + .string "What do you want?$" + +Route16_Text_LaoDefeat:: + .string "Don't you dare laugh!$" + +Route16_Text_LaoPostBattle:: + .string "We like just hanging here.\n" + .string "What's it to you?$" + +Route16_Text_KojiIntro:: + .string "Nice BIKE!\n" + .string "Hand it over!$" + +Route16_Text_KojiDefeat:: + .string "Knockout!$" + +Route16_Text_KojiPostBattle:: + .string "Forget it, who needs your BIKE!$" + +Route16_Text_LukeIntro:: + .string "Come out and play, little mouse!$" + +Route16_Text_LukeDefeat:: + .string "You little rat!$" + +Route16_Text_LukePostBattle:: + .string "I hate losing!\n" + .string "Get out of my face!$" + +Route16_Text_HideoIntro:: + .string "Hey, you just bumped me!$" + +Route16_Text_HideoDefeat:: + .string "Kaboom!$" + +Route16_Text_HideoPostBattle:: + .string "We'll always be hanging around here\n" + .string "even if you don't like it.\p" + .string "You can detour to VERMILION from\n" + .string "FUCHSIA going along the coast.$" + +Route16_Text_CamronIntro:: + .string "I'm feeling hungry and mean!\n" + .string "I need a punching bag!$" + +Route16_Text_CamronDefeat:: + .string "Bad, bad, bad!$" + +Route16_Text_CamronPostBattle:: + .string "If I'm going to have POKéMON, they\n" + .string "may as well be ferocious.\p" + .string "I'd use them to leave my enemies\n" + .string "in tatters.$" + +Route16_Text_RubenIntro:: + .string "Hey, there!\n" + .string "Let's have ourselves a good time!$" + +Route16_Text_RubenDefeat:: + .string "Don't make me mad!$" + +Route16_Text_RubenPostBattle:: + .string "I get my kicks by harassing people\n" + .string "with my stinking POKéMON.\p" + .string "They're great for startling people.\n" + .string "And, they bite, too.$" + +Route16_Text_MonSprawledOutInSlumber:: + .string "A POKéMON is sprawled out in\n" + .string "a deep and comfortable slumber.$" + +Route16_Text_CyclingRoadSign:: + .string "Enjoy the slope!\n" + .string "CYCLING ROAD$" + +Route16_Text_RouteSign:: + .string "ROUTE 16\n" + .string "CELADON CITY - FUCHSIA CITY$" + +Route16_Text_JedIntro:: + .string "JED: Our love knows no bounds.\n" + .string "We're in love and we show it!$" + +Route16_Text_JedDefeat:: + .string "JED: Oh, no!\n" + .string "My love has seen me as a loser!$" + +Route16_Text_JedPostBattle:: + .string "JED: Listen, LEA.\n" + .string "You need to focus less on me.$" + +Route16_Text_JedNotEnoughMons:: + .string "JED: You have just one POKéMON?\n" + .string "Is there no love in your heart?$" + +Route16_Text_LeaIntro:: + .string "LEA: Sometimes, the intensity of\n" + .string "our love scares me.$" + +Route16_Text_LeaDefeat:: + .string "LEA: Ohh! But JED looks cool\n" + .string "even in a loss!$" + +Route16_Text_LeaPostBattle:: + .string "LEA: Ehehe, I'm sorry.\n" + .string "JED is so cool.$" + +Route16_Text_LeaNotEnoughMons:: + .string "LEA: Oh, you don't have two\n" + .string "POKéMON with you?\p" + .string "Doesn't it feel lonely for you or\n" + .string "your POKéMON?$" diff --git a/data/maps/Route16_House_Frlg/map.json b/data/maps/Route16_House_Frlg/map.json new file mode 100644 index 000000000000..7756135c8cfe --- /dev/null +++ b/data/maps/Route16_House_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_ROUTE16_HOUSE", + "name": "Route16_House_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_CELADON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_House_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FEAROW", + "x": 9, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_House_EventScript_Fearow", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route16_House_Frlg/scripts.inc b/data/maps/Route16_House_Frlg/scripts.inc new file mode 100644 index 000000000000..c98bfc788d9c --- /dev/null +++ b/data/maps/Route16_House_Frlg/scripts.inc @@ -0,0 +1,57 @@ +Route16_House_Frlg_MapScripts:: + .byte 0 + +Route16_House_EventScript_Woman:: + lock + faceplayer + goto_if_set FLAG_GOT_HM02, Route16_House_EventScript_AlreadyGotHM02 + msgbox Route16_House_Text_FoundMySecretRetreat + checkitemspace ITEM_HM02 + goto_if_eq VAR_RESULT, FALSE, Route16_House_EventScript_NoRoomForHM02 + giveitem_msg Route16_House_Text_ReceivedHM02FromGirl, ITEM_HM02 + msgbox Route16_House_Text_ExplainHM02 + setflag FLAG_GOT_HM02 + release + end + +Route16_House_EventScript_NoRoomForHM02:: + msgbox Route16_House_Text_DontHaveAnyRoomForThis + release + end + +Route16_House_EventScript_AlreadyGotHM02:: + msgbox Route16_House_Text_ExplainHM02 + release + end + +Route16_House_EventScript_Fearow:: + lock + faceplayer + waitse + playmoncry SPECIES_FEAROW, CRY_MODE_NORMAL + msgbox Route16_House_Text_Fearow + waitmoncry + release + end + +Route16_House_Text_FoundMySecretRetreat:: + .string "Oh, dear.\n" + .string "You've found my secret retreat.\p" + .string "Please don't tell anyone I'm here.\n" + .string "I'll make it up to you with this!$" + +Route16_House_Text_ReceivedHM02FromGirl:: + .string "{PLAYER} received HM02\n" + .string "from the girl.$" + +Route16_House_Text_ExplainHM02:: + .string "HM02 is FLY.\n" + .string "It's a wonderfully convenient move.\p" + .string "Please, put it to good use.$" + +Route16_House_Text_DontHaveAnyRoomForThis:: + .string "You don't have any room for this.$" + +Route16_House_Text_Fearow:: + .string "FEAROW: Kyueen!$" + diff --git a/data/maps/Route16_NorthEntrance_1F_Frlg/map.json b/data/maps/Route16_NorthEntrance_1F_Frlg/map.json new file mode 100644 index 000000000000..b05f27e6a05a --- /dev/null +++ b/data/maps/Route16_NorthEntrance_1F_Frlg/map.json @@ -0,0 +1,187 @@ +{ + "id": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "name": "Route16_NorthEntrance_1F_Frlg", + "layout": "LAYOUT_ROUTE16_NORTH_ENTRANCE_1F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_NorthEntrance_1F_EventScript_Guard", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_NorthEntrance_1F_EventScript_OldMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 3, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "2" + }, + { + "x": 1, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "3" + }, + { + "x": 11, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROUTE16", + "dest_warp_id": "4" + }, + { + "x": 9, + "y": 16, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 12, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "1", + "script": "EventScript_SetExitingCyclingRoad" + }, + { + "type": "trigger", + "x": 2, + "y": 12, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "0", + "script": "EventScript_SetEnteringCyclingRoad" + }, + { + "type": "trigger", + "x": 6, + "y": 10, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerTop" + }, + { + "type": "trigger", + "x": 6, + "y": 11, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerMidTop" + }, + { + "type": "trigger", + "x": 1, + "y": 13, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "0", + "script": "EventScript_SetEnteringCyclingRoad" + }, + { + "type": "trigger", + "x": 1, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "0", + "script": "EventScript_SetEnteringCyclingRoad" + }, + { + "type": "trigger", + "x": 11, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "1", + "script": "EventScript_SetExitingCyclingRoad" + }, + { + "type": "trigger", + "x": 11, + "y": 13, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "1", + "script": "EventScript_SetExitingCyclingRoad" + }, + { + "type": "trigger", + "x": 6, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerMid" + }, + { + "type": "trigger", + "x": 6, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerMidBottom" + }, + { + "type": "trigger", + "x": 6, + "y": 14, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route16_NorthEntrance_1F_Frlg/scripts.inc b/data/maps/Route16_NorthEntrance_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d1e68f91c9c5 --- /dev/null +++ b/data/maps/Route16_NorthEntrance_1F_Frlg/scripts.inc @@ -0,0 +1,131 @@ +Route16_NorthEntrance_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route16_NorthEntrance_1F_OnTransition + .byte 0 + +Route16_NorthEntrance_1F_OnTransition:: + clearflag FLAG_SYS_ON_CYCLING_ROAD + call_if_set FLAG_GOT_BICYCLE, Route16_NorthEntrance_1F_EventScript_DisableNeedBikeTrigger + end + +Route16_NorthEntrance_1F_EventScript_DisableNeedBikeTrigger:: + setvar VAR_TEMP_1, 1 + return + +Route16_NorthEntrance_1F_EventScript_Guard:: + msgbox Route16_NorthEntrance_1F_Text_CyclingRoadIsDownhillCourse, MSGBOX_NPC + end + +Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerTop:: + lockall + setvar VAR_0x8008, 0 + goto Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger + end + +Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerMidTop:: + lockall + setvar VAR_0x8008, 1 + goto Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger + end + +Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerMid:: + lockall + setvar VAR_0x8008, 2 + goto Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger + end + +Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerMidBottom:: + lockall + setvar VAR_0x8008, 3 + goto Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger + end + +Route16_NorthEntrance_1F_EventScript_NeedBikeTriggerBottom:: + lockall + setvar VAR_0x8008, 4 + goto Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger + end + +Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger:: + textcolor NPC_TEXT_COLOR_MALE + msgbox Route16_NorthEntrance_1F_Text_ExcuseMeWaitUp + closemessage + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + delay 20 + call_if_eq VAR_0x8008, 1, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidTop + call_if_eq VAR_0x8008, 2, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMid + call_if_eq VAR_0x8008, 3, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidBottom + call_if_eq VAR_0x8008, 4, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterBottom + msgbox Route16_NorthEntrance_1F_Text_NoPedestriansOnCyclingRoad + closemessage + applymovement LOCALID_PLAYER, Route16_NorthEntrance_1F_Movement_WalkRight + waitmovement 0 + releaseall + end + +Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidTop:: + applymovement LOCALID_PLAYER, Route16_NorthEntrance_1F_Movement_WalkUp + waitmovement 0 + return + +Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMid:: + applymovement LOCALID_PLAYER, Route16_NorthEntrance_1F_Movement_WalkUp2 + waitmovement 0 + return + +Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidBottom:: + applymovement LOCALID_PLAYER, Route16_NorthEntrance_1F_Movement_WalkUp3 + waitmovement 0 + return + +Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterBottom:: + applymovement LOCALID_PLAYER, Route16_NorthEntrance_1F_Movement_WalkUp4 + waitmovement 0 + return + +Route16_NorthEntrance_1F_Movement_WalkUp:: + walk_up + step_end + +Route16_NorthEntrance_1F_Movement_WalkUp2:: + walk_up + walk_up + step_end + +Route16_NorthEntrance_1F_Movement_WalkUp3:: + walk_up + walk_up + walk_up + step_end + +Route16_NorthEntrance_1F_Movement_WalkUp4:: + walk_up + walk_up + walk_up + walk_up + step_end + +Route16_NorthEntrance_1F_Movement_WalkRight:: + walk_right + step_end + +Route16_NorthEntrance_1F_EventScript_OldMan:: + msgbox Route16_NorthEntrance_1F_Text_HowdYouGetInGoodEffort, MSGBOX_NPC + end + +Route16_NorthEntrance_1F_Text_NoPedestriansOnCyclingRoad:: + .string "No pedestrians are allowed on\n" + .string "CYCLING ROAD!$" + +Route16_NorthEntrance_1F_Text_CyclingRoadIsDownhillCourse:: + .string "CYCLING ROAD is a downhill course\n" + .string "by the sea. It's a great ride.$" + +Route16_NorthEntrance_1F_Text_ExcuseMeWaitUp:: + .string "Excuse me!\n" + .string "Wait up, please!$" + +Route16_NorthEntrance_1F_Text_HowdYouGetInGoodEffort:: + .string "How'd you get in?\n" + .string "Good effort!$" + diff --git a/data/maps/Route16_NorthEntrance_2F_Frlg/map.json b/data/maps/Route16_NorthEntrance_2F_Frlg/map.json new file mode 100644 index 000000000000..7dd69de88b3a --- /dev/null +++ b/data/maps/Route16_NorthEntrance_2F_Frlg/map.json @@ -0,0 +1,90 @@ +{ + "id": "MAP_ROUTE16_NORTH_ENTRANCE_2F", + "name": "Route16_NorthEntrance_2F_Frlg", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_16", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_NorthEntrance_2F_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_NorthEntrance_2F_EventScript_LittleGirl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 10, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route16_NorthEntrance_2F_EventScript_Aide", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route16_NorthEntrance_2F_EventScript_LeftBinoculars" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route16_NorthEntrance_2F_EventScript_RightBinoculars" + } + ] +} diff --git a/data/maps/Route16_NorthEntrance_2F_Frlg/scripts.inc b/data/maps/Route16_NorthEntrance_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..c6c70b6ec036 --- /dev/null +++ b/data/maps/Route16_NorthEntrance_2F_Frlg/scripts.inc @@ -0,0 +1,99 @@ +.equ REQUIRED_CAUGHT_MONS, 40 + +Route16_NorthEntrance_2F_Frlg_MapScripts:: + .byte 0 + +Route16_NorthEntrance_2F_EventScript_LittleBoy:: + msgbox Route16_NorthEntrance_2F_Text_OnBikeRideWithGirlfriend, MSGBOX_NPC + end + +Route16_NorthEntrance_2F_EventScript_LittleGirl:: + msgbox Route16_NorthEntrance_2F_Text_RidingTogetherOnNewBikes, MSGBOX_NPC + end + +Route16_NorthEntrance_2F_EventScript_LeftBinoculars:: + msgbox Route16_NorthEntrance_2F_Text_ItsCeladonDeptStore, MSGBOX_SIGN + end + +Route16_NorthEntrance_2F_EventScript_RightBinoculars:: + msgbox Route16_NorthEntrance_2F_Text_LongPathOverWater, MSGBOX_SIGN + end + +Route16_NorthEntrance_2F_EventScript_Aide:: + lock + faceplayer + call Route16_NorthEntrance_2F_EventScript_GetAideRequestInfo + goto_if_set FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE, Route16_NorthEntrance_2F_EventScript_AlreadyGotAmuletCoin + msgbox Route16_NorthEntrance_2F_Text_GiveAmuletCoinIfCaught40, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Aide_EventScript_DeclineCheckMons + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + buffernumberstring STR_VAR_3, VAR_0x8006 + call Route16_NorthEntrance_2F_EventScript_GetAideRequestInfo + goto_if_lt VAR_0x8006, REQUIRED_CAUGHT_MONS, Aide_EventScript_HaventCaughtEnough + msgbox Route16_NorthEntrance_2F_Text_GreatHereYouGo + checkitemspace ITEM_AMULET_COIN + goto_if_eq VAR_RESULT, FALSE, Aide_EventScript_NoRoomForItem + giveitem_msg Route16_NorthEntrance_2F_Text_ReceivedAmuletCoinFromAide, ITEM_AMULET_COIN + setflag FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE + msgbox Route16_NorthEntrance_2F_Text_ExplainAmuletCoin + release + end + +Route16_NorthEntrance_2F_EventScript_AlreadyGotAmuletCoin:: + msgbox Route16_NorthEntrance_2F_Text_ExplainAmuletCoin + release + end + +Route16_NorthEntrance_2F_EventScript_GetAideRequestInfo:: + buffernumberstring STR_VAR_1, REQUIRED_CAUGHT_MONS + bufferitemname STR_VAR_2, ITEM_AMULET_COIN + return + +Route16_NorthEntrance_2F_Text_OnBikeRideWithGirlfriend:: + .string "I'm on a relaxing ride on my new\n" + .string "bike with my girlfriend.$" + +Route16_NorthEntrance_2F_Text_RidingTogetherOnNewBikes:: + .string "We're going riding together on our\n" + .string "new bikes.$" + +Route16_NorthEntrance_2F_Text_ItsCeladonDeptStore:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "It's the CELADON DEPT. STORE!$" + +Route16_NorthEntrance_2F_Text_LongPathOverWater:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "There's a long path over water far\n" + .string "away.$" + +Route16_NorthEntrance_2F_Text_GiveAmuletCoinIfCaught40:: + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on 40 species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with an\n" + .string "AMULET COIN for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "40 kinds of POKéMON?$" + +Route16_NorthEntrance_2F_Text_GreatHereYouGo:: + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +Route16_NorthEntrance_2F_Text_ReceivedAmuletCoinFromAide:: + .string "{PLAYER} received the AMULET COIN\n" + .string "from the AIDE.$" + +Route16_NorthEntrance_2F_Text_ExplainAmuletCoin:: + .string "An AMULET COIN is an item to be\n" + .string "held by a POKéMON.\p" + .string "If the POKéMON appears in a winning\n" + .string "battle, you will earn more money.$" + diff --git a/data/maps/Route17_Frlg/map.json b/data/maps/Route17_Frlg/map.json new file mode 100644 index 000000000000..43a8937c9eaa --- /dev/null +++ b/data/maps/Route17_Frlg/map.json @@ -0,0 +1,273 @@ +{ + "id": "MAP_ROUTE17", + "name": "Route17_Frlg", + "layout": "LAYOUT_ROUTE17", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_17", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE16", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE18", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 4, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 6, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_Virgil", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 11, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_Isaiah", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 15, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP", + "movement_range_x": 4, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_Raul", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 18, + "y": 41, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_Nikolas", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 7, + "y": 38, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route17_EventScript_Billy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 2, + "y": 61, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route17_EventScript_Jamal", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 21, + "y": 61, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route17_EventScript_Zeek", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 18, + "y": 94, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_Corey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 16, + "y": 134, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP", + "movement_range_x": 8, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_William", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 4, + "y": 116, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route17_EventScript_Jaxon", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 97, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route17_EventScript_RouteSign" + }, + { + "type": "sign", + "x": 12, + "y": 83, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route17_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 12, + "y": 68, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route17_EventScript_TrainerTips1" + }, + { + "type": "sign", + "x": 12, + "y": 53, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route17_EventScript_ItemsNotice" + }, + { + "type": "sign", + "x": 12, + "y": 125, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route17_EventScript_BallsNotice" + }, + { + "type": "sign", + "x": 11, + "y": 157, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route17_EventScript_CyclingRoadSign" + }, + { + "type": "hidden_item", + "x": 18, + "y": 83, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 10, + "y": 53, + "elevation": 3, + "item": "ITEM_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 4, + "y": 68, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_PP_UP", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 4, + "y": 125, + "elevation": 3, + "item": "ITEM_MAX_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 14, + "y": 157, + "elevation": 3, + "item": "ITEM_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route17_Frlg/scripts.inc b/data/maps/Route17_Frlg/scripts.inc new file mode 100644 index 000000000000..9f0e6a73effc --- /dev/null +++ b/data/maps/Route17_Frlg/scripts.inc @@ -0,0 +1,158 @@ +Route17_Frlg_MapScripts:: + .byte 0 + +Route17_EventScript_ItemsNotice:: + msgbox Route17_Text_WatchOutForDiscardedItems, MSGBOX_SIGN + end + +Route17_EventScript_TrainerTips1:: + msgbox Route17_Text_SameSpeciesGrowDifferentRates, MSGBOX_SIGN + end + +Route17_EventScript_TrainerTips2:: + msgbox Route17_Text_PressBToStayInPlace, MSGBOX_SIGN + end + +Route17_EventScript_RouteSign:: + msgbox Route17_Text_RouteSign, MSGBOX_SIGN + end + +Route17_EventScript_BallsNotice:: + msgbox Route17_Text_DontThrowGameThrowBalls, MSGBOX_SIGN + end + +Route17_EventScript_CyclingRoadSign:: + msgbox Route17_Text_CyclingRoadSign, MSGBOX_SIGN + end + +Route17_Text_RaulIntro:: + .string "There's no getting rich quick in\n" + .string "battling kids.$" + +Route17_Text_RaulDefeat:: + .string "Burned out!$" + +Route17_Text_RaulPostBattle:: + .string "You can find good stuff lying\n" + .string "around on CYCLING ROAD.\p" + .string "There's good money in picking them\n" + .string "up and selling them.$" + +Route17_Text_IsaiahIntro:: + .string "I'm mighty proud of my bod, kiddo.\n" + .string "Come on!$" + +Route17_Text_IsaiahDefeat:: + .string "Whoo!$" + +Route17_Text_IsaiahPostBattle:: + .string "I could belly-bump you outta\n" + .string "here!$" + +Route17_Text_VirgilIntro:: + .string "You heading to FUCHSIA?$" + +Route17_Text_VirgilDefeat:: + .string "Crash and burn!$" + +Route17_Text_VirgilPostBattle:: + .string "I love racing downhill!$" + +Route17_Text_BillyIntro:: + .string "We're BIKERS!\n" + .string "We rule the roads, man!$" + +Route17_Text_BillyDefeat:: + .string "Smoked!$" + +Route17_Text_BillyPostBattle:: + .string "Are you looking for adventure?$" + +Route17_Text_NikolasIntro:: + .string "Let VOLTORB electrify you!$" + +Route17_Text_NikolasDefeat:: + .string "Grounded out!$" + +Route17_Text_NikolasPostBattle:: + .string "I got my VOLTORB at the abandoned\n" + .string "POWER PLANT.$" + +Route17_Text_ZeekIntro:: + .string "I leveled up my POKéMON, but it\n" + .string "won't evolve. Why?$" + +Route17_Text_ZeekDefeat:: + .string "Why, you!$" + +Route17_Text_ZeekPostBattle:: + .string "Maybe some POKéMON need element\n" + .string "STONES to evolve.$" + +Route17_Text_JamalIntro:: + .string "I need a little exercise!$" + +Route17_Text_JamalDefeat:: + .string "Whew!\n" + .string "Good workout!$" + +Route17_Text_JamalPostBattle:: + .string "I'm sure I lost weight there!$" + +Route17_Text_CoreyIntro:: + .string "Be a rebel!$" + +Route17_Text_CoreyDefeat:: + .string "Aaaargh!$" + +Route17_Text_CoreyPostBattle:: + .string "Be ready to fight for your beliefs!$" + +Route17_Text_JaxonIntro:: + .string "Nice BIKE!\n" + .string "How's it handle?$" + +Route17_Text_JaxonDefeat:: + .string "Shoot!$" + +Route17_Text_JaxonPostBattle:: + .string "The slope makes it hard to steer.$" + +Route17_Text_WilliamIntro:: + .string "Get lost, kid!\n" + .string "I'm bushed!$" + +Route17_Text_WilliamDefeat:: + .string "Are you satisfied?$" + +Route17_Text_WilliamPostBattle:: + .string "I need to catch a few z's!$" + +Route17_Text_WatchOutForDiscardedItems:: + .string "It's a notice.\p" + .string "Watch out for discarded items.$" + +Route17_Text_SameSpeciesGrowDifferentRates:: + .string "TRAINER TIPS\p" + .string "All POKéMON are unique.\p" + .string "Even POKéMON of the same species\n" + .string "and level grow at different rates.$" + +Route17_Text_PressBToStayInPlace:: + .string "TRAINER TIPS\p" + .string "Press the B Button to stay in place\n" + .string "while on a slope.$" + +Route17_Text_RouteSign:: + .string "ROUTE 17\n" + .string "CELADON CITY - FUCHSIA CITY$" + +Route17_Text_DontThrowGameThrowBalls:: + .string "It's a notice!\p" + .string "Don't throw the game, throw POKé\n" + .string "BALLS instead!$" + +Route17_Text_CyclingRoadSign:: + .string "CYCLING ROAD\n" + .string "Slope ends here!$" + diff --git a/data/maps/Route18_EastEntrance_1F_Frlg/map.json b/data/maps/Route18_EastEntrance_1F_Frlg/map.json new file mode 100644 index 000000000000..1e6e797debc0 --- /dev/null +++ b/data/maps/Route18_EastEntrance_1F_Frlg/map.json @@ -0,0 +1,159 @@ +{ + "id": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "name": "Route18_EastEntrance_1F_Frlg", + "layout": "LAYOUT_ENTRANCE_1F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_18", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route18_EastEntrance_1F_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE18", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE18", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 2, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "0", + "script": "EventScript_SetEnteringCyclingRoad" + }, + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route18_EastEntrance_1F_EventScript_NeedBikeTriggerTop" + }, + { + "type": "trigger", + "x": 6, + "y": 5, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route18_EastEntrance_1F_EventScript_NeedBikeTriggerMidTop" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route18_EastEntrance_1F_EventScript_NeedBikeTriggerMid" + }, + { + "type": "trigger", + "x": 6, + "y": 7, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route18_EastEntrance_1F_EventScript_NeedBikeTriggerMidBottom" + }, + { + "type": "trigger", + "x": 6, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "Route18_EastEntrance_1F_EventScript_NeedBikeTriggerBottom" + }, + { + "type": "trigger", + "x": 10, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "1", + "script": "EventScript_SetExitingCyclingRoad" + }, + { + "type": "trigger", + "x": 11, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "1", + "script": "EventScript_SetExitingCyclingRoad" + }, + { + "type": "trigger", + "x": 11, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "1", + "script": "EventScript_SetExitingCyclingRoad" + }, + { + "type": "trigger", + "x": 1, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "0", + "script": "EventScript_SetEnteringCyclingRoad" + }, + { + "type": "trigger", + "x": 1, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE16", + "var_value": "0", + "script": "EventScript_SetEnteringCyclingRoad" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route18_EastEntrance_1F_Frlg/scripts.inc b/data/maps/Route18_EastEntrance_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..857fbcc7a1d9 --- /dev/null +++ b/data/maps/Route18_EastEntrance_1F_Frlg/scripts.inc @@ -0,0 +1,122 @@ +Route18_EastEntrance_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route18_EastEntrance_1F_OnTransition + .byte 0 + +Route18_EastEntrance_1F_OnTransition:: + clearflag FLAG_SYS_ON_CYCLING_ROAD + call_if_set FLAG_GOT_BICYCLE, Route18_EastEntrance_1F_EventScript_DisableNeedBikeTrigger + end + +Route18_EastEntrance_1F_EventScript_DisableNeedBikeTrigger:: + setvar VAR_TEMP_1, 1 + return + +Route18_EastEntrance_1F_EventScript_Guard:: + msgbox Route18_EastEntrance_1F_Text_CyclingRoadAllUphillFromHere, MSGBOX_NPC + end + +Route18_EastEntrance_1F_EventScript_NeedBikeTriggerTop:: + lockall + setvar VAR_0x8008, 0 + goto Route18_EastEntrance_1F_EventScript_NeedBikeTrigger + end + +Route18_EastEntrance_1F_EventScript_NeedBikeTriggerMidTop:: + lockall + setvar VAR_0x8008, 1 + goto Route18_EastEntrance_1F_EventScript_NeedBikeTrigger + end + +Route18_EastEntrance_1F_EventScript_NeedBikeTriggerMid:: + lockall + setvar VAR_0x8008, 2 + goto Route18_EastEntrance_1F_EventScript_NeedBikeTrigger + end + +Route18_EastEntrance_1F_EventScript_NeedBikeTriggerMidBottom:: + lockall + setvar VAR_0x8008, 3 + goto Route18_EastEntrance_1F_EventScript_NeedBikeTrigger + end + +Route18_EastEntrance_1F_EventScript_NeedBikeTriggerBottom:: + lockall + setvar VAR_0x8008, 4 + goto Route18_EastEntrance_1F_EventScript_NeedBikeTrigger + end + +Route18_EastEntrance_1F_EventScript_NeedBikeTrigger:: + textcolor NPC_TEXT_COLOR_MALE + msgbox Route18_EastEntrance_1F_Text_ExcuseMe + closemessage + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + delay 20 + call_if_eq VAR_0x8008, 1, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidTop + call_if_eq VAR_0x8008, 2, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMid + call_if_eq VAR_0x8008, 3, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidBottom + call_if_eq VAR_0x8008, 4, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterBottom + msgbox Route18_EastEntrance_1F_Text_NeedBicycleForCyclingRoad + closemessage + applymovement LOCALID_PLAYER, Route18_EastEntrance_1F_Movement_WalkRight + waitmovement 0 + releaseall + end + +Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidTop:: + applymovement LOCALID_PLAYER, Route18_EastEntrance_1F_Movement_WalkUp + waitmovement 0 + return + +Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMid:: + applymovement LOCALID_PLAYER, Route18_EastEntrance_1F_Movement_WalkUp2 + waitmovement 0 + return + +Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidBottom:: + applymovement LOCALID_PLAYER, Route18_EastEntrance_1F_Movement_WalkUp3 + waitmovement 0 + return + +Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterBottom:: + applymovement LOCALID_PLAYER, Route18_EastEntrance_1F_Movement_WalkUp4 + waitmovement 0 + return + +Route18_EastEntrance_1F_Movement_WalkUp:: + walk_up + step_end + +Route18_EastEntrance_1F_Movement_WalkUp2:: + walk_up + walk_up + step_end + +Route18_EastEntrance_1F_Movement_WalkUp3:: + walk_up + walk_up + walk_up + step_end + +Route18_EastEntrance_1F_Movement_WalkUp4:: + walk_up + walk_up + walk_up + walk_up + step_end + +Route18_EastEntrance_1F_Movement_WalkRight:: + walk_right + step_end + +Route18_EastEntrance_1F_Text_NeedBicycleForCyclingRoad:: + .string "You need a BICYCLE to go out on\n" + .string "CYCLING ROAD!$" + +Route18_EastEntrance_1F_Text_CyclingRoadAllUphillFromHere:: + .string "CYCLING ROAD is all uphill from\n" + .string "here.$" + +Route18_EastEntrance_1F_Text_ExcuseMe:: + .string "Excuse me!$" + diff --git a/data/maps/Route18_EastEntrance_2F_Frlg/map.json b/data/maps/Route18_EastEntrance_2F_Frlg/map.json new file mode 100644 index 000000000000..b02c242f23eb --- /dev/null +++ b/data/maps/Route18_EastEntrance_2F_Frlg/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_ROUTE18_EAST_ENTRANCE_2F", + "name": "Route18_EastEntrance_2F_Frlg", + "layout": "LAYOUT_ENTRANCE_2F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_18", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route18_EastEntrance_2F_EventScript_Haden", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route18_EastEntrance_2F_EventScript_LeftBinoculars" + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route18_EastEntrance_2F_EventScript_RightBinoculars" + } + ] +} diff --git a/data/maps/Route18_EastEntrance_2F_Frlg/scripts.inc b/data/maps/Route18_EastEntrance_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..c4441ffada41 --- /dev/null +++ b/data/maps/Route18_EastEntrance_2F_Frlg/scripts.inc @@ -0,0 +1,55 @@ +Route18_EastEntrance_2F_Frlg_MapScripts:: + .byte 0 + +Route18_EastEntrance_2F_EventScript_LeftBinoculars:: + msgbox Route18_EastEntrance_2F_Text_PalletTownInWest, MSGBOX_SIGN + end + +Route18_EastEntrance_2F_EventScript_RightBinoculars:: + msgbox Route18_EastEntrance_2F_Text_PeopleSwimming, MSGBOX_SIGN + end + +Route18_EastEntrance_2F_EventScript_Haden:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_LICKITUNG + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_MARC_TRADE, Route18_EastEntrance_2F_EventScript_AlreadyTraded + msgbox Trade_Text_LookingForMonWannaTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route18_EastEntrance_2F_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, Route18_EastEntrance_2F_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, Route18_EastEntrance_2F_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_HeyThanks + setflag FLAG_DID_MARC_TRADE + release + end + +Route18_EastEntrance_2F_EventScript_DeclineTrade:: + msgbox Trade_Text_AwwOhWell + release + end + +Route18_EastEntrance_2F_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_WhatThatsNoMon + release + end + +Route18_EastEntrance_2F_EventScript_AlreadyTraded:: + msgbox Trade_Text_IsntMyOldMonGreat + release + end + +Route18_EastEntrance_2F_Text_PalletTownInWest:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "PALLET TOWN is in the west.$" + +Route18_EastEntrance_2F_Text_PeopleSwimming:: + .string "Let's see what the binoculars have\n" + .string "to show…\p" + .string "There are people swimming.$" + diff --git a/data/maps/Route18_Frlg/map.json b/data/maps/Route18_Frlg/map.json new file mode 100644 index 000000000000..3ea64079cd94 --- /dev/null +++ b/data/maps/Route18_Frlg/map.json @@ -0,0 +1,108 @@ +{ + "id": "MAP_ROUTE18", + "name": "Route18_Frlg", + "layout": "LAYOUT_ROUTE18", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_18", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE17", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_FUCHSIA_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 46, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route18_EventScript_Jacob", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 41, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route18_EventScript_Ramiro", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 39, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "Route18_EventScript_Wilton", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 41, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "dest_warp_id": "0" + }, + { + "x": 48, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 37, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route18_EventScript_CyclingRoadSign" + }, + { + "type": "sign", + "x": 52, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route18_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/Route18_Frlg/scripts.inc b/data/maps/Route18_Frlg/scripts.inc new file mode 100644 index 000000000000..420306517e50 --- /dev/null +++ b/data/maps/Route18_Frlg/scripts.inc @@ -0,0 +1,69 @@ +Route18_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route18_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, Route18_OnWarp + .byte 0 + +Route18_OnTransition:: + call_if_eq VAR_MAP_SCENE_ROUTE16, 1, Route18_OnTransitionCyclingRoad + end + +Route18_OnTransitionCyclingRoad:: + setflag FLAG_SYS_ON_CYCLING_ROAD + return + +Route18_OnWarp:: + map_script_2 VAR_MAP_SCENE_ROUTE16, 1, Route18_OnWarpCyclingRoad + .2byte 0 + +Route18_OnWarpCyclingRoad:: + special ForcePlayerOntoBike + end + +Route18_EventScript_RouteSign:: + msgbox Route18_Text_RouteSign, MSGBOX_SIGN + end + +Route18_EventScript_CyclingRoadSign:: + msgbox Route18_Text_CyclingRoadSign, MSGBOX_SIGN + end + +Route18_Text_WiltonIntro:: + .string "I always check every grassy area\n" + .string "for new POKéMON.$" + +Route18_Text_WiltonDefeat:: + .string "Tch!$" + +Route18_Text_WiltonPostBattle:: + .string "I wish I had a BIKE!$" + +Route18_Text_RamiroIntro:: + .string "Kurukkoo!\n" + .string "How do you like my birdcall?$" + +Route18_Text_RamiroDefeat:: + .string "I had to bug you!$" + +Route18_Text_RamiroPostBattle:: + .string "I collect sea POKéMON on weekends\n" + .string "because the sea is so close.$" + +Route18_Text_JacobIntro:: + .string "This is my turf!\n" + .string "Get out of here!$" + +Route18_Text_JacobDefeat:: + .string "Darn!$" + +Route18_Text_JacobPostBattle:: + .string "This is my fave area for catching\n" + .string "POKéMON.$" + +Route18_Text_RouteSign:: + .string "ROUTE 18\n" + .string "CELADON CITY - FUCHSIA CITY$" + +Route18_Text_CyclingRoadSign:: + .string "CYCLING ROAD\n" + .string "No pedestrians permitted!$" + diff --git a/data/maps/Route19_Frlg/map.json b/data/maps/Route19_Frlg/map.json new file mode 100644 index 000000000000..c7694be34777 --- /dev/null +++ b/data/maps/Route19_Frlg/map.json @@ -0,0 +1,211 @@ +{ + "id": "MAP_ROUTE19", + "name": "Route19_Frlg", + "layout": "LAYOUT_ROUTE19", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_19", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_FUCHSIA_CITY", + "offset": -12, + "direction": "up" + }, + { + "map": "MAP_ROUTE20", + "offset": 40, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", + "x": 15, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 6, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route19_EventScript_Reece", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", + "x": 10, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route19_EventScript_Richard", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 12, + "y": 17, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route19_EventScript_Tony", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 18, + "y": 33, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Matthew", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 8, + "y": 27, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Douglas", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 16, + "y": 22, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "Route19_EventScript_David", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 11, + "y": 47, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Axle", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 14, + "y": 48, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Alice", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 12, + "y": 49, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Connie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 9, + "y": 48, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Anya", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 8, + "y": 41, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Lia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", + "x": 9, + "y": 41, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route19_EventScript_Luc", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 13, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route19_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/Route19_Frlg/scripts.inc b/data/maps/Route19_Frlg/scripts.inc new file mode 100644 index 000000000000..a6a7fa10be34 --- /dev/null +++ b/data/maps/Route19_Frlg/scripts.inc @@ -0,0 +1,161 @@ +Route19_Frlg_MapScripts:: + .byte 0 + +Route19_EventScript_RouteSign:: + msgbox Route19_Text_RouteSign, MSGBOX_SIGN + end + +Route19_Text_RichardIntro:: + .string "I have to exercise and warm up\n" + .string "before going out for a swim.$" + +Route19_Text_RichardDefeat:: + .string "All warmed up!$" + +Route19_Text_RichardPostBattle:: + .string "Thanks, kid!\n" + .string "I'm ready for a swim.$" + +Route19_Text_ReeceIntro:: + .string "Wait! Slow down!\n" + .string "You'll have a heart attack!$" + +Route19_Text_ReeceDefeat:: + .string "Ooh!\n" + .string "That's chilly!$" + +Route19_Text_ReecePostBattle:: + .string "Watch out for TENTACOOL.\n" + .string "They sting so painfully.$" + +Route19_Text_MatthewIntro:: + .string "I love swimming!\n" + .string "What about you?$" + +Route19_Text_MatthewDefeat:: + .string "Belly flop!$" + +Route19_Text_MatthewPostBattle:: + .string "I can beat even marine POKéMON\n" + .string "at swimming.$" + +Route19_Text_DouglasIntro:: + .string "What's beyond the horizon?$" + +Route19_Text_DouglasDefeat:: + .string "Glub!$" + +Route19_Text_DouglasPostBattle:: + .string "I see a couple of islands over\n" + .string "yonder!$" + +Route19_Text_DavidIntro:: + .string "I tried diving for POKéMON, but it\n" + .string "was a no-go.$" + +Route19_Text_DavidDefeat:: + .string "Help!$" + +Route19_Text_DavidPostBattle:: + .string "I guess you have to fish for sea\n" + .string "POKéMON.$" + +Route19_Text_TonyIntro:: + .string "I look at the sea to forget all\n" + .string "the bad things that happened.$" + +Route19_Text_TonyDefeat:: + .string "Ooh!\n" + .string "Traumatic!$" + +Route19_Text_TonyPostBattle:: + .string "I'm looking at the sea to forget\n" + .string "the bad thing that happened!$" + +Route19_Text_AnyaIntro:: + .string "Oh, I just love your ride!\n" + .string "Can I have it if I win?$" + +Route19_Text_AnyaDefeat:: + .string "Oh! I lost!$" + +Route19_Text_AnyaPostBattle:: + .string "It's still a long way to go to\n" + .string "SEAFOAM ISLANDS…\p" + .string "I want to go back to FUCHSIA…$" + +Route19_Text_AliceIntro:: + .string "Swimming's great!\n" + .string "Sunburns aren't!$" + +Route19_Text_AliceDefeat:: + .string "Shocker!$" + +Route19_Text_AlicePostBattle:: + .string "My boyfriend wanted to swim to\n" + .string "SEAFOAM ISLANDS.$" + +Route19_Text_AxleIntro:: + .string "Ahoy, there!\n" + .string "These waters are treacherous!$" + +Route19_Text_AxleDefeat:: + .string "Ooh!\n" + .string "Dangerous!$" + +Route19_Text_AxlePostBattle:: + .string "M-my legs! They cramped up!\n" + .string "Glub, glub…$" + +Route19_Text_ConnieIntro:: + .string "I swam here with my friends…\n" + .string "I'm tired…$" + +Route19_Text_ConnieDefeat:: + .string "I'm exhausted…$" + +Route19_Text_ConniePostBattle:: + .string "If I were to ride a POKéMON on\n" + .string "the sea, I'd like a LAPRAS.\p" + .string "LAPRAS is so big, I bet it\n" + .string "would keep me dry on water.$" + +Route19_Text_RouteSign:: + .string "SEA ROUTE 19\n" + .string "FUCHSIA CITY - SEAFOAM ISLANDS$" + +Route19_Text_LiaIntro:: + .string "LIA: I'm looking after my brother.\n" + .string "He just became a TRAINER.$" + +Route19_Text_LiaDefeat:: + .string "LIA: That's no way to treat my\n" + .string "little brother!$" + +Route19_Text_LiaPostBattle:: + .string "LIA: Do you have a younger\n" + .string "brother?\p" + .string "I hope you're teaching him all\n" + .string "sorts of things.$" + +Route19_Text_LiaNotEnoughMons:: + .string "LIA: I want to battle together\n" + .string "with my little brother.\p" + .string "Don't you have two POKéMON?$" + +Route19_Text_LucIntro:: + .string "LUC: My big sis taught me how\n" + .string "to swim and train POKéMON.$" + +Route19_Text_LucDefeat:: + .string "LUC: Oh, wow!\n" + .string "Someone tougher than my big sis!$" + +Route19_Text_LucPostBattle:: + .string "LUC: My big sis is strong and nice.\n" + .string "I think she's awesome!$" + +Route19_Text_LucNotEnoughMons:: + .string "LUC: I don't want to if I can't\n" + .string "battle you with my big sis.\p" + .string "Don't you have two POKéMON?$" diff --git a/data/maps/Route19_UnusedHouse_Frlg/map.json b/data/maps/Route19_UnusedHouse_Frlg/map.json new file mode 100644 index 000000000000..ef096e6fbd65 --- /dev/null +++ b/data/maps/Route19_UnusedHouse_Frlg/map.json @@ -0,0 +1,22 @@ +{ + "id": "MAP_ROUTE19_UNUSED_HOUSE", + "name": "Route19_UnusedHouse_Frlg", + "layout": "LAYOUT_HOUSE2_FRLG", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_19", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route19_UnusedHouse_Frlg/scripts.inc b/data/maps/Route19_UnusedHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..df5679f598b9 --- /dev/null +++ b/data/maps/Route19_UnusedHouse_Frlg/scripts.inc @@ -0,0 +1,2 @@ +Route19_UnusedHouse_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/Route1_Frlg/map.json b/data/maps/Route1_Frlg/map.json new file mode 100644 index 000000000000..7a1e26f25fe4 --- /dev/null +++ b/data/maps/Route1_Frlg/map.json @@ -0,0 +1,75 @@ +{ + "id": "MAP_ROUTE1", + "name": "Route1_Frlg", + "layout": "LAYOUT_ROUTE1", + "music": "MUS_RG_ROUTE1", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_1", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_VIRIDIAN_CITY", + "offset": -12, + "direction": "up" + }, + { + "map": "MAP_PALLET_TOWN", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 6, + "y": 28, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route1_EventScript_MartClerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 19, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route1_EventScript_Boy", + "flag": "0" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route1_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/Route1_Frlg/scripts.inc b/data/maps/Route1_Frlg/scripts.inc new file mode 100644 index 000000000000..3a39538f4e5c --- /dev/null +++ b/data/maps/Route1_Frlg/scripts.inc @@ -0,0 +1,64 @@ +Route1_Frlg_MapScripts:: + .byte 0 + +Route1_EventScript_MartClerk:: + lock + faceplayer + goto_if_set FLAG_GOT_POTION_ON_ROUTE_1, Route1_EventScript_AlreadyGotPotion + msgbox Route1_Text_WorkAtPokeMartTakeSample + textcolor NPC_TEXT_COLOR_NEUTRAL + checkitemspace ITEM_POTION + goto_if_eq VAR_RESULT, FALSE, EventScript_BagIsFull + bufferitemname STR_VAR_2, ITEM_POTION + playfanfare MUS_LEVEL_UP + message gText_ObtainedTheItem + waitmessage + waitfanfare + additem ITEM_POTION + msgbox Route1_Text_PutPotionAway + call EventScript_RestorePrevTextColor + setflag FLAG_GOT_POTION_ON_ROUTE_1 + release + end + +Route1_EventScript_AlreadyGotPotion:: + msgbox Route1_Text_ComeSeeUsIfYouNeedPokeBalls + release + end + +Route1_EventScript_Boy:: + msgbox Route1_Text_CanJumpFromLedges, MSGBOX_NPC + end + +Route1_EventScript_RouteSign:: + msgbox Route1_Text_RouteSign, MSGBOX_SIGN + end + +Route1_Text_WorkAtPokeMartTakeSample:: + .string "Hi!\n" + .string "I work at a POKéMON MART.\p" + .string "It's part of a convenient chain\n" + .string "selling all sorts of items.\p" + .string "Please, visit us in VIRIDIAN CITY.\p" + .string "I know, I'll give you a sample.\n" + .string "Here you go!$" + +Route1_Text_ComeSeeUsIfYouNeedPokeBalls:: + .string "Please come see us if you need\n" + .string "POKé BALLS for catching POKéMON.$" + +Route1_Text_PutPotionAway:: + .string "{PLAYER} put the POTION away in\n" + .string "the BAG's ITEMS POCKET.$" + +Route1_Text_CanJumpFromLedges:: + .string "See those ledges along the road?\p" + .string "It's a bit scary, but you can jump\n" + .string "from them.\p" + .string "You can get back to PALLET TOWN\n" + .string "quicker that way.$" + +Route1_Text_RouteSign:: + .string "ROUTE 1\n" + .string "PALLET TOWN - VIRIDIAN CITY$" + diff --git a/data/maps/Route20_Frlg/map.json b/data/maps/Route20_Frlg/map.json new file mode 100644 index 000000000000..ae85966686ec --- /dev/null +++ b/data/maps/Route20_Frlg/map.json @@ -0,0 +1,230 @@ +{ + "id": "MAP_ROUTE20", + "name": "Route20_Frlg", + "layout": "LAYOUT_ROUTE20", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_20", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_CINNABAR_ISLAND", + "offset": 0, + "direction": "left" + }, + { + "map": "MAP_ROUTE19", + "offset": -40, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 8, + "y": 11, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route20_EventScript_Melissa", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 16, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route20_EventScript_Missy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 34, + "y": 7, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route20_EventScript_Nora", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 43, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route20_EventScript_Roger", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 23, + "y": 10, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP", + "movement_range_x": 5, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route20_EventScript_Dean", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 73, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route20_EventScript_Irene", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 111, + "y": 9, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route20_EventScript_Barry", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 106, + "y": 11, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT", + "movement_range_x": 5, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route20_EventScript_Darrin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 93, + "y": 10, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route20_EventScript_Shirley", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 54, + "y": 11, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route20_EventScript_Tiffany", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 69, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route20_EventScript_Camper", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 60, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "3" + }, + { + "x": 72, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 68, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route20_EventScript_SeafoamIslandsSign" + }, + { + "type": "sign", + "x": 64, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route20_EventScript_SeafoamIslandsSign" + }, + { + "type": "hidden_item", + "x": 23, + "y": 6, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ROUTE20_STARDUST", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route20_Frlg/scripts.inc b/data/maps/Route20_Frlg/scripts.inc new file mode 100644 index 000000000000..cb9f7f93b484 --- /dev/null +++ b/data/maps/Route20_Frlg/scripts.inc @@ -0,0 +1,153 @@ +Route20_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route20_OnTransition + .byte 0 + +Route20_OnTransition:: + call_if_unset FLAG_STOPPED_SEAFOAM_B3F_CURRENT, Route20_EventScript_ResetSeafoamBouldersForB3F + call_if_unset FLAG_STOPPED_SEAFOAM_B4F_CURRENT, Route20_EventScript_ResetSeafoamBouldersForB4F + end + +Route20_EventScript_ResetSeafoamBouldersForB3F:: + clearflag FLAG_HIDE_SEAFOAM_1F_BOULDER_1 + clearflag FLAG_HIDE_SEAFOAM_1F_BOULDER_2 + setflag FLAG_HIDE_SEAFOAM_B1F_BOULDER_1 + setflag FLAG_HIDE_SEAFOAM_B1F_BOULDER_2 + setflag FLAG_HIDE_SEAFOAM_B2F_BOULDER_1 + setflag FLAG_HIDE_SEAFOAM_B2F_BOULDER_2 + setflag FLAG_HIDE_SEAFOAM_B3F_BOULDER_1 + setflag FLAG_HIDE_SEAFOAM_B3F_BOULDER_2 + return + +Route20_EventScript_ResetSeafoamBouldersForB4F:: + clearflag FLAG_HIDE_SEAFOAM_B3F_BOULDER_3 + clearflag FLAG_HIDE_SEAFOAM_B3F_BOULDER_4 + clearflag FLAG_HIDE_SEAFOAM_B3F_BOULDER_5 + clearflag FLAG_HIDE_SEAFOAM_B3F_BOULDER_6 + setflag FLAG_HIDE_SEAFOAM_B4F_BOULDER_1 + setflag FLAG_HIDE_SEAFOAM_B4F_BOULDER_2 + return + +Route20_EventScript_SeafoamIslandsSign:: + msgbox Route20_Text_SeafoamIslands, MSGBOX_SIGN + end + +Route20_Text_BarryIntro:: + .string "The water is shallow here.\n" + .string "There are many people swimming.$" + +Route20_Text_BarryDefeat:: + .string "Splash!$" + +Route20_Text_BarryPostBattle:: + .string "I wish I could ride my POKéMON.\n" + .string "I bet you're not tired.$" + +Route20_Text_ShirleyIntro:: + .string "SEAFOAM is a quiet getaway.\n" + .string "I'm vacationing here.$" + +Route20_Text_ShirleyDefeat:: + .string "Quit it!$" + +Route20_Text_ShirleyPostBattle:: + .string "There's a huge cavern underneath\n" + .string "this island.$" + +Route20_Text_TiffanyIntro:: + .string "I love floating with the fishes\n" + .string "here among the waves.$" + +Route20_Text_TiffanyDefeat:: + .string "Yowch!$" + +Route20_Text_TiffanyPostBattle:: + .string "Want to float with me?$" + +Route20_Text_IreneIntro:: + .string "Are you on vacation, too?$" + +Route20_Text_IreneDefeat:: + .string "No mercy at all!$" + +Route20_Text_IrenePostBattle:: + .string "SEAFOAM used to be a single island\n" + .string "in the distant past.$" + +Route20_Text_DeanIntro:: + .string "Check out my buff physique!$" + +Route20_Text_DeanDefeat:: + .string "Wimpy!$" + +Route20_Text_DeanPostBattle:: + .string "I should've been buffing up my\n" + .string "POKéMON, not me!$" + +Route20_Text_DarrinIntro:: + .string "Why are you riding a POKéMON?\n" + .string "Can't you swim?$" + +Route20_Text_DarrinDefeat:: + .string "Ouch!\n" + .string "Torpedoed!$" + +Route20_Text_DarrinPostBattle:: + .string "Riding a POKéMON sure looks fun!$" + +Route20_Text_RogerIntro:: + .string "I rode my bird POKéMON here.$" + +Route20_Text_RogerDefeat:: + .string "Oh, no!\n" + .string "Now what am I to do?$" + +Route20_Text_RogerPostBattle:: + .string "My birds are exhausted.\n" + .string "They can't FLY me back!$" + +Route20_Text_NoraIntro:: + .string "My boyfriend gave me big pearls.$" + +Route20_Text_NoraDefeat:: + .string "Oh, no!\n" + .string "My pearls were in them!$" + +Route20_Text_NoraPostBattle:: + .string "Will my pearls grow bigger inside\n" + .string "CLOYSTER?$" + +Route20_Text_MissyIntro:: + .string "I swam here from CINNABAR ISLAND.\n" + .string "It wasn't easy, I tell you.$" + +Route20_Text_MissyDefeat:: + .string "I'm so disappointed!$" + +Route20_Text_MissyPostBattle:: + .string "POKéMON have taken over an\n" + .string "abandoned mansion on CINNABAR.\p" + .string "They call it the POKéMON MANSION\n" + .string "now.$" + +Route20_Text_MelissaIntro:: + .string "CINNABAR, in the west, has a LAB\n" + .string "for POKéMON.\p" + .string "My daddy works there.$" + +Route20_Text_MelissaDefeat:: + .string "Wait!\n" + .string "You're supposed to wait!$" + +Route20_Text_MelissaPostBattle:: + .string "CINNABAR is a volcanic island.\p" + .string "I heard it rose out of the sea\n" + .string "when a volcano erupted.$" + +Route20_Text_SeafoamIslands:: + .string "SEAFOAM ISLANDS$" + +Route20_Text_MistyTrainsHere:: + .string "Strong TRAINERS and WATER POKéMON\n" + .string "are common sights in these parts.\p" + .string "They say that MISTY of the\n" + .string "CERULEAN GYM trains here.$" diff --git a/data/maps/Route21_North_Frlg/map.json b/data/maps/Route21_North_Frlg/map.json new file mode 100644 index 000000000000..29f0f32889e9 --- /dev/null +++ b/data/maps/Route21_North_Frlg/map.json @@ -0,0 +1,127 @@ +{ + "id": "MAP_ROUTE21_NORTH", + "name": "Route21_North_Frlg", + "layout": "LAYOUT_ROUTE21_NORTH", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_21", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_PALLET_TOWN", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE21_SOUTH", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 7, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route21_North_EventScript_Ronald", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 16, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route21_North_EventScript_Wade", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 12, + "y": 44, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN", + "movement_range_x": 4, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route21_North_EventScript_Spencer", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 14, + "y": 35, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route21_North_EventScript_Lil", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", + "x": 15, + "y": 35, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route21_North_EventScript_Ian", + "flag": "0" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 13, + "y": -3, + "target_local_id": "LOCALID_PALLET_FAT_MAN", + "target_map": "MAP_PALLET_TOWN" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 17, + "y": 42, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route21_North_Frlg/scripts.inc b/data/maps/Route21_North_Frlg/scripts.inc new file mode 100644 index 000000000000..d8ec7a5ed7b9 --- /dev/null +++ b/data/maps/Route21_North_Frlg/scripts.inc @@ -0,0 +1,53 @@ +Route21_North_Frlg_MapScripts:: + .byte 0 + +Route21_North_Text_RonaldIntro:: + .string "You want to know if the fish are\n" + .string "biting?$" + +Route21_North_Text_RonaldDefeat:: + .string "Dang!$" + +Route21_North_Text_RonaldPostBattle:: + .string "I can't catch anything good.\n" + .string "Not one good POKéMON to be had!$" + +Route21_North_Text_WadeIntro:: + .string "I got a big haul!\n" + .string "Wanna go for it?$" + +Route21_North_Text_WadeDefeat:: + .string "Heheh, MAGIKARP just don't make\n" + .string "the grade, do they?$" + +Route21_North_Text_WadePostBattle:: + .string "I seem to only catch MAGIKARP!$" + +Route21_North_Text_SpencerIntro:: + .string "The sea cleanses my body and soul!$" + +Route21_North_Text_SpencerDefeat:: + .string "Ayah!$" + +Route21_North_Text_SpencerPostBattle:: + .string "The sea is great and all, but I\n" + .string "like the mountains, too.$" + +@ Below is the battle text for the Cue Ball that was on Route 21 in Gen 1. +@ This trainer wasnt used in Gen 3 so their text goes unused/untranslated +@ Interestingly they did add a rematch intro text for this trainer +@ English translations from RB are listed + +@ "What's wrong with me swimming?" +Route21_North_Text_CueBallIntro:: + .string "おれだって たまには\n" + .string "およぎに くるぜ!$" + +@ "Cheap shot!" +Route21_North_Text_CueBallDefeat:: + .string "ぐわわ!$" + +@ "I look like what? A studded inner tube? Get lost!" +Route21_North_Text_CueBallPostBattle:: + .string "うきやすそう だと?\n" + .string "うるせー おおきな おせわだッ!$" diff --git a/data/maps/Route21_South_Frlg/map.json b/data/maps/Route21_South_Frlg/map.json new file mode 100644 index 000000000000..9bdcc6f9d7b6 --- /dev/null +++ b/data/maps/Route21_South_Frlg/map.json @@ -0,0 +1,104 @@ +{ + "id": "MAP_ROUTE21_SOUTH", + "name": "Route21_South_Frlg", + "layout": "LAYOUT_ROUTE21_SOUTH", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_21", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE21_NORTH", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_CINNABAR_ISLAND", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route21_South_EventScript_Claude", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 14, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route21_South_EventScript_Nolan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 15, + "y": 24, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route21_South_EventScript_Jack", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 15, + "y": 38, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route21_South_EventScript_Jerome", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 10, + "y": 29, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route21_South_EventScript_Roland", + "flag": "0" + } + ], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route21_South_Frlg/scripts.inc b/data/maps/Route21_South_Frlg/scripts.inc new file mode 100644 index 000000000000..288027751937 --- /dev/null +++ b/data/maps/Route21_South_Frlg/scripts.inc @@ -0,0 +1,90 @@ +Route21_South_Frlg_MapScripts:: + .byte 0 + +Route21_South_Text_JackIntro:: + .string "I caught my POKéMON at sea.$" + +Route21_South_Text_JackDefeat:: + .string "Diver!!\n" + .string "Down!!$" + +Route21_South_Text_JackPostBattle:: + .string "Where'd you catch your POKéMON?$" + +Route21_South_Text_JeromeIntro:: + .string "Right now, I'm in a triathlon meet.$" + +Route21_South_Text_JeromeDefeat:: + .string "Pant…\n" + .string "Pant… Pant…$" + +Route21_South_Text_JeromePostBattle:: + .string "I'm beat! But, I still have the\n" + .string "bike race and marathon left!$" + +Route21_South_Text_RolandIntro:: + .string "Ahh!\n" + .string "Feel the sun and the wind!$" + +Route21_South_Text_RolandDefeat:: + .string "Yow!\n" + .string "I lost!$" + +Route21_South_Text_RolandPostBattle:: + .string "I'm sunburnt to a crisp!$" + +Route21_South_Text_ClaudeIntro:: + .string "Hey, don't scare away the fish!$" + +Route21_South_Text_ClaudeDefeat:: + .string "Sorry! I'm just so frustrated from\n" + .string "not catching anything.$" + +Route21_South_Text_ClaudePostBattle:: + .string "Sheesh, I haven't caught a thing.\n" + .string "Could this place actually be a\l" + .string "giant pool or something?$" + +Route21_South_Text_NolanIntro:: + .string "Keep me company till I get a hit.$" + +Route21_South_Text_NolanDefeat:: + .string "That burned some time.$" + +Route21_South_Text_NolanPostBattle:: + .string "Oh wait!\n" + .string "I got a bite! Yeah!$" + +Route21_North_Text_LilIntro:: + .string "LIL: Huh? A battle?\n" + .string "IAN, can't you do it alone?$" + +Route21_North_Text_LilDefeat:: + .string "LIL: Oh, see?\n" + .string "We lost. Happy now?$" + +Route21_North_Text_LilPostBattle:: + .string "LIL: I'm tired.\n" + .string "Can't we go home already?$" + +Route21_North_Text_LilNotEnoughMons:: + .string "LIL: Huh? A battle?\n" + .string "I can't be bothered to do it alone.\l" + .string "Bring two POKéMON, won't you?$" + +Route21_North_Text_IanIntro:: + .string "IAN: My sis doesn't get enough\n" + .string "exercise, so I made her come.$" + +Route21_North_Text_IanDefeat:: + .string "IAN: Awww, Sis!\n" + .string "Get it together!$" + +Route21_North_Text_IanPostBattle:: + .string "IAN: Come on, Sis!\p" + .string "You're not going to lose weight\n" + .string "like this!$" + +Route21_North_Text_IanNotEnoughMons:: + .string "IAN: We want a two-on-two battle.\n" + .string "So can you bring two POKéMON?$" diff --git a/data/maps/Route22_Frlg/map.json b/data/maps/Route22_Frlg/map.json new file mode 100644 index 000000000000..7728b9a9cf36 --- /dev/null +++ b/data/maps/Route22_Frlg/map.json @@ -0,0 +1,128 @@ +{ + "id": "MAP_ROUTE22", + "name": "Route22_Frlg", + "layout": "LAYOUT_ROUTE22", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_22", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE23", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_VIRIDIAN_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "local_id": "LOCALID_ROUTE22_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 25, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_ROUTE_22_RIVAL" + } + ], + "warp_events": [ + { + "x": 8, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 9, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": "2" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 33, + "y": 4, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE22", + "var_value": "1", + "script": "Route22_EventScript_EarlyRivalTriggerTop" + }, + { + "type": "trigger", + "x": 33, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE22", + "var_value": "1", + "script": "Route22_EventScript_EarlyRivalTriggerMid" + }, + { + "type": "trigger", + "x": 33, + "y": 6, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE22", + "var_value": "1", + "script": "Route22_EventScript_EarlyRivalTriggerBottom" + }, + { + "type": "trigger", + "x": 33, + "y": 4, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE22", + "var_value": "3", + "script": "Route22_EventScript_LateRivalTriggerTop" + }, + { + "type": "trigger", + "x": 33, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE22", + "var_value": "3", + "script": "Route22_EventScript_LateRivalTriggerMid" + }, + { + "type": "trigger", + "x": 33, + "y": 6, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE22", + "var_value": "3", + "script": "Route22_EventScript_LateRivalTriggerBottom" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 7, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route22_EventScript_LeagueGateSign" + } + ] +} diff --git a/data/maps/Route22_Frlg/scripts.inc b/data/maps/Route22_Frlg/scripts.inc new file mode 100644 index 000000000000..0497ab4dccbc --- /dev/null +++ b/data/maps/Route22_Frlg/scripts.inc @@ -0,0 +1,301 @@ +Route22_Frlg_MapScripts:: + .byte 0 + +Route22_EventScript_EarlyRivalTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + goto Route22_EventScript_EarlyRival + end + +Route22_EventScript_EarlyRivalTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + setobjectxyperm LOCALID_ROUTE22_RIVAL, 25, 5 + goto Route22_EventScript_EarlyRival + end + +Route22_EventScript_EarlyRivalTriggerBottom:: + lockall + setvar VAR_TEMP_1, 2 + setobjectxyperm LOCALID_ROUTE22_RIVAL, 25, 5 + goto Route22_EventScript_EarlyRival + end + +Route22_EventScript_EarlyRival:: + textcolor NPC_TEXT_COLOR_MALE + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + addobject LOCALID_ROUTE22_RIVAL + call_if_eq VAR_TEMP_1, 0, Route22_EventScript_EarlyRivalApproach + call_if_eq VAR_TEMP_1, 1, Route22_EventScript_EarlyRivalApproach + call_if_eq VAR_TEMP_1, 2, Route22_EventScript_EarlyRivalApproachBottom + delay 6 + msgbox Route22_Text_EarlyRivalIntro + call_if_eq VAR_STARTER_MON, 2, Route22_EventScript_EarlyRivalSquirtle + call_if_eq VAR_STARTER_MON, 1, Route22_EventScript_EarlyRivalBulbasaur + call_if_eq VAR_STARTER_MON, 0, Route22_EventScript_EarlyRivalCharmander + msgbox Route22_Text_EarlyRivalPostBattle + closemessage + delay 10 + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_TEMP_1, 0, Route22_EventScript_EarlyRivalExit + call_if_eq VAR_TEMP_1, 1, Route22_EventScript_EarlyRivalExit + call_if_eq VAR_TEMP_1, 2, Route22_EventScript_EarlyRivalExitBottom + fadedefaultbgm + removeobject LOCALID_ROUTE22_RIVAL + setvar VAR_MAP_SCENE_ROUTE22, 2 + releaseall + end + +Route22_EventScript_EarlyRivalApproach:: + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_RivalApproach + waitmovement 0 + return + +Route22_EventScript_EarlyRivalApproachBottom:: + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_RivalApproachBottom + applymovement LOCALID_PLAYER, Route22_Movement_PlayerFaceRival + waitmovement 0 + return + +Route22_EventScript_EarlyRivalSquirtle:: + trainerbattle_earlyrival TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE, 0, Route22_Text_EarlyRivalDefeat, Text_RivalVictory + return + +Route22_EventScript_EarlyRivalBulbasaur:: + trainerbattle_earlyrival TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR, 0, Route22_Text_EarlyRivalDefeat, Text_RivalVictory + return + +Route22_EventScript_EarlyRivalCharmander:: + trainerbattle_earlyrival TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER, 0, Route22_Text_EarlyRivalDefeat, Text_RivalVictory + return + +Route22_EventScript_EarlyRivalExit:: + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_EarlyRivalExit + waitmovement 0 + return + +Route22_EventScript_EarlyRivalExitBottom:: + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_EarlyRivalExitBottom + waitmovement 0 + return + +Route22_Movement_UnusedRivalExit:: @ 8 + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + step_end + +Route22_Movement_EarlyRivalExit:: + walk_down + walk_right + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +Route22_Movement_EarlyRivalExitBottom:: + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +Route22_Movement_RivalApproach:: + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + step_end + +Route22_Movement_RivalApproachBottom:: + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_right + walk_in_place_faster_down + step_end + +Route22_Movement_PlayerFaceRival:: + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_16 + delay_8 + walk_in_place_faster_up + step_end + +Route22_EventScript_LateRivalTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + goto Route22_EventScript_LateRival + end + +Route22_EventScript_LateRivalTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + setobjectxyperm LOCALID_ROUTE22_RIVAL, 25, 5 + goto Route22_EventScript_LateRival + end + +Route22_EventScript_LateRivalTriggerBottom:: + lockall + setvar VAR_TEMP_1, 2 + setobjectxyperm LOCALID_ROUTE22_RIVAL, 25, 5 + goto Route22_EventScript_LateRival + end + +Route22_EventScript_LateRival:: + textcolor NPC_TEXT_COLOR_MALE + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + addobject LOCALID_ROUTE22_RIVAL + call_if_eq VAR_TEMP_1, 0, Route22_EventScript_LateRivalApproach + call_if_eq VAR_TEMP_1, 1, Route22_EventScript_LateRivalApproach + call_if_eq VAR_TEMP_1, 2, Route22_EventScript_LateRivalApproachBottom + msgbox Route22_Text_LateRivalIntro + setvar VAR_LAST_TALKED, LOCALID_ROUTE22_RIVAL + call_if_eq VAR_STARTER_MON, 2, Route22_EventScript_LateRivalSquirtle + call_if_eq VAR_STARTER_MON, 1, Route22_EventScript_LateRivalBulbasaur + call_if_eq VAR_STARTER_MON, 0, Route22_EventScript_LateRivalCharmander + msgbox Route22_Text_LateRivalPostBattle + closemessage + delay 10 + playbgm MUS_RG_RIVAL_EXIT, 0 + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_LateRivalExit + waitmovement 0 + fadedefaultbgm + removeobject LOCALID_ROUTE22_RIVAL + setvar VAR_MAP_SCENE_ROUTE22, 4 + releaseall + end + +Route22_EventScript_LateRivalApproach:: + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_RivalApproach + waitmovement 0 + return + +Route22_EventScript_LateRivalApproachBottom:: + applymovement LOCALID_ROUTE22_RIVAL, Route22_Movement_RivalApproachBottom + applymovement LOCALID_PLAYER, Route22_Movement_PlayerFaceRival + waitmovement 0 + return + +Route22_EventScript_LateRivalSquirtle:: + trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE, Route22_Text_LateRivalDefeat + return + +Route22_EventScript_LateRivalBulbasaur:: + trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR, Route22_Text_LateRivalDefeat + return + +Route22_EventScript_LateRivalCharmander:: + trainerbattle_no_intro TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER, Route22_Text_LateRivalDefeat + return + +Route22_Movement_LateRivalExit:: + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + walk_left + step_end + +Route22_EventScript_LeagueGateSign:: + msgbox Route22_Text_LeagueGateSign, MSGBOX_SIGN + end + +Route22_Text_EarlyRivalIntro:: + .string "{RIVAL}: Hey! {PLAYER}!\p" + .string "You're off to the POKéMON LEAGUE?\n" + .string "Forget about it!\p" + .string "You probably don't have any\n" + .string "BADGES, do you?\p" + .string "The guard won't let you through\n" + .string "without them.\p" + .string "By the way, did your POKéMON get\n" + .string "any stronger?$" + +Route22_Text_EarlyRivalDefeat:: + .string "Awww!\n" + .string "You just lucked out!$" + +Route22_Text_EarlyRivalPostBattle:: + .string "I heard the POKéMON LEAGUE is\n" + .string "crawling with tough TRAINERS.\p" + .string "I have to figure out how to get\n" + .string "past them.\p" + .string "You should quit dawdling and get a\n" + .string "move on!$" + +@ Translated in RB as "{RIVAL}: What? Why do I have 2 POKéMON? You should catch some more too!" +Route22_Text_RivalShouldCatchSomeMons:: + .string "{RIVAL}“なんだ?\n" + .string "ポケモン 2ひきも\l" + .string "もってるの なぜか だって?\p" + .string "おまえも\n" + .string "つかまえれば いい じゃん!$" + +Route22_Text_LateRivalIntro:: + .string "{RIVAL}: What? {PLAYER}!\n" + .string "What a surprise to see you here!\p" + .string "So you're going to the POKéMON\n" + .string "LEAGUE?\p" + .string "You collected all the BADGES, too?\n" + .string "That's cool!\p" + .string "Then I'll whip you, {PLAYER}, as a\n" + .string "warm-up for the POKéMON LEAGUE!\p" + .string "Come on!$" + +Route22_Text_LateRivalDefeat:: + .string "What!?\p" + .string "I was just careless, you!$" + +Route22_Text_LateRivalPostBattle:: + .string "That loosened me up.\n" + .string "I'm ready for the POKéMON LEAGUE!\p" + .string "{PLAYER}, you need more practice.\p" + .string "But hey, you know that!\n" + .string "I'm out of here. Smell ya!$" + +@ Translated in RB as "{RIVAL}: Hahaha! {PLAYER}! That's your best? You're nowhere near as good as me, pal! Go train some more! You loser!" +Route22_Text_LateRivalVictory:: + .string "{RIVAL}“ひゃははッ {PLAYER}ー!\n" + .string "それで がんばってるのかよ!\l" + .string "おれの さいのうに くらべりゃ\l" + .string "{PLAYER}は まだまだ だな!\p" + .string "もっと れんしゅう こいよ!\n" + .string "あははーッ!$" + +Route22_Text_LeagueGateSign:: + .string "POKéMON LEAGUE\n" + .string "Front Gate$" + diff --git a/data/maps/Route22_NorthEntrance_Frlg/map.json b/data/maps/Route22_NorthEntrance_Frlg/map.json new file mode 100644 index 000000000000..8212a66b2ece --- /dev/null +++ b/data/maps/Route22_NorthEntrance_Frlg/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_ROUTE22_NORTH_ENTRANCE", + "name": "Route22_NorthEntrance_Frlg", + "layout": "LAYOUT_ROUTE22_NORTH_ENTRANCE", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_22", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route22_NorthEntrance_EventScript_BoulderBadgeGuard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE22", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE22", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE22", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 2, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "0", + "script": "Route22_NorthEntrance_EventScript_BoulderBadgeGuardTrigger" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route22_NorthEntrance_Frlg/scripts.inc b/data/maps/Route22_NorthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..9ccfded6cd2f --- /dev/null +++ b/data/maps/Route22_NorthEntrance_Frlg/scripts.inc @@ -0,0 +1,18 @@ +Route22_NorthEntrance_Frlg_MapScripts:: + .byte 0 + +Route22_NorthEntrance_EventScript_BoulderBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 1 + bufferstdstring STR_VAR_1, STDSTRING_BOULDER_BADGE + goto Route22_NorthEntrance_EventScript_BadgeGuard + end + +Route22_NorthEntrance_EventScript_BoulderBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 1 + setvar VAR_0x8009, 1 + bufferstdstring STR_VAR_1, STDSTRING_BOULDER_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end diff --git a/data/maps/Route23_Frlg/map.json b/data/maps/Route23_Frlg/map.json new file mode 100644 index 000000000000..3aa4b9260a7a --- /dev/null +++ b/data/maps/Route23_Frlg/map.json @@ -0,0 +1,636 @@ +{ + "id": "MAP_ROUTE23", + "name": "Route23_Frlg", + "layout": "LAYOUT_ROUTE23", + "music": "MUS_VICTORY_ROAD", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_23", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_INDIGO_PLATEAU_EXTERIOR", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE22", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "local_id": "LOCALID_CASCADE_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 15, + "y": 149, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_CascadeBadgeGuard", + "flag": "0" + }, + { + "local_id": "LOCALID_THUNDER_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 8, + "y": 140, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_ThunderBadgeGuard", + "flag": "0" + }, + { + "local_id": "LOCALID_RAINBOW_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 14, + "y": 123, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_RainbowBadgeGuard", + "flag": "0" + }, + { + "local_id": "LOCALID_SOUL_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 16, + "y": 112, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_SoulBadgeGuard", + "flag": "0" + }, + { + "local_id": "LOCALID_MARSH_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 10, + "y": 94, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_MarshBadgeGuard", + "flag": "0" + }, + { + "local_id": "LOCALID_VOLCANO_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 14, + "y": 61, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_VolcanoBadgeGuard", + "flag": "0" + }, + { + "local_id": "LOCALID_EARTH_BADGE_GUARD", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route23_EventScript_EarthBadgeGuard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 28, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_1F_FRLG", + "dest_warp_id": "1" + }, + { + "x": 18, + "y": 28, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "6" + }, + { + "x": 8, + "y": 153, + "elevation": 3, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 154, + "elevation": 0, + "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 13, + "y": 149, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "1", + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 7, + "y": 140, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "2", + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 12, + "y": 123, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "3", + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 11, + "y": 111, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 94, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 12, + "y": 61, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "6", + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 1, + "y": 35, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 1, + "y": 34, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 1, + "y": 32, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 1, + "y": 33, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 1, + "y": 31, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 1, + "y": 36, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 5, + "y": 35, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 4, + "y": 35, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "7", + "script": "Route23_EventScript_EarthBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 10, + "y": 60, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "6", + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 13, + "y": 61, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "6", + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 11, + "y": 60, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "6", + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 8, + "y": 94, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 5, + "y": 92, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 7, + "y": 94, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 4, + "y": 92, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 3, + "y": 92, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 2, + "y": 92, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "5", + "script": "Route23_EventScript_MarshBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 4, + "y": 139, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "2", + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 5, + "y": 139, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "2", + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 6, + "y": 140, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "2", + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 10, + "y": 122, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "3", + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 11, + "y": 122, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "3", + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 13, + "y": 123, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "3", + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 8, + "y": 109, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 109, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 10, + "y": 109, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 11, + "y": 109, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 12, + "y": 109, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 12, + "y": 111, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 14, + "y": 112, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 13, + "y": 112, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 15, + "y": 112, + "elevation": 1, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "4", + "script": "Route23_EventScript_SoulBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 12, + "y": 148, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "1", + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 11, + "y": 148, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "1", + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 14, + "y": 149, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "1", + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" + }, + { + "type": "trigger", + "x": 10, + "y": 148, + "elevation": 0, + "var": "VAR_MAP_SCENE_ROUTE23", + "var_value": "1", + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 19, + "y": 42, + "elevation": 0, + "item": "ITEM_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 20, + "y": 72, + "elevation": 0, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 11, + "y": 101, + "elevation": 3, + "item": "ITEM_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 3, + "y": 18, + "elevation": 3, + "item": "ITEM_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 2, + "y": 29, + "elevation": 3, + "item": "ITEM_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 10, + "y": 67, + "elevation": 3, + "item": "ITEM_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 3, + "y": 128, + "elevation": 3, + "item": "ITEM_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 9, + "y": 8, + "elevation": 3, + "item": "ITEM_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 3, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route23_EventScript_VictoryRoadGateSign" + } + ] +} diff --git a/data/maps/Route23_Frlg/scripts.inc b/data/maps/Route23_Frlg/scripts.inc new file mode 100644 index 000000000000..bcf89f634e2f --- /dev/null +++ b/data/maps/Route23_Frlg/scripts.inc @@ -0,0 +1,133 @@ +Route23_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route23_OnTransition + .byte 0 + +Route23_OnTransition:: + clearflag FLAG_HIDE_VICTORY_ROAD_3F_BOULDER + setflag FLAG_HIDE_VICTORY_ROAD_2F_BOULDER + setvar VAR_MAP_SCENE_VICTORY_ROAD_1F, 0 + setvar VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER1, 0 + setvar VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER2, 0 + setvar VAR_MAP_SCENE_VICTORY_ROAD_3F, 0 + end + +Route23_EventScript_CascadeBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 2 + bufferstdstring STR_VAR_1, STDSTRING_CASCADE_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_ThunderBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 3 + bufferstdstring STR_VAR_1, STDSTRING_THUNDER_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_RainbowBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 4 + bufferstdstring STR_VAR_1, STDSTRING_RAINBOW_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_SoulBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 5 + bufferstdstring STR_VAR_1, STDSTRING_SOUL_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_MarshBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 6 + bufferstdstring STR_VAR_1, STDSTRING_MARSH_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_VolcanoBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 7 + bufferstdstring STR_VAR_1, STDSTRING_VOLCANO_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_EarthBadgeGuard:: + lock + faceplayer + setvar VAR_TEMP_1, 8 + bufferstdstring STR_VAR_1, STDSTRING_EARTH_BADGE + goto Route23_EventScript_BadgeGuard + end + +Route23_EventScript_CascadeBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 2 + setvar VAR_0x8009, LOCALID_CASCADE_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_CASCADE_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_ThunderBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 3 + setvar VAR_0x8009, LOCALID_THUNDER_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_THUNDER_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_RainbowBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 4 + setvar VAR_0x8009, LOCALID_RAINBOW_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_RAINBOW_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_SoulBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 5 + setvar VAR_0x8009, LOCALID_SOUL_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_SOUL_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_MarshBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 6 + setvar VAR_0x8009, LOCALID_MARSH_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_MARSH_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_VolcanoBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 7 + setvar VAR_0x8009, LOCALID_VOLCANO_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_VOLCANO_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_EarthBadgeGuardTrigger:: + lockall + setvar VAR_TEMP_1, 8 + setvar VAR_0x8009, LOCALID_EARTH_BADGE_GUARD + bufferstdstring STR_VAR_1, STDSTRING_EARTH_BADGE + goto Route23_EventScript_BadgeGuardTrigger + end + +Route23_EventScript_VictoryRoadGateSign:: + msgbox Route23_Text_VictoryRoadGateSign, MSGBOX_SIGN + end + +Route23_Text_VictoryRoadGateSign:: + .string "VICTORY ROAD GATE -\n" + .string "POKéMON LEAGUE$" + diff --git a/data/maps/Route23_UnusedHouse/map.json b/data/maps/Route23_UnusedHouse/map.json new file mode 100644 index 000000000000..11e58dfeea7d --- /dev/null +++ b/data/maps/Route23_UnusedHouse/map.json @@ -0,0 +1,22 @@ +{ + "id": "MAP_ROUTE23_UNUSED_HOUSE", + "name": "Route23_UnusedHouse", + "layout": "LAYOUT_HOUSE2_FRLG", + "music": "MUS_VICTORY_ROAD", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_23", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route24_Frlg/map.json b/data/maps/Route24_Frlg/map.json new file mode 100644 index 000000000000..99e76d64939e --- /dev/null +++ b/data/maps/Route24_Frlg/map.json @@ -0,0 +1,179 @@ +{ + "id": "MAP_ROUTE24", + "name": "Route24_Frlg", + "layout": "LAYOUT_ROUTE24", + "music": "MUS_RG_ROUTE24", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_24", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_CERULEAN_CITY", + "offset": -12, + "direction": "down" + }, + { + "map": "MAP_ROUTE25", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "local_id": "LOCALID_ROUTE24_ROCKET", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 12, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route24_EventScript_Rocket", + "flag": "FLAG_HIDE_NUGGET_BRIDGE_ROCKET" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 12, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route24_EventScript_Ethan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 10, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route24_EventScript_Reli", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 12, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route24_EventScript_Timmy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 10, + "y": 28, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route24_EventScript_Ali", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 12, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route24_EventScript_Cale", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 5, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route24_EventScript_Shane", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route24_EventScript_ItemTM45", + "flag": "FLAG_HIDE_ROUTE24_TM45" + } + ], + "warp_events": [ + + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 15, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE24", + "var_value": "0", + "script": "Route24_EventScript_RocketTriggerLeft" + }, + { + "type": "trigger", + "x": 11, + "y": 15, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE24", + "var_value": "0", + "script": "Route24_EventScript_RocketTriggerRight" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 19, + "y": 4, + "elevation": 3, + "item": "ITEM_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route24_Frlg/scripts.inc b/data/maps/Route24_Frlg/scripts.inc new file mode 100644 index 000000000000..75686a2a7f42 --- /dev/null +++ b/data/maps/Route24_Frlg/scripts.inc @@ -0,0 +1,198 @@ +Route24_Frlg_MapScripts:: + .byte 0 + +Route24_EventScript_Rocket:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_ROUTE24, 1, Route24_EventScript_RocketPostBattle + msgbox Route24_Text_JustEarnedFabulousPrize + checkitemspace ITEM_NUGGET + goto_if_eq VAR_RESULT, FALSE, Route24_EventScript_NoRoomForNugget + call Route24_EventScript_BattleRocket + release + end + +Route24_EventScript_NoRoomForNugget:: + msgbox Route24_Text_YouDontHaveAnyRoom + release + end + +Route24_EventScript_RocketPostBattle:: + msgbox Route24_Text_YoudBecomeTopRocketLeader + release + end + +Route24_EventScript_RocketTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto Route24_EventScript_RocketTrigger + end + +Route24_EventScript_RocketTriggerRight:: + lockall + setvar VAR_TEMP_1, 1 + goto Route24_EventScript_RocketTrigger + end + +Route24_EventScript_RocketTrigger:: + textcolor NPC_TEXT_COLOR_MALE + call_if_eq VAR_TEMP_1, 0, Route24_EventScript_RocketApproachPlayer + call_if_eq VAR_TEMP_1, 1, Route24_EventScript_RocketMotionToPlayer + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + msgbox Route24_Text_JustEarnedFabulousPrize + checkitemspace ITEM_NUGGET + goto_if_eq VAR_RESULT, FALSE, Route24_EventScript_NoRoomForNuggetTrigger + call Route24_EventScript_BattleRocket + releaseall + end + +Route24_EventScript_BattleRocket:: + giveitem_msg Route24_Text_ReceivedNuggetFromMysteryTrainer, ITEM_NUGGET + message Route24_Text_JoinTeamRocket + waitmessage + playbgm MUS_RG_ENCOUNTER_ROCKET, 0 + waitbuttonpress + setvar VAR_LAST_TALKED, LOCALID_ROUTE24_ROCKET + trainerbattle_no_intro TRAINER_TEAM_ROCKET_GRUNT_6, Route24_Text_RocketDefeat + msgbox Route24_Text_YoudBecomeTopRocketLeader + setvar VAR_MAP_SCENE_ROUTE24, 1 + return + +Route24_EventScript_RocketApproachPlayer:: + applymovement LOCALID_ROUTE24_ROCKET, Route24_Movement_RocketApproachPlayer + waitmovement 0 + return + +Route24_EventScript_RocketMotionToPlayer:: + applymovement LOCALID_ROUTE24_ROCKET, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +Route24_EventScript_NoRoomForNuggetTrigger:: + msgbox Route24_Text_YouDontHaveAnyRoom + closemessage + applymovement LOCALID_PLAYER, Route24_Movement_WalkDown + waitmovement 0 + call_if_eq VAR_TEMP_1, 0, Route24_EventScript_RocketWalkBackToPos + release + end + +Route24_EventScript_RocketWalkBackToPos:: + applymovement LOCALID_ROUTE24_ROCKET, Route24_Movement_RocketWalkBackToPos + waitmovement 0 + return + +Route24_Movement_RocketApproachPlayer:: + walk_left + step_end + +Route24_Movement_RocketWalkBackToPos:: + walk_right + walk_in_place_faster_left + step_end + +Route24_Movement_WalkDown:: + walk_down + step_end + +Route24_Text_JustEarnedFabulousPrize:: + .string "Congratulations! You beat our\n" + .string "five contest TRAINERS!\p" + .string "You just earned a fabulous prize!$" + +Route24_Text_ReceivedNuggetFromMysteryTrainer:: + .string "{PLAYER} received a NUGGET\n" + .string "from the mystery TRAINER!$" + +Route24_Text_YouDontHaveAnyRoom:: + .string "You don't have any room!$" + +Route24_Text_JoinTeamRocket:: + .string "By the way, how would you like to\n" + .string "join TEAM ROCKET?\p" + .string "We're a group of professional\n" + .string "criminals specializing in POKéMON!\p" + .string "Want to join?\p" + .string "Are you sure?\p" + .string "Come on, join us!\p" + .string "I'm telling you to join!\p" + .string "…Okay, you need convincing!\p" + .string "I'll make you an offer you can't\n" + .string "refuse!$" + +Route24_Text_RocketDefeat:: + .string "Arrgh!\n" + .string "You are good!$" + +Route24_Text_YoudBecomeTopRocketLeader:: + .string "With your ability, you'd become\n" + .string "a top leader in TEAM ROCKET.\p" + .string "Come on, think of the opportunity!\n" + .string "Don't let this chance go to waste.$" + +Route24_Text_ShaneIntro:: + .string "I saw your feat from the grass!$" + +Route24_Text_ShaneDefeat:: + .string "I thought not!$" + +Route24_Text_ShanePostBattle:: + .string "I hid because the people on the\n" + .string "bridge frightened me.$" + +Route24_Text_EthanIntro:: + .string "Okay! I'm No. 5!\n" + .string "I'll stomp you!$" + +Route24_Text_EthanDefeat:: + .string "Whoa!\n" + .string "Too much!$" + +Route24_Text_EthanPostBattle:: + .string "I did my best. I have no regrets!$" + +Route24_Text_ReliIntro:: + .string "I'm No. 4!\n" + .string "Getting tired?$" + +Route24_Text_ReliDefeat:: + .string "I lost, too!$" + +Route24_Text_ReliPostBattle:: + .string "I did my best, so I've no regrets!$" + +Route24_Text_TimmyIntro:: + .string "Here's No. 3!\n" + .string "I won't be easy!$" + +Route24_Text_TimmyDefeat:: + .string "Ow!\n" + .string "Stomped flat!$" + +Route24_Text_TimmyPostBattle:: + .string "I did my best. I have no regrets!$" + +Route24_Text_AliIntro:: + .string "I'm second!\n" + .string "Now it's serious!$" + +Route24_Text_AliDefeat:: + .string "How could I lose?$" + +Route24_Text_AliPostBattle:: + .string "I did my best. I have no regrets!$" + +Route24_Text_CaleIntro:: + .string "People call this the NUGGET\n" + .string "BRIDGE!\p" + .string "Beat us five TRAINERS and win\n" + .string "a fabulous prize!\p" + .string "Think you got what it takes?$" + +Route24_Text_CaleDefeat:: + .string "Whoo!\n" + .string "Good stuff!$" + +Route24_Text_CalePostBattle:: + .string "I did my best. I have no regrets!$" diff --git a/data/maps/Route25_Frlg/map.json b/data/maps/Route25_Frlg/map.json new file mode 100644 index 000000000000..e4d2b68e2175 --- /dev/null +++ b/data/maps/Route25_Frlg/map.json @@ -0,0 +1,270 @@ +{ + "id": "MAP_ROUTE25", + "name": "Route25_Frlg", + "layout": "LAYOUT_ROUTE25", + "music": "MUS_RG_ROUTE24", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_25", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE24", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 11, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route25_EventScript_Franklin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 18, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route25_EventScript_Joey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 17, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route25_EventScript_Wayne", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 22, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route25_EventScript_Dan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 22, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route25_EventScript_Kelsey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 27, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route25_EventScript_Nob", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 28, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route25_EventScript_Flint", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 36, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route25_EventScript_Chad", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 42, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route25_EventScript_Haley", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 26, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route25_EventScript_ItemTM43", + "flag": "FLAG_HIDE_ROUTE25_TM43" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 30, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 49, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route25_EventScript_Beauty", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 49, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route25_EventScript_Man", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 51, + "y": 4, + "elevation": 0, + "dest_map": "MAP_ROUTE25_SEA_COTTAGE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 48, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route25_EventScript_SeaCottageSign" + }, + { + "type": "hidden_item", + "x": 14, + "y": 2, + "elevation": 3, + "item": "ITEM_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 58, + "y": 6, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ETHER", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 33, + "y": 8, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 40, + "y": 3, + "elevation": 3, + "item": "ITEM_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route25_Frlg/scripts.inc b/data/maps/Route25_Frlg/scripts.inc new file mode 100644 index 000000000000..a16819121433 --- /dev/null +++ b/data/maps/Route25_Frlg/scripts.inc @@ -0,0 +1,130 @@ +Route25_Frlg_MapScripts:: + .byte 0 + +Route25_EventScript_SeaCottageSign:: + msgbox Route25_Text_SeaCottageSign, MSGBOX_SIGN + end + +Route25_EventScript_Man:: + msgbox Route25_Text_AreYouHereAlone, MSGBOX_NPC + end + +Route25_Text_JoeyIntro:: + .string "Local TRAINERS come here to\n" + .string "practice.$" + +Route25_Text_JoeyDefeat:: + .string "You're decent.$" + +Route25_Text_JoeyPostBattle:: + .string "All POKéMON have weaknesses.\n" + .string "Even the strongest ones.\p" + .string "That's why it's best to raise\n" + .string "POKéMON of different types.$" + +Route25_Text_DanIntro:: + .string "Dad took me to a great party on\n" + .string "the S.S. ANNE at VERMILION CITY.$" + +Route25_Text_DanDefeat:: + .string "I'm not mad!$" + +Route25_Text_DanPostBattle:: + .string "On the S.S. ANNE, I saw TRAINERS\n" + .string "from around the world.$" + +Route25_Text_FlintIntro:: + .string "I'm a cool guy.\n" + .string "I've got a girlfriend!$" + +Route25_Text_FlintDefeat:: + .string "Aww, darn…$" + +Route25_Text_FlintPostBattle:: + .string "Oh, well.\n" + .string "My girlfriend will cheer me up.$" + +Route25_Text_KelseyIntro:: + .string "Hi!\n" + .string "My boyfriend is cool!$" + +Route25_Text_KelseyDefeat:: + .string "My conditioning isn't the best…$" + +Route25_Text_KelseyPostBattle:: + .string "I wish my boyfriend was as good\n" + .string "as you.$" + +Route25_Text_ChadIntro:: + .string "I had this feeling…\n" + .string "I knew I had to battle you!$" + +Route25_Text_ChadDefeat:: + .string "I knew I'd lose, too!$" + +Route25_Text_ChadPostBattle:: + .string "If your POKéMON gets confused,\n" + .string "switch it out.\p" + .string "That's a good tactic.$" + +Route25_Text_HaleyIntro:: + .string "My friend has many cute POKéMON.\n" + .string "I'm so jealous!$" + +Route25_Text_HaleyDefeat:: + .string "I'm not so jealous!$" + +Route25_Text_HaleyPostBattle:: + .string "You came from MT. MOON?\n" + .string "May I have a CLEFAIRY?$" + +Route25_Text_FranklinIntro:: + .string "I just got down from MT. MOON,\n" + .string "but I've still got gas in the tank!$" + +Route25_Text_FranklinDefeat:: + .string "You worked hard!$" + +Route25_Text_FranklinPostBattle:: + .string "Drat!\n" + .string "A ZUBAT bit me back in that cave.$" + +Route25_Text_NobIntro:: + .string "I'm off to see a POKéMANIAC's\n" + .string "collection at the cape.$" + +Route25_Text_NobDefeat:: + .string "You done got me, and real good,\n" + .string "too!$" + +Route25_Text_NobPostBattle:: + .string "The POKéMANIAC sure lives up to\n" + .string "his name.\p" + .string "His collection includes many rare\n" + .string "species of POKéMON.$" + +Route25_Text_WayneIntro:: + .string "You're going to see BILL?\n" + .string "First, we battle!$" + +Route25_Text_WayneDefeat:: + .string "You're something.$" + +Route25_Text_WaynePostBattle:: + .string "The trail below is a shortcut to\n" + .string "CERULEAN CITY.$" + +Route25_Text_SeaCottageSign:: + .string "SEA COTTAGE\n" + .string "BILL lives here!$" + +Route25_Text_MistyHighHopesAboutThisPlace:: + .string "This cape is a famous date spot.\p" + .string "MISTY, the GYM LEADER, has high\n" + .string "hopes about this place.$" + +Route25_Text_AreYouHereAlone:: + .string "Hello, are you here alone?\p" + .string "If you're out at CERULEAN's cape…\n" + .string "Well, it should be as a couple.$" + diff --git a/data/maps/Route25_SeaCottage_Frlg/map.json b/data/maps/Route25_SeaCottage_Frlg/map.json new file mode 100644 index 000000000000..6a319925d0bd --- /dev/null +++ b/data/maps/Route25_SeaCottage_Frlg/map.json @@ -0,0 +1,84 @@ +{ + "id": "MAP_ROUTE25_SEA_COTTAGE", + "name": "Route25_SeaCottage_Frlg", + "layout": "LAYOUT_ROUTE25_SEA_COTTAGE", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_25", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_BILL_HUMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BILL", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route25_SeaCottage_EventScript_Bill", + "flag": "FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE" + }, + { + "local_id": "LOCALID_BILL_CLEFAIRY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLEFAIRY", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route25_SeaCottage_EventScript_Bill", + "flag": "FLAG_HIDE_BILL_CLEFAIRY" + } + ], + "warp_events": [ + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE25", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE25", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE25", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "Route25_SeaCottage_EventScript_Computer" + } + ] +} diff --git a/data/maps/Route25_SeaCottage_Frlg/scripts.inc b/data/maps/Route25_SeaCottage_Frlg/scripts.inc new file mode 100644 index 000000000000..79c7d0795dd3 --- /dev/null +++ b/data/maps/Route25_SeaCottage_Frlg/scripts.inc @@ -0,0 +1,405 @@ +.equ BILL_IN_TELEPORTER, FLAG_TEMP_2 +.equ RETURN_AFTER_SS_TICKET, FLAG_TEMP_3 + +Route25_SeaCottage_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route25_SeaCottage_OnTransition + .byte 0 + +Route25_SeaCottage_OnTransition:: + call_if_unset FLAG_HELPED_BILL_IN_SEA_COTTAGE, Route25_SeaCottage_EventScript_HideClefairyBill + call_if_set FLAG_GOT_SS_TICKET, Route25_SeaCottage_EventScript_SetReturnedAfterSSTicket + end + +Route25_SeaCottage_EventScript_HideClefairyBill:: + clearflag FLAG_HIDE_BILL_CLEFAIRY + setobjectxyperm LOCALID_BILL_HUMAN, 3, 3 + return + +Route25_SeaCottage_EventScript_SetReturnedAfterSSTicket:: + setflag RETURN_AFTER_SS_TICKET + return + +Route25_SeaCottage_EventScript_Bill:: + lock + faceplayer + goto_if_set RETURN_AFTER_SS_TICKET, Route25_SeaCottage_EventScript_BillGoLookAtPC + goto_if_set FLAG_GOT_SS_TICKET, Route25_SeaCottage_EventScript_BillGoToSSAnne + goto_if_set FLAG_HELPED_BILL_IN_SEA_COTTAGE, Route25_SeaCottage_EventScript_BillGiveSSTicket + checkplayergender + goto_if_eq VAR_RESULT, MALE, Route25_SeaCottage_EventScript_BillAskForHelpMale + goto_if_eq VAR_RESULT, FEMALE, Route25_SeaCottage_EventScript_BillAskForHelpFemale + end + +Route25_SeaCottage_EventScript_BillAskForHelpMale:: + msgbox Route25_SeaCottage_Text_ImBillHelpMeOutPal, MSGBOX_YESNO + goto Route25_SeaCottage_EventScript_BillAskForHelp + end + +Route25_SeaCottage_EventScript_BillAskForHelpFemale:: + msgbox Route25_SeaCottage_Text_ImBillHelpMeOutLady, MSGBOX_YESNO + goto Route25_SeaCottage_EventScript_BillAskForHelp + end + +Route25_SeaCottage_EventScript_BillAskForHelp:: + call_if_eq VAR_RESULT, NO, Route25_SeaCottage_EventScript_DeclineHelpBill + msgbox Route25_SeaCottage_Text_RunCellSeparationOnPC + closemessage + delay 10 + call_if_eq VAR_FACING, DIR_SOUTH, Route25_SeaCottage_EventScript_BillWalkToTeleporterSouth + call_if_eq VAR_FACING, DIR_NORTH, Route25_SeaCottage_EventScript_BillWalkToTeleporter + call_if_eq VAR_FACING, DIR_WEST, Route25_SeaCottage_EventScript_BillWalkToTeleporter + call_if_eq VAR_FACING, DIR_EAST, Route25_SeaCottage_EventScript_BillWalkToTeleporter + opendoor 10, 3 + waitdooranim + applymovement LOCALID_BILL_CLEFAIRY, Route25_SeaCottage_Movement_BillEnterTeleporter + waitmovement 0 + removeobject LOCALID_BILL_CLEFAIRY + playse SE_CONTEST_CURTAIN_FALL + closedoor 10, 3 + waitdooranim + setflag BILL_IN_TELEPORTER + release + end + +@ Just returns after message, execution continues as if player had said yes +Route25_SeaCottage_EventScript_DeclineHelpBill:: + checkplayergender + call_if_eq VAR_RESULT, MALE, Route25_SeaCottage_EventScript_DeclineHelpBillMale + call_if_eq VAR_RESULT, FEMALE, Route25_SeaCottage_EventScript_DeclineHelpBillFemale + return + +Route25_SeaCottage_EventScript_DeclineHelpBillMale:: + msgbox Route25_SeaCottage_Text_NoPleaseChief + return + +Route25_SeaCottage_EventScript_DeclineHelpBillFemale:: + msgbox Route25_SeaCottage_Text_NoPleaseBeautiful + return + +Route25_SeaCottage_EventScript_BillWalkToTeleporterSouth:: + applymovement LOCALID_BILL_CLEFAIRY, Route25_SeaCottage_Movement_BillWalkToTeleporterSouth + waitmovement 0 + return + +Route25_SeaCottage_EventScript_BillWalkToTeleporter:: + applymovement LOCALID_BILL_CLEFAIRY, Route25_SeaCottage_Movement_BillWalkToTeleporter + waitmovement 0 + return + +Route25_SeaCottage_EventScript_BillGoToSSAnne:: + msgbox Route25_SeaCottage_Text_SSAnnePartyYouGoInstead + release + end + +Route25_SeaCottage_EventScript_BillGiveSSTicket:: + famechecker FAMECHECKER_BILL, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + checkplayergender + call_if_eq VAR_RESULT, MALE, Route25_SeaCottage_EventScript_BillThanksMale + call_if_eq VAR_RESULT, FEMALE, Route25_SeaCottage_EventScript_BillThanksFemale + checkitemspace ITEM_SS_TICKET + goto_if_eq VAR_RESULT, FALSE, Route25_SeaCottage_EventScript_NoRoomForSSTicket + giveitem_msg Route25_SeaCottage_Text_ReceivedSSTicketFromBill, ITEM_SS_TICKET, 1, MUS_RG_OBTAIN_KEY_ITEM + setflag FLAG_GOT_SS_TICKET_DUP + setflag FLAG_HIDE_NUGGET_BRIDGE_ROCKET + setflag FLAG_GOT_SS_TICKET + setflag FLAG_SYS_PC_LANETTE + goto Route25_SeaCottage_EventScript_BillGoToSSAnne + end + +Route25_SeaCottage_EventScript_BillThanksMale:: + msgbox Route25_SeaCottage_Text_ThanksBudTakeThis + return + +Route25_SeaCottage_EventScript_BillThanksFemale:: + msgbox Route25_SeaCottage_Text_ThanksLadyTakeThis + return + +Route25_SeaCottage_EventScript_NoRoomForSSTicket:: + msgbox Route25_SeaCottage_Text_YouveGotTooMuchStuff + release + end + +Route25_SeaCottage_EventScript_BillGoLookAtPC:: + msgbox Route25_SeaCottage_Text_CheckOutRareMonsOnPC + release + end + +Route25_SeaCottage_Movement_BillWalkToTeleporter:: + walk_up + walk_up + step_end + +Route25_SeaCottage_Movement_BillWalkToTeleporterSouth:: + walk_right + walk_up + walk_up + walk_left + walk_in_place_faster_up + step_end + +Route25_SeaCottage_Movement_BillEnterTeleporter:: + walk_up + step_end + +Route25_SeaCottage_EventScript_Computer:: + lockall + goto_if_set RETURN_AFTER_SS_TICKET, Route25_SeaCottage_EventScript_OpenBillsMonList + goto_if_set BILL_IN_TELEPORTER, Route25_SeaCottage_EventScript_RunCellSeparator + msgbox Route25_SeaCottage_Text_TeleporterIsDisplayed + releaseall + end + +Route25_SeaCottage_EventScript_RunCellSeparator:: + fadeoutbgm 0 + msgbox Route25_SeaCottage_Text_InitiatedTeleportersCellSeparator + closemessage + clearflag BILL_IN_TELEPORTER + setflag FLAG_HELPED_BILL_IN_SEA_COTTAGE + special SpawnCameraObject + applymovement LOCALID_CAMERA, Route25_SeaCottage_Movement_CameraPanToTeleporters + waitmovement 0 + delay 35 + playse SE_PIN + waitse + setvar VAR_0x8004, 0 + special AnimateTeleporterHousing + delay 10 + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + setvar VAR_0x8004, 1 + special AnimateTeleporterHousing + playse SE_WARP_IN + special AnimateTeleporterCable + waitse + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + call Route25_SeaCottage_EventScript_PlayTeleporterBeepSE + opendoor 3, 3 + waitdooranim + fadeinbgm 0 + addobject LOCALID_BILL_HUMAN + clearflag FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE + delay 50 + playfanfare MUS_LEVEL_UP + applymovement LOCALID_BILL_HUMAN, Route25_SeaCottage_Movement_BillExitTeleporter + waitmovement 0 + waitfanfare + applymovement LOCALID_CAMERA, Route25_SeaCottage_Movement_CameraPanBackFromTeleporters + waitmovement 0 + playse SE_CONTEST_CURTAIN_FALL + closedoor 3, 3 + waitdooranim + applymovement LOCALID_BILL_HUMAN, Route25_SeaCottage_Movement_BillWalkToMiddleOfRoom + waitmovement 0 + special RemoveCameraObject + releaseall + end + +Route25_SeaCottage_EventScript_PlayTeleporterBeepSE:: + playse SE_BALL + waitse + delay 20 + return + +Route25_SeaCottage_Movement_CameraPanToTeleporters:: + walk_up + walk_up + walk_right + walk_right + step_end + +Route25_SeaCottage_Movement_CameraPanBackFromTeleporters:: + delay_16 + delay_16 + walk_down + walk_down + walk_left + walk_left + step_end + +Route25_SeaCottage_EventScript_OpenBillsMonList:: + msgbox Route25_SeaCottage_Text_BillsFavoriteMonList + goto Route25_SeaCottage_EventScript_BillsMonList + end + +Route25_SeaCottage_EventScript_BillsMonList:: + message Route25_SeaCottage_Text_SeeWhichMon + waitmessage + multichoice 0, 0, MULTI_EEVEELUTIONS, FALSE + switch VAR_RESULT + case 0, Route25_SeaCottage_EventScript_ViewEevee + case 1, Route25_SeaCottage_EventScript_ViewFlareon + case 2, Route25_SeaCottage_EventScript_ViewJolteon + case 3, Route25_SeaCottage_EventScript_ViewVaporeon + case 4, Route25_SeaCottage_EventScript_ExitBillsMonList + case 127, Route25_SeaCottage_EventScript_ExitBillsMonList + end + +Route25_SeaCottage_EventScript_ViewEevee:: + showmonpic SPECIES_EEVEE, 10, 3 + waitbuttonpress + hidemonpic + setvar VAR_0x8004, SPECIES_EEVEE + special SetSeenMon + goto Route25_SeaCottage_EventScript_BillsMonList + end + +Route25_SeaCottage_EventScript_ViewFlareon:: + showmonpic SPECIES_FLAREON, 10, 3 + waitbuttonpress + hidemonpic + setvar VAR_0x8004, SPECIES_FLAREON + special SetSeenMon + goto Route25_SeaCottage_EventScript_BillsMonList + end + +Route25_SeaCottage_EventScript_ViewJolteon:: + showmonpic SPECIES_JOLTEON, 10, 3 + waitbuttonpress + hidemonpic + setvar VAR_0x8004, SPECIES_JOLTEON + special SetSeenMon + goto Route25_SeaCottage_EventScript_BillsMonList + end + +Route25_SeaCottage_EventScript_ViewVaporeon:: + showmonpic SPECIES_VAPOREON, 10, 3 + waitbuttonpress + hidemonpic + setvar VAR_0x8004, SPECIES_VAPOREON + special SetSeenMon + goto Route25_SeaCottage_EventScript_BillsMonList + end + +Route25_SeaCottage_EventScript_ExitBillsMonList:: + releaseall + end + +Route25_SeaCottage_Movement_BillWalkToMiddleOfRoom:: + walk_right + walk_right + walk_right + walk_right + walk_down + walk_down + step_end + +Route25_SeaCottage_Movement_BillExitTeleporter:: + walk_down + step_end + +Route25_SeaCottage_Text_ImBillHelpMeOutPal:: + .string "Hiya! I'm a POKéMON…\n" + .string "…No I'm not!\p" + .string "Call me BILL!\n" + .string "I'm a true-blue POKéMANIAC!\p" + .string "Hey!\n" + .string "What's with that skeptical look?\p" + .string "I'm not joshing you, pal.\p" + .string "I screwed up an experiment and got\n" + .string "combined with a POKéMON!\p" + .string "So, how about it?\n" + .string "Help me out here!$" + +Route25_SeaCottage_Text_ImBillHelpMeOutLady:: + .string "Hiya! I'm a POKéMON…\n" + .string "…No I'm not!\p" + .string "Call me BILL!\n" + .string "I'm a true-blue POKéMANIAC!\p" + .string "Hey!\n" + .string "What's with that skeptical look?\p" + .string "I'm not joshing you, lady.\p" + .string "I screwed up an experiment and got\n" + .string "combined with a POKéMON!\p" + .string "So, how about it?\n" + .string "Help me out here!$" + +Route25_SeaCottage_Text_RunCellSeparationOnPC:: + .string "Wait till I get inside the\n" + .string "TELEPORTER.\p" + .string "When I do, go to my PC and run\n" + .string "the Cell Separation System.$" + +Route25_SeaCottage_Text_NoPleaseChief:: + .string "No!?\n" + .string "Now don't be so cold!\p" + .string "Come on, you gotta help a guy in\n" + .string "deep, deep trouble!\p" + .string "What do you say, chief?\n" + .string "Please?\l" + .string "Okay?\l" + .string "All right!$" + +Route25_SeaCottage_Text_NoPleaseBeautiful:: + .string "No!?\n" + .string "Now don't be so cold!\p" + .string "Come on, you gotta help a guy in\n" + .string "deep, deep trouble!\p" + .string "What do you say, beautiful?\n" + .string "Please?\l" + .string "Okay?\l" + .string "All right!$" + +Route25_SeaCottage_Text_ThanksBudTakeThis:: + .string "BILL: Yeehah!\n" + .string "Thanks, bud! I owe you one!\p" + .string "So, did you come to see my\n" + .string "POKéMON collection?\p" + .string "You didn't?\n" + .string "That's a bummer.\p" + .string "I've got to thank you…\n" + .string "Oh, here, maybe this'll do.$" + +Route25_SeaCottage_Text_ThanksLadyTakeThis:: + .string "BILL: Yeehah!\n" + .string "Thanks, lady! I owe you one!\p" + .string "So, did you come to see my\n" + .string "POKéMON collection?\p" + .string "You didn't?\n" + .string "That's a bummer.\p" + .string "I've got to thank you…\n" + .string "Oh, here, maybe this'll do.$" + +Route25_SeaCottage_Text_ReceivedSSTicketFromBill:: + .string "{PLAYER} received an S.S. TICKET\n" + .string "from BILL.$" + +Route25_SeaCottage_Text_YouveGotTooMuchStuff:: + .string "You've got too much stuff!$" + +Route25_SeaCottage_Text_SSAnnePartyYouGoInstead:: + .string "That cruise ship S.S. ANNE is in\n" + .string "VERMILION CITY.\p" + .string "I hear there are lots of TRAINERS\n" + .string "on board, too.\p" + .string "They invited me to their party, but\n" + .string "I can't stand fancy do's.\p" + .string "Why don't you go instead of me?\n" + .string "Go on and have a good time.$" + +Route25_SeaCottage_Text_CheckOutRareMonsOnPC:: + .string "BILL: Feel like checking out some\n" + .string "of my rare POKéMON on my PC?\p" + .string "Go on, check out my PC.$" + +Route25_SeaCottage_Text_TeleporterIsDisplayed:: + .string "TELEPORTER is displayed on the PC\n" + .string "monitor.$" + +Route25_SeaCottage_Text_InitiatedTeleportersCellSeparator:: + .string "{PLAYER} initiated the TELEPORTER's\n" + .string "Cell Separator.$" + +Route25_SeaCottage_Text_BillsFavoriteMonList:: + .string "BILL's favorite POKéMON list!$" + +Route25_SeaCottage_Text_SeeWhichMon:: + .string "Which POKéMON do you want to see?$" + diff --git a/data/maps/Route2_EastBuilding_Frlg/map.json b/data/maps/Route2_EastBuilding_Frlg/map.json new file mode 100644 index 000000000000..8bf63ccf8563 --- /dev/null +++ b/data/maps/Route2_EastBuilding_Frlg/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_ROUTE2_EAST_BUILDING", + "name": "Route2_EastBuilding_Frlg", + "layout": "LAYOUT_ROUTE2_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_EastBuilding_EventScript_Aide", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 10, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_EastBuilding_EventScript_Rocker", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 10, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "5" + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "5" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "5" + }, + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_EastBuilding_Frlg/scripts.inc b/data/maps/Route2_EastBuilding_Frlg/scripts.inc new file mode 100644 index 000000000000..eed59e03fb00 --- /dev/null +++ b/data/maps/Route2_EastBuilding_Frlg/scripts.inc @@ -0,0 +1,72 @@ +.equ REQUIRED_SEEN_MONS, 10 + +Route2_EastBuilding_Frlg_MapScripts:: + .byte 0 + +Route2_EastBuilding_EventScript_Aide:: + lock + faceplayer + call Route2_EastBuilding_EventScript_GetAideRequestInfo + goto_if_set FLAG_GOT_HM05, Route2_EastBuilding_EventScript_AlreadyGotHM05 + msgbox Route2_EastBuilding_Text_GiveHM05IfSeen10Mons, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Aide_EventScript_DeclineCheckMons + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetFrlgPokedexCount + buffernumberstring STR_VAR_3, VAR_0x8006 + call Route2_EastBuilding_EventScript_GetAideRequestInfo + goto_if_lt VAR_0x8006, REQUIRED_SEEN_MONS, Aide_EventScript_HaventCaughtEnough + msgbox Route2_EastBuilding_Text_GreatHereYouGo + checkitemspace ITEM_HM05 + goto_if_eq VAR_RESULT, FALSE, Aide_EventScript_NoRoomForItem + giveitem_msg Route2_EastBuilding_Text_ReceivedHM05FromAide, ITEM_HM05 + setflag FLAG_GOT_HM05 + msgbox Route2_EastBuilding_Text_ExplainHM05 + release + end + +Route2_EastBuilding_EventScript_AlreadyGotHM05:: + msgbox Route2_EastBuilding_Text_ExplainHM05 + release + end + +Route2_EastBuilding_EventScript_GetAideRequestInfo:: + buffernumberstring STR_VAR_1, REQUIRED_SEEN_MONS + bufferitemname STR_VAR_2, ITEM_HM05 + return + +Route2_EastBuilding_EventScript_Rocker:: + msgbox Route2_EastBuilding_Text_CanGetThroughRockTunnel, MSGBOX_NPC + end + +Route2_EastBuilding_Text_GiveHM05IfSeen10Mons:: + .string "Hi! Remember me?\n" + .string "I'm one of PROF. OAK's AIDES.\p" + .string "If your POKéDEX has complete data\n" + .string "on ten species, I'm supposed to\l" + .string "give you a reward.\p" + .string "PROF. OAK entrusted me with\n" + .string "HM05 for you.\p" + .string "So, {PLAYER}, let me ask you.\p" + .string "Have you gathered data on at least\n" + .string "ten kinds of POKéMON?$" + +Route2_EastBuilding_Text_GreatHereYouGo:: + .string "Great! You have caught or owned\n" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "Congratulations!\n" + .string "Here you go!$" + +Route2_EastBuilding_Text_ReceivedHM05FromAide:: + .string "{PLAYER} received HM05\n" + .string "from the AIDE.$" + +Route2_EastBuilding_Text_ExplainHM05:: + .string "HM05 contains the hidden move\n" + .string "FLASH.\p" + .string "FLASH lights up even the darkest\n" + .string "of caves and dungeons.$" + +Route2_EastBuilding_Text_CanGetThroughRockTunnel:: + .string "Once a POKéMON learns FLASH, you\n" + .string "can get through ROCK TUNNEL.$" + diff --git a/data/maps/Route2_Frlg/map.json b/data/maps/Route2_Frlg/map.json new file mode 100644 index 000000000000..9915a1872eba --- /dev/null +++ b/data/maps/Route2_Frlg/map.json @@ -0,0 +1,216 @@ +{ + "id": "MAP_ROUTE2", + "name": "Route2_Frlg", + "layout": "LAYOUT_ROUTE2", + "music": "MUS_RG_ROUTE1", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_PEWTER_CITY", + "offset": -12, + "direction": "up" + }, + { + "map": "MAP_VIRIDIAN_CITY", + "offset": -12, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 16, + "y": 62, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 15, + "y": 69, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 11, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 18, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 54, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_EventScript_ItemEther", + "flag": "FLAG_HIDE_ROUTE2_ETHER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 64, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_EventScript_ItemParalyzeHeal", + "flag": "FLAG_HIDE_ROUTE2_PARALYZE_HEAL" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 6, + "y": 85, + "target_local_id": "LOCALID_VIRIDIAN_BORDER_TREE", + "target_map": "MAP_VIRIDIAN_CITY" + } + ], + "warp_events": [ + { + "x": 5, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 13, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 51, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 17, + "y": 11, + "elevation": 3, + "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 17, + "y": 22, + "elevation": 0, + "dest_map": "MAP_ROUTE2_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 18, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": "1" + }, + { + "x": 18, + "y": 41, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": "3" + }, + { + "x": 19, + "y": 41, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": "3" + }, + { + "x": 19, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE2_EAST_BUILDING", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 51, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 14, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route2_EventScript_DiglettsCaveSign" + }, + { + "type": "sign", + "x": 7, + "y": 73, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route2_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/Route2_Frlg/scripts.inc b/data/maps/Route2_Frlg/scripts.inc new file mode 100644 index 000000000000..119bc8274706 --- /dev/null +++ b/data/maps/Route2_Frlg/scripts.inc @@ -0,0 +1,18 @@ +Route2_Frlg_MapScripts:: + .byte 0 + +Route2_EventScript_RouteSign:: + msgbox Route2_Text_RouteSign, MSGBOX_SIGN + end + +Route2_EventScript_DiglettsCaveSign:: + msgbox Route2_Text_DiglettsCave, MSGBOX_SIGN + end + +Route2_Text_RouteSign:: + .string "ROUTE 2\n" + .string "VIRIDIAN CITY - PEWTER CITY$" + +Route2_Text_DiglettsCave:: + .string "DIGLETT'S CAVE$" + diff --git a/data/maps/Route2_House_Frlg/map.json b/data/maps/Route2_House_Frlg/map.json new file mode 100644 index 000000000000..9cf2e6c6b27a --- /dev/null +++ b/data/maps/Route2_House_Frlg/map.json @@ -0,0 +1,77 @@ +{ + "id": "MAP_ROUTE2_HOUSE", + "name": "Route2_House_Frlg", + "layout": "LAYOUT_HOUSE2_FRLG", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_House_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_House_EventScript_Reyley", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "4" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "4" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/Route2_House_Frlg/scripts.inc b/data/maps/Route2_House_Frlg/scripts.inc new file mode 100644 index 000000000000..d3aab6eb4777 --- /dev/null +++ b/data/maps/Route2_House_Frlg/scripts.inc @@ -0,0 +1,47 @@ +Route2_House_Frlg_MapScripts:: + .byte 0 + +Route2_House_EventScript_Scientist:: + msgbox Route2_House_Text_FaintedMonsCanUseFieldMoves, MSGBOX_NPC + end + +Route2_House_EventScript_Reyley:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_MR_MIME + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_MIMIEN_TRADE, Route2_House_EventScript_AlreadyTraded + msgbox Trade_Text_LookingForMonWannaTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route2_House_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, Route2_House_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, Route2_House_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_HeyThanks + setflag FLAG_DID_MIMIEN_TRADE + release + end + +Route2_House_EventScript_DeclineTrade:: + msgbox Trade_Text_AwwOhWell + release + end + +Route2_House_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_WhatThatsNoMon + release + end + +Route2_House_EventScript_AlreadyTraded:: + msgbox Trade_Text_IsntMyOldMonGreat + release + end + +Route2_House_Text_FaintedMonsCanUseFieldMoves:: + .string "A fainted POKéMON just has no\n" + .string "energy left to battle.\p" + .string "It can still use moves like CUT\n" + .string "outside of battle.$" + diff --git a/data/maps/Route2_ViridianForest_NorthEntrance_Frlg/map.json b/data/maps/Route2_ViridianForest_NorthEntrance_Frlg/map.json new file mode 100644 index 000000000000..f52ecc4c881b --- /dev/null +++ b/data/maps/Route2_ViridianForest_NorthEntrance_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "name": "Route2_ViridianForest_NorthEntrance_Frlg", + "layout": "LAYOUT_ROUTE2_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_ViridianForest_NorthEntrance_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_ViridianForest_NorthEntrance_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_ViridianForest_NorthEntrance_EventScript_CooltrainerF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": "2" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_ViridianForest_NorthEntrance_Frlg/scripts.inc b/data/maps/Route2_ViridianForest_NorthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..1778637c8d62 --- /dev/null +++ b/data/maps/Route2_ViridianForest_NorthEntrance_Frlg/scripts.inc @@ -0,0 +1,35 @@ +Route2_ViridianForest_NorthEntrance_Frlg_MapScripts:: + .byte 0 + +Route2_ViridianForest_NorthEntrance_EventScript_Youngster:: + msgbox Route2_ViridianForest_NorthEntrance_Text_ManyMonsOnlyInForests, MSGBOX_NPC + end + +Route2_ViridianForest_NorthEntrance_EventScript_OldMan:: + msgbox Route2_ViridianForest_NorthEntrance_Text_CanCutSkinnyTrees, MSGBOX_NPC + end + +Route2_ViridianForest_NorthEntrance_EventScript_CooltrainerF:: + msgbox Route2_ViridianForest_NorthEntrance_Text_CanCancelEvolution, MSGBOX_NPC + end + +Route2_ViridianForest_NorthEntrance_Text_ManyMonsOnlyInForests:: + .string "Many POKéMON live only in forests \n" + .string "and caves.\p" + .string "You need to be persistent and look\n" + .string "everywhere to get different kinds.$" + +Route2_ViridianForest_NorthEntrance_Text_CanCutSkinnyTrees:: + .string "Have you noticed the skinny trees\n" + .string "on the roadside?\p" + .string "They can be cut down by a special\n" + .string "POKéMON move, I hear.$" + +Route2_ViridianForest_NorthEntrance_Text_CanCancelEvolution:: + .string "Do you know the evolution-cancel\n" + .string "technique?\p" + .string "When a POKéMON is evolving, you\n" + .string "can stop the process.\p" + .string "It's a technique for raising\n" + .string "POKéMON the way they are.$" + diff --git a/data/maps/Route2_ViridianForest_SouthEntrance_Frlg/map.json b/data/maps/Route2_ViridianForest_SouthEntrance_Frlg/map.json new file mode 100644 index 000000000000..506ebc342e67 --- /dev/null +++ b/data/maps/Route2_ViridianForest_SouthEntrance_Frlg/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "name": "Route2_ViridianForest_SouthEntrance_Frlg", + "layout": "LAYOUT_ROUTE2_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_ViridianForest_SouthEntrance_EventScript_Woman1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route2_ViridianForest_SouthEntrance_EventScript_Woman2", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "2" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE2", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 1, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_FOREST", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route2_ViridianForest_SouthEntrance_Frlg/scripts.inc b/data/maps/Route2_ViridianForest_SouthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..6df492b7eaa3 --- /dev/null +++ b/data/maps/Route2_ViridianForest_SouthEntrance_Frlg/scripts.inc @@ -0,0 +1,21 @@ +Route2_ViridianForest_SouthEntrance_Frlg_MapScripts:: + .byte 0 + +Route2_ViridianForest_SouthEntrance_EventScript_Woman1:: + msgbox Route2_ViridianForest_SouthEntrance_Text_ForestIsMaze, MSGBOX_NPC + end + +Route2_ViridianForest_SouthEntrance_EventScript_Woman2:: + msgbox Route2_ViridianForest_SouthEntrance_Text_RattataHasWickedBite, MSGBOX_NPC + end + +Route2_ViridianForest_SouthEntrance_Text_ForestIsMaze:: + .string "Are you going to VIRIDIAN FOREST?\n" + .string "It's a natural maze in there.\l" + .string "Be careful you don't get lost.$" + +Route2_ViridianForest_SouthEntrance_Text_RattataHasWickedBite:: + .string "RATTATA may be small, but don't\n" + .string "underestimate its wicked bite.\p" + .string "Have you caught one already?$" + diff --git a/data/maps/Route3_Frlg/map.json b/data/maps/Route3_Frlg/map.json new file mode 100644 index 000000000000..52531fd8e5f1 --- /dev/null +++ b/data/maps/Route3_Frlg/map.json @@ -0,0 +1,183 @@ +{ + "id": "MAP_ROUTE3", + "name": "Route3_Frlg", + "layout": "LAYOUT_ROUTE3", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_3", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE4", + "offset": 60, + "direction": "up" + }, + { + "map": "MAP_PEWTER_CITY", + "offset": -10, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 70, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route3_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 40, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route3_EventScript_Robin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 32, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route3_EventScript_James", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 30, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route3_EventScript_Sally", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 25, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route3_EventScript_Greg", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 29, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route3_EventScript_Calvin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 19, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route3_EventScript_Janice", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 12, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route3_EventScript_Colton", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 17, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route3_EventScript_Ben", + "flag": "0" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 72, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route3_EventScript_RouteSign" + }, + { + "type": "hidden_item", + "x": 26, + "y": 9, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route3_Frlg/scripts.inc b/data/maps/Route3_Frlg/scripts.inc new file mode 100644 index 000000000000..18ad64f0d47f --- /dev/null +++ b/data/maps/Route3_Frlg/scripts.inc @@ -0,0 +1,115 @@ +Route3_Frlg_MapScripts:: + .byte 0 + +Route3_EventScript_Youngster:: + msgbox Route3_Text_TunnelFromCeruleanTiring, MSGBOX_NPC + end + +Route3_EventScript_RouteSign:: + msgbox Route3_Text_RouteSign, MSGBOX_SIGN + end + +Route3_Text_TunnelFromCeruleanTiring:: + .string "Whew… I better take a rest…\n" + .string "Groan…\p" + .string "That tunnel from CERULEAN takes a\n" + .string "lot out of you!$" + +Route3_Text_ColtonIntro:: + .string "Hey!\n" + .string "I saw you in VIRIDIAN FOREST!$" + +Route3_Text_ColtonDefeat:: + .string "You beat me again!$" + +Route3_Text_ColtonPostBattle:: + .string "There are other kinds of POKéMON\n" + .string "than the ones you find in forests.$" + +Route3_Text_BenIntro:: + .string "Hi!\n" + .string "I like shorts!\p" + .string "They're delightfully comfy and\n" + .string "easy to wear!$" + +Route3_Text_BenDefeat:: + .string "I don't believe it!$" + +Route3_Text_BenPostBattle:: + .string "Are you using a POKéMON CENTER's\n" + .string "PC for storing your POKéMON?\p" + .string "Each BOX can hold up to\n" + .string "30 POKéMON.$" + +Route3_Text_JaniceIntro:: + .string "Excuse me!\n" + .string "You looked at me, didn't you?$" + +Route3_Text_JaniceDefeat:: + .string "You're mean!$" + +Route3_Text_JanicePostBattle:: + .string "You shouldn't be staring if you\n" + .string "don't want to battle!$" + +Route3_Text_GregIntro:: + .string "Are you a TRAINER?\n" + .string "Let's get with it right away!$" + +Route3_Text_GregDefeat:: + .string "If I had new POKéMON, I would've\n" + .string "won!$" + +Route3_Text_GregPostBattle:: + .string "If a POKéMON BOX on the PC gets\n" + .string "full, just switch to another BOX.$" + +Route3_Text_SallyIntro:: + .string "That look you gave me…\n" + .string "It's so intriguing!$" + +Route3_Text_SallyDefeat:: + .string "Be nice!$" + +Route3_Text_SallyPostBattle:: + .string "You can avoid battles by not\n" + .string "letting TRAINERS see you.$" + +Route3_Text_CalvinIntro:: + .string "Hey! You're not wearing shorts!\n" + .string "What's wrong with you?$" + +Route3_Text_CalvinDefeat:: + .string "Lost!\n" + .string "Lost! Lost!$" + +Route3_Text_CalvinPostBattle:: + .string "I always wear shorts, even in\n" + .string "winter. That's my policy.$" + +Route3_Text_JamesIntro:: + .string "I'll battle you with the POKéMON\n" + .string "I just caught.$" + +Route3_Text_JamesDefeat:: + .string "Done like dinner!$" + +Route3_Text_JamesPostBattle:: + .string "Trained POKéMON are stronger than\n" + .string "the wild ones.$" + +Route3_Text_RobinIntro:: + .string "Eek!\n" + .string "Did you touch me?$" + +Route3_Text_RobinDefeat:: + .string "That's it?$" + +Route3_Text_RobinPostBattle:: + .string "ROUTE 4 is at the foot of\n" + .string "MT. MOON.$" + +Route3_Text_RouteSign:: + .string "ROUTE 3\n" + .string "MT. MOON AHEAD$" + diff --git a/data/maps/Route4_Frlg/map.json b/data/maps/Route4_Frlg/map.json new file mode 100644 index 000000000000..ab3e0f9f9391 --- /dev/null +++ b/data/maps/Route4_Frlg/map.json @@ -0,0 +1,197 @@ +{ + "id": "MAP_ROUTE4", + "name": "Route4_Frlg", + "layout": "LAYOUT_ROUTE4", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_4", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE3", + "offset": -60, + "direction": "down" + }, + { + "map": "MAP_CERULEAN_CITY", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 9, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 75, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route4_EventScript_Crissy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 67, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_EventScript_ItemTM05", + "flag": "FLAG_HIDE_ROUTE4_TM05" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 15, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 47, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_EventScript_MegaPunchTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 50, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_EventScript_MegaKickTutor", + "flag": "0" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 109, + "y": 3, + "target_local_id": "LOCALID_CERULEAN_CAVE_GUARD", + "target_map": "MAP_CERULEAN_CITY" + } + ], + "warp_events": [ + { + "x": 19, + "y": 5, + "elevation": 3, + "dest_map": "MAP_MT_MOON_1F", + "dest_warp_id": "3" + }, + { + "x": 32, + "y": 5, + "elevation": 0, + "dest_map": "MAP_MT_MOON_B1F", + "dest_warp_id": "7" + }, + { + "x": 12, + "y": 5, + "elevation": 0, + "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 18, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route4_EventScript_MtMoonSign" + }, + { + "type": "sign", + "x": 34, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route4_EventScript_RouteSign" + }, + { + "type": "hidden_item", + "x": 43, + "y": 2, + "elevation": 3, + "item": "ITEM_GREAT_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 5, + "y": 4, + "elevation": 3, + "item": "ITEM_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 67, + "y": 17, + "elevation": 3, + "item": "ITEM_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route4_Frlg/scripts.inc b/data/maps/Route4_Frlg/scripts.inc new file mode 100644 index 000000000000..c93e60ba5443 --- /dev/null +++ b/data/maps/Route4_Frlg/scripts.inc @@ -0,0 +1,97 @@ +Route4_Frlg_MapScripts:: + .byte 0 + +Route4_EventScript_Unused:: + end + +Route4_EventScript_Woman:: + msgbox Route4_Text_TrippedOverGeodude, MSGBOX_NPC + end + +Route4_EventScript_MtMoonSign:: + msgbox Route4_Text_MtMoonEntrance, MSGBOX_SIGN + end + +Route4_EventScript_RouteSign:: + msgbox Route4_Text_RouteSign, MSGBOX_SIGN + end + +Route4_Text_TrippedOverGeodude:: + .string "Ouch! I tripped over a rocky\n" + .string "POKéMON, GEODUDE!$" + +Route4_Text_CrissyIntro:: + .string "I came to MT. MOON in search of\n" + .string "mushroom POKéMON.$" + +Route4_Text_CrissyDefeat:: + .string "After all I did to catch them!$" + +Route4_Text_CrissyPostBattle:: + .string "There might not be any more\n" + .string "mushrooms here.\p" + .string "I think I got them all.$" + +Route4_Text_MtMoonEntrance:: + .string "MT. MOON\n" + .string "Tunnel Entrance$" + +Route4_Text_RouteSign:: + .string "ROUTE 4\n" + .string "MT. MOON - CERULEAN CITY$" + +Text_MegaPunchTeach:: + .string "A punch of roaring ferocity!\p" + .string "Packed with destructive power!\p" + .string "When the chips are down,\n" + .string "MEGA PUNCH is the ultimate attack!\l" + .string "You agree, yes?\p" + .string "Now!\n" + .string "Let me teach it to your POKéMON!$" + +Text_MegaPunchDeclined:: + .string "You'll be back when you understand\n" + .string "the worth of MEGA PUNCH.$" + +Text_MegaPunchWhichMon:: + .string "Fine!\n" + .string "Which POKéMON will learn it?$" + +Text_MegaPunchTaught:: + .string "Now, we are comrades in the way of\n" + .string "punching!\p" + .string "You should go before you're seen\n" + .string "by the misguided fool who trains\l" + .string "only his silly kicking over there.$" + +Text_MegaKickTeach:: + .string "A kick of brutal ferocity!\p" + .string "Packed with destructive power!\p" + .string "When you get right down to it,\n" + .string "MEGA KICK is the ultimate attack!\l" + .string "Don't you agree?\p" + .string "Okay!\n" + .string "I'll teach it to your POKéMON!$" + +Text_MegaKickDeclined:: + .string "You'll come crawling back when you\n" + .string "realize the value of MEGA KICK.$" + +Text_MegaKickWhichMon:: + .string "All right!\n" + .string "Which POKéMON wants to learn it?$" + +Text_MegaKickTaught:: + .string "Now, we are soul mates in the way\n" + .string "of kicking!\p" + .string "You should run before you're seen\n" + .string "by the deluded nitwit who trains\l" + .string "only simple punching over there.$" + +Route4_Text_PeopleLikeAndRespectBrock:: + .string "Oh, wow, that's the BOULDERBADGE!\n" + .string "You got it from BROCK, didn't you?\p" + .string "BROCK is cool. He's not just tough.\n" + .string "People like and respect him.\p" + .string "I want to become a GYM LEADER\n" + .string "like him.$" diff --git a/data/maps/Route4_PokemonCenter_1F_Frlg/map.json b/data/maps/Route4_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..b373cd74234d --- /dev/null +++ b/data/maps/Route4_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,137 @@ +{ + "id": "MAP_ROUTE4_POKEMON_CENTER_1F", + "name": "Route4_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_4", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_ROUTE4_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 1, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_PokemonCenter_1F_EventScript_MagikarpSalesman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_PokemonCenter_1F_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 14, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", + "x": 12, + "y": 6, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route4_PokemonCenter_1F_EventScript_Newspaper", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": "2" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE4", + "dest_warp_id": "2" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE4_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route4_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/Route4_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..f061535cce86 --- /dev/null +++ b/data/maps/Route4_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,204 @@ +.equ MAGIKARP_PRICE, 500 + +Route4_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route4_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +Route4_PokemonCenter_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F + setrespawn HEAL_LOCATION_ROUTE4 + end + +Route4_PokemonCenter_1F_EventScript_Boy:: + msgbox Route4_PokemonCenter_1F_Text_CanHaveSixMonsWithYou, MSGBOX_NPC + end + +Route4_PokemonCenter_1F_EventScript_Gentleman:: + lock + msgbox Route4_PokemonCenter_1F_Text_TeamRocketAttacksCerulean + release + end + +Route4_PokemonCenter_1F_EventScript_MagikarpSalesman:: + lock + faceplayer + goto_if_set FLAG_BOUGHT_MAGIKARP, Route4_PokemonCenter_1F_EventScript_AlreadyBoughtMagikarp + showmoneybox 0, 0 + checkplayergender + goto_if_eq VAR_RESULT, MALE, Route4_PokemonCenter_1F_EventScript_AskBuyMagikarpMale + goto_if_eq VAR_RESULT, FEMALE, Route4_PokemonCenter_1F_EventScript_AskBuyMagikarpFemale + end + +Route4_PokemonCenter_1F_EventScript_AskBuyMagikarpMale:: + msgbox Route4_PokemonCenter_1F_Text_LaddieBuyMagikarpForJust500, MSGBOX_YESNO + goto Route4_PokemonCenter_1F_EventScript_TryBuyMagikarp + end + +Route4_PokemonCenter_1F_EventScript_AskBuyMagikarpFemale:: + msgbox Route4_PokemonCenter_1F_Text_SweetieBuyMagikarpForJust500, MSGBOX_YESNO + goto Route4_PokemonCenter_1F_EventScript_TryBuyMagikarp + end + +Route4_PokemonCenter_1F_EventScript_TryBuyMagikarp:: + goto_if_eq VAR_RESULT, NO, Route4_PokemonCenter_1F_EventScript_DeclineMagikarp + checkmoney MAGIKARP_PRICE + goto_if_eq VAR_RESULT, FALSE, Route4_PokemonCenter_1F_EventScript_NotEnoughMoney + textcolor NPC_TEXT_COLOR_NEUTRAL + setvar VAR_TEMP_1, SPECIES_MAGIKARP + givemon SPECIES_MAGIKARP, 5 + goto_if_eq VAR_RESULT, 0, Route4_PokemonCenter_1F_EventScript_BuyMagikarpParty + goto_if_eq VAR_RESULT, 1, Route4_PokemonCenter_1F_EventScript_BuyMagikarpPC + goto_if_eq VAR_RESULT, 2, Route4_PokemonCenter_1F_EventScript_NoRoomForMagikarp + end + +Route4_PokemonCenter_1F_EventScript_BuyMagikarpParty:: + call Route4_PokemonCenter_1F_EventScript_PayForMagikarp + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route4_PokemonCenter_1F_EventScript_EndPurchaseMagikarp + call Common_EventScript_GetGiftMonPartySlot + fadescreen FADE_TO_BLACK + hidemoneybox + special ChangePokemonNickname + waitstate + goto Route4_PokemonCenter_1F_EventScript_BoughtMagikarp + end + +Route4_PokemonCenter_1F_EventScript_BuyMagikarpPC:: + call Route4_PokemonCenter_1F_EventScript_PayForMagikarp + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, Route4_PokemonCenter_1F_EventScript_TransferMagikarpCloseMoneyBox + fadescreen FADE_TO_BLACK + hidemoneybox + special ChangePokemonNickname + waitstate + lock + faceplayer + goto Route4_PokemonCenter_1F_EventScript_TransferMagikarp + end + +Route4_PokemonCenter_1F_EventScript_TransferMagikarpCloseMoneyBox:: + call Common_EventScript_TransferredToPC + goto Route4_PokemonCenter_1F_EventScript_EndPurchaseMagikarp + end + +Route4_PokemonCenter_1F_EventScript_TransferMagikarp:: + call Common_EventScript_TransferredToPC + goto Route4_PokemonCenter_1F_EventScript_BoughtMagikarp + end + +Route4_PokemonCenter_1F_EventScript_EndPurchaseMagikarp:: + hidemoneybox + goto Route4_PokemonCenter_1F_EventScript_BoughtMagikarp + end + +Route4_PokemonCenter_1F_EventScript_BoughtMagikarp:: + setflag FLAG_BOUGHT_MAGIKARP + release + end + +Route4_PokemonCenter_1F_EventScript_PayForMagikarp:: + removemoney MAGIKARP_PRICE + updatemoneybox + playfanfare MUS_LEVEL_UP + message Route4_PokemonCenter_1F_Text_PaidOutrageouslyForMagikarp + waitmessage + waitfanfare + bufferspeciesname STR_VAR_1, SPECIES_MAGIKARP + return + +Route4_PokemonCenter_1F_EventScript_DeclineMagikarp:: + msgbox Route4_PokemonCenter_1F_Text_OnlyDoingThisAsFavorToYou + hidemoneybox + release + end + +Route4_PokemonCenter_1F_EventScript_NotEnoughMoney:: + msgbox Route4_PokemonCenter_1F_Text_YoullNeedMoreMoney + hidemoneybox + release + end + +Route4_PokemonCenter_1F_EventScript_AlreadyBoughtMagikarp:: + msgbox Route4_PokemonCenter_1F_Text_IDontGiveRefunds + release + end + +Route4_PokemonCenter_1F_EventScript_NoRoomForMagikarp:: + textcolor NPC_TEXT_COLOR_MALE + msgbox Route4_PokemonCenter_1F_Text_NoRoomForMorePokemon + hidemoneybox + release + end + +Route4_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +Route4_PokemonCenter_1F_EventScript_Youngster:: + msgbox Route4_PokemonCenter_1F_Text_ShouldStoreMonsUsingPC, MSGBOX_NPC + end + +Route4_PokemonCenter_1F_EventScript_Newspaper:: + lock + msgbox Route4_PokemonCenter_1F_Text_ItsANewspaper + release + end + +Route4_PokemonCenter_1F_Text_CanHaveSixMonsWithYou:: + .string "Okay, set six POKé BALLS in my\n" + .string "belt…\p" + .string "Yeah, that'll do it. At most, you\n" + .string "can have six POKéMON with you.$" + +Route4_PokemonCenter_1F_Text_TeamRocketAttacksCerulean:: + .string "TEAM ROCKET attacks CERULEAN\n" + .string "citizens…\p" + .string "Not a day goes by without TEAM\n" + .string "ROCKET being in the news.$" + +Route4_PokemonCenter_1F_Text_LaddieBuyMagikarpForJust500:: + .string "MAN: Hello there, laddie!\n" + .string "Have I got a deal just for you!\p" + .string "I'll let you have a secret POKéMON\n" + .string "- a MAGIKARP - for just ¥500!\p" + .string "So, you'll buy it, am I right?$" + +Route4_PokemonCenter_1F_Text_SweetieBuyMagikarpForJust500:: + .string "MAN: Hello there, sweetie pie!\n" + .string "Have I got a deal just for you!\p" + .string "I'll let you have a secret POKéMON\n" + .string "- a MAGIKARP - for just ¥500!\p" + .string "So, you'll buy it, am I right?$" + +Route4_PokemonCenter_1F_Text_PaidOutrageouslyForMagikarp:: + .string "{PLAYER} paid an outrageous ¥500\n" + .string "and bought the MAGIKARP…$" + +Route4_PokemonCenter_1F_Text_OnlyDoingThisAsFavorToYou:: + .string "No? You say no? I'm only doing this\n" + .string "as a favor to you!$" + +Route4_PokemonCenter_1F_Text_NoRoomForMorePokemon:: + .string "There's no more room for any more\n" + .string "POKéMON, it looks like.$" + +Route4_PokemonCenter_1F_Text_YoullNeedMoreMoney:: + .string "You'll need more money than that!$" + +Route4_PokemonCenter_1F_Text_IDontGiveRefunds:: + .string "MAN: Well, I don't give refunds.\n" + .string "You knew what you were getting!$" + +Route4_PokemonCenter_1F_Text_ShouldStoreMonsUsingPC:: + .string "Sometimes, you'll have too many\n" + .string "POKéMON with you to add any more.\p" + .string "In that case, you should just\n" + .string "store some using any PC.$" + +Route4_PokemonCenter_1F_Text_ItsANewspaper:: + .string "It's a newspaper.$" + diff --git a/data/maps/Route4_PokemonCenter_2F_Frlg/map.json b/data/maps/Route4_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..7bf3d0f4affa --- /dev/null +++ b/data/maps/Route4_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_ROUTE4_POKEMON_CENTER_2F", + "name": "Route4_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_4", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route4_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/Route4_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..ca80caeb1fee --- /dev/null +++ b/data/maps/Route4_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +Route4_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +Route4_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +Route4_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +Route4_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/Route5_Frlg/map.json b/data/maps/Route5_Frlg/map.json new file mode 100644 index 000000000000..5e1c41680a49 --- /dev/null +++ b/data/maps/Route5_Frlg/map.json @@ -0,0 +1,75 @@ +{ + "id": "MAP_ROUTE5", + "name": "Route5_Frlg", + "layout": "LAYOUT_ROUTE5", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_5", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_CERULEAN_CITY", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_SAFFRON_CITY_CONNECTION", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + + ], + "warp_events": [ + { + "x": 31, + "y": 31, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 23, + "y": 25, + "elevation": 0, + "dest_map": "MAP_ROUTE5_POKEMON_DAY_CARE", + "dest_warp_id": "1" + }, + { + "x": 24, + "y": 32, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 32, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 32, + "y": 32, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route5_EventScript_UndergroundPathSign" + } + ] +} diff --git a/data/maps/Route5_Frlg/scripts.inc b/data/maps/Route5_Frlg/scripts.inc new file mode 100644 index 000000000000..ff2d0756081c --- /dev/null +++ b/data/maps/Route5_Frlg/scripts.inc @@ -0,0 +1,11 @@ +Route5_Frlg_MapScripts:: + .byte 0 + +Route5_EventScript_UndergroundPathSign:: + msgbox Route5_Text_UndergroundPathSign, MSGBOX_SIGN + end + +Route5_Text_UndergroundPathSign:: + .string "UNDERGROUND PATH\n" + .string "CERULEAN CITY - VERMILION CITY$" + diff --git a/data/maps/Route5_PokemonDayCare_Frlg/map.json b/data/maps/Route5_PokemonDayCare_Frlg/map.json new file mode 100644 index 000000000000..9cc8cd9b42d7 --- /dev/null +++ b/data/maps/Route5_PokemonDayCare_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_ROUTE5_POKEMON_DAY_CARE", + "name": "Route5_PokemonDayCare_Frlg", + "layout": "LAYOUT_ROUTE5_POKEMON_DAY_CARE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_5", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route5_PokemonDayCare_EventScript_DaycareMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 7, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route5_PokemonDayCare_Frlg/scripts.inc b/data/maps/Route5_PokemonDayCare_Frlg/scripts.inc new file mode 100644 index 000000000000..9f7c71b847f1 --- /dev/null +++ b/data/maps/Route5_PokemonDayCare_Frlg/scripts.inc @@ -0,0 +1,73 @@ +@ Handled by data/scripts/day_care.inc + +Route5_PokemonDayCare_Frlg_MapScripts:: + .byte 0 + +Route5_PokemonDayCare_Text_WantMeToRaiseMon:: + .string "I run the DAY-CARE service.\p" + .string "Would you like me to raise one of\n" + .string "your POKéMON?$" + +Route5_PokemonDayCare_Text_ComeAgain:: + .string "Come again.$" + +Route5_PokemonDayCare_Text_WhichMonShouldIRaise:: + .string "Which POKéMON should I raise?$" + +Route5_PokemonDayCare_Text_ComeAnytimeYouLike:: + .string "Fine.\n" + .string "Come anytime you like.$" + +Route5_PokemonDayCare_Text_LookAfterMonForAWhile:: + .string "Fine, I'll look after your\n" + .string "{STR_VAR_1} for a while.$" + +Route5_PokemonDayCare_Text_ComeSeeMeInAWhile:: + .string "Come see me in a while.$" + +Route5_PokemonDayCare_Text_MonNeedsToSpendMoreTime:: + .string "You're back already?\p" + .string "Your {STR_VAR_1} needs to spend\n" + .string "some more time with me.$" + +Route5_PokemonDayCare_Text_OweMeXForMonsReturn:: + .string "You owe me ¥{STR_VAR_2} for the return\n" + .string "of this POKéMON.$" + +Route5_PokemonDayCare_Text_ThankYouHeresMon:: + .string "Thank you!\n" + .string "Here's your POKéMON.$" + +Route5_PokemonDayCare_Text_PlayerGotMonBack:: + .string "{PLAYER} got {STR_VAR_1} back\n" + .string "from the DAY-CARE MAN.$" + +Route5_PokemonDayCare_Text_OnlyHaveOneMonWithYou:: + .string "Oh? You only have one POKéMON\n" + .string "with you.$" + +Route5_PokemonDayCare_Text_WhatWillYouBattleWith:: + .string "If you leave me that POKéMON,\n" + .string "what will you battle with?$" + +Route5_PokemonDayCare_Text_MonHasGrownByXLevels:: + .string "Your {STR_VAR_1} has grown a lot.\n" + .string "Yes, quite a lot, I'd say.\p" + .string "Let me see…\n" + .string "By level, it's grown by {STR_VAR_2}.\p" + .string "Aren't I great?$" + +Route5_PokemonDayCare_Text_YouveGotNoRoomForIt:: + .string "You can't take this POKéMON back\n" + .string "if you've got no room for it.$" + +Route5_PokemonDayCare_Text_DontHaveEnoughMoney:: + .string "You don't have enough money.$" + +Route5_PokemonDayCare_Text_WantMeToTakeALookAtYours:: + .string "きみの\n" + .string "みてみるかね?$" + +Route5_PokemonDayCare_Text_CantAcceptMonWithHM:: + .string "わるいけど ひでんのわざを もった\n" + .string "ポケモンは あずかれないなぁ$" diff --git a/data/maps/Route5_SouthEntrance_Frlg/map.json b/data/maps/Route5_SouthEntrance_Frlg/map.json new file mode 100644 index 000000000000..a221828f59ab --- /dev/null +++ b/data/maps/Route5_SouthEntrance_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE5_SOUTH_ENTRANCE", + "name": "Route5_SouthEntrance_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_5", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route5_SouthEntrance_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "9" + }, + { + "x": 4, + "y": 1, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "9" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "3" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route5_SouthEntrance_EventScript_GuardTriggerLeft" + }, + { + "type": "trigger", + "x": 4, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route5_SouthEntrance_EventScript_GuardTriggerMid" + }, + { + "type": "trigger", + "x": 5, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route5_SouthEntrance_EventScript_GuardTriggerRight" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route5_SouthEntrance_Frlg/scripts.inc b/data/maps/Route5_SouthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..cef724c70724 --- /dev/null +++ b/data/maps/Route5_SouthEntrance_Frlg/scripts.inc @@ -0,0 +1,111 @@ +Route5_SouthEntrance_Frlg_MapScripts:: + .byte 0 + +Route5_SouthEntrance_EventScript_Guard:: + msgbox Route5_SouthEntrance_Text_HiHowsItGoing, MSGBOX_NPC + end + +Route5_SouthEntrance_EventScript_GuardTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto Route5_SouthEntrance_EventScript_GuardTrigger + end + +Route5_SouthEntrance_EventScript_GuardTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + goto Route5_SouthEntrance_EventScript_GuardTrigger + end + +Route5_SouthEntrance_EventScript_GuardTriggerRight:: + lockall + setvar VAR_TEMP_1, 2 + goto Route5_SouthEntrance_EventScript_GuardTrigger + end + +Route5_SouthEntrance_EventScript_GuardTrigger:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + goto_if_set FLAG_GOT_TEA, Route5_SouthEntrance_EventScript_GiveTea + msgbox Route5_SouthEntrance_Text_ThirstyOnGuardDuty + closemessage + applymovement LOCALID_PLAYER, Route5_SouthEntrance_Movement_BlockPlayerEntry + waitmovement 0 + releaseall + end + +Route5_SouthEntrance_EventScript_GiveTea:: + removeitem ITEM_TEA + goto Route5_SouthEntrance_EventScript_GuardDrinkTea + end + +Route5_SouthEntrance_EventScript_GuardDrinkTea:: + msgbox Route5_SouthEntrance_Text_ThatTeaLooksTasty + closemessage + call_if_eq VAR_TEMP_1, 0, Route5_SouthEntrance_EventScript_WalkToGuardLeft + call_if_eq VAR_TEMP_1, 1, Route5_SouthEntrance_EventScript_WalkToGuardMid + call_if_eq VAR_TEMP_1, 2, Route5_SouthEntrance_EventScript_WalkToGuardRight + msgbox Route5_SouthEntrance_Text_ThanksIllShareTeaWithGuards + setvar VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES, 1 + releaseall + end + +Route5_SouthEntrance_EventScript_WalkToGuardLeft:: + applymovement LOCALID_PLAYER, Route5_SouthEntrance_Movement_WalkToGuardLeft + waitmovement 0 + return + +Route5_SouthEntrance_EventScript_WalkToGuardMid:: + applymovement LOCALID_PLAYER, Route5_SouthEntrance_Movement_WalkToGuardMid + waitmovement 0 + return + +Route5_SouthEntrance_EventScript_WalkToGuardRight:: + applymovement LOCALID_PLAYER, Route5_SouthEntrance_Movement_WalkToGuardRight + waitmovement 0 + return + +Route5_SouthEntrance_Movement_WalkToGuardMid:: + walk_left + step_end + +Route5_SouthEntrance_Movement_WalkToGuardRight:: + walk_left + walk_left + step_end + +Route5_SouthEntrance_Movement_WalkToGuardLeft:: + walk_in_place_left + step_end + +Route5_SouthEntrance_Movement_BlockPlayerEntry:: + walk_up + step_end + +Route5_SouthEntrance_Text_ThirstyOnGuardDuty:: + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +Route5_SouthEntrance_Text_ThatTeaLooksTasty:: + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +Route5_SouthEntrance_Text_ThanksIllShareTeaWithGuards:: + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +Route5_SouthEntrance_Text_HiHowsItGoing:: + .string "Hi, how's it going?$" + diff --git a/data/maps/Route6_Frlg/map.json b/data/maps/Route6_Frlg/map.json new file mode 100644 index 000000000000..7bb7672d5fe2 --- /dev/null +++ b/data/maps/Route6_Frlg/map.json @@ -0,0 +1,169 @@ +{ + "id": "MAP_ROUTE6", + "name": "Route6_Frlg", + "layout": "LAYOUT_ROUTE6", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_6", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SAFFRON_CITY_CONNECTION", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_VERMILION_CITY", + "offset": -12, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 3, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route6_EventScript_Keigo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 12, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route6_EventScript_Ricky", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 13, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route6_EventScript_Nancy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 20, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route6_EventScript_Elijah", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 13, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route6_EventScript_Isabelle", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 13, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route6_EventScript_Jeff", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 19, + "y": 13, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 12, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 13, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 21, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route6_EventScript_UndergroundPathSign" + }, + { + "type": "hidden_item", + "x": 5, + "y": 5, + "elevation": 3, + "item": "ITEM_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 19, + "y": 5, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route6_Frlg/scripts.inc b/data/maps/Route6_Frlg/scripts.inc new file mode 100644 index 000000000000..04d9f984145d --- /dev/null +++ b/data/maps/Route6_Frlg/scripts.inc @@ -0,0 +1,80 @@ +Route6_Frlg_MapScripts:: + .byte 0 + +Route6_EventScript_UndergroundPathSign:: + msgbox Route6_Text_UndergroundPathSign, MSGBOX_SIGN + end + +Route6_Text_RickyIntro:: + .string "Who's there?\n" + .string "Quit listening in on us!$" + +Route6_Text_RickyDefeat:: + .string "I just can't win!$" + +Route6_Text_RickyPostBattle:: + .string "Whisper…\n" + .string "Whisper…$" + +Route6_Text_NancyIntro:: + .string "Excuse me!\n" + .string "This is a private conversation!$" + +Route6_Text_NancyDefeat:: + .string "Ugh!\n" + .string "I hate losing.$" + +Route6_Text_NancyPostBattle:: + .string "Whisper…\n" + .string "Whisper…$" + +Route6_Text_KeigoIntro:: + .string "There aren't many bugs out here.$" + +Route6_Text_KeigoDefeat:: + .string "No!\n" + .string "You're kidding!$" + +Route6_Text_KeigoPostBattle:: + .string "I like bugs, so I'm going back to\n" + .string "VIRIDIAN FOREST.$" + +Route6_Text_JeffIntro:: + .string "Huh?\n" + .string "You want to talk to me?$" + +Route6_Text_JeffDefeat:: + .string "This stinks…\n" + .string "I couldn't beat your challenge…$" + +Route6_Text_JeffPostBattle:: + .string "I should bring more POKéMON with\n" + .string "me. I'll feel safer that way.$" + +Route6_Text_IsabelleIntro:: + .string "Me?\n" + .string "Well, okay. I'll play!$" + +Route6_Text_IsabelleDefeat:: + .string "Things just didn't work…$" + +Route6_Text_IsabellePostBattle:: + .string "I want to get stronger.\n" + .string "What's your secret?$" + +Route6_Text_ElijahIntro:: + .string "I've never seen you around.\n" + .string "Are you good?$" + +Route6_Text_ElijahDefeat:: + .string "You're too good!$" + +Route6_Text_ElijahPostBattle:: + .string "Are my POKéMON weak?\n" + .string "Or, am I just bad?\l" + .string "Which do you think?$" + +Route6_Text_UndergroundPathSign:: + .string "UNDERGROUND PATH\n" + .string "CERULEAN CITY - VERMILION CITY$" + diff --git a/data/maps/Route6_NorthEntrance_Frlg/map.json b/data/maps/Route6_NorthEntrance_Frlg/map.json new file mode 100644 index 000000000000..1b0f7dcfdc62 --- /dev/null +++ b/data/maps/Route6_NorthEntrance_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE6_NORTH_ENTRANCE", + "name": "Route6_NorthEntrance_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_NORTH_SOUTH_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_6", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route6_NorthEntrance_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "11" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "11" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 3, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route6_NorthEntrance_EventScript_GuardTriggerLeft" + }, + { + "type": "trigger", + "x": 4, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route6_NorthEntrance_EventScript_GuardTriggerMid" + }, + { + "type": "trigger", + "x": 5, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route6_NorthEntrance_EventScript_GuardTriggerRight" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route6_NorthEntrance_Frlg/scripts.inc b/data/maps/Route6_NorthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..3c081ccae731 --- /dev/null +++ b/data/maps/Route6_NorthEntrance_Frlg/scripts.inc @@ -0,0 +1,111 @@ +Route6_NorthEntrance_Frlg_MapScripts:: + .byte 0 + +Route6_NorthEntrance_EventScript_Guard:: + msgbox Route6_NorthEntrance_Text_HiHowsItGoing, MSGBOX_NPC + end + +Route6_NorthEntrance_EventScript_GuardTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto Route6_NorthEntrance_EventScript_GuardTrigger + end + +Route6_NorthEntrance_EventScript_GuardTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + goto Route6_NorthEntrance_EventScript_GuardTrigger + end + +Route6_NorthEntrance_EventScript_GuardTriggerRight:: + lockall + setvar VAR_TEMP_1, 2 + goto Route6_NorthEntrance_EventScript_GuardTrigger + end + +Route6_NorthEntrance_EventScript_GuardTrigger:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + goto_if_set FLAG_GOT_TEA, Route6_NorthEntrance_EventScript_GiveTea + msgbox Route6_NorthEntrance_Text_ThirstyOnGuardDuty + closemessage + applymovement LOCALID_PLAYER, Route6_NorthEntrance_Movement_BlockPlayerEntry + waitmovement 0 + releaseall + end + +Route6_NorthEntrance_EventScript_GiveTea:: + removeitem ITEM_TEA + goto Route6_NorthEntrance_EventScript_GuardDrinkTea + end + +Route6_NorthEntrance_EventScript_GuardDrinkTea:: + msgbox Route6_NorthEntrance_Text_ThatTeaLooksTasty + closemessage + call_if_eq VAR_TEMP_1, 0, Route6_NorthEntrance_EventScript_WalkToGuardLeft + call_if_eq VAR_TEMP_1, 1, Route6_NorthEntrance_EventScript_WalkToGuardMid + call_if_eq VAR_TEMP_1, 2, Route6_NorthEntrance_EventScript_WalkToGuardRight + msgbox Route6_NorthEntrance_Text_ThanksIllShareTeaWithGuards + setvar VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES, 1 + releaseall + end + +Route6_NorthEntrance_EventScript_WalkToGuardLeft:: + applymovement LOCALID_PLAYER, Route6_NorthEntrance_Movement_WalkToGuardLeft + waitmovement 0 + return + +Route6_NorthEntrance_EventScript_WalkToGuardMid:: + applymovement LOCALID_PLAYER, Route6_NorthEntrance_Movement_WalkToGuardMid + waitmovement 0 + return + +Route6_NorthEntrance_EventScript_WalkToGuardRight:: + applymovement LOCALID_PLAYER, Route6_NorthEntrance_Movement_WalkToGuardRight + waitmovement 0 + return + +Route6_NorthEntrance_Movement_WalkToGuardLeft:: + walk_right + walk_right + step_end + +Route6_NorthEntrance_Movement_WalkToGuardMid:: + walk_right + step_end + +Route6_NorthEntrance_Movement_WalkToGuardRight:: + walk_in_place_right + step_end + +Route6_NorthEntrance_Movement_BlockPlayerEntry:: + walk_down + step_end + +Route6_NorthEntrance_Text_ThirstyOnGuardDuty:: + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +Route6_NorthEntrance_Text_ThatTeaLooksTasty:: + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +Route6_NorthEntrance_Text_ThanksIllShareTeaWithGuards:: + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +Route6_NorthEntrance_Text_HiHowsItGoing:: + .string "Hi, how's it going?$" + diff --git a/data/maps/Route6_UnusedHouse_Frlg/map.json b/data/maps/Route6_UnusedHouse_Frlg/map.json new file mode 100644 index 000000000000..257ff5cead5f --- /dev/null +++ b/data/maps/Route6_UnusedHouse_Frlg/map.json @@ -0,0 +1,22 @@ +{ + "id": "MAP_ROUTE6_UNUSED_HOUSE", + "name": "Route6_UnusedHouse_Frlg", + "layout": "LAYOUT_HOUSE2_FRLG", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_6", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/Route6_UnusedHouse_Frlg/scripts.inc b/data/maps/Route6_UnusedHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..5296d2a1d878 --- /dev/null +++ b/data/maps/Route6_UnusedHouse_Frlg/scripts.inc @@ -0,0 +1,2 @@ +Route6_UnusedHouse_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/Route7_EastEntrance_Frlg/map.json b/data/maps/Route7_EastEntrance_Frlg/map.json new file mode 100644 index 000000000000..7c098cf106c7 --- /dev/null +++ b/data/maps/Route7_EastEntrance_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE7_EAST_ENTRANCE", + "name": "Route7_EastEntrance_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_7", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route7_EastEntrance_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "8" + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "8" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route7_EastEntrance_EventScript_GuardTriggerTop" + }, + { + "type": "trigger", + "x": 6, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route7_EastEntrance_EventScript_GuardTriggerMid" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route7_EastEntrance_EventScript_GuardTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route7_EastEntrance_Frlg/scripts.inc b/data/maps/Route7_EastEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..4ecb4e6b4aa6 --- /dev/null +++ b/data/maps/Route7_EastEntrance_Frlg/scripts.inc @@ -0,0 +1,111 @@ +Route7_EastEntrance_Frlg_MapScripts:: + .byte 0 + +Route7_EastEntrance_EventScript_Guard:: + msgbox Route7_EastEntrance_Text_HiHowsItGoing, MSGBOX_NPC + end + +Route7_EastEntrance_EventScript_GuardTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + goto Route7_EastEntrance_EventScript_GuardTrigger + end + +Route7_EastEntrance_EventScript_GuardTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + goto Route7_EastEntrance_EventScript_GuardTrigger + end + +Route7_EastEntrance_EventScript_GuardTriggerBottom:: + lockall + setvar VAR_TEMP_1, 2 + goto Route7_EastEntrance_EventScript_GuardTrigger + end + +Route7_EastEntrance_EventScript_GuardTrigger:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + goto_if_set FLAG_GOT_TEA, Route7_EastEntrance_EventScript_GiveTea + msgbox Route7_EastEntrance_Text_ThirstyOnGuardDuty + closemessage + applymovement LOCALID_PLAYER, Route7_EastEntrance_Movement_BlockPlayerEntry + waitmovement 0 + releaseall + end + +Route7_EastEntrance_EventScript_GiveTea:: + removeitem ITEM_TEA + goto Route7_EastEntrance_EventScript_GuardDrinkTea + end + +Route7_EastEntrance_EventScript_GuardDrinkTea:: + msgbox Route7_EastEntrance_Text_ThatTeaLooksTasty + closemessage + call_if_eq VAR_TEMP_1, 0, Route7_EastEntrance_WalkToGuardTop + call_if_eq VAR_TEMP_1, 1, Route7_EastEntrance_WalkToGuardMid + call_if_eq VAR_TEMP_1, 2, Route7_EastEntrance_WalkToGuardBottom + msgbox Route7_EastEntrance_Text_ThanksIllShareTeaWithGuards + setvar VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES, 1 + releaseall + end + +Route7_EastEntrance_WalkToGuardTop:: + applymovement LOCALID_PLAYER, Route7_EastEntrance_Movement_WalkToGuardTop + waitmovement 0 + return + +Route7_EastEntrance_WalkToGuardMid:: + applymovement LOCALID_PLAYER, Route7_EastEntrance_Movement_WalkToGuardMid + waitmovement 0 + return + +Route7_EastEntrance_WalkToGuardBottom:: + applymovement LOCALID_PLAYER, Route7_EastEntrance_Movement_WalkToGuardBottom + waitmovement 0 + return + +Route7_EastEntrance_Movement_WalkToGuardMid:: + walk_up + step_end + +Route7_EastEntrance_Movement_WalkToGuardBottom:: + walk_up + walk_up + step_end + +Route7_EastEntrance_Movement_WalkToGuardTop:: + walk_in_place_up + step_end + +Route7_EastEntrance_Movement_BlockPlayerEntry:: + walk_left + step_end + +Route7_EastEntrance_Text_ThirstyOnGuardDuty:: + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +Route7_EastEntrance_Text_ThatTeaLooksTasty:: + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +Route7_EastEntrance_Text_ThanksIllShareTeaWithGuards:: + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +Route7_EastEntrance_Text_HiHowsItGoing:: + .string "Hi, how's it going?$" + diff --git a/data/maps/Route7_Frlg/map.json b/data/maps/Route7_Frlg/map.json new file mode 100644 index 000000000000..04d5bb29703a --- /dev/null +++ b/data/maps/Route7_Frlg/map.json @@ -0,0 +1,76 @@ +{ + "id": "MAP_ROUTE7", + "name": "Route7_Frlg", + "layout": "LAYOUT_ROUTE7", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_7", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_CELADON_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_SAFFRON_CITY_CONNECTION", + "offset": -10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": -8, + "y": 12, + "target_local_id": "LOCALID_CELADON_BORDER_TREE", + "target_map": "MAP_CELADON_CITY" + } + ], + "warp_events": [ + { + "x": 7, + "y": 14, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 5, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route7_EventScript_UndergroundPathSign" + }, + { + "type": "hidden_item", + "x": 16, + "y": 15, + "elevation": 3, + "item": "ITEM_WEPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route7_Frlg/scripts.inc b/data/maps/Route7_Frlg/scripts.inc new file mode 100644 index 000000000000..9cfbcddc0e49 --- /dev/null +++ b/data/maps/Route7_Frlg/scripts.inc @@ -0,0 +1,11 @@ +Route7_Frlg_MapScripts:: + .byte 0 + +Route7_EventScript_UndergroundPathSign:: + msgbox Route7_Text_UndergroundPathSign, MSGBOX_SIGN + end + +Route7_Text_UndergroundPathSign:: + .string "UNDERGROUND PATH\n" + .string "CELADON CITY - LAVENDER TOWN$" + diff --git a/data/maps/Route8_Frlg/map.json b/data/maps/Route8_Frlg/map.json new file mode 100644 index 000000000000..cf2b85860236 --- /dev/null +++ b/data/maps/Route8_Frlg/map.json @@ -0,0 +1,298 @@ +{ + "id": "MAP_ROUTE8", + "name": "Route8_Frlg", + "layout": "LAYOUT_ROUTE8", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_8", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SAFFRON_CITY_CONNECTION", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_LAVENDER_TOWN", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 62, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "Route8_EventScript_Julia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 55, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route8_EventScript_Rich", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 51, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route8_EventScript_Glenn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 29, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route8_EventScript_Paige", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 29, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "Route8_EventScript_Leslie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 29, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route8_EventScript_Andrea", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 29, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "6", + "script": "Route8_EventScript_Megan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 21, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route8_EventScript_Stan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route8_EventScript_Aidan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 33, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 47, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 40, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route8_EventScript_Eli", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 41, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route8_EventScript_Anne", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 14, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP", + "movement_range_x": 5, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route8_EventScript_Ricardo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 24, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT", + "movement_range_x": 5, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route8_EventScript_Jaren", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 4, + "elevation": 0, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 7, + "y": 10, + "elevation": 3, + "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 16, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route8_EventScript_UndergroundPathSign" + }, + { + "type": "hidden_item", + "x": 42, + "y": 10, + "elevation": 3, + "item": "ITEM_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 38, + "y": 11, + "elevation": 3, + "item": "ITEM_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 42, + "y": 15, + "elevation": 3, + "item": "ITEM_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route8_Frlg/scripts.inc b/data/maps/Route8_Frlg/scripts.inc new file mode 100644 index 000000000000..77e7159de8af --- /dev/null +++ b/data/maps/Route8_Frlg/scripts.inc @@ -0,0 +1,169 @@ +Route8_Frlg_MapScripts:: + .byte 0 + +Route8_EventScript_UndergroundPathSign:: + msgbox Route8_Text_UndergroundPathSign, MSGBOX_SIGN + end + +Route8_Text_AidanIntro:: + .string "You look good at POKéMON, but how\n" + .string "is your chemistry grade?$" + +Route8_Text_AidanDefeat:: + .string "Ow!\n" + .string "Meltdown!$" + +Route8_Text_AidanPostBattle:: + .string "I am better at school than this!$" + +Route8_Text_StanIntro:: + .string "All right!\n" + .string "Let's play a game!$" + +Route8_Text_StanDefeat:: + .string "Drat!\n" + .string "Came up short!$" + +Route8_Text_StanPostBattle:: + .string "Things didn't work today.$" + +Route8_Text_GlennIntro:: + .string "You should be informed.\n" + .string "You need strategy to win at this!$" + +Route8_Text_GlennDefeat:: + .string "It's not logical!$" + +Route8_Text_GlennPostBattle:: + .string "Go with GRIMER first…and…\n" + .string "…and…then…$" + +Route8_Text_PaigeIntro:: + .string "I like NIDORAN, so I collect them!$" + +Route8_Text_PaigeDefeat:: + .string "Why?\n" + .string "Why??$" + +Route8_Text_PaigePostBattle:: + .string "When POKéMON grow up, they get\n" + .string "ugly! They shouldn't evolve.$" + +Route8_Text_LeslieIntro:: + .string "School is fun, but so are POKéMON.$" + +Route8_Text_LeslieDefeat:: + .string "You made it clear to me that\n" + .string "I should stick with school.$" + +Route8_Text_LesliePostBattle:: + .string "I was planning on getting some\n" + .string "fresh air for a change, but…\p" + .string "We're stuck here because of the\n" + .string "gates at SAFFRON.$" + +Route8_Text_AndreaIntro:: + .string "MEOWTH is so cute, meow, meow,\n" + .string "meow!$" + +Route8_Text_AndreaDefeat:: + .string "Meeeeyow!$" + +Route8_Text_AndreaPostBattle:: + .string "I think PIDGEY and RATTATA are\n" + .string "cute, too!$" + +Route8_Text_MeganIntro:: + .string "We must look silly standing here\n" + .string "like this.$" + +Route8_Text_MeganDefeat:: + .string "Look what you did to my poor, cute\n" + .string "POKéMON!$" + +Route8_Text_MeganPostBattle:: + .string "SAFFRON's gatekeeper won't let us\n" + .string "go through.\p" + .string "I know he's doing his job, but I\n" + .string "think he's mean.$" + +Route8_Text_RichIntro:: + .string "I'm a rambling, gaming dude!$" + +Route8_Text_RichDefeat:: + .string "Missed the big chance!$" + +Route8_Text_RichPostBattle:: + .string "Playing games and POKéMON are like\n" + .string "eating peanuts! I just can't stop!$" + +Route8_Text_JuliaIntro:: + .string "What's a cute, round, and fluffy\n" + .string "POKéMON?$" + +Route8_Text_JuliaDefeat:: + .string "Stop!\p" + .string "Don't be so mean to my CLEFAIRY!$" + +Route8_Text_JuliaPostBattle:: + .string "I read that CLEFAIRY evolves when\n" + .string "it's exposed to a MOON STONE.\p" + .string "I read that in a POKéMON JOURNAL.\n" + .string "I wonder if it's true?$" + +Route8_Text_UndergroundPathSign:: + .string "UNDERGROUND PATH\n" + .string "CELADON CITY - LAVENDER TOWN$" + +Route8_Text_EliIntro:: + .string "ELI: Twin power is fantastic.\n" + .string "Did you know?$" + +Route8_Text_EliDefeat:: + .string "ELI: But…\n" + .string "We used our twin power…$" + +Route8_Text_EliPostBattle:: + .string "ELI: I caught my POKéMON with\n" + .string "ANNE!$" + +Route8_Text_EliNotEnoughMons:: + .string "ELI: We can't battle if you don't\n" + .string "have two POKéMON.$" + +Route8_Text_AnneIntro:: + .string "ANNE: We'll shock you with our twin\n" + .string "power!$" + +Route8_Text_AnneDefeat:: + .string "ANNE: Our twin power…$" + +Route8_Text_AnnePostBattle:: + .string "ANNE: I'm raising POKéMON with\n" + .string "ELI.$" + +Route8_Text_AnneNotEnoughMons:: + .string "ANNE: Hi, hi! Let's battle!\n" + .string "But bring two POKéMON.$" + +Route8_Text_RicardoIntro:: + .string "My bike's acting up, man.$" + +Route8_Text_RicardoDefeat:: + .string "Aww, man.\n" + .string "I'm not into this.$" + +Route8_Text_RicardoPostBattle:: + .string "I got grass caught up in my\n" + .string "spokes, man.$" + +Route8_Text_JarenIntro:: + .string "Clear the way, or I'll run you\n" + .string "down!$" + +Route8_Text_JarenDefeat:: + .string "You for real, kid?$" + +Route8_Text_JarenPostBattle:: + .string "Don't think you're all special and\n" + .string "all just because of this.$" diff --git a/data/maps/Route8_WestEntrance_Frlg/map.json b/data/maps/Route8_WestEntrance_Frlg/map.json new file mode 100644 index 000000000000..b0b7c9dfad17 --- /dev/null +++ b/data/maps/Route8_WestEntrance_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_ROUTE8_WEST_ENTRANCE", + "name": "Route8_WestEntrance_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_EAST_WEST_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_8", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route8_WestEntrance_EventScript_Guard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "10" + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "10" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": "1" + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 6, + "y": 4, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route8_WestEntrance_EventScript_GuardTriggerTop" + }, + { + "type": "trigger", + "x": 6, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route8_WestEntrance_EventScript_GuardTriggerMid" + }, + { + "type": "trigger", + "x": 6, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES", + "var_value": "0", + "script": "Route8_WestEntrance_EventScript_GuardTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/Route8_WestEntrance_Frlg/scripts.inc b/data/maps/Route8_WestEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..c52be43f4dbc --- /dev/null +++ b/data/maps/Route8_WestEntrance_Frlg/scripts.inc @@ -0,0 +1,123 @@ +Route8_WestEntrance_Frlg_MapScripts:: + .byte 0 + +Route8_WestEntrance_EventScript_Guard:: + msgbox Route8_WestEntrance_Text_HiHowsItGoing, MSGBOX_NPC + end + +Route8_WestEntrance_EventScript_GuardTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + goto Route8_WestEntrance_EventScript_GuardTrigger + end + +Route8_WestEntrance_EventScript_GuardTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + goto Route8_WestEntrance_EventScript_GuardTrigger + end + +Route8_WestEntrance_EventScript_GuardTriggerBottom:: + lockall + setvar VAR_TEMP_1, 2 + goto Route8_WestEntrance_EventScript_GuardTrigger + end + +Route8_WestEntrance_EventScript_GuardTrigger:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + goto_if_set FLAG_GOT_TEA, Route8_WestEntrance_EventScript_GiveTea + msgbox Route8_WestEntrance_Text_ThirstyOnGuardDuty + closemessage + applymovement LOCALID_PLAYER, Route8_WestEntrance_Movement_BlockPlayerEntry + waitmovement 0 + releaseall + end + +Route8_WestEntrance_EventScript_GiveTea:: + removeitem ITEM_TEA + goto Route8_WestEntrance_EventScript_GuardDrinkTea + end + +@ Unused +Route8_WestEntrance_EventScript_GiveSodaPop:: + removeitem ITEM_SODA_POP + goto Route8_WestEntrance_EventScript_GuardDrinkTea + end + +@ Unused +Route8_WestEntrance_EventScript_GiveLemonade:: + removeitem ITEM_LEMONADE + goto Route8_WestEntrance_EventScript_GuardDrinkTea + end + +Route8_WestEntrance_EventScript_GuardDrinkTea:: + msgbox Route8_WestEntrance_Text_ThatTeaLooksTasty + closemessage + call_if_eq VAR_TEMP_1, 0, Route8_WestEntrance_EventScript_WalkToGuardTop + call_if_eq VAR_TEMP_1, 1, Route8_WestEntrance_EventScript_WalkToGuardMid + call_if_eq VAR_TEMP_1, 2, Route8_WestEntrance_EventScript_WalkToGuardBottom + msgbox Route8_WestEntrance_Text_ThanksIllShareTeaWithGuards + setvar VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES, 1 + releaseall + end + +Route8_WestEntrance_EventScript_WalkToGuardTop:: + applymovement LOCALID_PLAYER, Route8_WestEntrance_Movement_WalkToGuardTop + waitmovement 0 + return + +Route8_WestEntrance_EventScript_WalkToGuardMid:: + applymovement LOCALID_PLAYER, Route8_WestEntrance_Movement_WalkToGuardMid + waitmovement 0 + return + +Route8_WestEntrance_EventScript_WalkToGuardBottom:: + applymovement LOCALID_PLAYER, Route8_WestEntrance_Movement_WalkToGuardBottom + waitmovement 0 + return + +Route8_WestEntrance_Movement_WalkToGuardMid:: + walk_up + step_end + +Route8_WestEntrance_Movement_WalkToGuardBottom:: + walk_up + walk_up + step_end + +Route8_WestEntrance_Movement_WalkToGuardTop:: + walk_in_place_up + step_end + +Route8_WestEntrance_Movement_BlockPlayerEntry:: + walk_right + step_end + +Route8_WestEntrance_Text_ThirstyOnGuardDuty:: + .string "I'm on guard duty.\n" + .string "Gee, I'm thirsty, though!\p" + .string "Oh, wait there, the road's closed.$" + +Route8_WestEntrance_Text_ThatTeaLooksTasty:: + .string "Oh, that TEA…\n" + .string "It looks awfully tasty…$" + +Route8_WestEntrance_Text_ThanksIllShareTeaWithGuards:: + .string "Huh? I can have this drink?\n" + .string "Gee, thanks!\l" + .string "… …\l" + .string "Glug, glug…\l" + .string "… …\l" + .string "Gulp…\l" + .string "If you want to go to SAFFRON\l" + .string "CITY…\l" + .string "… …\l" + .string "You can go on through.\p" + .string "I'll share this TEA with the other\n" + .string "guards!$" + +Route8_WestEntrance_Text_HiHowsItGoing:: + .string "Hi, how's it going?$" + diff --git a/data/maps/Route9_Frlg/map.json b/data/maps/Route9_Frlg/map.json new file mode 100644 index 000000000000..7de2a3cdfc3c --- /dev/null +++ b/data/maps/Route9_Frlg/map.json @@ -0,0 +1,246 @@ +{ + "id": "MAP_ROUTE9", + "name": "Route9_Frlg", + "layout": "LAYOUT_ROUTE9", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ROUTE_9", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_CERULEAN_CITY", + "offset": -10, + "direction": "left" + }, + { + "map": "MAP_ROUTE10", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 14, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route9_EventScript_Alicia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 20, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route9_EventScript_Jeremy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 61, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route9_EventScript_Alan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 26, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route9_EventScript_Chris", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 26, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "Route9_EventScript_Brent", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 49, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "Route9_EventScript_Conner", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 53, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "Route9_EventScript_Brice", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 60, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "Route9_EventScript_Caitlin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 36, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "Route9_EventScript_Drew", + "flag": "0" + }, + { + "local_id": "LOCALID_ROUTE9_CUT_TREE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 2, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route9_EventScript_ItemTM40", + "flag": "FLAG_HIDE_ROUTE9_TM40" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 65, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Route9_EventScript_ItemBurnHeal", + "flag": "FLAG_HIDE_ROUTE9_BURN_HEAL" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 29, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "Route9_EventScript_RouteSign" + }, + { + "type": "hidden_item", + "x": 15, + "y": 7, + "elevation": 0, + "item": "ITEM_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_ETHER", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 63, + "y": 2, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 48, + "y": 2, + "elevation": 3, + "item": "ITEM_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/Route9_Frlg/scripts.inc b/data/maps/Route9_Frlg/scripts.inc new file mode 100644 index 000000000000..61b5e3122cea --- /dev/null +++ b/data/maps/Route9_Frlg/scripts.inc @@ -0,0 +1,113 @@ +Route9_Frlg_MapScripts:: + .byte 0 + +Route9_EventScript_RouteSign:: + msgbox Route9_Text_RouteSign, MSGBOX_SIGN + end + +Route9_Text_AliciaIntro:: + .string "You have POKéMON with you!\n" + .string "You're mine!$" + +Route9_Text_AliciaDefeat:: + .string "You deceived me…$" + +Route9_Text_AliciaPostBattle:: + .string "The tunnel coming up is pitch-black\n" + .string "inside.\p" + .string "You'll need FLASH to get through\n" + .string "there.$" + +Route9_Text_ChrisIntro:: + .string "Who's that walking there with those\n" + .string "good-looking POKéMON?$" + +Route9_Text_ChrisDefeat:: + .string "Out like a light!$" + +Route9_Text_ChrisPostBattle:: + .string "Keep walking!$" + +Route9_Text_DrewIntro:: + .string "I'm taking the ROCK TUNNEL to\n" + .string "go to LAVENDER…$" + +Route9_Text_DrewDefeat:: + .string "Can't measure up…$" + +Route9_Text_DrewPostBattle:: + .string "Are you off to ROCK TUNNEL, too?$" + +Route9_Text_CaitlinIntro:: + .string "Don't you dare patronize me!$" + +Route9_Text_CaitlinDefeat:: + .string "No!\n" + .string "You're too much.$" + +Route9_Text_CaitlinPostBattle:: + .string "You're obviously talented.\n" + .string "Good luck to you!$" + +Route9_Text_JeremyIntro:: + .string "Bwahaha!\n" + .string "Great! I was bored, eh!$" + +Route9_Text_JeremyDefeat:: + .string "Keep it coming, eh!\p" + .string "Oh wait.\n" + .string "I'm out of POKéMON!$" + +Route9_Text_JeremyPostBattle:: + .string "You sure had guts standing up to\n" + .string "me there, eh?$" + +Route9_Text_BriceIntro:: + .string "Hahaha!\n" + .string "Aren't you a little toughie!$" + +Route9_Text_BriceDefeat:: + .string "What's that?$" + +Route9_Text_BricePostBattle:: + .string "Hahaha!\n" + .string "Kids should be tough!$" + +Route9_Text_BrentIntro:: + .string "I got up early every day to raise\n" + .string "my POKéMON from cocoons!$" + +Route9_Text_BrentDefeat:: + .string "WHAT?\p" + .string "What a total waste of time!$" + +Route9_Text_BrentPostBattle:: + .string "I have to collect more than bugs\n" + .string "to get stronger…$" + +Route9_Text_AlanIntro:: + .string "Hahahaha!\n" + .string "Bring it on!$" + +Route9_Text_AlanDefeat:: + .string "Hahahaha!\n" + .string "You beat me fair!$" + +Route9_Text_AlanPostBattle:: + .string "Hahahaha!\n" + .string "Us hearty guys always laugh!$" + +Route9_Text_ConnerIntro:: + .string "Go, my super BUG POKéMON!$" + +Route9_Text_ConnerDefeat:: + .string "My bugs…$" + +Route9_Text_ConnerPostBattle:: + .string "If you don't like BUG POKéMON,\n" + .string "you bug me!$" + +Route9_Text_RouteSign:: + .string "ROUTE 9\n" + .string "CERULEAN CITY - ROCK TUNNEL$" + diff --git a/data/maps/RustboroCity_House1/scripts.inc b/data/maps/RustboroCity_House1/scripts.inc index 88a33786c0a6..b12fce094a48 100644 --- a/data/maps/RustboroCity_House1/scripts.inc +++ b/data/maps/RustboroCity_House1/scripts.inc @@ -5,26 +5,7 @@ RustboroCity_House1_EventScript_Trader:: lock faceplayer goto_if_set FLAG_RUSTBORO_NPC_TRADE_COMPLETED, RustboroCity_House1_EventScript_TradeCompleted - setvar VAR_0x8008, INGAME_TRADE_SEEDOT - copyvar VAR_0x8004, VAR_0x8008 - specialvar VAR_RESULT, GetInGameTradeSpeciesInfo - copyvar VAR_0x8009, VAR_RESULT - msgbox RustboroCity_House1_Text_IllTradeIfYouWant, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, RustboroCity_House1_EventScript_DeclineTrade - special ChoosePartyMon - waitstate - copyvar VAR_0x800A, VAR_0x8004 - 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 - goto_if_ne VAR_RESULT, VAR_0x8009, RustboroCity_House1_EventScript_NotRequestedMon - copyvar VAR_0x8004, VAR_0x8008 - copyvar VAR_0x8005, VAR_0x800A - special CreateInGameTradePokemon - special DoInGameTradeScene - waitstate - msgbox RustboroCity_House1_Text_PleaseBeGoodToMyPokemon, MSGBOX_DEFAULT + ingame_trade INGAME_TRADE_SEEDOT, RustboroCity_House1_Text_IllTradeIfYouWant, RustboroCity_House1_EventScript_DeclineTrade, RustboroCity_House1_EventScript_NotRequestedMon, RustboroCity_House1_Text_PleaseBeGoodToMyPokemon setflag FLAG_RUSTBORO_NPC_TRADE_COMPLETED release end diff --git a/data/maps/SSAnne_1F_Corridor_Frlg/map.json b/data/maps/SSAnne_1F_Corridor_Frlg/map.json new file mode 100644 index 000000000000..ec8aad26f40c --- /dev/null +++ b/data/maps/SSAnne_1F_Corridor_Frlg/map.json @@ -0,0 +1,143 @@ +{ + "id": "MAP_SSANNE_1F_CORRIDOR", + "name": "SSAnne_1F_Corridor_Frlg", + "layout": "LAYOUT_SSANNE_1F_CORRIDOR", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 18, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Corridor_EventScript_Sailor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 12, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Corridor_EventScript_WorkerM", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SSANNE_KITCHEN", + "dest_warp_id": "0" + }, + { + "x": 19, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": "2" + }, + { + "x": 20, + "y": 0, + "elevation": 0, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": "3" + }, + { + "x": 3, + "y": 20, + "elevation": 0, + "dest_map": "MAP_SSANNE_KITCHEN", + "dest_warp_id": "0" + }, + { + "x": 28, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM1", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM2", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM3", + "dest_warp_id": "0" + }, + { + "x": 14, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM4", + "dest_warp_id": "0" + }, + { + "x": 17, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM5", + "dest_warp_id": "0" + }, + { + "x": 23, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM7", + "dest_warp_id": "0" + }, + { + "x": 20, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_ROOM6", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Corridor_Frlg/scripts.inc b/data/maps/SSAnne_1F_Corridor_Frlg/scripts.inc new file mode 100644 index 000000000000..c5fc54d19408 --- /dev/null +++ b/data/maps/SSAnne_1F_Corridor_Frlg/scripts.inc @@ -0,0 +1,25 @@ +SSAnne_1F_Corridor_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Corridor_EventScript_WorkerM:: + msgbox SSAnne_1F_Corridor_Text_LeStrongSilentType, MSGBOX_NPC + end + +SSAnne_1F_Corridor_EventScript_Sailor:: + msgbox SSAnne_1F_Corridor_Text_PassengersAreRestless, MSGBOX_NPC + end + +SSAnne_1F_Corridor_Text_LeStrongSilentType:: + .string "Bonjour!\n" + .string "I am le waiter on this ship!\p" + .string "I will be happy to serve you\n" + .string "anything you please!\p" + .string "… … …\n" + .string "Ah! Le strong silent type!$" + +SSAnne_1F_Corridor_Text_PassengersAreRestless:: + .string "The passengers are restless from\n" + .string "this long voyage.\p" + .string "You might be challenged by the\n" + .string "more bored ones!$" + diff --git a/data/maps/SSAnne_1F_Room1_Frlg/map.json b/data/maps/SSAnne_1F_Room1_Frlg/map.json new file mode 100644 index 000000000000..970bd0317661 --- /dev/null +++ b/data/maps/SSAnne_1F_Room1_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SSANNE_1F_ROOM1", + "name": "SSAnne_1F_Room1_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room1_EventScript_Gentleman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room1_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room1_Frlg/scripts.inc new file mode 100644 index 000000000000..73f45d6b3a8a --- /dev/null +++ b/data/maps/SSAnne_1F_Room1_Frlg/scripts.inc @@ -0,0 +1,13 @@ +SSAnne_1F_Room1_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room1_EventScript_Gentleman:: + msgbox SSAnne_1F_Room1_Text_ImAGlobalPoliceAgent, MSGBOX_NPC + end + +SSAnne_1F_Room1_Text_ImAGlobalPoliceAgent:: + .string "Ssh…!\n" + .string "I'm a GLOBAL POLICE agent.\p" + .string "I'm on the trail of TEAM ROCKET.\n" + .string "They're up to nothing good!$" + diff --git a/data/maps/SSAnne_1F_Room2_Frlg/map.json b/data/maps/SSAnne_1F_Room2_Frlg/map.json new file mode 100644 index 000000000000..315e52b94d67 --- /dev/null +++ b/data/maps/SSAnne_1F_Room2_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SSANNE_1F_ROOM2", + "name": "SSAnne_1F_Room2_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SSAnne_1F_Room2_EventScript_Ann", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 0, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_1F_Room2_EventScript_Tyler", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "1", + "script": "SSAnne_1F_Room2_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room2_EventScript_ItemTM31", + "flag": "FLAG_HIDE_SSANNE_1F_ROOM2_TM31" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room2_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room2_Frlg/scripts.inc new file mode 100644 index 000000000000..36a764097f0c --- /dev/null +++ b/data/maps/SSAnne_1F_Room2_Frlg/scripts.inc @@ -0,0 +1,48 @@ +SSAnne_1F_Room2_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room2_EventScript_Woman:: + msgbox SSAnne_1F_Room2_Text_CruisingAroundWorld, MSGBOX_NPC + end + +SSAnne_1F_Room2_EventScript_Ann:: + trainerbattle_single TRAINER_LASS_ANN, SSAnne_1F_Room2_Text_AnnIntro, SSAnne_1F_Room2_Text_AnnDefeat + msgbox SSAnne_1F_Room2_Text_AnnPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_1F_Room2_EventScript_Tyler:: + trainerbattle_single TRAINER_YOUNGSTER_TYLER, SSAnne_1F_Room2_Text_TylerIntro, SSAnne_1F_Room2_Text_TylerDefeat + msgbox SSAnne_1F_Room2_Text_TylerPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_1F_Room2_Text_TylerIntro:: + .string "I love POKéMON!\n" + .string "Do you?$" + +SSAnne_1F_Room2_Text_TylerDefeat:: + .string "Wow! \n" + .string "You're great!$" + +SSAnne_1F_Room2_Text_TylerPostBattle:: + .string "Listen, listen!\n" + .string "Let me be your friend, okay?\p" + .string "Then we can trade POKéMON and\n" + .string "do stuff.$" + +SSAnne_1F_Room2_Text_AnnIntro:: + .string "I collected these POKéMON\n" + .string "from all around the world!$" + +SSAnne_1F_Room2_Text_AnnDefeat:: + .string "Oh, no!\n" + .string "I went around the world for these!$" + +SSAnne_1F_Room2_Text_AnnPostBattle:: + .string "You hurt my poor POKéMON!\p" + .string "I demand that you heal them at a\n" + .string "POKéMON CENTER!$" + +SSAnne_1F_Room2_Text_CruisingAroundWorld:: + .string "We are cruising around the world,\n" + .string "my children and I.$" + diff --git a/data/maps/SSAnne_1F_Room3_Frlg/map.json b/data/maps/SSAnne_1F_Room3_Frlg/map.json new file mode 100644 index 000000000000..dd61cb8abe4c --- /dev/null +++ b/data/maps/SSAnne_1F_Room3_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SSANNE_1F_ROOM3", + "name": "SSAnne_1F_Room3_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP", + "movement_range_x": 2, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room3_EventScript_LittleGirl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WIGGLYTUFF", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room3_EventScript_Wigglytuff", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 0, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room3_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "8" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room3_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room3_Frlg/scripts.inc new file mode 100644 index 000000000000..c253892b9914 --- /dev/null +++ b/data/maps/SSAnne_1F_Room3_Frlg/scripts.inc @@ -0,0 +1,32 @@ +SSAnne_1F_Room3_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room3_EventScript_LittleGirl:: + msgbox SSAnne_1F_Room3_Text_AlwaysTravelWithWigglytuff, MSGBOX_NPC + end + +SSAnne_1F_Room3_EventScript_BaldingMan:: + msgbox SSAnne_1F_Room3_Text_CruiseIsElegantAndCozy, MSGBOX_NPC + end + +SSAnne_1F_Room3_EventScript_Wigglytuff:: + lock + faceplayer + waitse + playmoncry SPECIES_WIGGLYTUFF, CRY_MODE_NORMAL + msgbox SSAnne_1F_Room3_Text_Wigglytuff + waitmoncry + release + end + +SSAnne_1F_Room3_Text_CruiseIsElegantAndCozy:: + .string "A world cruise is so elegant yet\n" + .string "cozy!$" + +SSAnne_1F_Room3_Text_AlwaysTravelWithWigglytuff:: + .string "I always travel with WIGGLYTUFF.\n" + .string "I never leave home without it.$" + +SSAnne_1F_Room3_Text_Wigglytuff:: + .string "WIGGLYTUFF: Puup pupuu!$" + diff --git a/data/maps/SSAnne_1F_Room4_Frlg/map.json b/data/maps/SSAnne_1F_Room4_Frlg/map.json new file mode 100644 index 000000000000..f5d9c67482b2 --- /dev/null +++ b/data/maps/SSAnne_1F_Room4_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SSANNE_1F_ROOM4", + "name": "SSAnne_1F_Room4_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room4_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "9" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room4_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room4_Frlg/scripts.inc new file mode 100644 index 000000000000..d5bdc2d82dc8 --- /dev/null +++ b/data/maps/SSAnne_1F_Room4_Frlg/scripts.inc @@ -0,0 +1,25 @@ +SSAnne_1F_Room4_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room4_EventScript_Woman:: + lock + faceplayer + checkplayergender + goto_if_eq VAR_RESULT, MALE, SSAnne_1F_Room4_EventScript_WomanPlayerMale + msgbox SSAnne_1F_Room4_Text_WaitressCherryPiePlease + release + end + +SSAnne_1F_Room4_EventScript_WomanPlayerMale:: + msgbox SSAnne_1F_Room4_Text_WaiterCherryPiePlease + release + end + +SSAnne_1F_Room4_Text_WaiterCherryPiePlease:: + .string "Waiter, I would like a cherry pie,\n" + .string "please!$" + +SSAnne_1F_Room4_Text_WaitressCherryPiePlease:: + .string "Waitress, I would like a cherry\n" + .string "pie, please!$" + diff --git a/data/maps/SSAnne_1F_Room5_Frlg/map.json b/data/maps/SSAnne_1F_Room5_Frlg/map.json new file mode 100644 index 000000000000..cf1c53a4ec6c --- /dev/null +++ b/data/maps/SSAnne_1F_Room5_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SSANNE_1F_ROOM5", + "name": "SSAnne_1F_Room5_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SSAnne_1F_Room5_EventScript_Arthur", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "10" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room5_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room5_Frlg/scripts.inc new file mode 100644 index 000000000000..fa1bcf87aeb6 --- /dev/null +++ b/data/maps/SSAnne_1F_Room5_Frlg/scripts.inc @@ -0,0 +1,20 @@ +SSAnne_1F_Room5_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room5_EventScript_Arthur:: + trainerbattle_single TRAINER_GENTLEMAN_ARTHUR, SSAnne_1F_Room5_Text_ArthurIntro, SSAnne_1F_Room5_Text_ArthurDefeat + msgbox SSAnne_1F_Room5_Text_ArthurPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_1F_Room5_Text_ArthurIntro:: + .string "You insolent pup!\n" + .string "How dare you barge in!$" + +SSAnne_1F_Room5_Text_ArthurDefeat:: + .string "Humph! You rude child!\n" + .string "You have no sense of courtesy!$" + +SSAnne_1F_Room5_Text_ArthurPostBattle:: + .string "I wish to be left alone!\n" + .string "Get out!$" + diff --git a/data/maps/SSAnne_1F_Room6_Frlg/map.json b/data/maps/SSAnne_1F_Room6_Frlg/map.json new file mode 100644 index 000000000000..d51d0ea93d54 --- /dev/null +++ b/data/maps/SSAnne_1F_Room6_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SSANNE_1F_ROOM6", + "name": "SSAnne_1F_Room6_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_1F_Room6_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "12" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room6_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room6_Frlg/scripts.inc new file mode 100644 index 000000000000..516376017da1 --- /dev/null +++ b/data/maps/SSAnne_1F_Room6_Frlg/scripts.inc @@ -0,0 +1,42 @@ +SSAnne_1F_Room6_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room6_EventScript_Woman:: + lock + faceplayer + msgbox SSAnne_1F_Room6_Text_TakeAShortRest, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SSAnne_1F_Room6_EventScript_DeclineHeal + closemessage + call Common_EventScript_OutOfCenterPartyHeal + msgbox SSAnne_1F_Room6_Text_GladEveryoneIsRefreshed + release + end + +SSAnne_1F_Room6_EventScript_DeclineHeal:: + checkplayergender + goto_if_eq VAR_RESULT, MALE, SSAnne_1F_Room6_EventScript_DeclineHealMale + msgbox SSAnne_1F_Room6_Text_SorryYouLookLikeMySister + release + end + +SSAnne_1F_Room6_EventScript_DeclineHealMale:: + msgbox SSAnne_1F_Room6_Text_SorryYouLookLikeMyBrother + release + end + +SSAnne_1F_Room6_Text_TakeAShortRest:: + .string "You look tired. Would you like to\n" + .string "take a short rest?$" + +SSAnne_1F_Room6_Text_GladEveryoneIsRefreshed:: + .string "I'm glad to see that everyone is\n" + .string "looking refreshed and chipper.$" + +SSAnne_1F_Room6_Text_SorryYouLookLikeMyBrother:: + .string "Oh, I'm sorry for fussing over you.\n" + .string "You look like my little brother…$" + +SSAnne_1F_Room6_Text_SorryYouLookLikeMySister:: + .string "Oh, I'm sorry for fussing over you.\n" + .string "You look like my little sister…$" + diff --git a/data/maps/SSAnne_1F_Room7_Frlg/map.json b/data/maps/SSAnne_1F_Room7_Frlg/map.json new file mode 100644 index 000000000000..da2e98d559aa --- /dev/null +++ b/data/maps/SSAnne_1F_Room7_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SSANNE_1F_ROOM7", + "name": "SSAnne_1F_Room7_Frlg", + "layout": "LAYOUT_SSANNE_ROOM1", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 4, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_1F_Room7_EventScript_Thomas", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "11" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_1F_Room7_Frlg/scripts.inc b/data/maps/SSAnne_1F_Room7_Frlg/scripts.inc new file mode 100644 index 000000000000..f15e2eb53059 --- /dev/null +++ b/data/maps/SSAnne_1F_Room7_Frlg/scripts.inc @@ -0,0 +1,19 @@ +SSAnne_1F_Room7_Frlg_MapScripts:: + .byte 0 + +SSAnne_1F_Room7_EventScript_Thomas:: + trainerbattle_single TRAINER_GENTLEMAN_THOMAS, SSAnne_1F_Room7_Text_ThomasIntro, SSAnne_1F_Room7_Text_ThomasDefeat + msgbox SSAnne_1F_Room7_Text_ThomasPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_1F_Room7_Text_ThomasIntro:: + .string "I am but a solitary traveler…\p" + .string "My sole companions and friends are\n" + .string "POKéMON I caught on my journeys…$" + +SSAnne_1F_Room7_Text_ThomasDefeat:: + .string "My, my friends…$" + +SSAnne_1F_Room7_Text_ThomasPostBattle:: + .string "You should be nice to friends!$" + diff --git a/data/maps/SSAnne_2F_Corridor_Frlg/map.json b/data/maps/SSAnne_2F_Corridor_Frlg/map.json new file mode 100644 index 000000000000..f46a7b2fe37d --- /dev/null +++ b/data/maps/SSAnne_2F_Corridor_Frlg/map.json @@ -0,0 +1,146 @@ +{ + "id": "MAP_SSANNE_2F_CORRIDOR", + "name": "SSAnne_2F_Corridor_Frlg", + "layout": "LAYOUT_SSANNE_2F_CORRIDOR", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_SS_ANNE_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 30, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SS_ANNE_RIVAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Corridor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 2, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SSANNE_3F_CORRIDOR", + "dest_warp_id": "1" + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SSANNE_CAPTAINS_OFFICE", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM1", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM2", + "dest_warp_id": "0" + }, + { + "x": 14, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM3", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM4", + "dest_warp_id": "0" + }, + { + "x": 22, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM5", + "dest_warp_id": "0" + }, + { + "x": 26, + "y": 10, + "elevation": 0, + "dest_map": "MAP_SSANNE_2F_ROOM6", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 30, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR", + "var_value": "0", + "script": "SSAnne_2F_Corridor_EventScript_RivalTriggerLeft" + }, + { + "type": "trigger", + "x": 31, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR", + "var_value": "0", + "script": "SSAnne_2F_Corridor_EventScript_RivalTriggerMid" + }, + { + "type": "trigger", + "x": 32, + "y": 6, + "elevation": 3, + "var": "VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR", + "var_value": "0", + "script": "SSAnne_2F_Corridor_EventScript_RivalTriggerRight" + } + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SSAnne_2F_Corridor_Frlg/scripts.inc b/data/maps/SSAnne_2F_Corridor_Frlg/scripts.inc new file mode 100644 index 000000000000..ba17c89a2fbc --- /dev/null +++ b/data/maps/SSAnne_2F_Corridor_Frlg/scripts.inc @@ -0,0 +1,207 @@ +SSAnne_2F_Corridor_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Corridor_EventScript_RivalTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto SSAnne_2F_Corridor_EventScript_RivalTrigger + end + +SSAnne_2F_Corridor_EventScript_RivalTriggerMid:: + lockall + setvar VAR_TEMP_1, 1 + goto SSAnne_2F_Corridor_EventScript_RivalTrigger + end + +SSAnne_2F_Corridor_EventScript_RivalTriggerRight:: + lockall + setvar VAR_TEMP_1, 2 + goto SSAnne_2F_Corridor_EventScript_RivalTrigger + end + +SSAnne_2F_Corridor_EventScript_RivalTrigger:: + textcolor NPC_TEXT_COLOR_MALE + playse SE_EXIT + delay 5 + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + addobject LOCALID_SS_ANNE_RIVAL + delay 10 + applymovement LOCALID_SS_ANNE_RIVAL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + delay 20 + call_if_eq VAR_TEMP_1, 0, SSAnne_2F_Corridor_EventScript_RivalApproachLeft + call_if_eq VAR_TEMP_1, 1, SSAnne_2F_Corridor_EventScript_RivalApproachMid + call_if_eq VAR_TEMP_1, 2, SSAnne_2F_Corridor_EventScript_RivalApproachRight + msgbox SSAnne_2F_Corridor_Text_RivalIntro + setvar VAR_LAST_TALKED, LOCALID_SS_ANNE_RIVAL + call_if_eq VAR_STARTER_MON, 2, SSAnne_2F_Corridor_EventScript_RivalSquirtle + call_if_eq VAR_STARTER_MON, 1, SSAnne_2F_Corridor_EventScript_RivalBulbasaur + call_if_eq VAR_STARTER_MON, 0, SSAnne_2F_Corridor_EventScript_RivalCharmander + msgbox SSAnne_2F_Corridor_Text_RivalPostBattle + closemessage + delay 10 + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_TEMP_1, 0, SSAnne_2F_Corridor_EventScript_RivalExitLeft + call_if_eq VAR_TEMP_1, 1, SSAnne_2F_Corridor_EventScript_RivalExitMid + call_if_eq VAR_TEMP_1, 2, SSAnne_2F_Corridor_EventScript_RivalExitRight + fadedefaultbgm + removeobject LOCALID_SS_ANNE_RIVAL + setvar VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR, 1 + releaseall + end + +SSAnne_2F_Corridor_EventScript_RivalApproachLeft:: + applymovement LOCALID_SS_ANNE_RIVAL, SSAnne_2F_Corridor_Movement_RivalApproachLeft + waitmovement 0 + return + +SSAnne_2F_Corridor_EventScript_RivalApproachMid:: + applymovement LOCALID_SS_ANNE_RIVAL, SSAnne_2F_Corridor_Movement_RivalApproachMid + applymovement LOCALID_PLAYER, SSAnne_2F_Corridor_Movement_PlayerFaceRivalMid + waitmovement 0 + return + +SSAnne_2F_Corridor_EventScript_RivalApproachRight:: + applymovement LOCALID_PLAYER, SSAnne_2F_Corridor_Movement_PlayerFaceRivalRight + applymovement LOCALID_SS_ANNE_RIVAL, SSAnne_2F_Corridor_Movement_RivalApproachRight + waitmovement 0 + return + +SSAnne_2F_Corridor_EventScript_RivalSquirtle:: + trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_SQUIRTLE, SSAnne_2F_Corridor_Text_RivalDefeat + return + +SSAnne_2F_Corridor_EventScript_RivalBulbasaur:: + trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_BULBASAUR, SSAnne_2F_Corridor_Text_RivalDefeat + return + +SSAnne_2F_Corridor_EventScript_RivalCharmander:: + trainerbattle_no_intro TRAINER_RIVAL_SS_ANNE_CHARMANDER, SSAnne_2F_Corridor_Text_RivalDefeat + return + +SSAnne_2F_Corridor_EventScript_RivalExitLeft:: + applymovement LOCALID_SS_ANNE_RIVAL, SSAnne_2F_Corridor_Movement_RivalExitLeft + waitmovement 0 + return + +SSAnne_2F_Corridor_EventScript_RivalExitMid:: + applymovement LOCALID_SS_ANNE_RIVAL, SSAnne_2F_Corridor_Movement_RivalExitMid + waitmovement 0 + return + +SSAnne_2F_Corridor_EventScript_RivalExitRight:: + applymovement LOCALID_SS_ANNE_RIVAL, SSAnne_2F_Corridor_Movement_RivalExitRight + waitmovement 0 + return + +SSAnne_2F_Corridor_Movement_PlayerFaceRivalRight:: + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_left + step_end + +SSAnne_2F_Corridor_Movement_PlayerFaceRivalMid:: + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_left + step_end + +SSAnne_2F_Corridor_Movement_RivalApproachLeft:: + walk_down + walk_down + walk_down + step_end + +SSAnne_2F_Corridor_Movement_RivalApproachMid:: + walk_down + walk_down + walk_down + walk_down + walk_in_place_faster_right + step_end + +SSAnne_2F_Corridor_Movement_RivalApproachRight:: + walk_down + walk_down + walk_down + walk_down + walk_right + delay_4 + step_end + +SSAnne_2F_Corridor_Movement_RivalExitLeft:: + walk_right + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +SSAnne_2F_Corridor_Movement_RivalExitMid:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +SSAnne_2F_Corridor_Movement_RivalExitRight:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end + +SSAnne_2F_Corridor_EventScript_Sailor:: + msgbox SSAnne_2F_Corridor_Text_ThisShipIsLuxuryLiner, MSGBOX_NPC + end + +SSAnne_2F_Corridor_Text_ThisShipIsLuxuryLiner:: + .string "This ship, she is a luxury liner for\n" + .string "TRAINERS of the world!\p" + .string "At every port, we hold parties with\n" + .string "invited TRAINERS.$" + +SSAnne_2F_Corridor_Text_RivalIntro:: + .string "{RIVAL}: Bonjour!\n" + .string "{PLAYER}!\p" + .string "Imagine seeing you here!\n" + .string "{PLAYER}, were you really invited?\p" + .string "So how's your POKéDEX coming?\p" + .string "I already caught 40 kinds, pal.\n" + .string "Different kinds are everywhere.\p" + .string "Crawl around in grassy areas, and\n" + .string "look hard for them.$" + +SSAnne_2F_Corridor_Text_RivalDefeat:: + .string "Humph!\p" + .string "At least you're raising your\n" + .string "POKéMON!$" + +SSAnne_2F_Corridor_Text_RivalVictory:: + .string "{PLAYER}..!\n" + .string "ふなよい してるのか!\p" + .string "もっと からだ\n" + .string "きたえた ほうが いいぜ!$" + +SSAnne_2F_Corridor_Text_RivalPostBattle:: + .string "{RIVAL}: I heard there was a CUT\n" + .string "master on board.\p" + .string "But he was just a seasick old man!\p" + .string "CUT itself is really useful.\n" + .string "Yup, it'll be handy.\p" + .string "You should go see him, too.\n" + .string "Smell ya!$" + diff --git a/data/maps/SSAnne_2F_Room1_Frlg/map.json b/data/maps/SSAnne_2F_Room1_Frlg/map.json new file mode 100644 index 000000000000..47459f44e49d --- /dev/null +++ b/data/maps/SSAnne_2F_Room1_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SSANNE_2F_ROOM1", + "name": "SSAnne_2F_Room1_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room1_EventScript_Gentleman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room1_Frlg/scripts.inc b/data/maps/SSAnne_2F_Room1_Frlg/scripts.inc new file mode 100644 index 000000000000..9ac61152587e --- /dev/null +++ b/data/maps/SSAnne_2F_Room1_Frlg/scripts.inc @@ -0,0 +1,22 @@ +SSAnne_2F_Room1_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Room1_EventScript_Gentleman:: + lock + faceplayer + message SSAnne_2F_Room1_Text_SleepingMonLookedLikeThis + waitmessage + setvar VAR_0x8004, SPECIES_SNORLAX + special SetSeenMon + showmonpic SPECIES_SNORLAX, 10, 3 + waitbuttonpress + hidemonpic + release + end + +SSAnne_2F_Room1_Text_SleepingMonLookedLikeThis:: + .string "I've journeyed far and wide, but in\n" + .string "all my travels I've never seen\l" + .string "any POKéMON sleep like this one!\p" + .string "It was something like this!$" + diff --git a/data/maps/SSAnne_2F_Room2_Frlg/map.json b/data/maps/SSAnne_2F_Room2_Frlg/map.json new file mode 100644 index 000000000000..b4545078ff87 --- /dev/null +++ b/data/maps/SSAnne_2F_Room2_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SSANNE_2F_ROOM2", + "name": "SSAnne_2F_Room2_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_2F_Room2_EventScript_Dale", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SSAnne_2F_Room2_EventScript_Brooks", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room2_EventScript_ItemStardust", + "flag": "FLAG_HIDE_SSANNE_2F_ROOM2_STARDUST" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room2_Frlg/scripts.inc b/data/maps/SSAnne_2F_Room2_Frlg/scripts.inc new file mode 100644 index 000000000000..70ae461db2c6 --- /dev/null +++ b/data/maps/SSAnne_2F_Room2_Frlg/scripts.inc @@ -0,0 +1,36 @@ +SSAnne_2F_Room2_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Room2_EventScript_Dale:: + trainerbattle_single TRAINER_FISHERMAN_DALE, SSAnne_2F_Room2_Text_DaleIntro, SSAnne_2F_Room2_Text_DaleDefeat + msgbox SSAnne_2F_Room2_Text_DalePostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_2F_Room2_EventScript_Brooks:: + trainerbattle_single TRAINER_GENTLEMAN_BROOKS, SSAnne_2F_Room2_Text_BrooksIntro, SSAnne_2F_Room2_Text_BrooksDefeat + msgbox SSAnne_2F_Room2_Text_BrooksPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_2F_Room2_Text_BrooksIntro:: + .string "Competing against the young keeps\n" + .string "me youthful.$" + +SSAnne_2F_Room2_Text_BrooksDefeat:: + .string "Good match!\n" + .string "Ah, I feel young again!$" + +SSAnne_2F_Room2_Text_BrooksPostBattle:: + .string "Fifteen years ago, I would\n" + .string "have won!$" + +SSAnne_2F_Room2_Text_DaleIntro:: + .string "Check out what I fished up!$" + +SSAnne_2F_Room2_Text_DaleDefeat:: + .string "I'm all out!$" + +SSAnne_2F_Room2_Text_DalePostBattle:: + .string "Party?\p" + .string "The cruise ship's party should be\n" + .string "over by now.$" + diff --git a/data/maps/SSAnne_2F_Room3_Frlg/map.json b/data/maps/SSAnne_2F_Room3_Frlg/map.json new file mode 100644 index 000000000000..1b670ecc753e --- /dev/null +++ b/data/maps/SSAnne_2F_Room3_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_2F_ROOM3", + "name": "SSAnne_2F_Room3_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room3_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room3_EventScript_OldMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room3_Frlg/scripts.inc b/data/maps/SSAnne_2F_Room3_Frlg/scripts.inc new file mode 100644 index 000000000000..95403cdd1b4d --- /dev/null +++ b/data/maps/SSAnne_2F_Room3_Frlg/scripts.inc @@ -0,0 +1,23 @@ +SSAnne_2F_Room3_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Room3_EventScript_Gentleman:: + msgbox SSAnne_2F_Room3_Text_SeenMonsFerryPeople, MSGBOX_NPC + end + +SSAnne_2F_Room3_EventScript_OldMan:: + msgbox SSAnne_2F_Room3_Text_SomeTreesCanBeCutDown, MSGBOX_NPC + end + +SSAnne_2F_Room3_Text_SeenMonsFerryPeople:: + .string "Ah, yes, I have seen some POKéMON\n" + .string "ferry people across the water!$" + +SSAnne_2F_Room3_Text_SomeTreesCanBeCutDown:: + .string "Small trees can be chopped down\n" + .string "using the move CUT.\p" + .string "But remember this!\n" + .string "CUT is an HM technique.\p" + .string "Once learned, it is not so easily\n" + .string "discarded.$" + diff --git a/data/maps/SSAnne_2F_Room4_Frlg/map.json b/data/maps/SSAnne_2F_Room4_Frlg/map.json new file mode 100644 index 000000000000..76babe94c6a7 --- /dev/null +++ b/data/maps/SSAnne_2F_Room4_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SSANNE_2F_ROOM4", + "name": "SSAnne_2F_Room4_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 0, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_2F_Room4_EventScript_Lamar", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_2F_Room4_EventScript_Dawn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room4_EventScript_ItemXAttack", + "flag": "FLAG_HIDE_SSANNE_2F_ROOM4_X_ATTACK" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room4_Frlg/scripts.inc b/data/maps/SSAnne_2F_Room4_Frlg/scripts.inc new file mode 100644 index 000000000000..34cc526bf95c --- /dev/null +++ b/data/maps/SSAnne_2F_Room4_Frlg/scripts.inc @@ -0,0 +1,35 @@ +SSAnne_2F_Room4_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Room4_EventScript_Lamar:: + trainerbattle_single TRAINER_GENTLEMAN_LAMAR, SSAnne_2F_Room4_Text_LamarIntro, SSAnne_2F_Room4_Text_LamarDefeat + msgbox SSAnne_2F_Room4_Text_LamarPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_2F_Room4_EventScript_Dawn:: + trainerbattle_single TRAINER_LASS_DAWN, SSAnne_2F_Room4_Text_DawnIntro, SSAnne_2F_Room4_Text_DawnDefeat + msgbox SSAnne_2F_Room4_Text_DawnPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_2F_Room4_Text_LamarIntro:: + .string "Which do you find more worthy,\n" + .string "a strong or a rare POKéMON?$" + +SSAnne_2F_Room4_Text_LamarDefeat:: + .string "I must salute you!$" + +SSAnne_2F_Room4_Text_LamarPostBattle:: + .string "Personally, I prefer strong and\n" + .string "rare POKéMON.$" + +SSAnne_2F_Room4_Text_DawnIntro:: + .string "I don't believe I saw you at the\n" + .string "party?$" + +SSAnne_2F_Room4_Text_DawnDefeat:: + .string "Take it easy!$" + +SSAnne_2F_Room4_Text_DawnPostBattle:: + .string "Oh, I adore your strong POKéMON!\n" + .string "Oh, how I envy you for them!$" + diff --git a/data/maps/SSAnne_2F_Room5_Frlg/map.json b/data/maps/SSAnne_2F_Room5_Frlg/map.json new file mode 100644 index 000000000000..9ce11044e893 --- /dev/null +++ b/data/maps/SSAnne_2F_Room5_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_2F_ROOM5", + "name": "SSAnne_2F_Room5_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room5_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room5_EventScript_LittleBoy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room5_Frlg/scripts.inc b/data/maps/SSAnne_2F_Room5_Frlg/scripts.inc new file mode 100644 index 000000000000..88b1174aa206 --- /dev/null +++ b/data/maps/SSAnne_2F_Room5_Frlg/scripts.inc @@ -0,0 +1,22 @@ +SSAnne_2F_Room5_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Room5_EventScript_Gentleman:: + msgbox SSAnne_2F_Room5_Text_HaveYouGoneToSafariZone, MSGBOX_NPC + end + +SSAnne_2F_Room5_EventScript_LittleBoy:: + msgbox SSAnne_2F_Room5_Text_WeThinkSafariZoneIsAwesome, MSGBOX_NPC + end + +SSAnne_2F_Room5_Text_HaveYouGoneToSafariZone:: + .string "Have you gone to the SAFARI ZONE\n" + .string "in FUCHSIA CITY?\p" + .string "There are many kinds of rare\n" + .string "POKéMON.$" + +SSAnne_2F_Room5_Text_WeThinkSafariZoneIsAwesome:: + .string "Me and my daddy think the SAFARI\n" + .string "ZONE is awesome!\l" + .string "I wish we could go there again.$" + diff --git a/data/maps/SSAnne_2F_Room6_Frlg/map.json b/data/maps/SSAnne_2F_Room6_Frlg/map.json new file mode 100644 index 000000000000..527502770c17 --- /dev/null +++ b/data/maps/SSAnne_2F_Room6_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_2F_ROOM6", + "name": "SSAnne_2F_Room6_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room6_EventScript_Woman2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_2F_Room6_EventScript_Woman1", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "8" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_2F_Room6_Frlg/scripts.inc b/data/maps/SSAnne_2F_Room6_Frlg/scripts.inc new file mode 100644 index 000000000000..24af679789fe --- /dev/null +++ b/data/maps/SSAnne_2F_Room6_Frlg/scripts.inc @@ -0,0 +1,18 @@ +SSAnne_2F_Room6_Frlg_MapScripts:: + .byte 0 + +SSAnne_2F_Room6_EventScript_Woman1:: + msgbox SSAnne_2F_Room6_Text_CaptainIsAwfullySick, MSGBOX_NPC + end + +SSAnne_2F_Room6_EventScript_Woman2:: + msgbox SSAnne_2F_Room6_Text_ManyPeopleGetSeasick, MSGBOX_NPC + end + +SSAnne_2F_Room6_Text_CaptainIsAwfullySick:: + .string "The CAPTAIN said he's awfully sick.\n" + .string "He was all pale.$" + +SSAnne_2F_Room6_Text_ManyPeopleGetSeasick:: + .string "I hear many people get seasick.$" + diff --git a/data/maps/SSAnne_3F_Corridor_Frlg/map.json b/data/maps/SSAnne_3F_Corridor_Frlg/map.json new file mode 100644 index 000000000000..e6a9cc7246e5 --- /dev/null +++ b/data/maps/SSAnne_3F_Corridor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_3F_CORRIDOR", + "name": "SSAnne_3F_Corridor_Frlg", + "layout": "LAYOUT_SSANNE_3F_CORRIDOR", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 10, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_3F_Corridor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SSANNE_DECK", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "1" + }, + { + "x": 0, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SSANNE_DECK", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_3F_Corridor_Frlg/scripts.inc b/data/maps/SSAnne_3F_Corridor_Frlg/scripts.inc new file mode 100644 index 000000000000..79b34459e4c6 --- /dev/null +++ b/data/maps/SSAnne_3F_Corridor_Frlg/scripts.inc @@ -0,0 +1,13 @@ +SSAnne_3F_Corridor_Frlg_MapScripts:: + .byte 0 + +SSAnne_3F_Corridor_EventScript_Sailor:: + msgbox SSAnne_3F_Corridor_Text_CaptainTeachesCutToMons, MSGBOX_NPC + end + +SSAnne_3F_Corridor_Text_CaptainTeachesCutToMons:: + .string "Our CAPTAIN is a sword master.\n" + .string "He's awesome at using CUT.\p" + .string "They say he even teaches CUT\n" + .string "to POKéMON!$" + diff --git a/data/maps/SSAnne_B1F_Corridor_Frlg/map.json b/data/maps/SSAnne_B1F_Corridor_Frlg/map.json new file mode 100644 index 000000000000..df763d38e2fa --- /dev/null +++ b/data/maps/SSAnne_B1F_Corridor_Frlg/map.json @@ -0,0 +1,80 @@ +{ + "id": "MAP_SSANNE_B1F_CORRIDOR", + "name": "SSAnne_B1F_Corridor_Frlg", + "layout": "LAYOUT_SSANNE_B1F_CORRIDOR", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 19, + "y": 3, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "5" + }, + { + "x": 2, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM1", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM2", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM3", + "dest_warp_id": "0" + }, + { + "x": 14, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM4", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SSANNE_B1F_ROOM5", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 21, + "y": 5, + "elevation": 3, + "item": "ITEM_HYPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SSAnne_B1F_Corridor_Frlg/scripts.inc b/data/maps/SSAnne_B1F_Corridor_Frlg/scripts.inc new file mode 100644 index 000000000000..7bc760a16367 --- /dev/null +++ b/data/maps/SSAnne_B1F_Corridor_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SSAnne_B1F_Corridor_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SSAnne_B1F_Room1_Frlg/map.json b/data/maps/SSAnne_B1F_Room1_Frlg/map.json new file mode 100644 index 000000000000..9303779805c9 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room1_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM1", + "name": "SSAnne_B1F_Room1_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SSAnne_B1F_Room1_EventScript_Barny", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SSAnne_B1F_Room1_EventScript_Phillip", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room1_Frlg/scripts.inc b/data/maps/SSAnne_B1F_Room1_Frlg/scripts.inc new file mode 100644 index 000000000000..1039dea99ea1 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room1_Frlg/scripts.inc @@ -0,0 +1,39 @@ +SSAnne_B1F_Room1_Frlg_MapScripts:: + .byte 0 + +SSAnne_B1F_Room1_EventScript_Barny:: + trainerbattle_single TRAINER_FISHERMAN_BARNY, SSAnne_B1F_Room1_Text_BarnyIntro, SSAnne_B1F_Room1_Text_BarnyDefeat + msgbox SSAnne_B1F_Room1_Text_BarnyPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_B1F_Room1_EventScript_Phillip:: + trainerbattle_single TRAINER_SAILOR_PHILLIP, SSAnne_B1F_Room1_Text_PhillipIntro, SSAnne_B1F_Room1_Text_PhillipDefeat + msgbox SSAnne_B1F_Room1_Text_PhillipPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_B1F_Room1_Text_PhillipIntro:: + .string "Matey, you're walking the plank if\n" + .string "you lose!$" + +SSAnne_B1F_Room1_Text_PhillipDefeat:: + .string "Argh!\n" + .string "Beaten by a kid!$" + +SSAnne_B1F_Room1_Text_PhillipPostBattle:: + .string "When we're out at sea, jellyfish\n" + .string "POKéMON sometimes drift by.$" + +SSAnne_B1F_Room1_Text_BarnyIntro:: + .string "Hello, stranger!\p" + .string "I can't tell if you're from the seas\n" + .string "or mountains, but stop and chat.\p" + .string "All my POKéMON are from the sea.$" + +SSAnne_B1F_Room1_Text_BarnyDefeat:: + .string "Darn!\n" + .string "I let that one get away!$" + +SSAnne_B1F_Room1_Text_BarnyPostBattle:: + .string "I was going to make you my\n" + .string "assistant, too!$" + diff --git a/data/maps/SSAnne_B1F_Room2_Frlg/map.json b/data/maps/SSAnne_B1F_Room2_Frlg/map.json new file mode 100644 index 000000000000..a02b5e236ae2 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room2_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM2", + "name": "SSAnne_B1F_Room2_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SSAnne_B1F_Room2_EventScript_Huey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_B1F_Room2_EventScript_ItemTM44", + "flag": "FLAG_HIDE_SSANNE_B1F_ROOM2_TM44" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room2_Frlg/scripts.inc b/data/maps/SSAnne_B1F_Room2_Frlg/scripts.inc new file mode 100644 index 000000000000..577799e08549 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room2_Frlg/scripts.inc @@ -0,0 +1,18 @@ +SSAnne_B1F_Room2_Frlg_MapScripts:: + .byte 0 + +SSAnne_B1F_Room2_EventScript_Huey:: + trainerbattle_single TRAINER_SAILOR_HUEY, SSAnne_B1F_Room2_Text_HueyIntro, SSAnne_B1F_Room2_Text_HueyDefeat + msgbox SSAnne_B1F_Room2_Text_HueyPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_B1F_Room2_Text_HueyIntro:: + .string "Even us sailors have POKéMON, too!$" + +SSAnne_B1F_Room2_Text_HueyDefeat:: + .string "Okay, you're not bad.$" + +SSAnne_B1F_Room2_Text_HueyPostBattle:: + .string "We caught all our POKéMON while\n" + .string "we were out at sea.$" + diff --git a/data/maps/SSAnne_B1F_Room3_Frlg/map.json b/data/maps/SSAnne_B1F_Room3_Frlg/map.json new file mode 100644 index 000000000000..942c7cb3662a --- /dev/null +++ b/data/maps/SSAnne_B1F_Room3_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM3", + "name": "SSAnne_B1F_Room3_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_B1F_Room3_EventScript_Dylan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_B1F_Room3_EventScript_ItemEther", + "flag": "FLAG_HIDE_SSANNE_B1F_ROOM3_ETHER" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room3_Frlg/scripts.inc b/data/maps/SSAnne_B1F_Room3_Frlg/scripts.inc new file mode 100644 index 000000000000..4fe08fa5fbe1 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room3_Frlg/scripts.inc @@ -0,0 +1,19 @@ +SSAnne_B1F_Room3_Frlg_MapScripts:: + .byte 0 + +SSAnne_B1F_Room3_EventScript_Dylan:: + trainerbattle_single TRAINER_SAILOR_DYLAN, SSAnne_B1F_Room3_Text_DylanIntro, SSAnne_B1F_Room3_Text_DylanDefeat + msgbox SSAnne_B1F_Room3_Text_DylanPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_B1F_Room3_Text_DylanIntro:: + .string "I like feisty kids like you!$" + +SSAnne_B1F_Room3_Text_DylanDefeat:: + .string "Argh!\n" + .string "Lost it!$" + +SSAnne_B1F_Room3_Text_DylanPostBattle:: + .string "Sea POKéMON live in deep water.\n" + .string "You'll need a ROD to fish them up!$" + diff --git a/data/maps/SSAnne_B1F_Room4_Frlg/map.json b/data/maps/SSAnne_B1F_Room4_Frlg/map.json new file mode 100644 index 000000000000..304395c92adb --- /dev/null +++ b/data/maps/SSAnne_B1F_Room4_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM4", + "name": "SSAnne_B1F_Room4_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SSAnne_B1F_Room4_EventScript_Duncan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SSAnne_B1F_Room4_EventScript_Leonard", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room4_Frlg/scripts.inc b/data/maps/SSAnne_B1F_Room4_Frlg/scripts.inc new file mode 100644 index 000000000000..0f03863ff39c --- /dev/null +++ b/data/maps/SSAnne_B1F_Room4_Frlg/scripts.inc @@ -0,0 +1,36 @@ +SSAnne_B1F_Room4_Frlg_MapScripts:: + .byte 0 + +SSAnne_B1F_Room4_EventScript_Leonard:: + trainerbattle_single TRAINER_SAILOR_LEONARD, SSAnne_B1F_Room4_Text_LeonardIntro, SSAnne_B1F_Room4_Text_LeonardDefeat + msgbox SSAnne_B1F_Room4_Text_LeonardPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_B1F_Room4_EventScript_Duncan:: + trainerbattle_single TRAINER_SAILOR_DUNCAN, SSAnne_B1F_Room4_Text_DuncanIntro, SSAnne_B1F_Room4_Text_DuncanDefeat + msgbox SSAnne_B1F_Room4_Text_DuncanPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_B1F_Room4_Text_LeonardIntro:: + .string "You know what they say about\n" + .string "sailors and battling!$" + +SSAnne_B1F_Room4_Text_LeonardDefeat:: + .string "Right!\n" + .string "Good battle, mate!$" + +SSAnne_B1F_Room4_Text_LeonardPostBattle:: + .string "Hahaha!\n" + .string "Want to be a sailor, mate?$" + +SSAnne_B1F_Room4_Text_DuncanIntro:: + .string "Come on, then!\n" + .string "My sailor's pride is at stake!$" + +SSAnne_B1F_Room4_Text_DuncanDefeat:: + .string "Your spirit sank me!$" + +SSAnne_B1F_Room4_Text_DuncanPostBattle:: + .string "Did you see the FISHING GURU in\n" + .string "VERMILION CITY?$" + diff --git a/data/maps/SSAnne_B1F_Room5_Frlg/map.json b/data/maps/SSAnne_B1F_Room5_Frlg/map.json new file mode 100644 index 000000000000..0d72ea4daf78 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room5_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SSANNE_B1F_ROOM5", + "name": "SSAnne_B1F_Room5_Frlg", + "layout": "LAYOUT_SSANNE_ROOM2", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_B1F_Room5_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MACHOKE", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_B1F_Room5_EventScript_Machoke", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_B1F_Room5_EventScript_ItemSuperPotion", + "flag": "FLAG_HIDE_SSANNE_B1F_ROOM5_SUPER_POTION" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_B1F_CORRIDOR", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_B1F_Room5_Frlg/scripts.inc b/data/maps/SSAnne_B1F_Room5_Frlg/scripts.inc new file mode 100644 index 000000000000..815bb0e0b108 --- /dev/null +++ b/data/maps/SSAnne_B1F_Room5_Frlg/scripts.inc @@ -0,0 +1,25 @@ +SSAnne_B1F_Room5_Frlg_MapScripts:: + .byte 0 + +SSAnne_B1F_Room5_EventScript_Boy:: + msgbox SSAnne_B1F_Room5_Text_MachokeHasStrengthToMoveRocks, MSGBOX_NPC + end + +SSAnne_B1F_Room5_EventScript_Machoke:: + lock + faceplayer + waitse + playmoncry SPECIES_MACHOKE, CRY_MODE_NORMAL + msgbox SSAnne_B1F_Room5_Text_Machoke + waitmoncry + release + end + +SSAnne_B1F_Room5_Text_MachokeHasStrengthToMoveRocks:: + .string "My buddy MACHOKE is super strong!\p" + .string "He has enough STRENGTH to move\n" + .string "big rocks!$" + +SSAnne_B1F_Room5_Text_Machoke:: + .string "MACHOKE: Gwoh! Goggoh!$" + diff --git a/data/maps/SSAnne_CaptainsOffice_Frlg/map.json b/data/maps/SSAnne_CaptainsOffice_Frlg/map.json new file mode 100644 index 000000000000..a41ca64400b4 --- /dev/null +++ b/data/maps/SSAnne_CaptainsOffice_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SSANNE_CAPTAINS_OFFICE", + "name": "SSAnne_CaptainsOffice_Frlg", + "layout": "LAYOUT_SSANNE_CAPTAINS_OFFICE", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_SS_ANNE_CAPTAIN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAPTAIN", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_CaptainsOffice_EventScript_Captain", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SSANNE_2F_CORRIDOR", + "dest_warp_id": "2" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 2, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SSAnne_CaptainsOffice_EventScript_Book" + }, + { + "type": "sign", + "x": 5, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SSAnne_CaptainsOffice_EventScript_TrashCan" + }, + { + "type": "sign", + "x": 2, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SSAnne_CaptainsOffice_EventScript_Book" + } + ] +} diff --git a/data/maps/SSAnne_CaptainsOffice_Frlg/scripts.inc b/data/maps/SSAnne_CaptainsOffice_Frlg/scripts.inc new file mode 100644 index 000000000000..4369c0a8292e --- /dev/null +++ b/data/maps/SSAnne_CaptainsOffice_Frlg/scripts.inc @@ -0,0 +1,101 @@ +SSAnne_CaptainsOffice_Frlg_MapScripts:: + .byte 0 + +SSAnne_CaptainsOffice_EventScript_Captain:: + lock + goto_if_set FLAG_GOT_HM01, SSAnne_CaptainsOffice_EventScript_AlreadyGotCut + msgbox SSAnne_CaptainsOffice_Text_CaptainIFeelSeasick + textcolor NPC_TEXT_COLOR_NEUTRAL + message SSAnne_CaptainsOffice_Text_RubbedCaptainsBack + waitmessage + playfanfare MUS_HEAL + waitfanfare + call EventScript_RestorePrevTextColor + delay 50 + applymovement LOCALID_SS_ANNE_CAPTAIN, Common_Movement_FacePlayer + waitmovement 0 + msgbox SSAnne_CaptainsOffice_Text_ThankYouHaveHMForCut + giveitem_msg SSAnne_CaptainsOffice_Text_ObtainedHM01FromCaptain, ITEM_HM01, 1, MUS_RG_OBTAIN_KEY_ITEM + msgbox SSAnne_CaptainsOffice_Text_ExplainCut + setflag FLAG_GOT_HM01 + setvar VAR_MAP_SCENE_VERMILION_CITY, 1 + release + end + +@ Unused +SSAnne_CaptainsOffice_EventScript_NoRoomForCut:: + msgbox SSAnne_CaptainsOffice_Text_YouHaveNoRoomForThis + closemessage + applymovement LOCALID_SS_ANNE_CAPTAIN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +SSAnne_CaptainsOffice_EventScript_AlreadyGotCut:: + applymovement LOCALID_SS_ANNE_CAPTAIN, Common_Movement_FacePlayer + waitmovement 0 + msgbox SSAnne_CaptainsOffice_Text_SSAnneWillSetSailSoon + release + end + +SSAnne_CaptainsOffice_EventScript_TrashCan:: + msgbox SSAnne_CaptainsOffice_Text_YuckShouldntHaveLooked, MSGBOX_SIGN + end + +SSAnne_CaptainsOffice_EventScript_Book:: + msgbox SSAnne_CaptainsOffice_Text_HowToConquerSeasickness, MSGBOX_SIGN + end + +SSAnne_CaptainsOffice_Text_CaptainIFeelSeasick:: + .string "CAPTAIN: Ooargh…\n" + .string "I feel hideous…\l" + .string "Urrp! Seasick…$" + +SSAnne_CaptainsOffice_Text_RubbedCaptainsBack:: + .string "{PLAYER} rubbed the CAPTAIN's\n" + .string "back!\p" + .string "Rub-rub…\n" + .string "Rub-rub…$" + +SSAnne_CaptainsOffice_Text_ThankYouHaveHMForCut:: + .string "CAPTAIN: Whew! Thank you!\n" + .string "I'm feeling much better now.\p" + .string "You want to see my hidden CUT\n" + .string "technique?\p" + .string "I could show you my prized CUT\n" + .string "technique if I weren't so ill…\p" + .string "I know! You can have this!\n" + .string "This HIDDEN MACHINE!\p" + .string "Teach CUT to your POKéMON, and\n" + .string "you can see it CUT anytime!$" + +SSAnne_CaptainsOffice_Text_ObtainedHM01FromCaptain:: + .string "{PLAYER} obtained HM01\n" + .string "from the CAPTAIN!$" + +SSAnne_CaptainsOffice_Text_ExplainCut:: + .string "Using CUT, you can chop down\n" + .string "small trees.\p" + .string "Why not try it with the trees\n" + .string "around VERMILION CITY?$" + +SSAnne_CaptainsOffice_Text_SSAnneWillSetSailSoon:: + .string "CAPTAIN: …Whew!\p" + .string "Now that I'm not sick anymore,\n" + .string "I guess it's time.\p" + .string "The S.S. ANNE will set sail soon!\p" + .string "Farewell, until our return to\n" + .string "VERMILION CITY!$" + +SSAnne_CaptainsOffice_Text_YouHaveNoRoomForThis:: + .string "Oh, no!\n" + .string "You have no room for this!$" + +SSAnne_CaptainsOffice_Text_YuckShouldntHaveLooked:: + .string "Yuck!\n" + .string "Shouldn't have looked!$" + +SSAnne_CaptainsOffice_Text_HowToConquerSeasickness:: + .string "How to Conquer Seasickness…\n" + .string "The CAPTAIN's reading this!$" + diff --git a/data/maps/SSAnne_Deck_Frlg/map.json b/data/maps/SSAnne_Deck_Frlg/map.json new file mode 100644 index 000000000000..96ee918d5dc5 --- /dev/null +++ b/data/maps/SSAnne_Deck_Frlg/map.json @@ -0,0 +1,108 @@ +{ + "id": "MAP_SSANNE_DECK", + "name": "SSAnne_Deck_Frlg", + "layout": "LAYOUT_SSANNE_DECK", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 12, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SSAnne_Deck_EventScript_Trevor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 14, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Deck_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 13, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Deck_EventScript_Sailor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 6, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SSAnne_Deck_EventScript_Edmond", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Deck_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 16, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SSANNE_3F_CORRIDOR", + "dest_warp_id": "0" + }, + { + "x": 16, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SSANNE_3F_CORRIDOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SSAnne_Deck_Frlg/scripts.inc b/data/maps/SSAnne_Deck_Frlg/scripts.inc new file mode 100644 index 000000000000..9bef97aaf4e8 --- /dev/null +++ b/data/maps/SSAnne_Deck_Frlg/scripts.inc @@ -0,0 +1,60 @@ +SSAnne_Deck_Frlg_MapScripts:: + .byte 0 + +SSAnne_Deck_EventScript_Youngster:: + msgbox SSAnne_Deck_Text_ShipDepartingSoon, MSGBOX_NPC + end + +SSAnne_Deck_EventScript_BaldingMan:: + msgbox SSAnne_Deck_Text_FeelSeasick, MSGBOX_NPC + end + +SSAnne_Deck_EventScript_Sailor:: + msgbox SSAnne_Deck_Text_ScrubbingDecksHardWork, MSGBOX_NPC + end + +SSAnne_Deck_EventScript_Edmond:: + trainerbattle_single TRAINER_SAILOR_EDMOND, SSAnne_Deck_Text_EdmondIntro, SSAnne_Deck_Text_EdmondDefeat + msgbox SSAnne_Deck_Text_EdmondPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_Deck_EventScript_Trevor:: + trainerbattle_single TRAINER_SAILOR_TREVOR, SSAnne_Deck_Text_TrevorIntro, SSAnne_Deck_Text_TrevorDefeat + msgbox SSAnne_Deck_Text_TrevorPostBattle, MSGBOX_AUTOCLOSE + end + +SSAnne_Deck_Text_ShipDepartingSoon:: + .string "The party's over.\n" + .string "The ship will be departing soon.$" + +SSAnne_Deck_Text_ScrubbingDecksHardWork:: + .string "Whew!\n" + .string "Scrubbing decks is hard work!$" + +SSAnne_Deck_Text_FeelSeasick:: + .string "Urf… I feel ill…\p" + .string "I got seasick, so I stepped out to\n" + .string "get some air…$" + +SSAnne_Deck_Text_EdmondIntro:: + .string "Hey, matey!\p" + .string "Let's do a little jig!$" + +SSAnne_Deck_Text_EdmondDefeat:: + .string "You're impressive!$" + +SSAnne_Deck_Text_EdmondPostBattle:: + .string "How many kinds of POKéMON do you\n" + .string "think there are in this big world?$" + +SSAnne_Deck_Text_TrevorIntro:: + .string "Ahoy, there!\n" + .string "Are you seasick?$" + +SSAnne_Deck_Text_TrevorDefeat:: + .string "I was just careless!$" + +SSAnne_Deck_Text_TrevorPostBattle:: + .string "My pa said there are 100 kinds of\n" + .string "POKéMON. I think there are more.$" + diff --git a/data/maps/SSAnne_Exterior_Frlg/map.json b/data/maps/SSAnne_Exterior_Frlg/map.json new file mode 100644 index 000000000000..59c99f191f8a --- /dev/null +++ b/data/maps/SSAnne_Exterior_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SSANNE_EXTERIOR", + "name": "SSAnne_Exterior_Frlg", + "layout": "LAYOUT_SSANNE_EXTERIOR", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_SS_ANNE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SS_ANNE", + "x": 30, + "y": 16, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SS_ANNE" + } + ], + "warp_events": [ + { + "x": 31, + "y": 5, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "0" + }, + { + "x": 32, + "y": 5, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "1" + }, + { + "x": 32, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "2" + }, + { + "x": 33, + "y": 15, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "3" + }, + { + "x": 33, + "y": 5, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "2" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 58, + "y": 28, + "elevation": 3, + "item": "ITEM_LAVA_COOKIE", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SSAnne_Exterior_Frlg/scripts.inc b/data/maps/SSAnne_Exterior_Frlg/scripts.inc new file mode 100644 index 000000000000..16e931943c86 --- /dev/null +++ b/data/maps/SSAnne_Exterior_Frlg/scripts.inc @@ -0,0 +1,65 @@ +SSAnne_Exterior_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SSAnne_Exterior_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, SSAnne_Exterior_OnFrame + .byte 0 + +SSAnne_Exterior_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SSANNE_EXTERIOR + end + +SSAnne_Exterior_OnFrame:: + map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 1, SSAnne_Exterior_ExitSSAnne + .2byte 0 + +SSAnne_Exterior_ExitSSAnne:: + lockall + getplayerxy VAR_0x8004, VAR_0x8005 + call_if_le VAR_0x8005, 6, SSAnne_Exterior_WalkDown + call_if_ge VAR_0x8005, 7, SSAnne_Exterior_WalkInPlaceDown + fadenewbgm MUS_SURF + delay 50 + special DoSSAnneDepartureCutscene + waitstate + removeobject LOCALID_SS_ANNE + applymovement LOCALID_PLAYER, SSAnne_Exterior_Movement_Exit + waitmovement 0 + setvar VAR_MAP_SCENE_VERMILION_CITY, 2 + setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 0 + warp MAP_VERMILION_CITY, 23, 34 + waitstate + releaseall + end + +SSAnne_Exterior_WalkDown:: + applymovement LOCALID_PLAYER, SSAnne_Exterior_Movement_WalkDown + waitmovement 0 + return + +SSAnne_Exterior_WalkInPlaceDown:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +SSAnne_Exterior_Movement_Exit:: + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + walk_up + step_end + +SSAnne_Exterior_Movement_WalkDown:: + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + walk_down + step_end diff --git a/data/maps/SSAnne_Kitchen_Frlg/map.json b/data/maps/SSAnne_Kitchen_Frlg/map.json new file mode 100644 index 000000000000..cb9cef62ada2 --- /dev/null +++ b/data/maps/SSAnne_Kitchen_Frlg/map.json @@ -0,0 +1,176 @@ +{ + "id": "MAP_SSANNE_KITCHEN", + "name": "SSAnne_Kitchen_Frlg", + "layout": "LAYOUT_SSANNE_KITCHEN", + "music": "MUS_RG_SS_ANNE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_S_S_ANNE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 1, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 10, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef3", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef4", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 14, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef5", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 14, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef6", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHEF", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_Chef7", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SSAnne_Kitchen_EventScript_ItemGreatBall", + "flag": "FLAG_HIDE_SSANNE_KITCHEN_GREAT_BALL" + } + ], + "warp_events": [ + { + "x": 7, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SSANNE_1F_CORRIDOR", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 14, + "y": 8, + "elevation": 0, + "item": "ITEM_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 14, + "y": 4, + "elevation": 0, + "item": "ITEM_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 14, + "y": 6, + "elevation": 0, + "item": "ITEM_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SSAnne_Kitchen_Frlg/scripts.inc b/data/maps/SSAnne_Kitchen_Frlg/scripts.inc new file mode 100644 index 000000000000..af430ac3a5f8 --- /dev/null +++ b/data/maps/SSAnne_Kitchen_Frlg/scripts.inc @@ -0,0 +1,99 @@ +SSAnne_Kitchen_Frlg_MapScripts:: + .byte 0 + +SSAnne_Kitchen_EventScript_Chef1:: + msgbox SSAnne_Kitchen_Text_BusyOutOfTheWay, MSGBOX_NPC + end + +SSAnne_Kitchen_EventScript_Chef2:: + msgbox SSAnne_Kitchen_Text_SawOddBerryInTrash, MSGBOX_NPC + end + +SSAnne_Kitchen_EventScript_Chef3:: + msgbox SSAnne_Kitchen_Text_SoBusyImDizzy, MSGBOX_NPC + end + +SSAnne_Kitchen_EventScript_Chef4:: + lock + faceplayer + msgbox SSAnne_Kitchen_Text_IAmLeChefMainCourseIs + random 3 + copyvar VAR_0x8008, VAR_RESULT + call_if_eq VAR_0x8008, 0, SSAnne_Kitchen_EventScript_SalmonDuSalad + call_if_eq VAR_0x8008, 1, SSAnne_Kitchen_EventScript_EelsAuBarbecue + call_if_eq VAR_0x8008, 2, SSAnne_Kitchen_EventScript_PrimeBeefsteak + release + end + +SSAnne_Kitchen_EventScript_SalmonDuSalad:: + msgbox SSAnne_Kitchen_Text_SalmonDuSalad + return + +SSAnne_Kitchen_EventScript_EelsAuBarbecue:: + msgbox SSAnne_Kitchen_Text_EelsAuBarbecue + return + +SSAnne_Kitchen_EventScript_PrimeBeefsteak:: + msgbox SSAnne_Kitchen_Text_PrimeBeefsteak + return + +SSAnne_Kitchen_EventScript_Chef5:: + msgbox SSAnne_Kitchen_Text_PeelSpudsEveryDay, MSGBOX_NPC + end + +SSAnne_Kitchen_EventScript_Chef6:: + msgbox SSAnne_Kitchen_Text_HearAboutSnorlaxItsAGlutton, MSGBOX_NPC + end + +SSAnne_Kitchen_EventScript_Chef7:: + msgbox SSAnne_Kitchen_Text_OnlyGetToPeelOnions, MSGBOX_NPC + end + +SSAnne_Kitchen_Text_BusyOutOfTheWay:: + .string "You, mon petit!\n" + .string "We're busy here!\l" + .string "Out of the way!$" + +SSAnne_Kitchen_Text_SawOddBerryInTrash:: + .string "I saw an odd BERRY in the trash.\n" + .string "I wonder what that was?$" + +SSAnne_Kitchen_Text_SoBusyImDizzy:: + .string "I'm so busy I'm getting dizzy!\n" + .string "You have to give me room here!$" + +SSAnne_Kitchen_Text_PeelSpudsEveryDay:: + .string "Hum-de-hum-de-ho…\p" + .string "I peel spuds every day!\n" + .string "Hum-hum…$" + +SSAnne_Kitchen_Text_HearAboutSnorlaxItsAGlutton:: + .string "Did you hear about SNORLAX?\n" + .string "It's a glutton.\p" + .string "No other POKéMON eats and sleeps\n" + .string "the way SNORLAX can and does!$" + +SSAnne_Kitchen_Text_OnlyGetToPeelOnions:: + .string "Snivel… Sniff…\p" + .string "I only get to peel onions…\n" + .string "Snivel…$" + +SSAnne_Kitchen_Text_IAmLeChefMainCourseIs:: + .string "Er-hem!\n" + .string "Indeed I am le CHEF!\p" + .string "Le main course is$" + +SSAnne_Kitchen_Text_SalmonDuSalad:: + .string "Salmon du Salad!\p" + .string "Les guests may gripe it's fish\n" + .string "again, however!$" + +SSAnne_Kitchen_Text_EelsAuBarbecue:: + .string "Eels au Barbecue!\p" + .string "Les guests will mutiny, I fear.$" + +SSAnne_Kitchen_Text_PrimeBeefsteak:: + .string "Prime Beefsteak!\p" + .string "But, have I enough fillets du\n" + .string "beef?$" + diff --git a/data/maps/SafariZone_Center_Frlg/map.json b/data/maps/SafariZone_Center_Frlg/map.json new file mode 100644 index 000000000000..67dbe07ede90 --- /dev/null +++ b/data/maps/SafariZone_Center_Frlg/map.json @@ -0,0 +1,166 @@ +{ + "id": "MAP_SAFARI_ZONE_CENTER", + "name": "SafariZone_Center_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_CENTER", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 24, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_Center_EventScript_ItemNugget", + "flag": "FLAG_HIDE_SAFARI_ZONE_CENTER_NUGGET" + } + ], + "warp_events": [ + { + "x": 25, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 26, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 27, + "y": 30, + "elevation": 3, + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 25, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "9" + }, + { + "x": 26, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "10" + }, + { + "x": 27, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "11" + }, + { + "x": 8, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "6" + }, + { + "x": 8, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "7" + }, + { + "x": 8, + "y": 19, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "8" + }, + { + "x": 43, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "3" + }, + { + "x": 43, + "y": 16, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "4" + }, + { + "x": 43, + "y": 17, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "5" + }, + { + "x": 29, + "y": 25, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 30, + "y": 26, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_Center_EventScript_RestHouseSign" + }, + { + "type": "sign", + "x": 25, + "y": 27, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_Center_EventScript_TrainerTips" + }, + { + "type": "hidden_item", + "x": 27, + "y": 15, + "elevation": 3, + "item": "ITEM_LEAF_STONE", + "flag": "FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 33, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_Center_EventScript_AreaSign" + } + ] +} diff --git a/data/maps/SafariZone_Center_Frlg/scripts.inc b/data/maps/SafariZone_Center_Frlg/scripts.inc new file mode 100644 index 000000000000..51305a1e7a0b --- /dev/null +++ b/data/maps/SafariZone_Center_Frlg/scripts.inc @@ -0,0 +1,31 @@ +SafariZone_Center_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SafariZone_Center_OnTransition + .byte 0 + +SafariZone_Center_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SAFARI_ZONE_CENTER + end + +SafariZone_Center_EventScript_RestHouseSign:: + msgbox SafariZone_Center_Text_RestHouse, MSGBOX_SIGN + end + +SafariZone_Center_EventScript_TrainerTips:: + msgbox SafariZone_Center_Text_PressStartToCheckTime, MSGBOX_SIGN + end + +SafariZone_Center_EventScript_AreaSign:: + msgbox SafariZone_Center_Text_CenterArea, MSGBOX_SIGN + end + +SafariZone_Center_Text_RestHouse:: + .string "REST HOUSE$" + +SafariZone_Center_Text_PressStartToCheckTime:: + .string "TRAINER TIPS\p" + .string "Press START to check\n" + .string "remaining time.$" + +SafariZone_Center_Text_CenterArea:: + .string "CENTER AREA$" + diff --git a/data/maps/SafariZone_Center_RestHouse_Frlg/map.json b/data/maps/SafariZone_Center_RestHouse_Frlg/map.json new file mode 100644 index 000000000000..860c83ec16af --- /dev/null +++ b/data/maps/SafariZone_Center_RestHouse_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE", + "name": "SafariZone_Center_RestHouse_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE_FRLG", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_Center_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_Center_RestHouse_EventScript_Sara", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "12" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "12" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "12" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_Center_RestHouse_Frlg/scripts.inc b/data/maps/SafariZone_Center_RestHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..ae62fe4ccd3b --- /dev/null +++ b/data/maps/SafariZone_Center_RestHouse_Frlg/scripts.inc @@ -0,0 +1,19 @@ +SafariZone_Center_RestHouse_Frlg_MapScripts:: + .byte 0 + +SafariZone_Center_RestHouse_EventScript_Sara:: + msgbox SafariZone_Center_Text_WhereDidErikGo, MSGBOX_NPC + end + +SafariZone_Center_RestHouse_EventScript_Scientist:: + msgbox SafariZone_Center_Text_CatchingMonsAsGifts, MSGBOX_NPC + end + +SafariZone_Center_Text_WhereDidErikGo:: + .string "SARA: Where did my boyfriend,\n" + .string "ERIK, go?$" + +SafariZone_Center_Text_CatchingMonsAsGifts:: + .string "I'm catching POKéMON to take home\n" + .string "as gifts.$" + diff --git a/data/maps/SafariZone_East_Frlg/map.json b/data/maps/SafariZone_East_Frlg/map.json new file mode 100644 index 000000000000..ff1c2a5317c5 --- /dev/null +++ b/data/maps/SafariZone_East_Frlg/map.json @@ -0,0 +1,156 @@ +{ + "id": "MAP_SAFARI_ZONE_EAST", + "name": "SafariZone_East_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_EAST", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 13, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_EventScript_ItemMaxPotion", + "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_MAX_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 37, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_EventScript_ItemFullRestore", + "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_FULL_RESTORE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 31, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_EventScript_ItemTM11", + "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_TM11" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 36, + "y": 17, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_EventScript_ItemLeafStone", + "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_LEAF_STONE" + } + ], + "warp_events": [ + { + "x": 8, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "6" + }, + { + "x": 8, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "7" + }, + { + "x": 8, + "y": 11, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "8" + }, + { + "x": 8, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "9" + }, + { + "x": 8, + "y": 27, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "10" + }, + { + "x": 8, + "y": 28, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "11" + }, + { + "x": 40, + "y": 14, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_EAST_REST_HOUSE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 18, + "y": 27, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_East_EventScript_AreaSign" + }, + { + "type": "sign", + "x": 43, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_East_EventScript_RestHouseSign" + }, + { + "type": "sign", + "x": 17, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_East_EventScript_TrainerTips" + } + ] +} diff --git a/data/maps/SafariZone_East_Frlg/scripts.inc b/data/maps/SafariZone_East_Frlg/scripts.inc new file mode 100644 index 000000000000..51911aa03477 --- /dev/null +++ b/data/maps/SafariZone_East_Frlg/scripts.inc @@ -0,0 +1,27 @@ +SafariZone_East_Frlg_MapScripts:: + .byte 0 + +SafariZone_East_EventScript_RestHouseSign:: + msgbox SafariZone_East_Text_RestHouse, MSGBOX_SIGN + end + +SafariZone_East_EventScript_TrainerTips:: + msgbox SafariZone_East_Text_TimeDeclinesOnlyWhileYouWalk, MSGBOX_SIGN + end + +SafariZone_East_EventScript_AreaSign:: + msgbox SafariZone_East_Text_AreaSign, MSGBOX_SIGN + end + +SafariZone_East_Text_RestHouse:: + .string "REST HOUSE$" + +SafariZone_East_Text_TimeDeclinesOnlyWhileYouWalk:: + .string "TRAINER TIPS\p" + .string "The remaining time declines only\n" + .string "while you walk.$" + +SafariZone_East_Text_AreaSign:: + .string "AREA 1\n" + .string "WEST: CENTER AREA$" + diff --git a/data/maps/SafariZone_East_RestHouse_Frlg/map.json b/data/maps/SafariZone_East_RestHouse_Frlg/map.json new file mode 100644 index 000000000000..8ecc17ef0f5e --- /dev/null +++ b/data/maps/SafariZone_East_RestHouse_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SAFARI_ZONE_EAST_REST_HOUSE", + "name": "SafariZone_East_RestHouse_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE_FRLG", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_RestHouse_EventScript_Rocker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_East_RestHouse_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "6" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "6" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_East_RestHouse_Frlg/scripts.inc b/data/maps/SafariZone_East_RestHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..72dd37dc18f1 --- /dev/null +++ b/data/maps/SafariZone_East_RestHouse_Frlg/scripts.inc @@ -0,0 +1,27 @@ +SafariZone_East_RestHouse_Frlg_MapScripts:: + .byte 0 + +SafariZone_East_RestHouse_EventScript_Rocker:: + msgbox SafariZone_East_Text_CaughtChanseyAllWorthwhile, MSGBOX_NPC + end + +SafariZone_East_RestHouse_EventScript_Scientist:: + msgbox SafariZone_East_Text_HowManyDidYouCatch, MSGBOX_NPC + end + +SafariZone_East_RestHouse_EventScript_BaldingMan:: + msgbox SafariZone_East_Text_TiredFromAllTheFun, MSGBOX_NPC + end + +SafariZone_East_Text_HowManyDidYouCatch:: + .string "How many did you catch?\n" + .string "I'm bushed from the effort!$" + +SafariZone_East_Text_CaughtChanseyAllWorthwhile:: + .string "I caught a CHANSEY!\p" + .string "That makes this all worthwhile.$" + +SafariZone_East_Text_TiredFromAllTheFun:: + .string "Whew!\n" + .string "I'm tired from all the fun!$" + diff --git a/data/maps/SafariZone_North_Frlg/map.json b/data/maps/SafariZone_North_Frlg/map.json new file mode 100644 index 000000000000..bd5eb8d784dc --- /dev/null +++ b/data/maps/SafariZone_North_Frlg/map.json @@ -0,0 +1,200 @@ +{ + "id": "MAP_SAFARI_ZONE_NORTH_FRLG", + "name": "SafariZone_North_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_NORTH_FRLG", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 33, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_EventScript_ItemProtein", + "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_PROTEIN" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 28, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_EventScript_ItemTM47", + "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_TM47" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 29, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_EventScript_ItemQuickClaw", + "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_QUICK_CLAW" + } + ], + "warp_events": [ + { + "x": 10, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "1" + }, + { + "x": 12, + "y": 34, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "2" + }, + { + "x": 20, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "3" + }, + { + "x": 21, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "4" + }, + { + "x": 22, + "y": 34, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "5" + }, + { + "x": 48, + "y": 31, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "0" + }, + { + "x": 48, + "y": 32, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "1" + }, + { + "x": 48, + "y": 33, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_EAST", + "dest_warp_id": "2" + }, + { + "x": 30, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "3" + }, + { + "x": 31, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "4" + }, + { + "x": 32, + "y": 34, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "5" + }, + { + "x": 43, + "y": 8, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 13, + "y": 27, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_North_EventScript_TrainerTips1" + }, + { + "type": "sign", + "x": 23, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_North_EventScript_AreaSign" + }, + { + "type": "sign", + "x": 29, + "y": 32, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_North_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 34, + "y": 28, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_North_EventScript_TrainerTips3" + }, + { + "type": "sign", + "x": 44, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_North_EventScript_RestHouseSign" + } + ] +} diff --git a/data/maps/SafariZone_North_Frlg/scripts.inc b/data/maps/SafariZone_North_Frlg/scripts.inc new file mode 100644 index 000000000000..936fa03acf06 --- /dev/null +++ b/data/maps/SafariZone_North_Frlg/scripts.inc @@ -0,0 +1,44 @@ +SafariZone_North_Frlg_MapScripts:: + .byte 0 + +SafariZone_North_EventScript_RestHouseSign:: + msgbox SafariZone_North_Text_RestHouse, MSGBOX_SIGN + end + +SafariZone_North_EventScript_TrainerTips1:: + msgbox SafariZone_North_Text_SecretHouseStillAhead, MSGBOX_SIGN + end + +SafariZone_North_EventScript_AreaSign:: + msgbox SafariZone_North_Text_Area2, MSGBOX_SIGN + end + +SafariZone_North_EventScript_TrainerTips2:: + msgbox SafariZone_North_Text_ZigzagThroughTallGrass, MSGBOX_SIGN + end + +SafariZone_North_EventScript_TrainerTips3:: + msgbox SafariZone_North_Text_WinFreeHMFindSecretHouse, MSGBOX_SIGN + end + +SafariZone_North_Text_RestHouse:: + .string "REST HOUSE$" + +SafariZone_North_Text_SecretHouseStillAhead:: + .string "TRAINER TIPS\p" + .string "The SECRET HOUSE is still ahead.$" + +SafariZone_North_Text_Area2:: + .string "AREA 2$" + +SafariZone_North_Text_ZigzagThroughTallGrass:: + .string "TRAINER TIPS\p" + .string "POKéMON hide in tall grass.\p" + .string "Zigzag through grassy areas to\n" + .string "flush them out.$" + +SafariZone_North_Text_WinFreeHMFindSecretHouse:: + .string "TRAINER TIPS\p" + .string "Win a free HM for finding the\n" + .string "SECRET HOUSE.$" + diff --git a/data/maps/SafariZone_North_RestHouse_Frlg/map.json b/data/maps/SafariZone_North_RestHouse_Frlg/map.json new file mode 100644 index 000000000000..8c9a1d000b61 --- /dev/null +++ b/data/maps/SafariZone_North_RestHouse_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE", + "name": "SafariZone_North_RestHouse_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE_FRLG", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_RestHouse_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_RestHouse_EventScript_Fisher", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 11, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_North_RestHouse_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "12" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "12" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "12" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_North_RestHouse_Frlg/scripts.inc b/data/maps/SafariZone_North_RestHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..5a66e099171a --- /dev/null +++ b/data/maps/SafariZone_North_RestHouse_Frlg/scripts.inc @@ -0,0 +1,30 @@ +SafariZone_North_RestHouse_Frlg_MapScripts:: + .byte 0 + +SafariZone_North_RestHouse_EventScript_Fisher:: + msgbox SafariZone_East_Text_PrizeInDeepestPartOfSafariZone, MSGBOX_NPC + end + +SafariZone_North_RestHouse_EventScript_Scientist:: + msgbox SafariZone_East_Text_KeepAnyItemFoundOnSafari, MSGBOX_NPC + end + +SafariZone_North_RestHouse_EventScript_Gentleman:: + msgbox SafariZone_East_Text_MyEeveeEvolvedIntoFlareon, MSGBOX_NPC + end + +SafariZone_East_Text_KeepAnyItemFoundOnSafari:: + .string "You can keep any item you find in\n" + .string "the SAFARI ZONE.\p" + .string "But, you'll run out of time if you\n" + .string "try for all of them at once.$" + +SafariZone_East_Text_PrizeInDeepestPartOfSafariZone:: + .string "Go to the deepest part of the\n" + .string "SAFARI ZONE. You will win a prize!$" + +SafariZone_East_Text_MyEeveeEvolvedIntoFlareon:: + .string "My EEVEE evolved into FLAREON.\p" + .string "But, a friend's EEVEE turned into a\n" + .string "VAPOREON. I wonder why?$" + diff --git a/data/maps/SafariZone_SecretHouse_Frlg/map.json b/data/maps/SafariZone_SecretHouse_Frlg/map.json new file mode 100644 index 000000000000..0983aeb2c22a --- /dev/null +++ b/data/maps/SafariZone_SecretHouse_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SAFARI_ZONE_SECRET_HOUSE", + "name": "SafariZone_SecretHouse_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_SECRET_HOUSE", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_SecretHouse_EventScript_Attendant", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "9" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "9" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "9" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_SecretHouse_Frlg/scripts.inc b/data/maps/SafariZone_SecretHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..cb93e514dc14 --- /dev/null +++ b/data/maps/SafariZone_SecretHouse_Frlg/scripts.inc @@ -0,0 +1,54 @@ +SafariZone_SecretHouse_Frlg_MapScripts:: + .byte 0 + +SafariZone_SecretHouse_EventScript_Attendant:: + lock + faceplayer + goto_if_set FLAG_GOT_HM03, SafariZone_SecretHouse_EventScript_ExplainSurf + msgbox SafariZone_SecretHouse_Text_CongratsYouveWon + checkitemspace ITEM_HM03 + goto_if_eq VAR_RESULT, FALSE, SafariZone_SecretHouse_EventScript_NoRoomForHM03 + giveitem_msg SafariZone_SecretHouse_Text_ReceivedHM03FromAttendant, ITEM_HM03 + msgbox SafariZone_SecretHouse_Text_ExplainSurf + setflag FLAG_GOT_HM03 + release + end + +SafariZone_SecretHouse_EventScript_NoRoomForHM03:: + msgbox SafariZone_SecretHouse_Text_DontHaveRoomForPrize + release + end + +SafariZone_SecretHouse_EventScript_ExplainSurf:: + msgbox SafariZone_SecretHouse_Text_ExplainSurf + release + end + +SafariZone_SecretHouse_Text_CongratsYouveWon:: + .string "Ah! Finally!\p" + .string "You're the first person to reach\n" + .string "the SECRET HOUSE!\p" + .string "Although I made a campaign\n" + .string "for our grand opening,\p" + .string "I was getting worried that no one\n" + .string "would win our campaign prize.\p" + .string "Congratulations!\n" + .string "You have won!$" + +SafariZone_SecretHouse_Text_ReceivedHM03FromAttendant:: + .string "{PLAYER} received HM03\n" + .string "from the attendant!$" + +SafariZone_SecretHouse_Text_ExplainSurf:: + .string "HM03 is SURF.\p" + .string "POKéMON will be able to ferry you\n" + .string "across water using it.\p" + .string "And, this HM isn't disposable, so\n" + .string "you can use it over and over.\p" + .string "You're super lucky for winning this\n" + .string "fabulous prize!$" + +SafariZone_SecretHouse_Text_DontHaveRoomForPrize:: + .string "You don't have room for this\n" + .string "fabulous prize!$" + diff --git a/data/maps/SafariZone_West_Frlg/map.json b/data/maps/SafariZone_West_Frlg/map.json new file mode 100644 index 000000000000..097ae9cf2916 --- /dev/null +++ b/data/maps/SafariZone_West_Frlg/map.json @@ -0,0 +1,202 @@ +{ + "id": "MAP_SAFARI_ZONE_WEST", + "name": "SafariZone_West_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_WEST", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 28, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_EventScript_ItemGoldTeeth", + "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_EventScript_ItemTM32", + "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_TM32" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 16, + "y": 27, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_EventScript_ItemMaxPotion", + "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_MAX_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 27, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_EventScript_ItemMaxRevive", + "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_MAX_REVIVE" + } + ], + "warp_events": [ + { + "x": 30, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "0" + }, + { + "x": 31, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "1" + }, + { + "x": 32, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "2" + }, + { + "x": 37, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "3" + }, + { + "x": 38, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "4" + }, + { + "x": 39, + "y": 5, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_NORTH_FRLG", + "dest_warp_id": "5" + }, + { + "x": 40, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "6" + }, + { + "x": 40, + "y": 27, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "7" + }, + { + "x": 40, + "y": 28, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_CENTER", + "dest_warp_id": "8" + }, + { + "x": 12, + "y": 7, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_SECRET_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 19, + "y": 18, + "elevation": 0, + "dest_map": "MAP_SAFARI_ZONE_WEST_REST_HOUSE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 27, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_West_EventScript_LostTeethNotice" + }, + { + "type": "sign", + "x": 36, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_West_EventScript_TrainerTips" + }, + { + "type": "sign", + "x": 35, + "y": 26, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_West_EventScript_AreaSign" + }, + { + "type": "sign", + "x": 22, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SafariZone_West_EventScript_RestHouseSign" + }, + { + "type": "hidden_item", + "x": 13, + "y": 11, + "elevation": 3, + "item": "ITEM_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SafariZone_West_Frlg/scripts.inc b/data/maps/SafariZone_West_Frlg/scripts.inc new file mode 100644 index 000000000000..867cf4636a2c --- /dev/null +++ b/data/maps/SafariZone_West_Frlg/scripts.inc @@ -0,0 +1,39 @@ +SafariZone_West_Frlg_MapScripts:: + .byte 0 + +SafariZone_West_EventScript_RestHouseSign:: + msgbox SafariZone_West_Text_RestHouse, MSGBOX_SIGN + end + +SafariZone_West_EventScript_LostTeethNotice:: + msgbox SafariZone_West_Text_PleaseFindWardensLostTeeth, MSGBOX_SIGN + end + +SafariZone_West_EventScript_TrainerTips:: + msgbox SafariZone_West_Text_SearchForSecretHouse, MSGBOX_SIGN + end + +SafariZone_West_EventScript_AreaSign:: + msgbox SafariZone_West_Text_AreaSign, MSGBOX_SIGN + end + +SafariZone_West_Text_RestHouse:: + .string "REST HOUSE$" + +SafariZone_West_Text_PleaseFindWardensLostTeeth:: + .string "REQUEST NOTICE\p" + .string "Please find the SAFARI WARDEN's\n" + .string "lost GOLD TEETH.\l" + .string "They're around here somewhere.\p" + .string "Reward offered!\n" + .string "Contact: WARDEN$" + +SafariZone_West_Text_SearchForSecretHouse:: + .string "TRAINER TIPS\p" + .string "Zone Exploration Campaign!\n" + .string "The Search for the SECRET HOUSE!$" + +SafariZone_West_Text_AreaSign:: + .string "AREA 3\n" + .string "EAST: CENTER AREA$" + diff --git a/data/maps/SafariZone_West_RestHouse_Frlg/map.json b/data/maps/SafariZone_West_RestHouse_Frlg/map.json new file mode 100644 index 000000000000..dd74813fea73 --- /dev/null +++ b/data/maps/SafariZone_West_RestHouse_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SAFARI_ZONE_WEST_REST_HOUSE", + "name": "SafariZone_West_RestHouse_Frlg", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE_FRLG", + "music": "MUS_EVOLUTION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_RestHouse_EventScript_Scientist", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 2, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_RestHouse_EventScript_Man", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SafariZone_West_RestHouse_EventScript_CooltrainerF", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "10" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "10" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SAFARI_ZONE_WEST", + "dest_warp_id": "10" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SafariZone_West_RestHouse_Frlg/scripts.inc b/data/maps/SafariZone_West_RestHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..201c5e41586d --- /dev/null +++ b/data/maps/SafariZone_West_RestHouse_Frlg/scripts.inc @@ -0,0 +1,37 @@ +SafariZone_West_RestHouse_Frlg_MapScripts:: + .byte 0 + +SafariZone_West_RestHouse_EventScript_Man:: + msgbox SafariZone_West_Text_BaitMakesMonStickAround, MSGBOX_NPC + end + +SafariZone_West_RestHouse_EventScript_Scientist:: + msgbox SafariZone_West_Text_RocksMakeMonRunButEasierCatch, MSGBOX_NPC + end + +SafariZone_West_RestHouse_EventScript_CooltrainerF:: + msgbox SafariZone_West_Text_HikedLotsDidntSeeMonIWanted, MSGBOX_NPC + end + +SafariZone_West_Text_KogaPatrolsSafariEverySoOften:: + .string "The SAFARI ZONE's huge, wouldn't\n" + .string "you say?\p" + .string "FUCHSIA's GYM LEADER, KOGA, \n" + .string "patrols the grounds every so often.\p" + .string "Thanks to him, we can play here\n" + .string "knowing that we're safe.$" + +SafariZone_West_Text_RocksMakeMonRunButEasierCatch:: + .string "Tossing ROCKS at POKéMON might\n" + .string "make them run, but they'll be\l" + .string "easier to catch.$" + +SafariZone_West_Text_BaitMakesMonStickAround:: + .string "Using BAIT will make POKéMON more\n" + .string "likely to stick around if they get\l" + .string "busy eating.$" + +SafariZone_West_Text_HikedLotsDidntSeeMonIWanted:: + .string "I hiked a lot, but I didn't see any\n" + .string "POKéMON I wanted.$" + diff --git a/data/maps/SaffronCity_Connection_Frlg/map.json b/data/maps/SaffronCity_Connection_Frlg/map.json new file mode 100644 index 000000000000..4c80a344419e --- /dev/null +++ b/data/maps/SaffronCity_Connection_Frlg/map.json @@ -0,0 +1,43 @@ +{ + "id": "MAP_SAFFRON_CITY_CONNECTION", + "name": "SaffronCity_Connection_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_CONNECTION", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE5", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE6", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE7", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE8", + "offset": 10, + "direction": "right" + } + ], + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_Connection_Frlg/scripts.inc b/data/maps/SaffronCity_Connection_Frlg/scripts.inc new file mode 100644 index 000000000000..03c216ad7e42 --- /dev/null +++ b/data/maps/SaffronCity_Connection_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SaffronCity_Connection_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SaffronCity_CopycatsHouse_1F_Frlg/map.json b/data/maps/SaffronCity_CopycatsHouse_1F_Frlg/map.json new file mode 100644 index 000000000000..3b5da2197671 --- /dev/null +++ b/data/maps/SaffronCity_CopycatsHouse_1F_Frlg/map.json @@ -0,0 +1,94 @@ +{ + "id": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", + "name": "SaffronCity_CopycatsHouse_1F_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_COPYCATS_HOUSE_1F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 8, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_1F_EventScript_CopycatsDad", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 3, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_1F_EventScript_CopycatsMom", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANSEY", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_1F_EventScript_Chansey", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "1" + }, + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_CopycatsHouse_1F_Frlg/scripts.inc b/data/maps/SaffronCity_CopycatsHouse_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..e63bcc8bbab9 --- /dev/null +++ b/data/maps/SaffronCity_CopycatsHouse_1F_Frlg/scripts.inc @@ -0,0 +1,34 @@ +SaffronCity_CopycatsHouse_1F_Frlg_MapScripts:: + .byte 0 + +SaffronCity_CopycatsHouse_1F_EventScript_CopycatsMom:: + msgbox SaffronCity_CopycatsHouse_1F_Text_DaughterIsSelfCentered, MSGBOX_NPC + end + +SaffronCity_CopycatsHouse_1F_EventScript_CopycatsDad:: + msgbox SaffronCity_CopycatsHouse_1F_Text_DaughterLikesToMimicPeople, MSGBOX_NPC + end + +SaffronCity_CopycatsHouse_1F_EventScript_Chansey:: + lock + faceplayer + waitse + playmoncry SPECIES_CHANSEY, CRY_MODE_NORMAL + msgbox SaffronCity_CopycatsHouse_1F_Text_Chansey + waitmoncry + release + end + +SaffronCity_CopycatsHouse_1F_Text_DaughterIsSelfCentered:: + .string "My daughter is so self-centered.\n" + .string "She has but a few friends.$" + +SaffronCity_CopycatsHouse_1F_Text_DaughterLikesToMimicPeople:: + .string "My daughter likes to mimic people.\n" + .string "It's rather vexing.\p" + .string "Her mimicry has earned her the\n" + .string "nickname COPYCAT around here.$" + +SaffronCity_CopycatsHouse_1F_Text_Chansey:: + .string "CHANSEY: Chaan! Sii!$" + diff --git a/data/maps/SaffronCity_CopycatsHouse_2F_Frlg/map.json b/data/maps/SaffronCity_CopycatsHouse_2F_Frlg/map.json new file mode 100644 index 000000000000..8b15c00146da --- /dev/null +++ b/data/maps/SaffronCity_CopycatsHouse_2F_Frlg/map.json @@ -0,0 +1,114 @@ +{ + "id": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_2F", + "name": "SaffronCity_CopycatsHouse_2F_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_COPYCATS_HOUSE_2F", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_DODUO", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_2F_EventScript_Doduo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIKACHU_FRLG", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_2F_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_2F_EventScript_Doll", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_CopycatsHouse_2F_EventScript_Copycat", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 10, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 1, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_CopycatsHouse_2F_EventScript_Computer" + }, + { + "type": "sign", + "x": 3, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_CopycatsHouse_2F_EventScript_Game" + }, + { + "type": "hidden_item", + "x": 2, + "y": 1, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SaffronCity_CopycatsHouse_2F_Frlg/scripts.inc b/data/maps/SaffronCity_CopycatsHouse_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..74fc5d80c7b4 --- /dev/null +++ b/data/maps/SaffronCity_CopycatsHouse_2F_Frlg/scripts.inc @@ -0,0 +1,119 @@ +SaffronCity_CopycatsHouse_2F_Frlg_MapScripts:: + .byte 0 + +SaffronCity_CopycatsHouse_2F_EventScript_Doduo:: + lock + faceplayer + waitse + playmoncry SPECIES_DODUO, CRY_MODE_NORMAL + msgbox SaffronCity_CopycatsHouse_2F_Text_Doduo + waitmoncry + release + end + +SaffronCity_CopycatsHouse_2F_EventScript_Doll:: + lock + msgbox SaffronCity_CopycatsHouse_2F_Text_RareMonOnlyDoll + release + end + +SaffronCity_CopycatsHouse_2F_EventScript_Copycat:: + lock + faceplayer + checkitem ITEM_POKE_DOLL + goto_if_eq VAR_RESULT, TRUE, EventScript_MimicTutor + checkplayergender + call_if_eq VAR_RESULT, MALE, SaffronCity_CopycatsHouse_2F_EventScript_MimicPlayerMale + call_if_eq VAR_RESULT, FEMALE, SaffronCity_CopycatsHouse_2F_EventScript_MimicPlayerFemale + release + end + +SaffronCity_CopycatsHouse_2F_EventScript_MimicPlayerMale:: + msgbox SaffronCity_CopycatsHouse_2F_Text_MimickingFavoriteHobbyMale + return + +SaffronCity_CopycatsHouse_2F_EventScript_MimicPlayerFemale:: + msgbox SaffronCity_CopycatsHouse_2F_Text_MimickingFavoriteHobbyFemale + return + +SaffronCity_CopycatsHouse_2F_EventScript_Computer:: + msgbox SaffronCity_CopycatsHouse_2F_Text_MySecrets, MSGBOX_SIGN + end + +SaffronCity_CopycatsHouse_2F_EventScript_Game:: + msgbox SaffronCity_CopycatsHouse_2F_Text_MarioWearingABucket, MSGBOX_SIGN + end + +SaffronCity_CopycatsHouse_2F_Text_MimickingFavoriteHobbyMale:: + .string "{PLAYER}: Hi!\n" + .string "Do you like POKéMON?\p" + .string "{PLAYER}: Uh, no, I just asked you.\p" + .string "{PLAYER}: Huh?\n" + .string "You're strange!\p" + .string "COPYCAT: Hmm? Quit mimicking?\n" + .string "But, that's my favorite hobby!$" + +SaffronCity_CopycatsHouse_2F_Text_MimickingFavoriteHobbyFemale:: + .string "{PLAYER}: Hi.\n" + .string "You must like POKéMON.\p" + .string "{PLAYER}: No, not me.\n" + .string "I asked you.\p" + .string "{PLAYER}: Pardon?\n" + .string "You're weird!\l" + .string " \l" + .string "COPYCAT: Hmm? Quit mimicking?\l" + .string "But that's my favorite hobby!$" + +Text_MimicTeach:: + .string "Oh wow!\n" + .string "A POKé DOLL!\p" + .string "For me?\n" + .string "Thank you!\p" + .string "You know what?\n" + .string "I can teach the move MIMIC.$" + +Text_MimicDeclined:: + .string "Don't you like MIMIC?$" + +Text_MimicWhichMon:: + .string "I really love MIMIC!\n" + .string "Who's going to learn it?$" + +Text_MimicTaughtMale:: + .string "{PLAYER}: Hi!\n" + .string "Thanks for earlier!\p" + .string "{PLAYER}: Pardon?\p" + .string "{PLAYER}: Is it that fun to mimic my\n" + .string "every move?\p" + .string "COPYCAT: You bet!\n" + .string "It's a scream!$" + +Text_MimicTaughtFemale:: + .string "{PLAYER}: Hi!\n" + .string "Thanks for what you did for us.\p" + .string "{PLAYER}: Pardon?\p" + .string "{PLAYER}: Is it really that fun to\n" + .string "copy what I say and do?\p" + .string "COPYCAT: You bet!\n" + .string "It's a scream!$" + +SaffronCity_CopycatsHouse_2F_Text_Doduo:: + .string "DODUO: Giiih!\p" + .string "PRETTY MIRROR LOOK AT ME,\n" + .string "SEE HOW PRETTY I CAN BE?$" + +SaffronCity_CopycatsHouse_2F_Text_RareMonOnlyDoll:: + .string "This is a rare POKéMON!\n" + .string "Huh? It's only a doll!$" + +SaffronCity_CopycatsHouse_2F_Text_MarioWearingABucket:: + .string "A game with MARIO wearing a bucket\n" + .string "on his head!$" + +SaffronCity_CopycatsHouse_2F_Text_MySecrets:: + .string "…\p" + .string "My Secrets!\p" + .string "Skill: Mimicry!\n" + .string "Hobby: Collecting dolls!\l" + .string "Favorite POKéMON: CLEFAIRY!$" + diff --git a/data/maps/SaffronCity_Dojo_Frlg/map.json b/data/maps/SaffronCity_Dojo_Frlg/map.json new file mode 100644 index 000000000000..ed7c07bc78a9 --- /dev/null +++ b/data/maps/SaffronCity_Dojo_Frlg/map.json @@ -0,0 +1,196 @@ +{ + "id": "MAP_SAFFRON_CITY_DOJO", + "name": "SaffronCity_Dojo_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_DOJO", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "7", + "script": "SaffronCity_Dojo_EventScript_Hitoshi", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 1, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "7", + "script": "SaffronCity_Dojo_EventScript_Hideki", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "7", + "script": "SaffronCity_Dojo_EventScript_Aaron", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "7", + "script": "SaffronCity_Dojo_EventScript_Mike", + "flag": "0" + }, + { + "local_id": "LOCALID_KARATE_MASTER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SaffronCity_Dojo_EventScript_MasterKoichi", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Dojo_EventScript_HitmonleeBall", + "flag": "FLAG_HIDE_DOJO_HITMONLEE_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 7, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Dojo_EventScript_HitmonchanBall", + "flag": "FLAG_HIDE_DOJO_HITMONCHAN_BALL" + } + ], + "warp_events": [ + { + "x": 5, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "2" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 5, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_SAFFRON_CITY_DOJO", + "var_value": "0", + "script": "SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft" + }, + { + "type": "trigger", + "x": 7, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_SAFFRON_CITY_DOJO", + "var_value": "0", + "script": "SaffronCity_Dojo_EventScript_TriggerMasterBattleRight" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_Dojo_EventScript_Statue" + }, + { + "type": "sign", + "x": 9, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_Dojo_EventScript_Statue" + }, + { + "type": "sign", + "x": 5, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_Dojo_EventScript_LeftScroll" + }, + { + "type": "sign", + "x": 7, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_Dojo_EventScript_RightScroll" + } + ] +} diff --git a/data/maps/SaffronCity_Dojo_Frlg/scripts.inc b/data/maps/SaffronCity_Dojo_Frlg/scripts.inc new file mode 100644 index 000000000000..af2cc934504a --- /dev/null +++ b/data/maps/SaffronCity_Dojo_Frlg/scripts.inc @@ -0,0 +1,253 @@ +SaffronCity_Dojo_Frlg_MapScripts:: + .byte 0 + +SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: + lockall + setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + releaseall + end + +SaffronCity_Dojo_EventScript_TriggerMasterBattleRight:: + lockall + setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + releaseall + end + +SaffronCity_Dojo_EventScript_HitmonleeBall:: + lock + faceplayer + goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon + showmonpic SPECIES_HITMONLEE, 10, 3 + setvar VAR_TEMP_1, SPECIES_HITMONLEE + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox SaffronCity_Dojo_Text_YouWantHitmonlee, MSGBOX_YESNO + call EventScript_RestorePrevTextColor + goto_if_eq VAR_RESULT, YES, SaffronCity_Dojo_EventScript_GiveHitmon + hidemonpic + release + end + +SaffronCity_Dojo_EventScript_AlreadyGotHitmon:: + msgbox SaffronCity_Dojo_Text_BetterNotGetGreedy + release + end + +SaffronCity_Dojo_EventScript_HitmonchanBall:: + lock + faceplayer + goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon + showmonpic SPECIES_HITMONCHAN, 10, 3 + setvar VAR_TEMP_1, SPECIES_HITMONCHAN + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + textcolor NPC_TEXT_COLOR_MALE + msgbox SaffronCity_Dojo_Text_YouWantHitmonchan, MSGBOX_YESNO + call EventScript_RestorePrevTextColor + goto_if_eq VAR_RESULT, YES, SaffronCity_Dojo_EventScript_GiveHitmon + hidemonpic + release + end + +SaffronCity_Dojo_EventScript_GiveHitmon:: + hidemonpic + givemon VAR_TEMP_1, 25 + goto_if_eq VAR_RESULT, 0, SaffronCity_Dojo_EventScript_ReceivedHitmonParty + goto_if_eq VAR_RESULT, 1, SaffronCity_Dojo_EventScript_ReceivedHitmonPC + goto_if_eq VAR_RESULT, 2, Common_EventScript_NoMoreRoomForPokemon + release + end + +SaffronCity_Dojo_EventScript_ReceivedHitmonParty:: + removeobject VAR_LAST_TALKED + bufferspeciesname STR_VAR_1, VAR_TEMP_1 + playfanfare MUS_LEVEL_UP + message SaffronCity_Dojo_Text_ReceivedMonFromKarateMaster + waitmessage + waitfanfare + setflag FLAG_GOT_HITMON_FROM_DOJO + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SaffronCity_Dojo_EventScript_EndGiveMon + call Common_EventScript_GetGiftMonPartySlot + call Common_EventScript_NameReceivedPartyMon + goto SaffronCity_Dojo_EventScript_EndGiveMon + end + +SaffronCity_Dojo_EventScript_ReceivedHitmonPC:: + removeobject VAR_LAST_TALKED + bufferspeciesname STR_VAR_1, VAR_TEMP_1 + playfanfare MUS_LEVEL_UP + message SaffronCity_Dojo_Text_ReceivedMonFromKarateMaster + waitmessage + waitfanfare + setflag FLAG_GOT_HITMON_FROM_DOJO + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SaffronCity_Dojo_EventScript_TransferredHitmonToPC + call Common_EventScript_NameReceivedBoxMon + goto SaffronCity_Dojo_EventScript_TransferredHitmonToPC + end + +SaffronCity_Dojo_EventScript_TransferredHitmonToPC:: + call Common_EventScript_TransferredToPC + goto SaffronCity_Dojo_EventScript_EndGiveMon + end + +SaffronCity_Dojo_EventScript_EndGiveMon:: + release + end + +SaffronCity_Dojo_EventScript_Statue:: + msgbox SaffronCity_Dojo_Text_FightingDojo, MSGBOX_SIGN + end + +SaffronCity_Dojo_EventScript_LeftScroll:: + msgbox SaffronCity_Dojo_Text_EnemiesOnEverySide, MSGBOX_SIGN + end + +SaffronCity_Dojo_EventScript_RightScroll:: + msgbox SaffronCity_Dojo_Text_GoesAroundComesAround, MSGBOX_SIGN + end + +SaffronCity_Dojo_EventScript_Hitoshi:: + trainerbattle_single TRAINER_BLACK_BELT_HITOSHI, SaffronCity_Dojo_Text_HitoshiIntro, SaffronCity_Dojo_Text_HitoshiDefeat + msgbox SaffronCity_Dojo_Text_HitoshiPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Dojo_EventScript_Hideki:: + trainerbattle_single TRAINER_BLACK_BELT_HIDEKI, SaffronCity_Dojo_Text_HidekiIntro, SaffronCity_Dojo_Text_HidekiDefeat + msgbox SaffronCity_Dojo_Text_HidekiPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Dojo_EventScript_Aaron:: + trainerbattle_single TRAINER_BLACK_BELT_AARON, SaffronCity_Dojo_Text_AaronIntro, SaffronCity_Dojo_Text_AaronDefeat + msgbox SaffronCity_Dojo_Text_AaronPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Dojo_EventScript_Mike:: + trainerbattle_single TRAINER_BLACK_BELT_MIKE, SaffronCity_Dojo_Text_MikeIntro, SaffronCity_Dojo_Text_MikeDefeat + msgbox SaffronCity_Dojo_Text_MikePostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Dojo_EventScript_MasterKoichi:: + trainerbattle_single TRAINER_BLACK_BELT_KOICHI, SaffronCity_Dojo_Text_MasterKoichiIntro, SaffronCity_Dojo_Text_MasterKoichiDefeat, SaffronCity_Dojo_EventScript_DefeatedMasterKoichi + goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_MasterKoichiAlreadyGotHitmon + msgbox SaffronCity_Dojo_Text_ChoosePrizedFightingMon, MSGBOX_AUTOCLOSE + end + +SaffronCity_Dojo_EventScript_MasterKoichiAlreadyGotHitmon:: + msgbox SaffronCity_Dojo_Text_StayAndTrainWithUs + release + end + +SaffronCity_Dojo_EventScript_DefeatedMasterKoichi:: + setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 + release + end + +SaffronCity_Dojo_Text_MasterKoichiIntro:: + .string "Grunt!\p" + .string "I am the KARATE MASTER!\n" + .string "I am the LEADER here!\p" + .string "You wish to challenge us?\n" + .string "Expect no mercy!\p" + .string "Fwaaa!$" + +SaffronCity_Dojo_Text_MasterKoichiDefeat:: + .string "Hwa!\n" + .string "Arrgh! Beaten!$" + +SaffronCity_Dojo_Text_ChoosePrizedFightingMon:: + .string "Indeed, I have lost!\p" + .string "But, I beseech you, do not take\n" + .string "our emblem as your trophy!\p" + .string "In return, I will give you a prized\n" + .string "FIGHTING POKéMON!\p" + .string "Choose whichever one you like!$" + +SaffronCity_Dojo_Text_StayAndTrainWithUs:: + .string "Grunt!\n" + .string "Stay and train at karate with us!$" + +SaffronCity_Dojo_Text_MikeIntro:: + .string "Hoargh!\n" + .string "Take your shoes off!$" + +SaffronCity_Dojo_Text_MikeDefeat:: + .string "I give up!$" + +SaffronCity_Dojo_Text_MikePostBattle:: + .string "You wait 'til you see our MASTER!\n" + .string "I'm a small fry compared to him!$" + +SaffronCity_Dojo_Text_HidekiIntro:: + .string "I hear you're good!\n" + .string "Show me!$" + +SaffronCity_Dojo_Text_HidekiDefeat:: + .string "Judge!\n" + .string "One point!$" + +SaffronCity_Dojo_Text_HidekiPostBattle:: + .string "Our MASTER is a pro fighter.\n" + .string "Be prepared to lose!$" + +SaffronCity_Dojo_Text_AaronIntro:: + .string "Hiyah!\n" + .string "I have no fear for anything tough!\p" + .string "I shatter boulders for training\n" + .string "every day!$" + +SaffronCity_Dojo_Text_AaronDefeat:: + .string "Yow!\n" + .string "Stubbed fingers!$" + +SaffronCity_Dojo_Text_AaronPostBattle:: + .string "The only thing that frightens us is\n" + .string "psychic power!$" + +SaffronCity_Dojo_Text_HitoshiIntro:: + .string "Hwaah!\p" + .string "You're trespassing in our\n" + .string "FIGHTING DOJO!$" + +SaffronCity_Dojo_Text_HitoshiDefeat:: + .string "Oof!\n" + .string "I give up!$" + +SaffronCity_Dojo_Text_HitoshiPostBattle:: + .string "The prime fighters across the land\n" + .string "train here.$" + +SaffronCity_Dojo_Text_YouWantHitmonlee:: + .string "You want the hard-kicking\n" + .string "HITMONLEE?$" + +SaffronCity_Dojo_Text_ReceivedMonFromKarateMaster:: + .string "{PLAYER} received the {STR_VAR_1}\n" + .string "from the KARATE MASTER.$" + +SaffronCity_Dojo_Text_YouWantHitmonchan:: + .string "You want the piston-punching\n" + .string "HITMONCHAN?$" + +SaffronCity_Dojo_Text_ReceivedMonFromKarateMaster2:: + .string "{PLAYER}は カラテ だいおう から\n" + .string "{STR_VAR_1}を もらった!$" + +SaffronCity_Dojo_Text_BetterNotGetGreedy:: + .string "Better not get greedy…$" + +SaffronCity_Dojo_Text_EnemiesOnEverySide:: + .string "Enemies on every side!$" + +SaffronCity_Dojo_Text_GoesAroundComesAround:: + .string "What goes around comes around.$" + +SaffronCity_Dojo_Text_FightingDojo:: + .string "FIGHTING DOJO$" + diff --git a/data/maps/SaffronCity_Frlg/map.json b/data/maps/SaffronCity_Frlg/map.json new file mode 100644 index 000000000000..145a34842a07 --- /dev/null +++ b/data/maps/SaffronCity_Frlg/map.json @@ -0,0 +1,437 @@ +{ + "id": "MAP_SAFFRON_CITY", + "name": "SaffronCity_Frlg", + "layout": "LAYOUT_SAFFRON_CITY", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE5", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_ROUTE6", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE7", + "offset": 10, + "direction": "left" + }, + { + "map": "MAP_ROUTE8", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 22, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt1", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 26, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt2", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 46, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt3", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 27, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt4", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 25, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 7, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt5", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "local_id": "LOCALID_SAFFRON_DOOR_GUARD_GRUNT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 34, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_DoorGuardGrunt", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 30, + "y": 39, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt7", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 48, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_RocketGrunt6", + "flag": "FLAG_HIDE_SAFFRON_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 37, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_Youngster", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 21, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_WorkerM", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 39, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_Man", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 44, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_Boy", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIDGEOT", + "x": 45, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_Pidgeot", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 32, + "y": 39, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_Lass", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 47, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_EventScript_BattleGirl", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 33, + "y": 30, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_1F", + "dest_warp_id": "1" + }, + { + "x": 22, + "y": 14, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", + "dest_warp_id": "1" + }, + { + "x": 40, + "y": 12, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_DOJO", + "dest_warp_id": "1" + }, + { + "x": 46, + "y": 12, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "1" + }, + { + "x": 27, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 40, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_MART", + "dest_warp_id": "1" + }, + { + "x": 24, + "y": 38, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 43, + "y": 38, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_MR_PSYCHICS_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 8, + "y": 27, + "elevation": 3, + "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 34, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 58, + "y": 27, + "elevation": 3, + "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 34, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 35, + "y": 46, + "elevation": 3, + "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", + "dest_warp_id": "0" + }, + { + "x": 35, + "y": 5, + "elevation": 3, + "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", + "dest_warp_id": "2" + }, + { + "x": 47, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 29, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_CitySign" + }, + { + "type": "sign", + "x": 42, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_DojoSign" + }, + { + "type": "sign", + "x": 13, + "y": 25, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_SilphProductSign" + }, + { + "type": "sign", + "x": 18, + "y": 30, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 29, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_SilphCoSign" + }, + { + "type": "sign", + "x": 54, + "y": 25, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_TrainerTips1" + }, + { + "type": "sign", + "x": 50, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_GymSign" + }, + { + "type": "sign", + "x": 40, + "y": 38, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_MrPsychicsHouseSign" + }, + { + "type": "sign", + "x": 49, + "y": 22, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_EventScript_TrainerFanClubSign" + } + ], + "connections_no_include": true +} diff --git a/data/maps/SaffronCity_Frlg/scripts.inc b/data/maps/SaffronCity_Frlg/scripts.inc new file mode 100644 index 000000000000..7be4041b5bc3 --- /dev/null +++ b/data/maps/SaffronCity_Frlg/scripts.inc @@ -0,0 +1,240 @@ +SaffronCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SaffronCity_OnTransition + .byte 0 + +SaffronCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SAFFRON_CITY + call_if_unset FLAG_RESCUED_MR_FUJI, SaffronCity_EventScript_MoveDoorGuardGrunt + end + +SaffronCity_EventScript_MoveDoorGuardGrunt:: + setobjectxyperm LOCALID_SAFFRON_DOOR_GUARD_GRUNT, 33, 31 + return + +SaffronCity_EventScript_RocketGrunt1:: + msgbox SaffronCity_Text_WhatDoYouWantGetLost, MSGBOX_NPC + end + +SaffronCity_EventScript_RocketGrunt2:: + msgbox SaffronCity_Text_BossTakeTownForTeamRocket, MSGBOX_NPC + end + +SaffronCity_EventScript_RocketGrunt3:: + msgbox SaffronCity_Text_DontGetDefiantOrIllHurtYou, MSGBOX_NPC + end + +SaffronCity_EventScript_RocketGrunt4:: + msgbox SaffronCity_Text_SaffronBelongsToTeamRocket, MSGBOX_NPC + end + +SaffronCity_EventScript_RocketGrunt5:: + msgbox SaffronCity_Text_CriminalLifeMakesMeFeelAlive, MSGBOX_NPC + end + +SaffronCity_EventScript_RocketGrunt6:: + msgbox SaffronCity_Text_WatchWhereYoureWalking, MSGBOX_NPC + end + +SaffronCity_EventScript_RocketGrunt7:: + msgbox SaffronCity_Text_WeCanExploitMonsAroundWorld, MSGBOX_NPC + end + +SaffronCity_EventScript_DoorGuardGrunt:: + lock + goto_if_set FLAG_RESCUED_MR_FUJI, SaffronCity_EventScript_DoorGuardAsleep + applymovement LOCALID_SAFFRON_DOOR_GUARD_GRUNT, Common_Movement_FacePlayer + waitmovement 0 + msgbox SaffronCity_Text_ImASecurityGuard + release + end + +SaffronCity_EventScript_DoorGuardAsleep:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox SaffronCity_Text_HesTakingASnooze + release + end + +SaffronCity_EventScript_WorkerM:: + msgbox SaffronCity_Text_YouBeatTeamRocket, MSGBOX_NPC + end + +SaffronCity_EventScript_Youngster:: + msgbox SaffronCity_Text_SafeToGoOutAgain, MSGBOX_NPC + end + +SaffronCity_EventScript_Lass:: + msgbox SaffronCity_Text_PeopleComingBackToSaffron, MSGBOX_NPC + end + +SaffronCity_EventScript_Boy:: + msgbox SaffronCity_Text_FlewHereOnPidgeot, MSGBOX_NPC + end + +SaffronCity_EventScript_Pidgeot:: + lock + faceplayer + waitse + playmoncry SPECIES_PIDGEOT, CRY_MODE_NORMAL + msgbox SaffronCity_Text_Pidgeot + waitmoncry + release + end + +SaffronCity_EventScript_Man:: + msgbox SaffronCity_Text_SawRocketBossEscaping, MSGBOX_NPC + end + +SaffronCity_EventScript_CitySign:: + msgbox SaffronCity_Text_CitySign, MSGBOX_SIGN + end + +SaffronCity_EventScript_DojoSign:: + msgbox SaffronCity_Text_FightingDojo, MSGBOX_SIGN + end + +SaffronCity_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_SABRINA, 0 + msgbox SaffronCity_Text_GymSign + releaseall + end + +SaffronCity_EventScript_TrainerTips1:: + msgbox SaffronCity_Text_FullHealCuresStatus, MSGBOX_SIGN + end + +SaffronCity_EventScript_TrainerTips2:: + msgbox SaffronCity_Text_GreatBallImprovedCatchRate, MSGBOX_SIGN + end + +SaffronCity_EventScript_SilphCoSign:: + msgbox SaffronCity_Text_SilphCoSign, MSGBOX_SIGN + end + +SaffronCity_EventScript_MrPsychicsHouseSign:: + msgbox SaffronCity_Text_MrPsychicsHouse, MSGBOX_SIGN + end + +SaffronCity_EventScript_SilphProductSign:: + msgbox SaffronCity_Text_SilphsLatestProduct, MSGBOX_SIGN + end + +SaffronCity_EventScript_TrainerFanClubSign:: + msgbox SaffronCity_Text_TrainerFanClubSign, MSGBOX_SIGN + end + +SaffronCity_Text_WhatDoYouWantGetLost:: + .string "What do you want?\n" + .string "Get lost!$" + +SaffronCity_Text_BossTakeTownForTeamRocket:: + .string "BOSS said he'll take this town\n" + .string "in the name of TEAM ROCKET!$" + +SaffronCity_Text_DontGetDefiantOrIllHurtYou:: + .string "Don't get defiant!\n" + .string "Or I'll have to hurt you!$" + +SaffronCity_Text_SaffronBelongsToTeamRocket:: + .string "SAFFRON belongs to TEAM ROCKET!$" + +SaffronCity_Text_CriminalLifeMakesMeFeelAlive:: + .string "My life as a criminal makes me feel\n" + .string "so alive!$" + +SaffronCity_Text_WatchWhereYoureWalking:: + .string "Ow!\n" + .string "Watch where you're walking!$" + +SaffronCity_Text_WeCanExploitMonsAroundWorld:: + .string "With SILPH under control, we can\n" + .string "exploit POKéMON around the world!\p" + .string "We'll get stinking rich, yeahah!$" + +SaffronCity_Text_YouBeatTeamRocket:: + .string "You beat TEAM ROCKET all alone?\n" + .string "That's amazing!$" + +SaffronCity_Text_SafeToGoOutAgain:: + .string "Yeah! TEAM ROCKET is gone!\n" + .string "It's safe to go out again!$" + +SaffronCity_Text_PeopleComingBackToSaffron:: + .string "People fled from here in droves\n" + .string "when those ROCKETS came.\p" + .string "They should be flocking back to\n" + .string "SAFFRON now.$" + +SaffronCity_Text_FlewHereOnPidgeot:: + .string "I flew here on my PIDGEOT when\n" + .string "I read about SILPH.\p" + .string "It's already over?\n" + .string "I missed the media action…$" + +SaffronCity_Text_Pidgeot:: + .string "PIDGEOT: Bi bibii!$" + +SaffronCity_Text_SawRocketBossEscaping:: + .string "I saw the ROCKET BOSS escaping\n" + .string "SILPH's building.$" + +SaffronCity_Text_ImASecurityGuard:: + .string "I'm a security guard.\p" + .string "Suspicious kids I don't allow in!$" + +SaffronCity_Text_HesTakingASnooze:: + .string "…\n" + .string "Snore…\p" + .string "Hah! He's taking a snooze!$" + +SaffronCity_Text_CitySign:: + .string "SAFFRON CITY\n" + .string "Shining, Golden Land of Commerce$" + +SaffronCity_Text_FightingDojo:: + .string "FIGHTING DOJO$" + +SaffronCity_Text_GymSign:: + .string "SAFFRON CITY POKéMON GYM\n" + .string "LEADER: SABRINA\l" + .string "The Master of PSYCHIC POKéMON!$" + +SaffronCity_Text_FullHealCuresStatus:: + .string "TRAINER TIPS\p" + .string "FULL HEAL cures all ailments like\n" + .string "burns, paralysis, poisoning,\l" + .string "freezing, and sleep.\p" + .string "It costs a bit more, but it's more\n" + .string "convenient than buying other items.$" + +SaffronCity_Text_GreatBallImprovedCatchRate:: + .string "TRAINER TIPS\p" + .string "The new GREAT BALL offers improved\n" + .string "catching rates.\p" + .string "Try it on those hard-to-catch\n" + .string "POKéMON.$" + +SaffronCity_Text_SilphCoSign:: + .string "SILPH CO. OFFICE BUILDING$" + +SaffronCity_Text_MrPsychicsHouse:: + .string "MR. PSYCHIC'S HOUSE$" + +SaffronCity_Text_SilphsLatestProduct:: + .string "SILPH's latest product!\n" + .string "Release to be determined…$" + +SaffronCity_Text_TrainerFanClubSign:: + .string "POKéMON TRAINER FAN CLUB\p" + .string "Many TRAINERS have scribbled their\n" + .string "names on this sign.$" + +SaffronCity_Text_HowCanClubNotRecognizeLance:: + .string "This FAN CLUB…\n" + .string "No one here has a clue!\p" + .string "How could they not recognize\n" + .string "the brilliance that is LANCE?\p" + .string "He stands for justice!\n" + .string "He's cool, and yet passionate!\l" + .string "He's the greatest, LANCE!$" + diff --git a/data/maps/SaffronCity_Gym_Frlg/map.json b/data/maps/SaffronCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..67a4ad0b115f --- /dev/null +++ b/data/maps/SaffronCity_Gym_Frlg/map.json @@ -0,0 +1,398 @@ +{ + "id": "MAP_SAFFRON_CITY_GYM", + "name": "SaffronCity_Gym_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 24, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Cameron", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 24, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Johan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Preston", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 14, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Amanda", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 4, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Stacy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 4, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Tasha", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SABRINA", + "x": 14, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Gym_EventScript_Sabrina", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 24, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SaffronCity_Gym_EventScript_Tyron", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 15, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Gym_EventScript_GymGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 13, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "3" + }, + { + "x": 14, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "3" + }, + { + "x": 15, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "3" + }, + { + "x": 18, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "32" + }, + { + "x": 0, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "22" + }, + { + "x": 0, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "20" + }, + { + "x": 0, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "30" + }, + { + "x": 0, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "11" + }, + { + "x": 0, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "28" + }, + { + "x": 0, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "19" + }, + { + "x": 8, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "18" + }, + { + "x": 8, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "7" + }, + { + "x": 8, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "17" + }, + { + "x": 8, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "15" + }, + { + "x": 8, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "26" + }, + { + "x": 8, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "13" + }, + { + "x": 12, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "24" + }, + { + "x": 12, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "12" + }, + { + "x": 16, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "10" + }, + { + "x": 16, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "9" + }, + { + "x": 18, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "5" + }, + { + "x": 20, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "23" + }, + { + "x": 20, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "4" + }, + { + "x": 20, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "21" + }, + { + "x": 20, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "16" + }, + { + "x": 20, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "27" + }, + { + "x": 20, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "14" + }, + { + "x": 28, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "25" + }, + { + "x": 28, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "8" + }, + { + "x": 28, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "31" + }, + { + "x": 28, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "6" + }, + { + "x": 28, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "29" + }, + { + "x": 28, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY_GYM", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 16, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_Gym_EventScript_GymStatue" + } + ] +} diff --git a/data/maps/SaffronCity_Gym_Frlg/scripts.inc b/data/maps/SaffronCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..64e3cb330cf8 --- /dev/null +++ b/data/maps/SaffronCity_Gym_Frlg/scripts.inc @@ -0,0 +1,257 @@ +SaffronCity_Gym_Frlg_MapScripts:: + .byte 0 + +SaffronCity_Gym_EventScript_Sabrina:: + famechecker FAMECHECKER_SABRINA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_SABRINA, SaffronCity_Gym_Text_SabrinaIntro, SaffronCity_Gym_Text_SabrinaDefeat, SaffronCity_Gym_EventScript_DefeatedSabrina, NO_MUSIC + goto_if_unset FLAG_GOT_TM04_FROM_SABRINA, SaffronCity_Gym_EventScript_GiveTM04 + msgbox SaffronCity_Gym_Text_ExplainTM04 + release + end + +SaffronCity_Gym_EventScript_DefeatedSabrina:: + famechecker FAMECHECKER_SABRINA, 2 + famechecker FAMECHECKER_SABRINA, 3 + clearflag FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS + setflag FLAG_DEFEATED_SABRINA + setflag FLAG_BADGE06_GET + set_gym_trainers_frlg 6 + goto SaffronCity_Gym_EventScript_GiveTM04 + end + +SaffronCity_Gym_EventScript_GiveTM04:: + msgbox SaffronCity_Gym_Text_ExplainMarshBadgeTakeThis + checkitemspace ITEM_TM04 + goto_if_eq VAR_RESULT, FALSE, SaffronCity_Gym_EventScript_NoRoomForTM04 + giveitem_msg SaffronCity_Gym_Text_ReceivedTM04FromSabrina, ITEM_TM04 + setflag FLAG_GOT_TM04_FROM_SABRINA + msgbox SaffronCity_Gym_Text_SabrinaPostBattle + release + end + +SaffronCity_Gym_EventScript_NoRoomForTM04:: + msgbox SaffronCity_Gym_Text_BagFullOfOtherItems + release + end + +SaffronCity_Gym_EventScript_Johan:: + trainerbattle_single TRAINER_PSYCHIC_JOHAN, SaffronCity_Gym_Text_JohanIntro, SaffronCity_Gym_Text_JohanDefeat + msgbox SaffronCity_Gym_Text_JohanPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_Tyron:: + trainerbattle_single TRAINER_PSYCHIC_TYRON, SaffronCity_Gym_Text_TyronIntro, SaffronCity_Gym_Text_TyronDefeat + famechecker FAMECHECKER_SABRINA, 5 + msgbox SaffronCity_Gym_Text_TyronPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_Cameron:: + trainerbattle_single TRAINER_PSYCHIC_CAMERON, SaffronCity_Gym_Text_CameronIntro, SaffronCity_Gym_Text_CameronDefeat + msgbox SaffronCity_Gym_Text_CameronPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_Preston:: + trainerbattle_single TRAINER_PSYCHIC_PRESTON, SaffronCity_Gym_Text_PrestonIntro, SaffronCity_Gym_Text_PrestonDefeat + msgbox SaffronCity_Gym_Text_PrestonPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_Amanda:: + trainerbattle_single TRAINER_CHANNELER_AMANDA, SaffronCity_Gym_Text_AmandaIntro, SaffronCity_Gym_Text_AmandaDefeat + msgbox SaffronCity_Gym_Text_AmandaPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_Stacy:: + trainerbattle_single TRAINER_CHANNELER_STACY, SaffronCity_Gym_Text_StacyIntro, SaffronCity_Gym_Text_StacyDefeat + msgbox SaffronCity_Gym_Text_StacyPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_Tasha:: + trainerbattle_single TRAINER_CHANNELER_TASHA, SaffronCity_Gym_Text_TashaIntro, SaffronCity_Gym_Text_TashaDefeat + msgbox SaffronCity_Gym_Text_TashaPostBattle, MSGBOX_AUTOCLOSE + end + +SaffronCity_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_SABRINA, SaffronCity_Gym_EventScript_GymGuyPostVictory + msgbox SaffronCity_Gym_Text_GymGuyAdvice + release + end + +SaffronCity_Gym_EventScript_GymGuyPostVictory:: + msgbox SaffronCity_Gym_Text_GymGuyPostVictory + release + end + +SaffronCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE06_GET, SaffronCity_Gym_EventScript_GymStatuePostVictory + msgbox SaffronCity_Gym_Text_GymStatue + releaseall + end + +SaffronCity_Gym_EventScript_GymStatuePostVictory:: + msgbox SaffronCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +SaffronCity_Gym_Text_SabrinaIntro:: + .string "I had a vision of your arrival.\p" + .string "I have had psychic powers since\n" + .string "I was a child.\p" + .string "It started when a spoon I\n" + .string "carelessly tossed, bent.\p" + .string "I dislike battling, but if you wish,\n" + .string "I will show you my powers!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +SaffronCity_Gym_Text_SabrinaDefeat:: + .string "This loss shocks me!\n" + .string "But, a loss is a loss.\p" + .string "I admit, I didn't work hard enough\n" + .string "to win.\p" + .string "Your victory has earned you the\n" + .string "MARSHBADGE.$" + +SaffronCity_Gym_Text_SabrinaPostBattle:: + .string "Psychic power isn't something that\n" + .string "only a few people have.\p" + .string "Everyone has psychic power.\n" + .string "People just don't realize it.$" + +SaffronCity_Gym_Text_ExplainMarshBadgeTakeThis:: + .string "The MARSHBADGE makes POKéMON up\n" + .string "to Lv. 70 obey you.\p" + .string "Stronger POKéMON will become wild,\n" + .string "ignoring your orders in battle.\p" + .string "Just don't raise your POKéMON too\n" + .string "much to avoid that problem.\p" + .string "Wait, please take this TM with you.$" + +SaffronCity_Gym_Text_ReceivedTM04FromSabrina:: + .string "{PLAYER} received TM04 from\n" + .string "SABRINA.$" + +SaffronCity_Gym_Text_ExplainTM04:: + .string "TM04 is CALM MIND.\p" + .string "It makes the POKéMON concentrate\n" + .string "to raise both SP. ATK and SP. DEF.$" + +SaffronCity_Gym_Text_BagFullOfOtherItems:: + .string "Your BAG is full of other items.$" + +SaffronCity_Gym_Text_AmandaIntro:: + .string "SABRINA is far younger than I,\n" + .string "but she has earned my respect.$" + +SaffronCity_Gym_Text_AmandaDefeat:: + .string "Not good enough!$" + +SaffronCity_Gym_Text_AmandaPostBattle:: + .string "In a battle of equals, the one\n" + .string "with the stronger will wins.\p" + .string "If you wish to beat SABRINA, focus\n" + .string "and will yourself to victory.$" + +SaffronCity_Gym_Text_JohanIntro:: + .string "Does our unseen power scare you?$" + +SaffronCity_Gym_Text_JohanDefeat:: + .string "I never foresaw this!$" + +SaffronCity_Gym_Text_JohanPostBattle:: + .string "PSYCHIC POKéMON fear only ghosts\n" + .string "and bugs!$" + +SaffronCity_Gym_Text_StacyIntro:: + .string "POKéMON take on the appearance of\n" + .string "their TRAINERS.\p" + .string "Your POKéMON must be tough, then!$" + +SaffronCity_Gym_Text_StacyDefeat:: + .string "I knew it!$" + +SaffronCity_Gym_Text_StacyPostBattle:: + .string "I have much to learn still…\p" + .string "I must master PSYCHIC and teach it\n" + .string "to my POKéMON…$" + +SaffronCity_Gym_Text_TyronIntro:: + .string "You understand, don't you?\p" + .string "That power alone isn't enough to\n" + .string "win in the world of POKéMON?$" + +SaffronCity_Gym_Text_TyronDefeat:: + .string "I don't believe this!$" + +SaffronCity_Gym_Text_TyronPostBattle:: + .string "SABRINA just wiped out the KARATE\n" + .string "MASTER next door.$" + +SaffronCity_Gym_Text_TashaIntro:: + .string "You and I, our POKéMON shall\n" + .string "battle!$" + +SaffronCity_Gym_Text_TashaDefeat:: + .string "I lost after all!$" + +SaffronCity_Gym_Text_TashaPostBattle:: + .string "I knew that this was going to take\n" + .string "place.$" + +SaffronCity_Gym_Text_CameronIntro:: + .string "SABRINA is young, but she's also\n" + .string "our highly skilled LEADER.\p" + .string "You won't reach her easily!$" + +SaffronCity_Gym_Text_CameronDefeat:: + .string "Ow!\n" + .string "Down and out!$" + +SaffronCity_Gym_Text_CameronPostBattle:: + .string "There used to be two POKéMON GYMS\n" + .string "in SAFFRON.\p" + .string "The FIGHTING DOJO next door lost\n" + .string "its GYM status, though.\p" + .string "We simply creamed them when we\n" + .string "decided to have just one GYM.$" + +SaffronCity_Gym_Text_PrestonIntro:: + .string "SAFFRON POKéMON GYM is famous for\n" + .string "training psychics.\p" + .string "You want to see SABRINA, don't\n" + .string "you? I can tell!$" + +SaffronCity_Gym_Text_PrestonDefeat:: + .string "Arrrgh!$" + +SaffronCity_Gym_Text_PrestonPostBattle:: + .string "That's right! I used telepathy to\n" + .string "read your mind!$" + +SaffronCity_Gym_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "SABRINA's POKéMON use psychic\n" + .string "power instead of force.\p" + .string "FIGHTING POKéMON are especially\n" + .string "weak against PSYCHIC POKéMON.\p" + .string "They'll get destroyed before they\n" + .string "can even aim a punch!$" + +SaffronCity_Gym_Text_GymGuyPostVictory:: + .string "Psychic power, huh?\p" + .string "If I had that, I'd make a bundle\n" + .string "at the slots!$" + +SaffronCity_Gym_Text_GymStatue:: + .string "SAFFRON POKéMON GYM\n" + .string "LEADER: SABRINA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +SaffronCity_Gym_Text_GymStatuePlayerWon:: + .string "SAFFRON POKéMON GYM\n" + .string "LEADER: SABRINA\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/SaffronCity_House_Frlg/map.json b/data/maps/SaffronCity_House_Frlg/map.json new file mode 100644 index 000000000000..7c07dd8b5292 --- /dev/null +++ b/data/maps/SaffronCity_House_Frlg/map.json @@ -0,0 +1,110 @@ +{ + "id": "MAP_SAFFRON_CITY_HOUSE", + "name": "SaffronCity_House_Frlg", + "layout": "LAYOUT_HOUSE5_FRLG", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIDGEY", + "x": 0, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_House_EventScript_Pidgey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_House_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_House_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", + "x": 5, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "4" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 5, + "y": 4, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SaffronCity_House_EventScript_Letter" + } + ] +} diff --git a/data/maps/SaffronCity_House_Frlg/scripts.inc b/data/maps/SaffronCity_House_Frlg/scripts.inc new file mode 100644 index 000000000000..706a9b1f6c4c --- /dev/null +++ b/data/maps/SaffronCity_House_Frlg/scripts.inc @@ -0,0 +1,45 @@ +SaffronCity_House_Frlg_MapScripts:: + .byte 0 + +SaffronCity_House_EventScript_Lass:: + msgbox SaffronCity_House_Text_DontLookAtMyLetter, MSGBOX_NPC + end + +SaffronCity_House_EventScript_Youngster:: + msgbox SaffronCity_House_Text_GettingCopycatPokeDoll, MSGBOX_NPC + end + +SaffronCity_House_EventScript_Pidgey:: + lock + faceplayer + waitse + playmoncry SPECIES_PIDGEY, CRY_MODE_NORMAL + msgbox SaffronCity_House_Text_Pidgey + waitmoncry + release + end + +SaffronCity_House_EventScript_Letter:: + msgbox SaffronCity_House_Text_ExplainPPUp, MSGBOX_SIGN + end + +SaffronCity_House_Text_DontLookAtMyLetter:: + .string "…Thank you for writing.\n" + .string "I hope to see you soon!\p" + .string "…Hey!\n" + .string "Don't look at my letter!$" + +SaffronCity_House_Text_Pidgey:: + .string "PIDGEY: Kurukkoo!$" + +SaffronCity_House_Text_GettingCopycatPokeDoll:: + .string "The COPYCAT is cute!\n" + .string "I'm getting her a POKé DOLL.$" + +SaffronCity_House_Text_ExplainPPUp:: + .string "I was given a PP UP as a gift.\p" + .string "It's used to increase the PP of\n" + .string "a POKéMON's move.\p" + .string "I should use it on a powerful move\n" + .string "with only a few PP.$" + diff --git a/data/maps/SaffronCity_Mart_Frlg/map.json b/data/maps/SaffronCity_Mart_Frlg/map.json new file mode 100644 index 000000000000..6869dc2f75ab --- /dev/null +++ b/data/maps/SaffronCity_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SAFFRON_CITY_MART", + "name": "SaffronCity_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 1, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Mart_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_Mart_EventScript_Lass", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "5" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_Mart_Frlg/scripts.inc b/data/maps/SaffronCity_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..d972b50876b3 --- /dev/null +++ b/data/maps/SaffronCity_Mart_Frlg/scripts.inc @@ -0,0 +1,43 @@ +SaffronCity_Mart_Frlg_MapScripts:: + .byte 0 + +SaffronCity_Mart_EventScript_Lass:: + msgbox SaffronCity_Mart_Text_ReviveIsCostly, MSGBOX_NPC + end + +SaffronCity_Mart_EventScript_Youngster:: + msgbox SaffronCity_Mart_Text_MaxRepelMoreEffectiveThanSuper, MSGBOX_NPC + end + +SaffronCity_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart SaffronCity_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +SaffronCity_Mart_Items:: + .2byte ITEM_GREAT_BALL + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +SaffronCity_Mart_Text_MaxRepelMoreEffectiveThanSuper:: + .string "MAX REPEL keeps weaker POKéMON\n" + .string "from appearing.\p" + .string "MAX REPEL stays effective longer\n" + .string "than SUPER REPEL.$" + +SaffronCity_Mart_Text_ReviveIsCostly:: + .string "REVIVE is costly, but it revives\n" + .string "fainted POKéMON!$" + diff --git a/data/maps/SaffronCity_MrPsychicsHouse_Frlg/map.json b/data/maps/SaffronCity_MrPsychicsHouse_Frlg/map.json new file mode 100644 index 000000000000..1835073d61c4 --- /dev/null +++ b/data/maps/SaffronCity_MrPsychicsHouse_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SAFFRON_CITY_MR_PSYCHICS_HOUSE", + "name": "SaffronCity_MrPsychicsHouse_Frlg", + "layout": "LAYOUT_HOUSE5_FRLG", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_MrPsychicsHouse_EventScript_MrPsychic", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "7" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "7" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_MrPsychicsHouse_Frlg/scripts.inc b/data/maps/SaffronCity_MrPsychicsHouse_Frlg/scripts.inc new file mode 100644 index 000000000000..fc9815279529 --- /dev/null +++ b/data/maps/SaffronCity_MrPsychicsHouse_Frlg/scripts.inc @@ -0,0 +1,44 @@ +SaffronCity_MrPsychicsHouse_Frlg_MapScripts:: + .byte 0 + +SaffronCity_MrPsychicsHouse_EventScript_MrPsychic:: + lock + faceplayer + goto_if_set FLAG_GOT_TM29_FROM_MR_PSYCHIC, SaffronCity_MrPsychicsHouse_EventScript_AlreadyGotTM29 + msgbox SaffronCity_MrPsychicsHouse_Text_YouWantedThis + checkitemspace ITEM_TM29 + goto_if_eq VAR_RESULT, FALSE, SaffronCity_MrPsychicsHouse_EventScript_NoRoomForTM29 + giveitem_msg SaffronCity_MrPsychicsHouse_Text_ReceivedTM29FromMrPsychic, ITEM_TM29 + msgbox SaffronCity_MrPsychicsHouse_Text_ExplainTM29 + setflag FLAG_GOT_TM29_FROM_MR_PSYCHIC + release + end + +SaffronCity_MrPsychicsHouse_EventScript_NoRoomForTM29:: + msgbox SaffronCity_MrPsychicsHouse_Text_YouveNoRoom + release + end + +SaffronCity_MrPsychicsHouse_EventScript_AlreadyGotTM29:: + msgbox SaffronCity_MrPsychicsHouse_Text_ExplainTM29 + release + end + +SaffronCity_MrPsychicsHouse_Text_YouWantedThis:: + .string "…Wait! Don't say a word!\p" + .string "You wanted this!$" + +SaffronCity_MrPsychicsHouse_Text_ReceivedTM29FromMrPsychic:: + .string "{PLAYER} received TM29\n" + .string "from MR. PSYCHIC.$" + +SaffronCity_MrPsychicsHouse_Text_ExplainTM29:: + .string "You already know, don't you?\n" + .string "TM29 is PSYCHIC.\p" + .string "It's an attack that may also lower\n" + .string "the target's special stats.$" + +SaffronCity_MrPsychicsHouse_Text_YouveNoRoom:: + .string "Where do you plan to put this?\n" + .string "You've no room.$" + diff --git a/data/maps/SaffronCity_PokemonCenter_1F_Frlg/map.json b/data/maps/SaffronCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..3e8ea5b71e45 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,137 @@ +{ + "id": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", + "name": "SaffronCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_SAFFRON_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonCenter_1F_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonCenter_1F_EventScript_PokemonJournalSabrina", + "flag": "FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonCenter_1F_EventScript_PokemonJournalSabrina", + "flag": "FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "6" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "6" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "6" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/SaffronCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..e86d0ac34bbc --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,57 @@ +SaffronCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SaffronCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +SaffronCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_SAFFRON_CITY + end + +SaffronCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +SaffronCity_PokemonCenter_1F_EventScript_Gentleman:: + msgbox SaffronCity_PokemonCenter_1F_Text_SilphCoVictimOfFame, MSGBOX_NPC + end + +SaffronCity_PokemonCenter_1F_EventScript_Woman:: + msgbox SaffronCity_PokemonCenter_1F_Text_GrowthRatesDifferBySpecies, MSGBOX_NPC + end + +SaffronCity_PokemonCenter_1F_EventScript_Youngster:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_SILPH_CO_11F, 1, SaffronCity_PokemonCenter_1F_EventScript_YoungsterRocketsGone + msgbox SaffronCity_PokemonCenter_1F_Text_GreatIfEliteFourCameBeatRockets + release + end + +SaffronCity_PokemonCenter_1F_EventScript_YoungsterRocketsGone:: + msgbox SaffronCity_PokemonCenter_1F_Text_TeamRocketTookOff + release + end + +SaffronCity_PokemonCenter_1F_Text_GrowthRatesDifferBySpecies:: + .string "POKéMON growth rates differ from\n" + .string "species to species.$" + +SaffronCity_PokemonCenter_1F_Text_SilphCoVictimOfFame:: + .string "SILPH CO. is widely known to all.\p" + .string "It's a victim of its own fame - it\n" + .string "attracted TEAM ROCKET.$" + +SaffronCity_PokemonCenter_1F_Text_GreatIfEliteFourCameBeatRockets:: + .string "Sigh…\n" + .string "Wouldn't this be great?\p" + .string "If the ELITE FOUR came and\n" + .string "stomped TEAM ROCKET?$" + +SaffronCity_PokemonCenter_1F_Text_TeamRocketTookOff:: + .string "TEAM ROCKET took off!\n" + .string "We can go out safely again!\l" + .string "That's great!$" + diff --git a/data/maps/SaffronCity_PokemonCenter_2F_Frlg/map.json b/data/maps/SaffronCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..5803d7fb3d23 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_SAFFRON_CITY_POKEMON_CENTER_2F", + "name": "SaffronCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/SaffronCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..bd8a36498071 --- /dev/null +++ b/data/maps/SaffronCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +SaffronCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +SaffronCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +SaffronCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +SaffronCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/map.json b/data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/map.json new file mode 100644 index 000000000000..b8396f238efb --- /dev/null +++ b/data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/map.json @@ -0,0 +1,179 @@ +{ + "id": "MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "name": "SaffronCity_PokemonTrainerFanClub_Frlg", + "layout": "LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SAFFRON_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 7, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirl", + "flag": "0" + }, + { + "local_id": "LOCALID_SAFFRON_CITY_TRAINER_FAN_CLUB_LITTLE_GIRL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 6, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirl", + "flag": "0" + }, + { + "local_id": "LOCALID_TRAINER_FAN_CLUB_YOUNGSTER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 3, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_Youngster", + "flag": "0" + }, + { + "local_id": "LOCALID_TRAINER_FAN_CLUB_GENTLEMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 3, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_Gentleman", + "flag": "0" + }, + { + "local_id": "LOCALID_SAFFRON_CITY_TRAINER_FAN_CLUB_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 9, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_Woman", + "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN" + }, + { + "local_id": "LOCALID_TRAINER_FAN_CLUB_ROCKER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 7, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_Rocker", + "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER" + }, + { + "local_id": "LOCALID_TRAINER_FAN_CLUB_BEAUTY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 9, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_Beauty", + "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY" + }, + { + "local_id": "LOCALID_TRAINER_FAN_CLUB_BLACK_BELT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 5, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_BlackBelt", + "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_PokemonJournalBruno", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SaffronCity_PokemonTrainerFanClub_EventScript_PokemonJournalBruno", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 5, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "14" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/scripts.inc new file mode 100644 index 000000000000..eab83855bd61 --- /dev/null +++ b/data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/scripts.inc @@ -0,0 +1,675 @@ +SaffronCity_PokemonTrainerFanClub_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, SaffronCity_PokemonTrainerFanClub_OnFrame + map_script MAP_SCRIPT_ON_TRANSITION, SaffronCity_PokemonTrainerFanClub_OnTransition + .byte 0 + +SaffronCity_PokemonTrainerFanClub_OnFrame:: + map_script_2 VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 1, SaffronCity_PokemonTrainerFanClub_EventScript_MeetFirstFans + .2byte 0 + +SaffronCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: + lockall + textcolor NPC_TEXT_COLOR_FEMALE + applymovement LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playse SE_PIN + applymovement LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL, Common_Movement_Delay48 + waitmovement 0 + msgbox SaffronCity_PokemonTrainerFanClub_Text_HuhYou + closemessage + applymovement LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL, SaffronCity_PokemonTrainerFanClub_Movement_FanApproachPlayer + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + msgbox SaffronCity_PokemonTrainerFanClub_Text_YourePlayerWereYourFansNow + setvar VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2 + releaseall + end + +SaffronCity_PokemonTrainerFanClub_Movement_FanApproachPlayer:: + delay_16 + delay_8 + walk_down + delay_16 + walk_down + delay_8 + walk_left + step_end + +SaffronCity_PokemonTrainerFanClub_OnTransition:: + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 1, SaffronCity_PokemonTrainerFanClub_EventScript_SetMemberPosForFirstMeeting + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2, SaffronCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions + end + +SaffronCity_PokemonTrainerFanClub_EventScript_UpdateFanMemberPositions:: + special Script_TryLoseFansFromPlayTime + setvar VAR_0x8004, FANCLUB_MEMBER1 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER2 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER3 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember3ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER4 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER5 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER6 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER7 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable + setvar VAR_0x8004, FANCLUB_MEMBER8 + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + call_if_eq VAR_RESULT, FALSE, SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable + end + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL, 5, 2 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_BATTLE_GIRL, MOVEMENT_TYPE_FACE_UP + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember2ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_YOUNGSTER, 7, 4 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_YOUNGSTER, MOVEMENT_TYPE_FACE_LEFT + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember3ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_GENTLEMAN, 2, 2 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_GENTLEMAN, MOVEMENT_TYPE_FACE_UP + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_LITTLE_GIRL, 3, 4 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_LITTLE_GIRL, MOVEMENT_TYPE_FACE_RIGHT + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_ROCKER, 4, 6 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_ROCKER, MOVEMENT_TYPE_FACE_UP + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_WOMAN, 10, 3 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_WOMAN, MOVEMENT_TYPE_FACE_UP + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_BEAUTY, 7, 5 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_BEAUTY, MOVEMENT_TYPE_FACE_LEFT + return + +SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable:: + setobjectxyperm LOCALID_TRAINER_FAN_CLUB_BLACK_BELT, 9, 6 + setobjectmovementtype LOCALID_TRAINER_FAN_CLUB_BLACK_BELT, MOVEMENT_TYPE_FACE_LEFT + return + +SaffronCity_PokemonTrainerFanClub_EventScript_SetMemberPosForFirstMeeting:: + call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember4ToFarTable + call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember5ToFarTable + call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember6ToFarTable + call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember7ToFarTable + call SaffronCity_PokemonTrainerFanClub_EventScript_MoveMember8ToFarTable + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirl:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER1 + special Script_BufferFanClubTrainerName + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayerNotChampion + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_WasYourFanNotAnymore + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_IllAlwaysBelieveInYou + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_EveryonesYourFanButICantBe + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BattleGirlPlayerNotChampion:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_TrainersCoolWhenBattling + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirl:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER4 + special Script_BufferFanClubTrainerName + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayerNotChampion + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_WantToBeLikeSabrina + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_WantToBeLikeYouOneDay + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_EveryoneButMeStoppedBeingYourFan + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_WontStopBeingSabrinasFan + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_LittleGirlPlayerNotChampion:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_CanIBecomeCoolTrainerOneDay + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_Youngster:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER2 + special Script_BufferFanClubTrainerName + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterPlayerNotChampion + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_BrocksMyHero + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_CanYouAutographShorts + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_CountingOnYou + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_BrocksFanToBitterEnd + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_YoungsterPlayerNotChampion:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_BrocksLastWordOnCool + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_Gentleman:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER3 + special Script_BufferFanClubTrainerName + goto_if_eq VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 0, SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanPlayerNotChampion + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_HmmAndYouAre + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_HadPleasureOfWatchingYouBattle + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_NeverSeenTrainerOfYourMagnificence + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_YouveStillAWaysToGo + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_GentlemanPlayerNotChampion:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_YoullBeTalkedAboutIfYouKeepWinning + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_Woman:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER6 + special Script_BufferFanClubTrainerName + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_WomanOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_TrainerHasBeenOnFire + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_WomanPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_AdoreWayYouBattle + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_WomanOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_ImYourNumberOneFan + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_WomanOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_EveryoneTalksAboutYou + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_Rocker:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER5 + special Script_BufferFanClubTrainerName + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_RockerPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_RockerOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_LoveWayTrainerTalks + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_RockerPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_RockerOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_TheWayYouBattleIsCool + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_RockerOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_ImOnlyOneLeftOfYourFans + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_RockerOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_ImLoneTrainerFan + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_Beauty:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER7 + special Script_BufferFanClubTrainerName + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_BeautyPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_BeautyOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_WhyCantOthersSeeMastersDignity + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BeautyPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_BeautyOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_YouReallyAreAmazing + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BeautyOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_ImYourOnlyFan + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BeautyOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_BelieveInMasterWithAllMyHeart + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BlackBelt:: + lock + faceplayer + setvar VAR_0x8004, FANCLUB_MEMBER8 + special Script_BufferFanClubTrainerName + specialvar VAR_RESULT, Script_IsFanClubMemberFanOfPlayer + goto_if_eq VAR_RESULT, TRUE, SaffronCity_PokemonTrainerFanClub_EventScript_BlackBeltPlayersFan + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, (NUM_TRAINER_FAN_CLUB_MEMBERS - 1), SaffronCity_PokemonTrainerFanClub_EventScript_BlackBeltOnlyNonFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_OnlyMasterHasMyRespect + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BlackBeltPlayersFan:: + specialvar VAR_RESULT, Script_GetNumFansOfPlayerInTrainerFanClub + goto_if_eq VAR_RESULT, 1, SaffronCity_PokemonTrainerFanClub_EventScript_BlackBeltOnlyFan + msgbox SaffronCity_PokemonTrainerFanClub_Text_YourBattleStyleIsEducational + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BlackBeltOnlyFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_WontStopBeingYourFan + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_BlackBeltOnlyNonFan:: + msgbox SaffronCity_PokemonTrainerFanClub_Text_NeverBeFanOfAnyoneButMaster + release + end + +SaffronCity_PokemonTrainerFanClub_Text_HuhYou:: + .string "Huh?\n" + .string "You…$" + +SaffronCity_PokemonTrainerFanClub_Text_YourePlayerWereYourFansNow:: + .string "Are you maybe…\n" + .string "… …\p" + .string "You are!\n" + .string "You are {PLAYER}!\p" + .string "We were just talking about you!\p" + .string "We were talking about how an\n" + .string "incredibly good TRAINER appeared.\p" + .string "And that someone is you!\n" + .string "You're so cool!\p" + .string "So, we decided that we'll become\n" + .string "your FAN CLUB!\p" + .string "We all hope you'll keep battling\n" + .string "and show us how cool you are.\p" + .string "That way, maybe other people will\n" + .string "become fans just like me.$" + +SaffronCity_PokemonTrainerFanClub_Text_AlwaysCheerForYou:: + .string "I'll always be cheering for you!\p" + .string "Go, {PLAYER}, go!$" + +SaffronCity_PokemonTrainerFanClub_Text_IllAlwaysBelieveInYou:: + .string "I'll always believe in you,\n" + .string "{PLAYER}.\p" + .string "Please show the others what you're\n" + .string "like when you battle seriously.$" + +SaffronCity_PokemonTrainerFanClub_Text_WasYourFanNotAnymore:: + .string "I'm sorry.\n" + .string "I was your fan before.\p" + .string "But now, you seem to have lost\n" + .string "the drive you had before.\p" + .string "Lately, I think {STR_VAR_1} has been\n" + .string "a lot cooler.$" + +SaffronCity_PokemonTrainerFanClub_Text_EveryonesYourFanButICantBe:: + .string "Oh!\n" + .string "{PLAYER}!\p" + .string "Everyone's been all excited about\n" + .string "you recently.\p" + .string "I can understand why.\n" + .string "I know that you're strong.\p" + .string "But, do you know what?\p" + .string "Once I became {STR_VAR_1}'s fan,\n" + .string "I can't just stop being a fan.$" + +SaffronCity_PokemonTrainerFanClub_Text_TrainersCoolWhenBattling:: + .string "I think TRAINERS are so cool when\n" + .string "they're battling.\p" + .string "Don't you think so, too?$" + +SaffronCity_PokemonTrainerFanClub_Text_CanYouAutographShorts:: + .string "Oh! It's {PLAYER}!\n" + .string "Too cool!\p" + .string "Oh!\n" + .string "Oh, yeah!\p" + .string "Can you autograph something?\n" + .string "How about my shorts?$" + +SaffronCity_PokemonTrainerFanClub_Text_CountingOnYou:: + .string "However hot it's been…\p" + .string "And however cold it may get…\p" + .string "I've always believed in, and worn,\n" + .string "shorts!\p" + .string "I'm counting on you to keep\n" + .string "winning!\p" + .string "I believe in you just as much as\n" + .string "I believe in shorts!$" + +SaffronCity_PokemonTrainerFanClub_Text_BrocksMyHero:: + .string "BROCK's my hero!\n" + .string "He's a man among men!\p" + .string "Heheh, I got my mom to do\n" + .string "something for me.\p" + .string "I got her to embroider “BROCK”\n" + .string "on my shorts!$" + +SaffronCity_PokemonTrainerFanClub_Text_BrocksFanToBitterEnd:: + .string "… …\p" + .string "… …\n" + .string "I'm BROCK's fan!\p" + .string "Even if I were his only fan,\n" + .string "I swear it on my rock-hard will,\l" + .string "and on my shorts!\p" + .string "I'll be his fan to the bitter end!$" + +SaffronCity_PokemonTrainerFanClub_Text_BrocksLastWordOnCool:: + .string "BROCK's the last word on cool,\n" + .string "end of story!\p" + .string "Now there's a guy who I want to\n" + .string "be like!$" + +SaffronCity_PokemonTrainerFanClub_Text_HadPleasureOfWatchingYouBattle:: + .string "{PLAYER}, I've had the pleasure of\n" + .string "watching you battle.\p" + .string "It brings back sweet memories of\n" + .string "my own long-lost youth.\p" + .string "May you continue to find success.\n" + .string "You have a fan in me!$" + +SaffronCity_PokemonTrainerFanClub_Text_NeverSeenTrainerOfYourMagnificence:: + .string "I have journeyed far and wide\n" + .string "across the lands.\p" + .string "But never have I seen a TRAINER\n" + .string "of your magnificence.\p" + .string "Take courage in your abilities\n" + .string "and keep battling on!\p" + .string "Make that a promise to me,\n" + .string "my young idol!$" + +SaffronCity_PokemonTrainerFanClub_Text_HmmAndYouAre:: + .string "Hmm…\n" + .string "And you are?\p" + .string "Were you hoping to sign up for\n" + .string "a membership in our FAN CLUB?$" + +SaffronCity_PokemonTrainerFanClub_Text_YouveStillAWaysToGo:: + .string "Ah, so you are the much-\n" + .string "talked-about {PLAYER}.\p" + .string "You certainly do have the look of\n" + .string "a winner.\p" + .string "But for me to accept you as\n" + .string "a true POKéMON great…\p" + .string "… …\p" + .string "You've still a ways to go!$" + +SaffronCity_PokemonTrainerFanClub_Text_YoullBeTalkedAboutIfYouKeepWinning:: + .string "All of us gathered here are fans\n" + .string "of POKéMON TRAINERS.\p" + .string "The way they look in battle…\n" + .string "They are the picture of coolness.\p" + .string "Perhaps you will be talked about\n" + .string "here, too, if you keep winning.$" + +SaffronCity_PokemonTrainerFanClub_Text_WantToBeLikeYouOneDay:: + .string "It's {PLAYER}!\n" + .string "It's {PLAYER}!\p" + .string "I want to be like {PLAYER} one day!$" + +SaffronCity_PokemonTrainerFanClub_Text_EveryoneButMeStoppedBeingYourFan:: + .string "Everyone stopped being {PLAYER}'s\n" + .string "fan…\p" + .string "But that means I can have {PLAYER}\n" + .string "all to myself!\p" + .string "Yay! Go for it!\n" + .string "My one and only {PLAYER}!$" + +SaffronCity_PokemonTrainerFanClub_Text_WantToBeLikeSabrina:: + .string "Do you know what?\n" + .string "I want to be like SABRINA!\p" + .string "I want to be a psychic girl just\n" + .string "like her!$" + +SaffronCity_PokemonTrainerFanClub_Text_WontStopBeingSabrinasFan:: + .string "Even if I'm the only one, I won't\n" + .string "stop being SABRINA's fan.\p" + .string "My dream is to be like SABRINA,\n" + .string "cute, but cool.\p" + .string "I want to be a psychic girl just\n" + .string "like her!$" + +SaffronCity_PokemonTrainerFanClub_Text_CanIBecomeCoolTrainerOneDay:: + .string "I wonder if I can become a cool\n" + .string "TRAINER one day?$" + +SaffronCity_PokemonTrainerFanClub_Text_TheWayYouBattleIsCool:: + .string "Oh, man, oh, man!\n" + .string "Cool! Too cool!\p" + .string "…Huh?\n" + .string "No, not you.\p" + .string "Just the way you battle.\n" + .string "That's cool.$" + +SaffronCity_PokemonTrainerFanClub_Text_ImOnlyOneLeftOfYourFans:: + .string "Yo, {PLAYER}!\p" + .string "Looks like I'm the only one left\n" + .string "out of your fans.\p" + .string "But, you know, I like being an only\n" + .string "fan… It's less stressful.\p" + .string "Keep up and at it!$" + +SaffronCity_PokemonTrainerFanClub_Text_LoveWayTrainerTalks:: + .string "{STR_VAR_1}'s cool, huh?\n" + .string "I love the way he talks.\p" + .string "I'd really relish a chance to meet\n" + .string "him in person once.$" + +SaffronCity_PokemonTrainerFanClub_Text_ImLoneTrainerFan:: + .string "Huh, can you believe it?\n" + .string "Everyone turned into your fans.\p" + .string "So after all we've been through,\n" + .string "I'm the lone {STR_VAR_1} fan?\p" + .string "Eh, being the one and only\n" + .string "{STR_VAR_1} fan's my style, anyway.$" + +SaffronCity_PokemonTrainerFanClub_Text_AdoreWayYouBattle:: + .string "Oh, my goodness!\n" + .string "Is it really you, {PLAYER}?\p" + .string "I have to tell you, I adore the\n" + .string "way you battle.\p" + .string "I hope you'll keep at it.\n" + .string "I'll be your number one fan!$" + +SaffronCity_PokemonTrainerFanClub_Text_ImYourNumberOneFan:: + .string "Oh, my goodness!\n" + .string "If it isn't {PLAYER}!\p" + .string "It's so disappointing… I realized\n" + .string "I'm your number-one-and-only fan!\p" + .string "Well, it can't be helped!\n" + .string "Let me cheer you on, at least!\p" + .string "Hurray, hurray, {PLAYER}!$" + +SaffronCity_PokemonTrainerFanClub_Text_TrainerHasBeenOnFire:: + .string "Recently, {STR_VAR_1} has been on\n" + .string "fire.\p" + .string "The way he battles… It's just \n" + .string "the way that I like it!$" + +SaffronCity_PokemonTrainerFanClub_Text_EveryoneTalksAboutYou:: + .string "Oh, hello!\n" + .string "If it isn't {PLAYER}!\p" + .string "Lately, all everyone talks about\n" + .string "is you.\p" + .string "I'm feeling lonesome because I\n" + .string "prefer {STR_VAR_1}.$" + +SaffronCity_PokemonTrainerFanClub_Text_YouReallyAreAmazing:: + .string "Amazing!\n" + .string "{PLAYER}, you really are amazing!\p" + .string "Instead of just watching, maybe\n" + .string "I should become a TRAINER, too.$" + +SaffronCity_PokemonTrainerFanClub_Text_ImYourOnlyFan:: + .string "I'm your only fan…\n" + .string "Sigh… This is lonely…\p" + .string "Can't you try harder and make the\n" + .string "others take notice of you?$" + +SaffronCity_PokemonTrainerFanClub_Text_WhyCantOthersSeeMastersDignity:: + .string "Master {STR_VAR_1} is so dignified…\n" + .string "He is so my type.\p" + .string "Why can't the others see the\n" + .string "dignity he simply oozes?$" + +SaffronCity_PokemonTrainerFanClub_Text_BelieveInMasterWithAllMyHeart:: + .string "I believe in Master {STR_VAR_1}\n" + .string "with all my heart.\p" + .string "Even if I am the only one to\n" + .string "believe in him.\p" + .string "I won't ever feel lonesome, though.\p" + .string "Not if I keep thinking about Master\n" + .string "{STR_VAR_1}.$" + +SaffronCity_PokemonTrainerFanClub_Text_YourBattleStyleIsEducational:: + .string "Hiyah!\p" + .string "Your battling style is most\n" + .string "educational.\p" + .string "I hope that you will keep plugging\n" + .string "away at success, hiyah!$" + +SaffronCity_PokemonTrainerFanClub_Text_WontStopBeingYourFan:: + .string "Instead of just watching others\n" + .string "battle, battle yourself!\p" + .string "…My DOJO's MASTER chewed me out\n" + .string "like that…\p" + .string "But I won't let that stop me from\n" + .string "being your fan!\p" + .string "I can't stop being your fan!$" + +SaffronCity_PokemonTrainerFanClub_Text_OnlyMasterHasMyRespect:: + .string "Hiyah! There is but one TRAINER\n" + .string "who has my respect.\p" + .string "And that is none other than my\n" + .string "MASTER at the FIGHTING DOJO.\p" + .string "You should become a fan of my\n" + .string "MASTER like me! Hiyah!$" + +SaffronCity_PokemonTrainerFanClub_Text_NeverBeFanOfAnyoneButMaster:: + .string "Hiyah! I respect my MASTER at the\n" + .string "FIGHTING DOJO.\p" + .string "I will never become a fan of\n" + .string "anyone other than my MASTER!\p" + .string "I will even sneak out of the DOJO\n" + .string "to spread word of his greatness.\p" + .string "Hiyah!$" + diff --git a/data/maps/SeafoamIslands_1F_Frlg/map.json b/data/maps/SeafoamIslands_1F_Frlg/map.json new file mode 100644 index 000000000000..868edbd1bb48 --- /dev/null +++ b/data/maps/SeafoamIslands_1F_Frlg/map.json @@ -0,0 +1,119 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_1F", + "name": "SeafoamIslands_1F_Frlg", + "layout": "LAYOUT_SEAFOAM_ISLANDS_1F", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 22, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_1" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 32, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_2" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SeafoamIslands_1F_EventScript_ItemIceHeal", + "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_1F_ICE_HEAL" + } + ], + "warp_events": [ + { + "x": 10, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "0" + }, + { + "x": 31, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "1" + }, + { + "x": 28, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROUTE20", + "dest_warp_id": "0" + }, + { + "x": 32, + "y": 21, + "elevation": 3, + "dest_map": "MAP_ROUTE20", + "dest_warp_id": "1" + }, + { + "x": 21, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "9" + }, + { + "x": 30, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "10" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SeafoamIslands_1F_Frlg/scripts.inc b/data/maps/SeafoamIslands_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..9e1093cced9a --- /dev/null +++ b/data/maps/SeafoamIslands_1F_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SeafoamIslands_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SeafoamIslands_1F_OnTransition + .byte 0 + +SeafoamIslands_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F + end diff --git a/data/maps/SeafoamIslands_B1F_Frlg/map.json b/data/maps/SeafoamIslands_B1F_Frlg/map.json new file mode 100644 index 000000000000..9e8dffbdd884 --- /dev/null +++ b/data/maps/SeafoamIslands_B1F_Frlg/map.json @@ -0,0 +1,157 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B1F", + "name": "SeafoamIslands_B1F_Frlg", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B1F", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 22, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 30, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 19, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SeafoamIslands_B1F_EventScript_ItemWaterStone", + "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_B1F_WATER_STONE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 24, + "y": 14, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SeafoamIslands_B1F_EventScript_ItemRevive", + "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_B1F_REVIVE" + } + ], + "warp_events": [ + { + "x": 10, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "0" + }, + { + "x": 31, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "1" + }, + { + "x": 28, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 3, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "3" + }, + { + "x": 17, + "y": 9, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "4" + }, + { + "x": 25, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "5" + }, + { + "x": 32, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "6" + }, + { + "x": 23, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "7" + }, + { + "x": 28, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "8" + }, + { + "x": 21, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "5" + }, + { + "x": 29, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_1F", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SeafoamIslands_B1F_Frlg/scripts.inc b/data/maps/SeafoamIslands_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..3b053097caad --- /dev/null +++ b/data/maps/SeafoamIslands_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SeafoamIslands_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SeafoamIslands_B2F_Frlg/map.json b/data/maps/SeafoamIslands_B2F_Frlg/map.json new file mode 100644 index 000000000000..43cc4bbfdb59 --- /dev/null +++ b/data/maps/SeafoamIslands_B2F_Frlg/map.json @@ -0,0 +1,143 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B2F", + "name": "SeafoamIslands_B2F_Frlg", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B2F", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 22, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_1", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 30, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_2", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 18, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SeafoamIslands_B2F_EventScript_ItemBigPearl", + "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_B2F_BIG_PEARL" + } + ], + "warp_events": [ + { + "x": 7, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "0" + }, + { + "x": 32, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "1" + }, + { + "x": 31, + "y": 17, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "2" + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "3" + }, + { + "x": 17, + "y": 9, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "4" + }, + { + "x": 25, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "5" + }, + { + "x": 32, + "y": 14, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "6" + }, + { + "x": 22, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "7" + }, + { + "x": 29, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", + "dest_warp_id": "8" + }, + { + "x": 24, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "5" + }, + { + "x": 27, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SeafoamIslands_B2F_Frlg/scripts.inc b/data/maps/SeafoamIslands_B2F_Frlg/scripts.inc new file mode 100644 index 000000000000..cfa648842c2b --- /dev/null +++ b/data/maps/SeafoamIslands_B2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SeafoamIslands_B2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SeafoamIslands_B3F_Frlg/map.json b/data/maps/SeafoamIslands_B3F_Frlg/map.json new file mode 100644 index 000000000000..4c48e6703f3f --- /dev/null +++ b/data/maps/SeafoamIslands_B3F_Frlg/map.json @@ -0,0 +1,182 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B3F", + "name": "SeafoamIslands_B3F_Frlg", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B3F", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 23, + "y": 8, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_1" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 24, + "y": 8, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_2" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 12, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_2", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_5" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 13, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_6" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 9, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_4" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_1", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_3" + } + ], + "warp_events": [ + { + "x": 8, + "y": 14, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "0" + }, + { + "x": 31, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "1" + }, + { + "x": 31, + "y": 16, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "2" + }, + { + "x": 12, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": "0" + }, + { + "x": 29, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": "1" + }, + { + "x": 23, + "y": 9, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "7" + }, + { + "x": 24, + "y": 9, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", + "dest_warp_id": "8" + }, + { + "x": 6, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": "2" + }, + { + "x": 9, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 5, + "y": 12, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SeafoamIslands_B3F_Frlg/scripts.inc b/data/maps/SeafoamIslands_B3F_Frlg/scripts.inc new file mode 100644 index 000000000000..18daef669135 --- /dev/null +++ b/data/maps/SeafoamIslands_B3F_Frlg/scripts.inc @@ -0,0 +1,95 @@ +.equ NUM_BOULDERS_PRESENT, VAR_TEMP_2 + +SeafoamIslands_B3F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SeafoamIslands_B3F_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, SeafoamIslands_B3F_OnFrame + .byte 0 + +SeafoamIslands_B3F_OnTransition:: + call_if_unset FLAG_STOPPED_SEAFOAM_B3F_CURRENT, SeafoamIslands_B3F_EventScript_CheckStoppedCurrent + call_if_set FLAG_STOPPED_SEAFOAM_B3F_CURRENT, SeafoamIslands_B3F_EventScript_SetNoCurrentLayout + end + +SeafoamIslands_B3F_EventScript_CheckStoppedCurrent:: + setvar NUM_BOULDERS_PRESENT, 0 + call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_1, SeafoamIslands_B3F_EventScript_AddBoulderPresent + call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_2, SeafoamIslands_B3F_EventScript_AddBoulderPresent + call_if_eq NUM_BOULDERS_PRESENT, 2, SeafoamIslands_B3F_EventScript_StoppedCurrent + return + +SeafoamIslands_B3F_EventScript_StoppedCurrent:: + setflag FLAG_STOPPED_SEAFOAM_B3F_CURRENT + return + +SeafoamIslands_B3F_EventScript_SetNoCurrentLayout:: + setmaplayoutindex LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED + return + +SeafoamIslands_B3F_OnFrame:: + map_script_2 VAR_TEMP_1, 1, SeafoamIslands_B3F_EventScript_EnterByFalling + .2byte 0 + +SeafoamIslands_B3F_EventScript_EnterByFalling:: + lockall + setvar NUM_BOULDERS_PRESENT, 0 + call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_1, SeafoamIslands_B3F_EventScript_AddBoulderPresent + call_if_unset FLAG_HIDE_SEAFOAM_B3F_BOULDER_2, SeafoamIslands_B3F_EventScript_AddBoulderPresent + goto_if_eq NUM_BOULDERS_PRESENT, 2, SeafoamIslands_B3F_EventScript_CurrentBlocked + getplayerxy VAR_0x8008, VAR_0x8009 + call_if_lt VAR_0x8008, 24, SeafoamIslands_B3F_EventScript_RideCurrentFar + call_if_ge VAR_0x8008, 24, SeafoamIslands_B3F_EventScript_RideCurrentClose + setvar VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1 + warp MAP_SEAFOAM_ISLANDS_B4F, 27, 21 + waitstate + releaseall + end + +SeafoamIslands_B3F_EventScript_AddBoulderPresent:: + addvar NUM_BOULDERS_PRESENT, 1 + return + +SeafoamIslands_B3F_EventScript_RideCurrentFar:: + applymovement LOCALID_PLAYER, SeafoamIslands_B3F_Movement_RideCurrentFar + waitmovement 0 + return + +SeafoamIslands_B3F_EventScript_RideCurrentClose:: + applymovement LOCALID_PLAYER, SeafoamIslands_B3F_Movement_RideCurrentClose + waitmovement 0 + return + +SeafoamIslands_B3F_EventScript_CurrentBlocked:: + setvar VAR_TEMP_1, 0 + releaseall + end + +SeafoamIslands_B3F_Movement_RideCurrentFar:: + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_right + walk_fast_right + walk_fast_right + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + step_end + +SeafoamIslands_B3F_Movement_RideCurrentClose:: + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_right + walk_fast_right + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + walk_fast_down + step_end diff --git a/data/maps/SeafoamIslands_B4F_Frlg/map.json b/data/maps/SeafoamIslands_B4F_Frlg/map.json new file mode 100644 index 000000000000..402d23ff1040 --- /dev/null +++ b/data/maps/SeafoamIslands_B4F_Frlg/map.json @@ -0,0 +1,163 @@ +{ + "id": "MAP_SEAFOAM_ISLANDS_B4F", + "name": "SeafoamIslands_B4F_Frlg", + "layout": "LAYOUT_SEAFOAM_ISLANDS_B4F", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEAFOAM_ISLANDS", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 18, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_1" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 9, + "y": 18, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_2" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ARTICUNO", + "x": 9, + "y": 2, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SeafoamIslands_B4F_EventScript_Articuno", + "flag": "FLAG_HIDE_ARTICUNO" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 22, + "y": 19, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SeafoamIslands_B4F_EventScript_ItemUltraBall", + "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_B4F_ULTRA_BALL" + } + ], + "warp_events": [ + { + "x": 15, + "y": 9, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "3" + }, + { + "x": 32, + "y": 5, + "elevation": 4, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "4" + }, + { + "x": 8, + "y": 17, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "7" + }, + { + "x": 9, + "y": 17, + "elevation": 1, + "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", + "dest_warp_id": "8" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 26, + "y": 19, + "elevation": 1, + "var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F", + "var_value": "0", + "script": "SeafoamIslands_B4F_EventScript_UpwardCurrent" + }, + { + "type": "trigger", + "x": 27, + "y": 19, + "elevation": 1, + "var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F", + "var_value": "0", + "script": "SeafoamIslands_B4F_EventScript_UpwardCurrent" + }, + { + "type": "trigger", + "x": 28, + "y": 19, + "elevation": 1, + "var": "VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F", + "var_value": "0", + "script": "SeafoamIslands_B4F_EventScript_UpwardCurrent" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 13, + "y": 8, + "elevation": 0, + "item": "ITEM_WATER_STONE", + "flag": "FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 30, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SeafoamIslands_B4F_EventScript_FastCurrentSign" + }, + { + "type": "sign", + "x": 14, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SeafoamIslands_B4F_EventScript_BoulderHintSign" + } + ] +} diff --git a/data/maps/SeafoamIslands_B4F_Frlg/scripts.inc b/data/maps/SeafoamIslands_B4F_Frlg/scripts.inc new file mode 100644 index 000000000000..8b92a9dea607 --- /dev/null +++ b/data/maps/SeafoamIslands_B4F_Frlg/scripts.inc @@ -0,0 +1,224 @@ +.equ NUM_BOULDERS_PRESENT, VAR_TEMP_2 + +SeafoamIslands_B4F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SeafoamIslands_B4F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, SeafoamIslands_B4F_OnResume + map_script MAP_SCRIPT_ON_LOAD, SeafoamIslands_B4F_OnLoad + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, SeafoamIslands_B4F_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, SeafoamIslands_B4F_OnFrame + .byte 0 + +SeafoamIslands_B4F_OnResume:: + call_if_set FLAG_SYS_CTRL_OBJ_DELETE, SeafoamIslands_B4F_EventScript_TryRemoveArticuno + end + +SeafoamIslands_B4F_EventScript_TryRemoveArticuno:: + specialvar VAR_RESULT, GetBattleOutcome + goto_if_ne VAR_RESULT, B_OUTCOME_CAUGHT, Common_EventScript_NopReturn + removeobject VAR_LAST_TALKED + return + +SeafoamIslands_B4F_OnTransition:: + call_if_unset FLAG_FOUGHT_ARTICUNO, SeafoamIslands_B4F_EventScript_ShowArticuno + call_if_unset FLAG_STOPPED_SEAFOAM_B4F_CURRENT, SeafoamIslands_B4F_EventScript_CheckStoppedCurrent + call_if_set FLAG_STOPPED_SEAFOAM_B4F_CURRENT, SeafoamIslands_B4F_EventScript_SetNoCurrentLayout + end + +SeafoamIslands_B4F_EventScript_CheckStoppedCurrent:: + setvar NUM_BOULDERS_PRESENT, 0 + call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, SeafoamIslands_B4F_EventScript_AddBoulderPresent + call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, SeafoamIslands_B4F_EventScript_AddBoulderPresent + call_if_eq NUM_BOULDERS_PRESENT, 2, SeafoamIslands_B4F_EventScript_StoppedCurrent + return + +SeafoamIslands_B4F_EventScript_StoppedCurrent:: + setflag FLAG_STOPPED_SEAFOAM_B4F_CURRENT + return + +SeafoamIslands_B4F_EventScript_SetNoCurrentLayout:: + setmaplayoutindex LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED + return + +SeafoamIslands_B4F_EventScript_ShowArticuno:: + clearflag FLAG_HIDE_ARTICUNO + return + +SeafoamIslands_B4F_OnLoad:: + setvar NUM_BOULDERS_PRESENT, 0 + call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, SeafoamIslands_B4F_EventScript_AddBoulderPresent + call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, SeafoamIslands_B4F_EventScript_AddBoulderPresent + goto_if_eq NUM_BOULDERS_PRESENT, 2, SeafoamIslands_B4F_EventScript_SetCalmWaterNearStairs + end + +SeafoamIslands_B4F_EventScript_SetCalmWaterNearStairs:: + setmetatile 12, 14, METATILE_GeneralFrlg_CalmWater, 0 + setmetatile 13, 14, METATILE_GeneralFrlg_CalmWater, 0 + end + +SeafoamIslands_B4F_OnWarp:: + map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, SeafoamIslands_B4F_EventScript_WarpInOnCurrent + .2byte 0 + +SeafoamIslands_B4F_EventScript_WarpInOnCurrent:: + turnobject LOCALID_PLAYER, DIR_NORTH + special ForcePlayerToStartSurfing + end + +SeafoamIslands_B4F_OnFrame:: + map_script_2 VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 1, SeafoamIslands_B4F_EventScript_EnterOnCurrent + map_script_2 VAR_TEMP_1, 1, SeafoamIslands_B4F_EventScript_EnterByFalling + .2byte 0 + +@ The current the player is forced in on from B3F +SeafoamIslands_B4F_EventScript_EnterOnCurrent:: + lockall + applymovement LOCALID_PLAYER, SeafoamIslands_B4F_Movement_EnterOnCurrent + waitmovement 0 + setvar VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F, 0 + releaseall + end + +SeafoamIslands_B4F_Movement_EnterOnCurrent:: + walk_fast_up + walk_fast_up + walk_fast_up + step_end + +@ The current the player lands on when entering the map by falling +SeafoamIslands_B4F_EventScript_EnterByFalling:: + lockall + setvar NUM_BOULDERS_PRESENT, 0 + call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_1, SeafoamIslands_B4F_EventScript_AddBoulderPresent + call_if_unset FLAG_HIDE_SEAFOAM_B4F_BOULDER_2, SeafoamIslands_B4F_EventScript_AddBoulderPresent + goto_if_eq NUM_BOULDERS_PRESENT, 2, SeafoamIslands_B4F_EventScript_CurrentBlocked + getplayerxy VAR_0x8008, VAR_0x8009 + call_if_lt VAR_0x8008, 9, SeafoamIslands_B4F_EventScript_RideCurrentFar + call_if_ge VAR_0x8008, 9, SeafoamIslands_B4F_EventScript_RideCurrentClose + special SeafoamIslandsB4F_CurrentDumpsPlayerOnLand + setvar VAR_TEMP_1, 0 + releaseall + end + +SeafoamIslands_B4F_EventScript_AddBoulderPresent:: + addvar NUM_BOULDERS_PRESENT, 1 + return + +SeafoamIslands_B4F_EventScript_RideCurrentFar:: + applymovement LOCALID_PLAYER, SeafoamIslands_B4F_Movement_RideCurrentFar + waitmovement 0 + return + +SeafoamIslands_B4F_EventScript_RideCurrentClose:: + applymovement LOCALID_PLAYER, SeafoamIslands_B4F_Movement_RideCurrentClose + waitmovement 0 + return + +SeafoamIslands_B4F_EventScript_CurrentBlocked:: + setvar VAR_TEMP_1, 0 + releaseall + end + +SeafoamIslands_B4F_Movement_RideCurrentFar:: + walk_up + walk_up + walk_up + walk_right + walk_right + walk_right + walk_right + walk_up + step_end + +SeafoamIslands_B4F_Movement_RideCurrentClose:: + walk_up + walk_up + walk_up + walk_right + walk_right + walk_right + walk_up + step_end + +@ Triggers blocking re-entry to B3F +SeafoamIslands_B4F_EventScript_UpwardCurrent:: + lockall + applymovement LOCALID_PLAYER, SeafoamIslands_B4F_Movement_WalkUp + waitmovement 0 + releaseall + end + +SeafoamIslands_B4F_Movement_WalkUp:: + walk_up + step_end + +SeafoamIslands_B4F_EventScript_Articuno:: + lock + faceplayer + setwildbattle SPECIES_ARTICUNO, 50 + waitse + playmoncry SPECIES_ARTICUNO, CRY_MODE_ENCOUNTER + message Text_Gyaoo + waitmessage + waitmoncry + delay 10 + playbgm MUS_RG_ENCOUNTER_GYM_LEADER, 0 + waitbuttonpress + setflag FLAG_SYS_CTRL_OBJ_DELETE + special BattleSetup_StartLegendaryBattle + waitstate + clearflag FLAG_SYS_CTRL_OBJ_DELETE + specialvar VAR_RESULT, GetBattleOutcome + goto_if_eq VAR_RESULT, B_OUTCOME_WON, SeafoamIslands_B4F_EventScript_DefeatedArticuno + goto_if_eq VAR_RESULT, B_OUTCOME_RAN, SeafoamIslands_B4F_EventScript_RanFromArticuno + goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, SeafoamIslands_B4F_EventScript_RanFromArticuno + setflag FLAG_FOUGHT_ARTICUNO + release + end + +SeafoamIslands_B4F_EventScript_DefeatedArticuno:: + setflag FLAG_FOUGHT_ARTICUNO + goto EventScript_RemoveStaticMon + end + +SeafoamIslands_B4F_EventScript_RanFromArticuno:: + setvar VAR_0x8004, SPECIES_ARTICUNO + goto EventScript_MonFlewAway + end + +SeafoamIslands_B4F_EventScript_BoulderHintSign:: + msgbox SeafoamIslands_B4F_Text_BouldersMightChangeWaterFlow, MSGBOX_SIGN + end + +SeafoamIslands_B4F_EventScript_FastCurrentSign:: + msgbox SeafoamIslands_B4F_Text_DangerFastCurrent, MSGBOX_SIGN + end + +Text_RockSlideTeach:: + .string "When you're up on a rocky mountain\n" + .string "like this, rockslides are a threat.\p" + .string "Can you imagine?\n" + .string "Boulders tumbling down on you?\p" + .string "That'd be, like, waaaaaaaaaaah!\n" + .string "Total terror!\p" + .string "You don't seem to be scared.\n" + .string "Want to try using ROCK SLIDE?$" + +Text_RockSlideDeclined:: + .string "Oh, so you are scared after all.$" + +Text_RockSlideWhichMon:: + .string "Which POKéMON should I teach\n" + .string "ROCK SLIDE?$" + +Text_RockSlideTaught:: + .string "It might be scary to use it in this\n" + .string "tunnel…$" + +SeafoamIslands_B4F_Text_BouldersMightChangeWaterFlow:: + .string "Hint: Boulders might change the\n" + .string "flow of water.$" + +SeafoamIslands_B4F_Text_DangerFastCurrent:: + .string "DANGER\n" + .string "Fast current!$" + diff --git a/data/maps/SevenIsland_Frlg/map.json b/data/maps/SevenIsland_Frlg/map.json new file mode 100644 index 000000000000..3e03fdb00463 --- /dev/null +++ b/data/maps/SevenIsland_Frlg/map.json @@ -0,0 +1,117 @@ +{ + "id": "MAP_SEVEN_ISLAND", + "name": "SevenIsland_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND_TRAINER_TOWER", + "offset": -48, + "direction": "up" + }, + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "local_id": "LOCALID_SWORDS_DANCE_TUTOR", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 7, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_EventScript_SwordsDanceTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_EventScript_OldWoman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 15, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_EventScript_Scientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 9, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 9, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_MART", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 16, + "y": 13, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_HARBOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 17, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SevenIsland_EventScript_IslandSign" + } + ] +} diff --git a/data/maps/SevenIsland_Frlg/scripts.inc b/data/maps/SevenIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..3efe70d6fbce --- /dev/null +++ b/data/maps/SevenIsland_Frlg/scripts.inc @@ -0,0 +1,58 @@ +SevenIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_OnTransition + .byte 0 + +SevenIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND + end + +SevenIsland_EventScript_IslandSign:: + msgbox SevenIsland_Text_IslandSign, MSGBOX_SIGN + end + +SevenIsland_EventScript_OldWoman:: + msgbox SevenIsland_Text_IslandsMadeInSevenDays, MSGBOX_NPC + end + +SevenIsland_EventScript_Scientist:: + msgbox SevenIsland_Text_IslandVirtuallyUntouched, MSGBOX_NPC + end + +Text_SwordsDanceTeach:: + .string "Not many people come out here.\p" + .string "If I train here, I'm convinced that\n" + .string "I'll get stronger and stronger.\p" + .string "Yep, stronger and stronger…\p" + .string "How would you like to learn a move\n" + .string "like that? It's SWORDS DANCE.$" + +Text_SwordsDanceDeclined:: + .string "Well, that's fine, too.$" + +Text_SwordsDanceWhichMon:: + .string "All right, pick which POKéMON\n" + .string "I should teach it to.$" + +Text_SwordsDanceTaught:: + .string "If only we could keep getting\n" + .string "stronger and stronger, eh?$" + +SevenIsland_Text_IslandSign:: + .string "SEVEN ISLAND\n" + .string "Quest Island of Infinity$" + +SevenIsland_Text_IslandsMadeInSevenDays:: + .string "These islands are called the SEVII\n" + .string "ISLANDS because there are seven.\p" + .string "…Or at least that's what the young\n" + .string "people believe.\p" + .string "The truth is, these islands are so\n" + .string "named because they are said to\l" + .string "have been made in seven days.$" + +SevenIsland_Text_IslandVirtuallyUntouched:: + .string "This island has been left virtually\n" + .string "untouched in its natural state.\p" + .string "It could be a little difficult to\n" + .string "hike around because of that.$" + diff --git a/data/maps/SevenIsland_Harbor_Frlg/map.json b/data/maps/SevenIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..80b10227b1b3 --- /dev/null +++ b/data/maps/SevenIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SEVEN_ISLAND_HARBOR", + "name": "SevenIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_Harbor_Frlg/scripts.inc b/data/maps/SevenIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..f2660cfcccdd --- /dev/null +++ b/data/maps/SevenIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,11 @@ +SevenIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +SevenIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_SEVEN_ISLAND + goto EventScript_ChooseDestFromIsland + end diff --git a/data/maps/SevenIsland_House_Room1_Frlg/map.json b/data/maps/SevenIsland_House_Room1_Frlg/map.json new file mode 100644 index 000000000000..2cb171c0ae34 --- /dev/null +++ b/data/maps/SevenIsland_House_Room1_Frlg/map.json @@ -0,0 +1,62 @@ +{ + "id": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", + "name": "SevenIsland_House_Room1_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_House_Room1_EventScript_OldWoman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM2", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SevenIsland_House_Room1_EventScript_Box" + } + ] +} diff --git a/data/maps/SevenIsland_House_Room1_Frlg/scripts.inc b/data/maps/SevenIsland_House_Room1_Frlg/scripts.inc new file mode 100644 index 000000000000..393d253a17ef --- /dev/null +++ b/data/maps/SevenIsland_House_Room1_Frlg/scripts.inc @@ -0,0 +1,267 @@ +.equ TRAINER_VISITING, VAR_TEMP_1 + +SevenIsland_House_Room1_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_House_Room1_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, SevenIsland_House_Room1_OnFrame + .byte 0 + +SevenIsland_House_Room1_OnTransition:: + special ValidateEReaderTrainer + call_if_eq VAR_RESULT, 0, SevenIsland_House_Room1_EventScript_SetTrainerVisitingLayout + call_if_ne VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 0, SevenIsland_House_Room1_EventScript_MoveOldWomanToDoor + end + +SevenIsland_House_Room1_EventScript_SetTrainerVisitingLayout:: + setvar TRAINER_VISITING, TRUE + setobjectxyperm LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN, 4, 2 + setobjectmovementtype LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN, MOVEMENT_TYPE_FACE_DOWN + setmaplayoutindex LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1_DOOR_OPEN + return + +SevenIsland_House_Room1_EventScript_MoveOldWomanToDoor:: + setobjectxyperm LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN, 3, 2 + setobjectmovementtype LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN, MOVEMENT_TYPE_FACE_RIGHT + return + +SevenIsland_House_Room1_OnFrame:: + map_script_2 VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1, SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle + map_script_2 VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2, SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle + map_script_2 VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 3, SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle + .2byte 0 + +SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle:: + lockall + textcolor NPC_TEXT_COLOR_FEMALE + applymovement LOCALID_PLAYER, SevenIsland_House_Room1_Movement_PlayerReEnterRoom + waitmovement 0 + applymovement LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN, SevenIsland_House_Room1_Movement_OldWomanWalkBehindPlayer + waitmovement 0 + copyobjectxytoperm LOCALID_SEVEN_ISLAND_HOUSE_OLD_WOMAN + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1, SevenIsland_House_Room1_EventScript_BattleWonComment + call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2, SevenIsland_House_Room1_EventScript_BattleLostComment + call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 3, SevenIsland_House_Room1_EventScript_BattleTiedComment + special LoadPlayerParty + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 0 + releaseall + end + +SevenIsland_House_Room1_EventScript_BattleWonComment:: + msgbox SevenIsland_House_Room1_Text_AstoundingBattle + return + +SevenIsland_House_Room1_EventScript_BattleLostComment:: + msgbox SevenIsland_House_Room1_Text_FeelYourDisappointment + return + +SevenIsland_House_Room1_EventScript_BattleTiedComment:: + msgbox SevenIsland_House_Room1_Text_DrawWasIt + return + +SevenIsland_House_Room1_Movement_PlayerReEnterRoom:: + walk_down + step_end + +SevenIsland_House_Room1_Movement_OldWomanWalkBehindPlayer:: + walk_right + walk_in_place_faster_down + step_end + +SevenIsland_House_Room1_EventScript_OldWoman:: + lock + faceplayer + special ValidateEReaderTrainer + call_if_eq VAR_RESULT, 1, SevenIsland_House_Room1_EventScript_InvalidVisitingTrainer + goto_if_eq TRAINER_VISITING, TRUE, SevenIsland_House_Room1_EventScript_TrainerVisiting + msgbox SevenIsland_House_Room1_Text_OnlyEnjoymentWatchingBattles + release + end + +SevenIsland_House_Room1_EventScript_InvalidVisitingTrainer:: + msgbox SevenIsland_House_Room1_Text_OnlyEnjoymentWatchingBattles + release + end + +SevenIsland_House_Room1_EventScript_TrainerVisiting:: + special SavePlayerParty + special BufferEReaderTrainerName + msgbox SevenIsland_House_Room1_Text_ChallengeVisitingTrainer, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SevenIsland_House_Room1_EventScript_DeclineBattle + call SevenIsland_House_Room1_EventScript_ChooseParty + goto_if_eq VAR_RESULT, 0, SevenIsland_House_Room1_EventScript_DeclineBattle + msgbox SevenIsland_House_Room1_Text_SaveProgressBeforeBattle, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SevenIsland_House_Room1_EventScript_DeclineBattle + special LoadPlayerParty + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, SevenIsland_House_Room1_EventScript_DeclineBattle + special SavePlayerParty + special ReducePlayerPartyToSelectedMons + msgbox SevenIsland_House_Room1_Text_DontHoldAnythingBack + closemessage + call_if_eq VAR_FACING, DIR_NORTH, SevenIsland_House_Room1_EventScript_EnterBattleRoomNorth + call_if_eq VAR_FACING, DIR_EAST, SevenIsland_House_Room1_EventScript_EnterBattleRoomEast + call_if_eq VAR_FACING, DIR_WEST, SevenIsland_House_Room1_EventScript_EnterBattleRoomWest + warp MAP_SEVEN_ISLAND_HOUSE_ROOM2, 3, 1 + waitstate + release + end + +SevenIsland_House_Room1_EventScript_DeclineBattle:: + special LoadPlayerParty + msgbox SevenIsland_House_Room1_Text_OhYouWontBattle + release + end + +SevenIsland_House_Room1_EventScript_ChooseParty:: + msgbox SevenIsland_House_Room1_Text_LimitThreeMonsPerSide + fadescreen FADE_TO_BLACK + special ChooseHalfPartyForBattle + waitstate + return + +SevenIsland_House_Room1_EventScript_EnterBattleRoomNorth:: + applymovement VAR_LAST_TALKED, SevenIsland_House_Room1_Movement_OldWomanMoveAsideLeft + applymovement LOCALID_PLAYER, SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomNorth + waitmovement 0 + return + +SevenIsland_House_Room1_EventScript_EnterBattleRoomEast:: + applymovement VAR_LAST_TALKED, SevenIsland_House_Room1_Movement_OldWomanMoveAsideRight + applymovement LOCALID_PLAYER, SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomEast + waitmovement 0 + return + +SevenIsland_House_Room1_EventScript_EnterBattleRoomWest:: + applymovement VAR_LAST_TALKED, SevenIsland_House_Room1_Movement_OldWomanMoveAsideLeft + applymovement LOCALID_PLAYER, SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomWest + waitmovement 0 + return + +SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomNorth:: + delay_16 + walk_up + walk_up + step_end + +SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomEast:: + delay_16 + walk_right + walk_up + step_end + +SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomWest:: + delay_16 + walk_left + walk_up + step_end + +SevenIsland_House_Room1_Movement_OldWomanMoveAsideLeft:: + walk_left + walk_in_place_faster_right + step_end + +SevenIsland_House_Room1_Movement_OldWomanMoveAsideRight:: + walk_right + walk_in_place_faster_left + step_end + +SevenIsland_House_Room1_EventScript_Box:: + msgbox SevenIsland_House_Room1_Text_SlightBreezeAroundBox, MSGBOX_SIGN + end + +SevenIsland_House_Room1_Text_OnlyEnjoymentWatchingBattles:: + .string "I may not look like much now,\n" + .string "but when I was younger…\p" + .string "I flew everywhere, challenging\n" + .string "TRAINERS wherever I found them.\p" + .string "Now, my only source of enjoyment\n" + .string "is reminiscing about the past while\l" + .string "watching battles.$" + +SevenIsland_House_Room1_Text_SlightBreezeAroundBox:: + .string "There is a slight breeze blowing\n" + .string "around the box.$" + +SevenIsland_House_Room1_Text_ChallengeVisitingTrainer:: + .string "Ah!\n" + .string "Welcome, my friend!\p" + .string "Let me tell you something. There's\n" + .string "a hidden room in the basement.\p" + .string "A TRAINER named {STR_VAR_1} is\n" + .string "waiting there now.\p" + .string "Tell me, you did come to challenge\n" + .string "{STR_VAR_1}, am I right?$" + +SevenIsland_House_Room1_Text_OhYouWontBattle:: + .string "Oh…\n" + .string "You won't battle…\p" + .string "I see, I see.\n" + .string "… …\p" + .string "Well, perhaps if you change your\n" + .string "mind, do come back.$" + +SevenIsland_House_Room1_Text_LimitThreeMonsPerSide:: + .string "Ah!\n" + .string "You will battle for me?\p" + .string "It was worth my time moving the\n" + .string "box aside, then.\p" + .string "… …\n" + .string "But there is one slight problem.\p" + .string "This hidden room is not built very\n" + .string "sturdy.\p" + .string "Can I get you to limit it to\n" + .string "battles of three POKéMON per side?$" + +SevenIsland_House_Room1_Text_SaveProgressBeforeBattle:: + .string "Fine! Before your battle, would\n" + .string "you like to save your game?$" + +SevenIsland_House_Room1_Text_DontHoldAnythingBack:: + .string "All right.\n" + .string "Don't hold anything back!$" + +@ Unused +SevenIsland_House_Room1_Text_StrVar1_1:: + .string "{STR_VAR_1}$" + +SevenIsland_House_Room2_Text_MatchEndedUpDraw:: + .string "The match ended up a draw.$" + +SevenIsland_House_Room1_Text_DrawWasIt:: + .string "A draw, was it?\p" + .string "However, let me say that it was\n" + .string "a worthy spectacle.\p" + .string "I'd say it was a wonderful battle\n" + .string "with a real sense of depth!$" + +@ Unused +SevenIsland_House_Room1_Text_StrVar1_2:: + .string "{STR_VAR_1}$" + +SevenIsland_House_Room1_Text_AstoundingBattle:: + .string "Bravo!\p" + .string "Bravo, indeed!\n" + .string "What an astounding battle!\p" + .string "It was so astounding, why, it keeps\n" + .string "filling my eyes with tears!\p" + .string "The thrust and parry of expertly\n" + .string "used techniques!\p" + .string "The clash of power upon power!\p" + .string "Yes!\n" + .string "It was sheer magnificence!$" + +@ Unused +SevenIsland_House_Room1_Text_StrVar1_3:: + .string "{STR_VAR_1}$" + +SevenIsland_House_Room1_Text_FeelYourDisappointment:: + .string "Too bad!\n" + .string "I feel your disappointment.\p" + .string "However, that disappointment is\n" + .string "what will make you better.\p" + .string "Use it, learn from it, and make it\n" + .string "motivate you to seek greatness.\p" + .string "Forget not this disappointment\n" + .string "and redouble your training!$" + diff --git a/data/maps/SevenIsland_House_Room2_Frlg/map.json b/data/maps/SevenIsland_House_Room2_Frlg/map.json new file mode 100644 index 000000000000..00831a90cc80 --- /dev/null +++ b/data/maps/SevenIsland_House_Room2_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SEVEN_ISLAND_HOUSE_ROOM2", + "name": "SevenIsland_House_Room2_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 6, + "y": 5, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 1, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_House_Room2_Frlg/scripts.inc b/data/maps/SevenIsland_House_Room2_Frlg/scripts.inc new file mode 100644 index 000000000000..c6d5defdefdc --- /dev/null +++ b/data/maps/SevenIsland_House_Room2_Frlg/scripts.inc @@ -0,0 +1,74 @@ +SevenIsland_House_Room2_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_House_Room2_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, SevenIsland_House_Room2_OnFrame + .byte 0 + +SevenIsland_House_Room2_OnTransition:: + special SetEReaderTrainerGfxId + end + +SevenIsland_House_Room2_OnFrame:: + map_script_2 VAR_TEMP_1, 0, SevenIsland_House_Room2_EventScript_BattleVisitingTrainer + .2byte 0 + +SevenIsland_House_Room2_EventScript_BattleVisitingTrainer:: + lockall + applymovement LOCALID_PLAYER, SevenIsland_House_Room2_Movement_PlayerEnterRoom + waitmovement 0 + special CopyEReaderTrainerGreeting + msgbox gStringVar4 + closemessage + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 0 + special DoSpecialTrainerBattle + waitstate + call_if_eq VAR_RESULT, 3, SevenIsland_House_Room2_EventScript_BattleTie + call_if_eq VAR_RESULT, 1, SevenIsland_House_Room2_EventScript_BattleWon + call_if_eq VAR_RESULT, 2, SevenIsland_House_Room2_EventScript_BattleLost + closemessage + special HealPlayerParty + applymovement LOCALID_PLAYER, SevenIsland_House_Room2_Movement_PlayerExitRoom + waitmovement 0 + special LoadPlayerParty + setvar VAR_TEMP_1, 1 + warp MAP_SEVEN_ISLAND_HOUSE_ROOM1, 4, 1 + waitstate + releaseall + end + +SevenIsland_House_Room2_EventScript_BattleTie:: + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 3 + msgbox SevenIsland_House_Room2_Text_MatchEndedUpDraw + return + +SevenIsland_House_Room2_EventScript_BattleWon:: + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1 + special ShowFieldMessageStringVar4 + waitmessage + waitbuttonpress + return + +SevenIsland_House_Room2_EventScript_BattleLost:: + setvar VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2 + special ShowFieldMessageStringVar4 + waitmessage + waitbuttonpress + return + +SevenIsland_House_Room2_Movement_PlayerEnterRoom:: + walk_down + walk_down + walk_down + walk_right + walk_right + step_end + +SevenIsland_House_Room2_Movement_PlayerExitRoom:: + walk_left + walk_left + walk_up + walk_up + walk_up + walk_up + delay_8 + step_end diff --git a/data/maps/SevenIsland_Mart_Frlg/map.json b/data/maps/SevenIsland_Mart_Frlg/map.json new file mode 100644 index 000000000000..2977e1688e75 --- /dev/null +++ b/data/maps/SevenIsland_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_SEVEN_ISLAND_MART", + "name": "SevenIsland_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_Mart_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_Mart_EventScript_Fisher", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 5, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_Mart_EventScript_Hiker", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_Mart_Frlg/scripts.inc b/data/maps/SevenIsland_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..68fcb484297d --- /dev/null +++ b/data/maps/SevenIsland_Mart_Frlg/scripts.inc @@ -0,0 +1,57 @@ +SevenIsland_Mart_Frlg_MapScripts:: + .byte 0 + +SevenIsland_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart SevenIsland_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +SevenIsland_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +SevenIsland_Mart_EventScript_Lass:: + msgbox SevenIsland_Mart_Text_MonHavePersonalitiesOfTheirOwn, MSGBOX_NPC + end + +SevenIsland_Mart_EventScript_Hiker:: + msgbox SevenIsland_Mart_Text_PreparationsCompleteForRuins, MSGBOX_NPC + end + +SevenIsland_Mart_EventScript_Fisher:: + msgbox SevenIsland_Mart_Text_NeedToFishOnSevenIsland, MSGBOX_NPC + end + +SevenIsland_Mart_Text_MonHavePersonalitiesOfTheirOwn:: + .string "POKéMON have personalities of their\n" + .string "own, just like people.\p" + .string "My PIKACHU has a HASTY nature,\n" + .string "so it grew to be a speedy POKéMON.$" + +SevenIsland_Mart_Text_PreparationsCompleteForRuins:: + .string "Okay, preparations are complete\n" + .string "for me to explore the RUINS.$" + +SevenIsland_Mart_Text_NeedToFishOnSevenIsland:: + .string "I need to fish on SEVEN ISLAND.\p" + .string "That will complete my fishing tour\n" + .string "of the SEVII ISLANDS.\p" + .string "I'd better stock up on some\n" + .string "POKé BALLS first, though.$" + diff --git a/data/maps/SevenIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/SevenIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..8ee5c004e562 --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,123 @@ +{ + "id": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", + "name": "SevenIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_SEVEN_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_PokemonCenter_1F_EventScript_OldMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 14, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_PokemonCenter_1F_EventScript_Sailor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_PokemonCenter_1F_EventScript_Beauty", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_PokemonCenter_1F_EventScript_PokemonJournal", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_PokemonCenter_1F_EventScript_PokemonJournal", + "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND", + "dest_warp_id": "2" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/SevenIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..48851d0e064c --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,47 @@ +SevenIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +SevenIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_SEVEN_ISLAND + end + +SevenIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +SevenIsland_PokemonCenter_1F_EventScript_OldMan:: + msgbox SevenIsland_PokemonCenter_1F_Text_EventsDependingOnConnections, MSGBOX_NPC + end + +SevenIsland_PokemonCenter_1F_EventScript_Sailor:: + msgbox SevenIsland_PokemonCenter_1F_Text_DidYouRideSeagallopHere, MSGBOX_NPC + end + +SevenIsland_PokemonCenter_1F_EventScript_Beauty:: + msgbox SevenIsland_PokemonCenter_1F_Text_CheckOutTrainerTower, MSGBOX_NPC + end + +SevenIsland_PokemonCenter_1F_Text_EventsDependingOnConnections:: + .string "On this island, different events\n" + .string "occur depending on connections.\p" + .string "What are those connections?\p" + .string "They are for you to discover on\n" + .string "your own.$" + +SevenIsland_PokemonCenter_1F_Text_DidYouRideSeagallopHere:: + .string "Did you ride a SEAGALLOP ferry\n" + .string "to get here?\p" + .string "There are at least ten of those\n" + .string "high-speed ships.\p" + .string "I don't know where they all go,\n" + .string "though.$" + +SevenIsland_PokemonCenter_1F_Text_CheckOutTrainerTower:: + .string "If you're confident, you should\n" + .string "check out TRAINER TOWER.$" + diff --git a/data/maps/SevenIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/SevenIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..8c425e24b36e --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_SEVEN_ISLAND_POKEMON_CENTER_2F", + "name": "SevenIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/SevenIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..ebe6302662e1 --- /dev/null +++ b/data/maps/SevenIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +SevenIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +SevenIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +SevenIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +SevenIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/map.json b/data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/map.json new file mode 100644 index 000000000000..c9129572d462 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/map.json @@ -0,0 +1,149 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "name": "SevenIsland_SevaultCanyon_Entrance_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CANYON_ENTRANCE", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "offset": 20, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 12, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_Miah", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 3, + "y": 34, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_Eve", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 4, + "y": 34, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_Jon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 11, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_Nicolas", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 10, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_Madeline", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 11, + "y": 17, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_Mason", + "flag": "0" + }, + { + "type": "clone", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 7, + "y": -2, + "target_local_id": "LOCALID_SWORDS_DANCE_TUTOR", + "target_map": "MAP_SEVEN_ISLAND" + } + ], + "warp_events": [ + + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 8, + "y": 29, + "elevation": 5, + "item": "ITEM_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 14, + "y": 26, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SevenIsland_SevaultCanyon_Entrance_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/scripts.inc new file mode 100644 index 000000000000..5ad64cf5bf31 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/scripts.inc @@ -0,0 +1,100 @@ +SevenIsland_SevaultCanyon_Entrance_Frlg_MapScripts:: + .byte 0 + +SevenIsland_SevaultCanyon_Entrance_EventScript_RouteSign:: + msgbox SevenIsland_SevaultCanyon_Entrance_Text_RouteSign, MSGBOX_SIGN + end + +SevenIsland_SevaultCanyon_Entrance_Text_MiahIntro:: + .string "Kyahaha!\n" + .string "I'll flick you away effortlessly!$" + +SevenIsland_SevaultCanyon_Entrance_Text_MiahDefeat:: + .string "Tch!\n" + .string "Too strong for me!$" + +SevenIsland_SevaultCanyon_Entrance_Text_MiahPostBattle:: + .string "What's that?\n" + .string "I don't act the way I look?\p" + .string "Heh, that's a part of my strategy!$" + +SevenIsland_SevaultCanyon_Entrance_Text_MasonIntro:: + .string "Howdy!\n" + .string "Are you a member of my fan club?$" + +SevenIsland_SevaultCanyon_Entrance_Text_MasonDefeat:: + .string "Oh, so you're not a fan…\p" + .string "Well, I can change that.\n" + .string "Let me sing for you!$" + +SevenIsland_SevaultCanyon_Entrance_Text_MasonPostBattle:: + .string "Lalalah…\n" + .string "My POKéMON, I send them out,\l" + .string "all the girls scream and shout!$" + +SevenIsland_SevaultCanyon_Entrance_Text_NicolasIntro:: + .string "This island is too spread out…\n" + .string "It's not easy patrolling the place.$" + +SevenIsland_SevaultCanyon_Entrance_Text_NicolasDefeat:: + .string "Uh-huh…$" + +SevenIsland_SevaultCanyon_Entrance_Text_NicolasPostBattle:: + .string "TRAINERS like you from cities,\n" + .string "they sure are tough.\p" + .string "You'll be headed for the TOWER,\n" + .string "won't you?$" + +SevenIsland_SevaultCanyon_Entrance_Text_MadelineIntro:: + .string "I punish people who abuse\n" + .string "POKéMON!$" + +SevenIsland_SevaultCanyon_Entrance_Text_MadelineDefeat:: + .string "You don't seem to be a problem\n" + .string "TRAINER.$" + +SevenIsland_SevaultCanyon_Entrance_Text_MadelinePostBattle:: + .string "If you treat your POKéMON with\n" + .string "kindness, they'll understand.$" + +SevenIsland_SevaultCanyon_Entrance_Text_EveIntro:: + .string "EVE: I'll team up with JON and\n" + .string "battle together.$" + +SevenIsland_SevaultCanyon_Entrance_Text_EveDefeat:: + .string "EVE: Me and JON, we lost.\n" + .string "Ehehe.$" + +SevenIsland_SevaultCanyon_Entrance_Text_EvePostBattle:: + .string "EVE: I'm going to work harder with\n" + .string "JON.$" + +SevenIsland_SevaultCanyon_Entrance_Text_EveNotEnoughMons:: + .string "EVE: I want to team up with JON\n" + .string "when I battle you.\p" + .string "Come back with two POKéMON, okay?$" + +SevenIsland_SevaultCanyon_Entrance_Text_JonIntro:: + .string "JON: When I'm with EVE, it feels\n" + .string "like we could never lose.$" + +SevenIsland_SevaultCanyon_Entrance_Text_JonDefeat:: + .string "JON: When I'm with EVE,\n" + .string "it doesn't feel like I've lost!$" + +SevenIsland_SevaultCanyon_Entrance_Text_JonPostBattle:: + .string "JON: When I'm with EVE, I feel\n" + .string "giddy whether I win or lose.\p" + .string "It's magical!$" + +SevenIsland_SevaultCanyon_Entrance_Text_JonNotEnoughMons:: + .string "JON: If it's with EVE, I'll be\n" + .string "happy to battle with you.\p" + .string "So, I'd like to make it a\n" + .string "two-on-two battle, if I may.$" + +SevenIsland_SevaultCanyon_Entrance_Text_RouteSign:: + .string "SEVAULT CANYON ENTRANCE\p" + .string "TRAINERS are asked to refrain from\n" + .string "damaging plants in the CANYON.$" + diff --git a/data/maps/SevenIsland_SevaultCanyon_Frlg/map.json b/data/maps/SevenIsland_SevaultCanyon_Frlg/map.json new file mode 100644 index 000000000000..2f992c96742a --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Frlg/map.json @@ -0,0 +1,350 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "name": "SevenIsland_SevaultCanyon_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVAULT_CANYON", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "offset": -48, + "direction": "down" + }, + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE", + "offset": -20, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", + "x": 13, + "y": 43, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SevenIsland_SevaultCanyon_EventScript_Cyndy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 13, + "y": 36, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SevenIsland_SevaultCanyon_EventScript_Evan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 3, + "y": 35, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SevenIsland_SevaultCanyon_EventScript_Jackson", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 3, + "y": 36, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SevenIsland_SevaultCanyon_EventScript_Katelyn", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 7, + "y": 56, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_EventScript_Leroy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 11, + "y": 63, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_EventScript_Michelle", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 14, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_EventScript_Lex", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 14, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_SevaultCanyon_EventScript_Nya", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 3, + "y": 41, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 13, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 7, + "y": 44, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 12, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 15, + "y": 46, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 16, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 17, + "y": 47, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG", + "x": 11, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_RockSmash", + "flag": "FLAG_TEMP_1B" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 18, + "y": 45, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_EventScript_ItemKingsRock", + "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_KINGS_ROCK" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 7, + "y": 38, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_EventScript_ItemMaxElixir", + "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_MAX_ELIXIR" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_EventScript_ItemNugget", + "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_NUGGET" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 8, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_EventScript_BlackBelt", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 17, + "elevation": 5, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY", + "dest_warp_id": "0" + }, + { + "x": 14, + "y": 61, + "elevation": 0, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 15, + "y": 66, + "elevation": 3, + "item": "ITEM_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 16, + "y": 71, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SevenIsland_SevaultCanyon_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/SevenIsland_SevaultCanyon_Frlg/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_Frlg/scripts.inc new file mode 100644 index 000000000000..011054c52203 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_Frlg/scripts.inc @@ -0,0 +1,137 @@ +SevenIsland_SevaultCanyon_Frlg_MapScripts:: + .byte 0 + +SevenIsland_SevaultCanyon_EventScript_RouteSign:: + msgbox SevenIsland_SevaultCanyon_Text_RouteSign, MSGBOX_SIGN + end + +SevenIsland_SevaultCanyon_Text_CyndyIntro:: + .string "My conditioning's in top form!$" + +SevenIsland_SevaultCanyon_Text_CyndyDefeat:: + .string "Huh?\n" + .string "Something's not right…$" + +SevenIsland_SevaultCanyon_Text_CyndyPostBattle:: + .string "The way I am now, I may have to\n" + .string "hold off on TRAINER TOWER…$" + +SevenIsland_SevaultCanyon_Text_EvanIntro:: + .string "It doesn't matter if you happen to\n" + .string "have the strongest POKéMON…\p" + .string "It doesn't mean a thing if you don't\n" + .string "know how to use them properly!$" + +SevenIsland_SevaultCanyon_Text_EvanDefeat:: + .string "You're a master at this.$" + +SevenIsland_SevaultCanyon_Text_EvanPostBattle:: + .string "You see them every so often,\n" + .string "TRAINERS with awesome POKéMON\l" + .string "who have no idea what to do.\p" + .string "Before training POKéMON, TRAINERS\n" + .string "themselves need to grow up.$" + +SevenIsland_SevaultCanyon_Text_JacksonIntro:: + .string "I work to protect the environment.\n" + .string "In turn, nature protects me!$" + +SevenIsland_SevaultCanyon_Text_JacksonDefeat:: + .string "Whoa! You're tough!\n" + .string "How about protecting me?$" + +SevenIsland_SevaultCanyon_Text_JacksonPostBattle:: + .string "From far out among the stars, our\n" + .string "planet is just a drop of water.\p" + .string "But we want to protect that drop\n" + .string "of water for everyone.$" + +SevenIsland_SevaultCanyon_Text_KatelynIntro:: + .string "Those shoes you have are pretty\n" + .string "snazzy.$" + +SevenIsland_SevaultCanyon_Text_KatelynDefeat:: + .string "You're hot stuff in spite of your\n" + .string "cute looks.$" + +SevenIsland_SevaultCanyon_Text_KatelynPostBattle:: + .string "Your mom bought those snazzy\n" + .string "RUNNING SHOES for you?\p" + .string "She must adore you.$" + +SevenIsland_SevaultCanyon_Text_LeroyIntro:: + .string "You look strong.\n" + .string "Let me battle you, please!$" + +SevenIsland_SevaultCanyon_Text_LeroyDefeat:: + .string "I knew it!\n" + .string "You're as tough as I thought!$" + +SevenIsland_SevaultCanyon_Text_LeroyPostBattle:: + .string "The way you battle has given me\n" + .string "a lot of useful data.\p" + .string "Thanks so much!$" + +SevenIsland_SevaultCanyon_Text_MichelleIntro:: + .string "I was given the best possible\n" + .string "education to become this strong.\p" + .string "I don't want to lose to anyone!$" + +SevenIsland_SevaultCanyon_Text_MichelleDefeat:: + .string "Thank you. I feel like I've been\n" + .string "set free by losing to you.$" + +SevenIsland_SevaultCanyon_Text_MichellePostBattle:: + .string "For some reason, I get furious\n" + .string "over the slightest thing.\p" + .string "I'll calm myself by breathing\n" + .string "deeply.$" + +SevenIsland_SevaultCanyon_Text_LexIntro:: + .string "LEX: My darling NYA, together\n" + .string "we could win!$" + +SevenIsland_SevaultCanyon_Text_LexDefeat:: + .string "LEX: I seem to have been too\n" + .string "careless…$" + +SevenIsland_SevaultCanyon_Text_LexPostBattle:: + .string "LEX: I think it was a good\n" + .string "experience for NYA.\p" + .string "You have my gratitude.$" + +SevenIsland_SevaultCanyon_Text_LexNotEnoughMons:: + .string "LEX: May I ask you to battle the\n" + .string "both of us at the same time?$" + +SevenIsland_SevaultCanyon_Text_NyaIntro:: + .string "NYA: I'll do my best so I won't\n" + .string "drag down my mentor, LEX!$" + +SevenIsland_SevaultCanyon_Text_NyaDefeat:: + .string "NYA: Oh, no…\n" + .string "I'm so sorry, I…$" + +SevenIsland_SevaultCanyon_Text_NyaPostBattle:: + .string "NYA: I think I'm going to need\n" + .string "much more seasoning and tutoring\l" + .string "under LEX…\p" + .string "…So, LEX, please, may I stay with\n" + .string "you like this?$" + +SevenIsland_SevaultCanyon_Text_NyaNotEnoughMons:: + .string "NYA: I'm sorry, but may we battle\n" + .string "in two-on-two style?$" + +SevenIsland_SevaultCanyon_Text_RouteSign:: + .string "SEVAULT CANYON\n" + .string "TANOBY RUINS AHEAD$" + +SevenIsland_SevaultCanyon_Text_BrunoTrainedWithBrawly:: + .string "Training by oneself is certainly\n" + .string "not a bad thing.\p" + .string "But it's also not bad to aim for\n" + .string "the top with a partner.\p" + .string "Even BRUNO…\n" + .string "He trained with a fellow by the\l" + .string "name of BRAWLY before.$" diff --git a/data/maps/SevenIsland_SevaultCanyon_House_Frlg/map.json b/data/maps/SevenIsland_SevaultCanyon_House_Frlg/map.json new file mode 100644 index 000000000000..a3792ef6d471 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_House_Frlg/map.json @@ -0,0 +1,74 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE", + "name": "SevenIsland_SevaultCanyon_House_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVAULT_CANYON", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_CHANSEY_DANCE_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_House_EventScript_ChanseyDanceMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANSEY", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_House_EventScript_Chansey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 6, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SevenIsland_SevaultCanyon_House_EventScript_ItemLuckyPunch", + "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE_LUCKY_PUNCH" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_SevaultCanyon_House_Frlg/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_House_Frlg/scripts.inc new file mode 100644 index 000000000000..5046450945d1 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_House_Frlg/scripts.inc @@ -0,0 +1,104 @@ +.set DID_CHANSEY_DANCE, FLAG_TEMP_2 + +SevenIsland_SevaultCanyon_House_Frlg_MapScripts:: + .byte 0 + +SevenIsland_SevaultCanyon_House_EventScript_ChanseyDanceMan:: + lock + goto_if_set DID_CHANSEY_DANCE, SevenIsland_SevaultCanyon_House_EventScript_AlreadyDanced + playbgm MUS_SCHOOL, 0 + applymovement LOCALID_CHANSEY_DANCE_MAN, SevenIsland_SevaultCanyon_House_Movement_ChanseyDance + waitmovement 0 + fadedefaultbgm + delay 30 + applymovement LOCALID_CHANSEY_DANCE_MAN, Common_Movement_FacePlayer + waitmovement 0 + msgbox SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox SevenIsland_SevaultCanyon_House_Text_WouldYouLikeToDance, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SevenIsland_SevaultCanyon_House_EventScript_DeclineDance + msgbox SevenIsland_SevaultCanyon_House_Text_DancedChanseyDance + closemessage + call EventScript_RestorePrevTextColor + call_if_ne VAR_FACING, DIR_SOUTH, SevenIsland_SevaultCanyon_House_EventScript_PlayerFaceDown + delay 30 + playbgm MUS_SCHOOL, 0 + applymovement LOCALID_PLAYER, SevenIsland_SevaultCanyon_House_Movement_ChanseyDance + waitmovement 0 + fadedefaultbgm + delay 30 + call Common_EventScript_OutOfCenterPartyHeal + msgbox SevenIsland_SevaultCanyon_House_Text_YoureAllChipperNow + setflag DID_CHANSEY_DANCE + release + end + +SevenIsland_SevaultCanyon_House_EventScript_PlayerFaceDown:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +SevenIsland_SevaultCanyon_House_EventScript_AlreadyDanced:: + applymovement LOCALID_CHANSEY_DANCE_MAN, Common_Movement_FacePlayer + waitmovement 0 + msgbox SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn + release + end + +SevenIsland_SevaultCanyon_House_EventScript_DeclineDance:: + textcolor NPC_TEXT_COLOR_MALE + msgbox SevenIsland_SevaultCanyon_House_Text_ComeOnDance + release + end + +SevenIsland_SevaultCanyon_House_Movement_ChanseyDance:: + walk_in_place_down + delay_16 + walk_in_place_down + delay_16 + walk_in_place_down + delay_16 + walk_in_place_down + delay_16 + walk_in_place_faster_right + delay_4 + walk_in_place_faster_up + delay_4 + walk_in_place_faster_left + delay_4 + walk_in_place_faster_down + delay_4 + step_end + +SevenIsland_SevaultCanyon_House_EventScript_Chansey:: + lock + faceplayer + waitse + playmoncry SPECIES_CHANSEY, CRY_MODE_NORMAL + msgbox SevenIsland_SevaultCanyon_House_Text_Chansey + waitmoncry + release + end + +SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn:: + .string "Dance, dance!\n" + .string "CHANSEY Dance!\p" + .string "You join in, too!\n" + .string "Dance, dance!$" + +SevenIsland_SevaultCanyon_House_Text_WouldYouLikeToDance:: + .string "Would you like to dance?$" + +SevenIsland_SevaultCanyon_House_Text_ComeOnDance:: + .string "Come on, dance!$" + +SevenIsland_SevaultCanyon_House_Text_DancedChanseyDance:: + .string "{PLAYER} danced the CHANSEY Dance!$" + +SevenIsland_SevaultCanyon_House_Text_YoureAllChipperNow:: + .string "Ahahahaha!\p" + .string "There, you're all chipper now!\n" + .string "Lucky!$" + +SevenIsland_SevaultCanyon_House_Text_Chansey:: + .string "CHANSEY: Chansi! Chansi!$" diff --git a/data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.json b/data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.json new file mode 100644 index 000000000000..24a515bbdc59 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/map.json @@ -0,0 +1,202 @@ +{ + "id": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY", + "name": "SevenIsland_SevaultCanyon_TanobyKey_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TANOBY_KEY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER3", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER4", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER5", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER6", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_TANOBY_KEY_BOULDER7", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 13, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 2, + "elevation": 3, + "var": "VAR_TEMP_1", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch1" + }, + { + "type": "trigger", + "x": 9, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_7", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch7" + }, + { + "type": "trigger", + "x": 5, + "y": 8, + "elevation": 3, + "var": "VAR_TEMP_6", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch6" + }, + { + "type": "trigger", + "x": 9, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_5", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch5" + }, + { + "type": "trigger", + "x": 5, + "y": 6, + "elevation": 3, + "var": "VAR_TEMP_4", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch4" + }, + { + "type": "trigger", + "x": 10, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_3", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch3" + }, + { + "type": "trigger", + "x": 4, + "y": 4, + "elevation": 3, + "var": "VAR_TEMP_2", + "var_value": "99", + "script": "SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch2" + } + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/scripts.inc new file mode 100644 index 000000000000..d6419cdcae34 --- /dev/null +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/scripts.inc @@ -0,0 +1,135 @@ +.equ NUM_SWITCHES_PRESSED, VAR_TEMP_8 + +SevenIsland_SevaultCanyon_TanobyKey_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_SevaultCanyon_TanobyKey_OnTransition + .byte 0 + +SevenIsland_SevaultCanyon_TanobyKey_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY + call_if_set FLAG_SYS_UNLOCKED_TANOBY_RUINS, SevenIsland_SevaultCanyon_TanobyKey_EventScript_MoveBouldersToSolvedPos + setvar VAR_TEMP_1, 0 + setvar VAR_TEMP_2, 0 + setvar VAR_TEMP_3, 0 + setvar VAR_TEMP_4, 0 + setvar VAR_TEMP_5, 0 + setvar VAR_TEMP_6, 0 + setvar VAR_TEMP_7, 0 + setvar NUM_SWITCHES_PRESSED, 0 + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_MoveBouldersToSolvedPos:: + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER1, 7, 2 + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER2, 4, 4 + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER3, 10, 4 + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER4, 5, 6 + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER5, 9, 6 + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER6, 5, 8 + setobjectxyperm LOCALID_TANOBY_KEY_BOULDER7, 9, 8 + return + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch1:: + lockall + goto_if_eq VAR_TEMP_1, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_1, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch2:: + lockall + goto_if_eq VAR_TEMP_2, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_2, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch3:: + lockall + goto_if_eq VAR_TEMP_3, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_3, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch4:: + lockall + goto_if_eq VAR_TEMP_4, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_4, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch5:: + lockall + goto_if_eq VAR_TEMP_5, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_5, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch6:: + lockall + goto_if_eq VAR_TEMP_6, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_6, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_Switch7:: + lockall + goto_if_eq VAR_TEMP_7, 100, SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed + setvar VAR_TEMP_7, 100 + goto_if_eq NUM_SWITCHES_PRESSED, 7, SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchPressed:: + addvar NUM_SWITCHES_PRESSED, 1 + playse SE_TRUCK_MOVE + setvar VAR_0x8004, 1 + setvar VAR_0x8005, 1 + setvar VAR_0x8006, 8 + setvar VAR_0x8007, 3 + special ShakeScreen + delay 60 + return + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolvedShakeScreen:: + setvar VAR_0x8004, 2 + setvar VAR_0x8005, 2 + setvar VAR_0x8006, 10 + setvar VAR_0x8007, 3 + special ShakeScreen + delay 60 + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 3 + setvar VAR_0x8006, 12 + setvar VAR_0x8007, 2 + special ShakeScreen + delay 60 + playse SE_LAVARIDGE_FALL_WARP + waitse + return + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_SwitchAlreadyPressed:: + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolved:: + call SevenIsland_SevaultCanyon_TanobyKey_EventScript_PuzzleSolvedShakeScreen + msgbox SevenIsland_SevaultCanyon_TanobyKey_Text_MysteriousRumbleFarAway + setflag FLAG_SYS_UNLOCKED_TANOBY_RUINS + releaseall + end + +SevenIsland_SevaultCanyon_TanobyKey_Text_MysteriousRumbleFarAway:: + .string "A mysterious rumble echoed\n" + .string "somewhere far away.$" + diff --git a/data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.json new file mode 100644 index 000000000000..5f0a4e95eecb --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/map.json @@ -0,0 +1,36 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "name": "SevenIsland_TanobyRuins_DilfordChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DILFORD_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..7e86906ecb68 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_DilfordChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_DilfordChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_DilfordChamber_OnTransition:: + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TanobyRuins_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_Frlg/map.json new file mode 100644 index 000000000000..8b1b1505b7a3 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_Frlg/map.json @@ -0,0 +1,178 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "name": "SevenIsland_TanobyRuins_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TANOBY_RUINS", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", + "offset": 48, + "direction": "up" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 35, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_TanobyRuins_EventScript_Brandon", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 121, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_TanobyRuins_EventScript_Benjamin", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 85, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_TanobyRuins_EventScript_Edna", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 85, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_TanobyRuins_EventScript_Clifford", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 120, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "dest_warp_id": "0" + }, + { + "x": 103, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "dest_warp_id": "0" + }, + { + "x": 88, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "dest_warp_id": "0" + }, + { + "x": 44, + "y": 11, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", + "dest_warp_id": "0" + }, + { + "x": 32, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 33, + "y": 10, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 86, + "y": 9, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 125, + "y": 5, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 8, + "y": 2, + "elevation": 3, + "item": "ITEM_HEART_SCALE", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SevenIsland_TanobyRuins_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_Frlg/scripts.inc new file mode 100644 index 000000000000..f02db1d1c47c --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_Frlg/scripts.inc @@ -0,0 +1,55 @@ +SevenIsland_TanobyRuins_Frlg_MapScripts:: + .byte 0 + +SevenIsland_TanobyRuins_Text_BrandonIntro:: + .string "Do you know anything about this\n" + .string "stone chamber?$" + +SevenIsland_TanobyRuins_Text_BrandonDefeat:: + .string "That was uncalled for.\n" + .string "You didn't have to be so rough.$" + +SevenIsland_TanobyRuins_Text_BrandonPostBattle:: + .string "The TANOBY RUINS date back at\n" + .string "least 1,500 years.\p" + .string "But it's a baffling mystery as to\n" + .string "why it was built in the first place.$" + +SevenIsland_TanobyRuins_Text_BenjaminIntro:: + .string "A mystic POKéMON is said to sleep\n" + .string "inside here.$" + +SevenIsland_TanobyRuins_Text_BenjaminDefeat:: + .string "I'm not much good in battle.$" + +SevenIsland_TanobyRuins_Text_BenjaminPostBattle:: + .string "I hear there are other ruins like\n" + .string "the one here.\p" + .string "Might they be the resting places\n" + .string "of other mystic POKéMON?$" + +SevenIsland_TanobyRuins_Text_EdnaIntro:: + .string "CLIFFORD is teaching me how to\n" + .string "paint.$" + +SevenIsland_TanobyRuins_Text_EdnaDefeat:: + .string "We might get in trouble for being\n" + .string "noisy here.$" + +SevenIsland_TanobyRuins_Text_EdnaPostBattle:: + .string "I said that I wanted to paint an\n" + .string "old building.\p" + .string "So CLIFFORD brought me here.$" + +SevenIsland_TanobyRuins_Text_CliffordIntro:: + .string "Today, in addition to our lesson,\n" + .string "we came to see the chamber.$" + +SevenIsland_TanobyRuins_Text_CliffordDefeat:: + .string "My, how extraordinary.$" + +SevenIsland_TanobyRuins_Text_CliffordPostBattle:: + .string "Ah, so you are studying POKéMON\n" + .string "on your own…\p" + .string "Yes, you certainly are quite the\n" + .string "extraordinary person, indeed.$" diff --git a/data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.json new file mode 100644 index 000000000000..72cafe49049d --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/map.json @@ -0,0 +1,30 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "name": "SevenIsland_TanobyRuins_LiptooChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_LIPTOO_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..193a72cc2d2d --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_LiptooChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_LiptooChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_LiptooChamber_OnTransition:: + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.json new file mode 100644 index 000000000000..3f2b418cd592 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/map.json @@ -0,0 +1,36 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "name": "SevenIsland_TanobyRuins_MoneanChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_MONEAN_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..9f36d69d2cfe --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/scripts.inc @@ -0,0 +1,8 @@ +SevenIsland_TanobyRuins_MoneanChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_MoneanChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_MoneanChamber_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.json new file mode 100644 index 000000000000..735d8fd9d453 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/map.json @@ -0,0 +1,30 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "name": "SevenIsland_TanobyRuins_RixyChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_RIXY_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..d020f8620c81 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_RixyChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_RixyChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_RixyChamber_OnTransition:: + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.json new file mode 100644 index 000000000000..7a5b0581ce8a --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/map.json @@ -0,0 +1,30 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "name": "SevenIsland_TanobyRuins_ScufibChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SCUFIB_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..2f795034abbe --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_ScufibChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_ScufibChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_ScufibChamber_OnTransition:: + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.json new file mode 100644 index 000000000000..db8853a06909 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/map.json @@ -0,0 +1,30 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "name": "SevenIsland_TanobyRuins_ViapoisChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIAPOIS_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..25726b1356f0 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_ViapoisChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_ViapoisChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_ViapoisChamber_OnTransition:: + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.json b/data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.json new file mode 100644 index 000000000000..326080224694 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/map.json @@ -0,0 +1,30 @@ +{ + "id": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "name": "SevenIsland_TanobyRuins_WeepthChamber_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_WEEPTH_CHAMBER", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_INDOOR_1", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 11, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/scripts.inc b/data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/scripts.inc new file mode 100644 index 000000000000..33a6034fac76 --- /dev/null +++ b/data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SevenIsland_TanobyRuins_WeepthChamber_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TanobyRuins_WeepthChamber_OnTransition + .byte 0 + +SevenIsland_TanobyRuins_WeepthChamber_OnTransition:: + call EventScript_TryDarkenRuins + end diff --git a/data/maps/SevenIsland_TrainerTower_Frlg/map.json b/data/maps/SevenIsland_TrainerTower_Frlg/map.json new file mode 100644 index 000000000000..a34bf5d55cc8 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Frlg/map.json @@ -0,0 +1,114 @@ +{ + "id": "MAP_SEVEN_ISLAND_TRAINER_TOWER", + "name": "SevenIsland_TrainerTower_Frlg", + "layout": "LAYOUT_SEVEN_ISLAND_TRAINER_TOWER", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SEVEN_ISLAND", + "offset": 48, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 56, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_TrainerTower_EventScript_Dario", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 56, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SevenIsland_TrainerTower_EventScript_Rodette", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 58, + "y": 7, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_LOBBY", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 49, + "y": 27, + "elevation": 3, + "item": "ITEM_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 47, + "y": 30, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 59, + "y": 32, + "elevation": 3, + "item": "ITEM_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 56, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SevenIsland_TrainerTower_EventScript_TrainerTowerSign" + }, + { + "type": "sign", + "x": 50, + "y": 30, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SevenIsland_TrainerTower_EventScript_TrainerTowerAheadSign" + } + ] +} diff --git a/data/maps/SevenIsland_TrainerTower_Frlg/scripts.inc b/data/maps/SevenIsland_TrainerTower_Frlg/scripts.inc new file mode 100644 index 000000000000..0d93a7a2b5f4 --- /dev/null +++ b/data/maps/SevenIsland_TrainerTower_Frlg/scripts.inc @@ -0,0 +1,48 @@ +SevenIsland_TrainerTower_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SevenIsland_TrainerTower_OnTransition + .byte 0 + +SevenIsland_TrainerTower_OnTransition:: + setvar VAR_MAP_SCENE_TRAINER_TOWER, 0 + end + +SevenIsland_TrainerTower_EventScript_TrainerTowerSign:: + msgbox SevenIsland_TrainerTower_Text_TrainerTowerSign, MSGBOX_SIGN + end + +SevenIsland_TrainerTower_EventScript_TrainerTowerAheadSign:: + msgbox SevenIsland_TrainerTower_Text_TrainerTowerAhead, MSGBOX_SIGN + end + +SevenIsland_TrainerTower_Text_DarioIntro:: + .string "I sensed your approach.$" + +SevenIsland_TrainerTower_Text_DarioDefeat:: + .string "Give up…$" + +SevenIsland_TrainerTower_Text_DarioPostBattle:: + .string "In your future, I sense that you\n" + .string "will meet many others.\p" + .string "I think you will be linked to each\n" + .string "other by a strange power.$" + +SevenIsland_TrainerTower_Text_RodetteIntro:: + .string "Somewhere on this island, peculiar\n" + .string "POKéMON are sleeping.$" + +SevenIsland_TrainerTower_Text_RodetteDefeat:: + .string "What an amazing TRAINER!$" + +SevenIsland_TrainerTower_Text_RodettePostBattle:: + .string "Somewhere on this island, peculiar\n" + .string "POKéMON are sleeping.\p" + .string "Could it be that they're waiting\n" + .string "for you?$" + +SevenIsland_TrainerTower_Text_TrainerTowerSign:: + .string "TRAINER TOWER ENTRANCE\n" + .string "Rise to the Challenge, TRAINERS!$" + +SevenIsland_TrainerTower_Text_TrainerTowerAhead:: + .string "TRAINER TOWER AHEAD$" + diff --git a/data/maps/SevenIsland_UnusedHouse/map.json b/data/maps/SevenIsland_UnusedHouse/map.json new file mode 100644 index 000000000000..696b74dbc770 --- /dev/null +++ b/data/maps/SevenIsland_UnusedHouse/map.json @@ -0,0 +1,22 @@ +{ + "id": "MAP_SEVEN_ISLAND_UNUSED_HOUSE", + "name": "SevenIsland_UnusedHouse", + "layout": "LAYOUT_HOUSE4_FRLG", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SEVEN_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SilphCo_10F_Frlg/map.json b/data/maps/SilphCo_10F_Frlg/map.json new file mode 100644 index 000000000000..8c505d9d42ae --- /dev/null +++ b/data/maps/SilphCo_10F_Frlg/map.json @@ -0,0 +1,201 @@ +{ + "id": "MAP_SILPH_CO_10F", + "name": "SilphCo_10F_Frlg", + "layout": "LAYOUT_SILPH_CO_10F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 10, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SilphCo_10F_EventScript_Travis", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 10, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_10F_EventScript_WorkerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 0, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SilphCo_10F_EventScript_Grunt", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_10F_EventScript_ItemCarbos", + "flag": "FLAG_HIDE_SILPH_CO_10F_CARBOS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_10F_EventScript_ItemUltraBall", + "flag": "FLAG_HIDE_SILPH_CO_10F_ULTRA_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_10F_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_SILPH_CO_10F_RARE_CANDY" + } + ], + "warp_events": [ + { + "x": 6, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_11F", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": "3" + }, + { + "x": 14, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": "5" + }, + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": "3" + }, + { + "x": 14, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": "4" + }, + { + "x": 13, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_10F_EventScript_Door" + }, + { + "type": "sign", + "x": 13, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_10F_EventScript_Door" + }, + { + "type": "sign", + "x": 12, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_10F_EventScript_Door" + }, + { + "type": "sign", + "x": 13, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_10F_EventScript_Door" + }, + { + "type": "hidden_item", + "x": 9, + "y": 9, + "elevation": 0, + "item": "ITEM_HP_UP", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 7, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_10F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_10F_Frlg/scripts.inc b/data/maps/SilphCo_10F_Frlg/scripts.inc new file mode 100644 index 000000000000..7b599daae296 --- /dev/null +++ b/data/maps/SilphCo_10F_Frlg/scripts.inc @@ -0,0 +1,68 @@ +SilphCo_10F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_10F_OnLoad + .byte 0 + +SilphCo_10F_OnLoad:: + call_if_unset FLAG_SILPH_10F_DOOR, EventScript_Close10FDoor + end + +SilphCo_10F_EventScript_WorkerF:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_10F_EventScript_WorkerFRocketsGone + msgbox SilphCo_10F_Text_WaaaImScared + release + end + +SilphCo_10F_EventScript_WorkerFRocketsGone:: + msgbox SilphCo_10F_Text_KeepMeCryingASecret + release + end + +SilphCo_10F_EventScript_FloorSign:: + msgbox SilphCo_10F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_10F_EventScript_Travis:: + trainerbattle_single TRAINER_SCIENTIST_TRAVIS, SilphCo_10F_Text_TravisIntro, SilphCo_10F_Text_TravisDefeat + msgbox SilphCo_10F_Text_TravisPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_10F_EventScript_Grunt:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_39, SilphCo_10F_Text_GruntIntro, SilphCo_10F_Text_GruntDefeat + msgbox SilphCo_10F_Text_GruntPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_10F_Text_GruntIntro:: + .string "Welcome to 10F!\n" + .string "So good of you to join me!$" + +SilphCo_10F_Text_GruntDefeat:: + .string "I'm stunned!$" + +SilphCo_10F_Text_GruntPostBattle:: + .string "Nice try, but the boardroom is up\n" + .string "one more floor.$" + +SilphCo_10F_Text_TravisIntro:: + .string "Enough of your silly games!$" + +SilphCo_10F_Text_TravisDefeat:: + .string "No continues left!$" + +SilphCo_10F_Text_TravisPostBattle:: + .string "Are you satisfied with beating me?\n" + .string "Then go on home!$" + +SilphCo_10F_Text_WaaaImScared:: + .string "Waaaaa!\n" + .string "I'm scared!$" + +SilphCo_10F_Text_KeepMeCryingASecret:: + .string "About me crying…\n" + .string "Please keep it a secret.$" + +SilphCo_10F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "10F$" + diff --git a/data/maps/SilphCo_11F_Frlg/map.json b/data/maps/SilphCo_11F_Frlg/map.json new file mode 100644 index 000000000000..c63705417b07 --- /dev/null +++ b/data/maps/SilphCo_11F_Frlg/map.json @@ -0,0 +1,202 @@ +{ + "id": "MAP_SILPH_CO_11F", + "name": "SilphCo_11F_Frlg", + "layout": "LAYOUT_SILPH_CO_11F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 11, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 9, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_11F_EventScript_President", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 11, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_11F_EventScript_Secretary", + "flag": "0" + }, + { + "local_id": "LOCALID_SILPH_CO_GIOVANNI", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", + "x": 6, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "local_id": "LOCALID_SILPH_CO_11F_GRUNT1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SilphCo_11F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 16, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_11F_EventScript_ItemZinc", + "flag": "FLAG_HIDE_SILPH_CO_11F_ZINC" + }, + { + "local_id": "LOCALID_SILPH_CO_11F_GRUNT2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 2, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SilphCo_11F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + } + ], + "warp_events": [ + { + "x": 7, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": "1" + }, + { + "x": 13, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 5, + "y": 15, + "elevation": 3, + "var": "VAR_MAP_SCENE_SILPH_CO_11F", + "var_value": "0", + "script": "SilphCo_11F_EventScript_GiovanniTriggerLeft" + }, + { + "type": "trigger", + "x": 6, + "y": 15, + "elevation": 3, + "var": "VAR_MAP_SCENE_SILPH_CO_11F", + "var_value": "0", + "script": "SilphCo_11F_EventScript_GiovanniTriggerRight" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 5, + "y": 16, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_11F_EventScript_Door" + }, + { + "type": "sign", + "x": 5, + "y": 17, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_11F_EventScript_Door" + }, + { + "type": "sign", + "x": 6, + "y": 16, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_11F_EventScript_Door" + }, + { + "type": "sign", + "x": 6, + "y": 17, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_11F_EventScript_Door" + }, + { + "type": "hidden_item", + "x": 10, + "y": 18, + "elevation": 0, + "item": "ITEM_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 8, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_11F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_11F_Frlg/scripts.inc b/data/maps/SilphCo_11F_Frlg/scripts.inc new file mode 100644 index 000000000000..655dfe73fb2f --- /dev/null +++ b/data/maps/SilphCo_11F_Frlg/scripts.inc @@ -0,0 +1,228 @@ +SilphCo_11F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_11F_OnLoad + .byte 0 + +SilphCo_11F_OnLoad:: + call_if_unset FLAG_SILPH_11F_DOOR, EventScript_Close11FDoor + end + +SilphCo_11F_EventScript_President:: + lock + faceplayer + goto_if_set FLAG_GOT_MASTER_BALL_FROM_SILPH, SilphCo_11F_EventScript_AlreadyGotMasterBall + checkplayergender + call_if_eq VAR_RESULT, MALE, SilphCo_11F_EventScript_PresidentThanksMale + call_if_eq VAR_RESULT, FEMALE, SilphCo_11F_EventScript_PresidentThanksFemale + checkitemspace ITEM_MASTER_BALL + goto_if_eq VAR_RESULT, FALSE, SilphCo_11F_EventScript_NoRoomForMasterBall + giveitem_msg SilphCo_11F_Text_ObtainedMasterBallFromPresident, ITEM_MASTER_BALL, 1, MUS_RG_OBTAIN_KEY_ITEM + msgbox SilphCo_11F_Text_ThatsOurSecretPrototype + setflag FLAG_GOT_MASTER_BALL_FROM_SILPH + release + end + +SilphCo_11F_EventScript_PresidentThanksMale:: + msgbox SilphCo_11F_Text_ThanksForSavingMeDearBoy + return + +SilphCo_11F_EventScript_PresidentThanksFemale:: + msgbox SilphCo_11F_Text_ThanksForSavingMeDearGirl + return + +SilphCo_11F_EventScript_NoRoomForMasterBall:: + msgbox SilphCo_11F_Text_YouHaveNoRoomForThis + release + end + +SilphCo_11F_EventScript_AlreadyGotMasterBall:: + msgbox SilphCo_11F_Text_ThatsOurSecretPrototype + release + end + +SilphCo_11F_EventScript_Secretary:: + msgbox SilphCo_11F_Text_ThanksForRescuingUs, MSGBOX_NPC + end + +SilphCo_11F_EventScript_GiovanniTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto SilphCo_11F_EventScript_BattleGiovanni + end + +SilphCo_11F_EventScript_GiovanniTriggerRight:: + lockall + setvar VAR_TEMP_1, 1 + goto SilphCo_11F_EventScript_BattleGiovanni + end + +SilphCo_11F_EventScript_BattleGiovanni:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_SILPH_CO_GIOVANNI, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + delay 25 + msgbox SilphCo_11F_Text_GiovanniIntro + closemessage + call_if_eq VAR_TEMP_1, 0, SilphCo_11F_EventScript_GiovanniApproachLeft + call_if_eq VAR_TEMP_1, 1, SilphCo_11F_EventScript_GiovanniApproachRight + setvar VAR_LAST_TALKED, LOCALID_SILPH_CO_GIOVANNI + trainerbattle_no_intro TRAINER_BOSS_GIOVANNI_2, SilphCo_11F_Text_GiovanniDefeat + msgbox SilphCo_11F_Text_GiovanniPostBattle + closemessage + fadescreen FADE_TO_BLACK + removeobject LOCALID_SILPH_CO_GIOVANNI + removeobject LOCALID_SILPH_CO_11F_GRUNT1 + removeobject LOCALID_SILPH_CO_11F_GRUNT2 + fadescreen FADE_FROM_BLACK + setvar VAR_MAP_SCENE_SILPH_CO_11F, 1 + setflag FLAG_HIDE_SAFFRON_ROCKETS + clearflag FLAG_HIDE_SAFFRON_CIVILIANS + releaseall + end + +SilphCo_11F_EventScript_GiovanniApproachLeft:: + applymovement LOCALID_SILPH_CO_GIOVANNI, SilphCo_11F_Movement_GiovanniApproachLeft + applymovement LOCALID_PLAYER, SilphCo_11F_Movement_PlayerFaceGiovanni + waitmovement 0 + return + +SilphCo_11F_EventScript_GiovanniApproachRight:: + applymovement LOCALID_SILPH_CO_GIOVANNI, SilphCo_11F_Movement_GiovanniApproachRight + waitmovement 0 + return + +SilphCo_11F_Movement_GiovanniApproachLeft:: + walk_down + walk_down + walk_down + walk_down + walk_in_place_faster_left + step_end + +SilphCo_11F_Movement_GiovanniApproachRight:: + walk_down + walk_down + walk_down + step_end + +SilphCo_11F_Movement_PlayerFaceGiovanni:: + delay_16 + delay_16 + delay_16 + delay_8 + delay_4 + walk_in_place_faster_right + step_end + +@ Unused +SilphCo_11F_EventScript_Monitor:: + msgbox SilphCo_11F_Text_MonitorHasMonsOnIt, MSGBOX_SIGN + end + +SilphCo_11F_EventScript_FloorSign:: + msgbox SilphCo_11F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_11F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_40, SilphCo_11F_Text_Grunt1Intro, SilphCo_11F_Text_Grunt1Defeat + msgbox SilphCo_11F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_11F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_41, SilphCo_11F_Text_Grunt2Intro, SilphCo_11F_Text_Grunt2Defeat + msgbox SilphCo_11F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_11F_Text_ThanksForSavingMeDearBoy:: + .string "PRESIDENT: Oh, dear boy!\n" + .string "Thank you for saving SILPH.\p" + .string "I will never forget you saved us in\n" + .string "our moment of peril.\p" + .string "I have to thank you in some way.\p" + .string "Because I am rich, I can give you\n" + .string "anything.\p" + .string "Here, maybe this will do.$" + +SilphCo_11F_Text_ThanksForSavingMeDearGirl:: + .string "PRESIDENT: Oh, dear girl!\n" + .string "Thank you for saving SILPH.\p" + .string "I will never forget you saved us in\n" + .string "our moment of peril.\p" + .string "I have to thank you in some way.\p" + .string "Because I am rich, I can give you\n" + .string "anything.\p" + .string "Here, maybe this will do.$" + +SilphCo_11F_Text_ObtainedMasterBallFromPresident:: + .string "{PLAYER} obtained a MASTER BALL\n" + .string "from the PRESIDENT!$" + +SilphCo_11F_Text_ThatsOurSecretPrototype:: + .string "PRESIDENT: You can't buy that\n" + .string "anywhere.\p" + .string "It's our secret prototype MASTER\n" + .string "BALL.\p" + .string "It will catch any POKéMON without\n" + .string "fail!\p" + .string "You should be quiet about using it,\n" + .string "though.$" + +SilphCo_11F_Text_YouHaveNoRoomForThis:: + .string "You have no room for this.$" + +SilphCo_11F_Text_ThanksForRescuingUs:: + .string "SECRETARY: Thank you for rescuing\n" + .string "all of us.\p" + .string "We, from the PRESIDENT down,\n" + .string "are indebted to you.$" + +SilphCo_11F_Text_GiovanniIntro:: + .string "Ah, {PLAYER}!\n" + .string "So we meet again!\p" + .string "The PRESIDENT and I are discussing\n" + .string "a vital business proposition.\p" + .string "Keep your nose out of grown-up\n" + .string "matters…\p" + .string "Or, experience a world of pain!$" + +SilphCo_11F_Text_GiovanniDefeat:: + .string "Arrgh!!\n" + .string "I lost again!?$" + +SilphCo_11F_Text_GiovanniPostBattle:: + .string "Blast it all!\n" + .string "You ruined our plans for SILPH!\p" + .string "But, TEAM ROCKET will never fall!\p" + .string "{PLAYER}! Never forget that all\n" + .string "POKéMON exist for TEAM ROCKET!\p" + .string "I must go, but I shall return!$" + +SilphCo_11F_Text_Grunt2Intro:: + .string "Stop right there!\n" + .string "Don't you move!$" + +SilphCo_11F_Text_Grunt2Defeat:: + .string "Don't…\n" + .string "Please!$" + +SilphCo_11F_Text_Grunt2PostBattle:: + .string "So, you want to see my BOSS?$" + +SilphCo_11F_Text_Grunt1Intro:: + .string "Halt! Do you have an appointment\n" + .string "with my BOSS?$" + +SilphCo_11F_Text_Grunt1Defeat:: + .string "Gaah!\n" + .string "Demolished!$" + +SilphCo_11F_Text_Grunt1PostBattle:: + .string "Watch your step…\n" + .string "My BOSS likes his POKéMON tough!$" + +SilphCo_11F_Text_MonitorHasMonsOnIt:: + .string "The monitor has POKéMON on it!$" + +SilphCo_11F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "11F$" + diff --git a/data/maps/SilphCo_1F_Frlg/map.json b/data/maps/SilphCo_1F_Frlg/map.json new file mode 100644 index 000000000000..07ea347544ab --- /dev/null +++ b/data/maps/SilphCo_1F_Frlg/map.json @@ -0,0 +1,82 @@ +{ + "id": "MAP_SILPH_CO_1F", + "name": "SilphCo_1F_Frlg", + "layout": "LAYOUT_SILPH_CO_1F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 1, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 3, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_1F_EventScript_Receptionist", + "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" + } + ], + "warp_events": [ + { + "x": 7, + "y": 21, + "elevation": 0, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SAFFRON_CITY", + "dest_warp_id": "0" + }, + { + "x": 31, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": "3" + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 30, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_1F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_1F_Frlg/scripts.inc b/data/maps/SilphCo_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..3ce9ece7e293 --- /dev/null +++ b/data/maps/SilphCo_1F_Frlg/scripts.inc @@ -0,0 +1,25 @@ +SilphCo_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SilphCo_1F_OnTransition + .byte 0 + +SilphCo_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SILPH_CO_1F + end + +SilphCo_1F_EventScript_Receptionist:: + msgbox SilphCo_1F_Text_WelcomePresidentInBoardroom, MSGBOX_NPC + end + +SilphCo_1F_EventScript_FloorSign:: + msgbox SilphCo_1F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_1F_Text_WelcomePresidentInBoardroom:: + .string "Welcome.\p" + .string "The PRESIDENT is in the boardroom\n" + .string "on 11F.$" + +SilphCo_1F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "1F$" + diff --git a/data/maps/SilphCo_2F_Frlg/map.json b/data/maps/SilphCo_2F_Frlg/map.json new file mode 100644 index 000000000000..4fe73d0c410a --- /dev/null +++ b/data/maps/SilphCo_2F_Frlg/map.json @@ -0,0 +1,226 @@ +{ + "id": "MAP_SILPH_CO_2F", + "name": "SilphCo_2F_Frlg", + "layout": "LAYOUT_SILPH_CO_2F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 2, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 29, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SilphCo_2F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 28, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SilphCo_2F_EventScript_Jerry", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 20, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SilphCo_2F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 5, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_2F_EventScript_Connor", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 10, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_2F_EventScript_ThunderWaveTutor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "0" + }, + { + "x": 2, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "8" + }, + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": "5" + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_1F", + "dest_warp_id": "3" + }, + { + "x": 7, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": "1" + }, + { + "x": 33, + "y": 19, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": "2" + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 5, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door1" + }, + { + "type": "sign", + "x": 6, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door1" + }, + { + "type": "sign", + "x": 5, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door1" + }, + { + "type": "sign", + "x": 6, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door1" + }, + { + "type": "sign", + "x": 5, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door2" + }, + { + "type": "sign", + "x": 6, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door2" + }, + { + "type": "sign", + "x": 5, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door2" + }, + { + "type": "sign", + "x": 6, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_Door2" + }, + { + "type": "hidden_item", + "x": 11, + "y": 21, + "elevation": 0, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 29, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_2F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_2F_Frlg/scripts.inc b/data/maps/SilphCo_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..24b97870f340 --- /dev/null +++ b/data/maps/SilphCo_2F_Frlg/scripts.inc @@ -0,0 +1,111 @@ +SilphCo_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_2F_OnLoad + .byte 0 + +SilphCo_2F_OnLoad:: + call_if_unset FLAG_SILPH_2F_DOOR_1, EventScript_Close2FDoor1 + call_if_unset FLAG_SILPH_2F_DOOR_2, EventScript_Close2FDoor2 + end + +SilphCo_2F_EventScript_ThunderWaveTutor:: + goto EventScript_ThunderWaveTutor + end + +SilphCo_2F_EventScript_FloorSign:: + msgbox SilphCo_2F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_2F_EventScript_Connor:: + trainerbattle_single TRAINER_SCIENTIST_CONNOR, SilphCo_2F_Text_ConnorIntro, SilphCo_2F_Text_ConnorDefeat + msgbox SilphCo_2F_Text_ConnorPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_2F_EventScript_Jerry:: + trainerbattle_single TRAINER_SCIENTIST_JERRY, SilphCo_2F_Text_JerryIntro, SilphCo_2F_Text_JerryDefeat + msgbox SilphCo_2F_Text_JerryPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_2F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_23, SilphCo_2F_Text_Grunt1Intro, SilphCo_2F_Text_Grunt1Defeat + msgbox SilphCo_2F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_2F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_24, SilphCo_2F_Text_Grunt2Intro, SilphCo_2F_Text_Grunt2Defeat + msgbox SilphCo_2F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_2F_Text_ConnorIntro:: + .string "Help!\n" + .string "I'm a SILPH employee.$" + +SilphCo_2F_Text_ConnorDefeat:: + .string "How did you know\n" + .string "I was a ROCKET?$" + +SilphCo_2F_Text_ConnorPostBattle:: + .string "I work for both SILPH and TEAM\n" + .string "ROCKET.$" + +SilphCo_2F_Text_JerryIntro:: + .string "It's off-limits here!\n" + .string "Go home!$" + +SilphCo_2F_Text_JerryDefeat:: + .string "You're good.$" + +SilphCo_2F_Text_JerryPostBattle:: + .string "Can you solve the maze in here?\n" + .string "It's not easy, I tell you!$" + +SilphCo_2F_Text_Grunt1Intro:: + .string "No kids are allowed in here!$" + +SilphCo_2F_Text_Grunt1Defeat:: + .string "Tough!$" + +SilphCo_2F_Text_Grunt1PostBattle:: + .string "Diamond-shaped tiles are teleport\n" + .string "blocks.\p" + .string "They're transporters for this\n" + .string "high-tech building.$" + +SilphCo_2F_Text_Grunt2Intro:: + .string "Hey, kid!\n" + .string "What are you wandering here for?$" + +SilphCo_2F_Text_Grunt2Defeat:: + .string "I goofed!$" + +SilphCo_2F_Text_Grunt2PostBattle:: + .string "SILPH CO. will be associated with\n" + .string "TEAM ROCKET!$" + +Text_ThunderWaveTeach:: + .string "Eeek!\n" + .string "No! Stop! Help!\p" + .string "Oh, you're not with TEAM ROCKET.\n" + .string "I'm sorry, I thought…\p" + .string "Will you forgive me if I teach\n" + .string "you the THUNDER WAVE technique?$" + +Text_ThunderWaveDeclined:: + .string "Oh…\n" + .string "But THUNDER WAVE is convenient…$" + +Text_ThunderWaveWhichMon:: + .string "Which POKéMON should I teach\n" + .string "THUNDER WAVE?$" + +Text_ThunderWaveTaught:: + .string "THUNDER WAVE causes paralysis in\n" + .string "the target POKéMON.\p" + .string "A paralyzed POKéMON may be unable\n" + .string "to move in battle.\p" + .string "It's an ELECTRIC-type move, so it\n" + .string "won't work on some POKéMON.$" + +SilphCo_2F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "2F$" + diff --git a/data/maps/SilphCo_3F_Frlg/map.json b/data/maps/SilphCo_3F_Frlg/map.json new file mode 100644 index 000000000000..bc23d4c6bd62 --- /dev/null +++ b/data/maps/SilphCo_3F_Frlg/map.json @@ -0,0 +1,233 @@ +{ + "id": "MAP_SILPH_CO_3F", + "name": "SilphCo_3F_Frlg", + "layout": "LAYOUT_SILPH_CO_3F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 3, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 25, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SilphCo_3F_EventScript_Grunt", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 31, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_3F_EventScript_WorkerM", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_3F_EventScript_Jose", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 8, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_3F_EventScript_ItemHyperPotion", + "flag": "FLAG_HIDE_SILPH_CO_3F_HYPER_POTION" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": "1" + }, + { + "x": 13, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": "4" + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": "2" + }, + { + "x": 2, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": "2" + }, + { + "x": 3, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": "4" + }, + { + "x": 29, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "7" + }, + { + "x": 32, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "6" + }, + { + "x": 33, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": "1" + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 10, + "y": 12, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door1" + }, + { + "type": "sign", + "x": 10, + "y": 13, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door1" + }, + { + "type": "sign", + "x": 21, + "y": 12, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door2" + }, + { + "type": "sign", + "x": 21, + "y": 13, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door2" + }, + { + "type": "sign", + "x": 9, + "y": 12, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door1" + }, + { + "type": "sign", + "x": 9, + "y": 13, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door1" + }, + { + "type": "sign", + "x": 20, + "y": 12, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door2" + }, + { + "type": "sign", + "x": 20, + "y": 13, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_Door2" + }, + { + "type": "hidden_item", + "x": 34, + "y": 18, + "elevation": 0, + "item": "ITEM_PROTEIN", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 29, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_3F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_3F_Frlg/scripts.inc b/data/maps/SilphCo_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..4b1aff6ec60e --- /dev/null +++ b/data/maps/SilphCo_3F_Frlg/scripts.inc @@ -0,0 +1,70 @@ +SilphCo_3F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_3F_OnLoad + .byte 0 + +SilphCo_3F_OnLoad:: + call_if_unset FLAG_SILPH_3F_DOOR_1, EventScript_Close3FDoor1 + call_if_unset FLAG_SILPH_3F_DOOR_2, EventScript_Close3FDoor2 + end + +SilphCo_3F_EventScript_WorkerM:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_3F_EventScript_WorkerMRocketsGone + msgbox SilphCo_3F_Text_WhatAmIToDo + release + end + +SilphCo_3F_EventScript_WorkerMRocketsGone:: + msgbox SilphCo_3F_Text_YouAndYourMonsSavedUs + release + end + +SilphCo_3F_EventScript_FloorSign:: + msgbox SilphCo_3F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_3F_EventScript_Jose:: + trainerbattle_single TRAINER_SCIENTIST_JOSE, SilphCo_3F_Text_JoseIntro, SilphCo_3F_Text_JoseDefeat + msgbox SilphCo_3F_Text_JosePostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_3F_EventScript_Grunt:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_25, SilphCo_3F_Text_GruntIntro, SilphCo_3F_Text_GruntDefeat + msgbox SilphCo_3F_Text_GruntPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_3F_Text_WhatAmIToDo:: + .string "I work for SILPH CO.\n" + .string "What am I to do?$" + +SilphCo_3F_Text_YouAndYourMonsSavedUs:: + .string "{PLAYER}!\n" + .string "You and your POKéMON saved us!$" + +SilphCo_3F_Text_GruntIntro:: + .string "Quit messing with us, kid!$" + +SilphCo_3F_Text_GruntDefeat:: + .string "I give up!$" + +SilphCo_3F_Text_GruntPostBattle:: + .string "A hint? You can open doors with\n" + .string "a CARD KEY!$" + +SilphCo_3F_Text_JoseIntro:: + .string "I support TEAM ROCKET more than\n" + .string "I support SILPH CO.!$" + +SilphCo_3F_Text_JoseDefeat:: + .string "You really got me!$" + +SilphCo_3F_Text_JosePostBattle:: + .string "Humph…\p" + .string "TEAM ROCKET said that if I helped\n" + .string "them, they'd let me study POKéMON.$" + +SilphCo_3F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "3F$" + diff --git a/data/maps/SilphCo_4F_Frlg/map.json b/data/maps/SilphCo_4F_Frlg/map.json new file mode 100644 index 000000000000..6b74914776e2 --- /dev/null +++ b/data/maps/SilphCo_4F_Frlg/map.json @@ -0,0 +1,268 @@ +{ + "id": "MAP_SILPH_CO_4F", + "name": "SilphCo_4F_Frlg", + "layout": "LAYOUT_SILPH_CO_4F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 4, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 33, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SilphCo_4F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 10, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SilphCo_4F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 14, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_4F_EventScript_Rodney", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_4F_EventScript_WorkerM", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_4F_EventScript_ItemMaxRevive", + "flag": "FLAG_HIDE_SILPH_CO_4F_MAX_REVIVE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_4F_EventScript_ItemEscapeRope", + "flag": "FLAG_HIDE_SILPH_CO_4F_ESCAPE_ROPE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_4F_EventScript_ItemFullHeal", + "flag": "FLAG_HIDE_SILPH_CO_4F_FULL_HEAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 30, + "y": 18, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_4F_EventScript_ItemTM41", + "flag": "FLAG_HIDE_SILPH_CO_4F_TM41" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": "3" + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "3" + }, + { + "x": 12, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": "4" + }, + { + "x": 18, + "y": 14, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": "2" + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door1" + }, + { + "type": "sign", + "x": 4, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door1" + }, + { + "type": "sign", + "x": 3, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door1" + }, + { + "type": "sign", + "x": 4, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door1" + }, + { + "type": "sign", + "x": 15, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door2" + }, + { + "type": "sign", + "x": 14, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door2" + }, + { + "type": "sign", + "x": 14, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door2" + }, + { + "type": "sign", + "x": 15, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_Door2" + }, + { + "type": "hidden_item", + "x": 35, + "y": 20, + "elevation": 0, + "item": "ITEM_IRON", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 29, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_4F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_4F_Frlg/scripts.inc b/data/maps/SilphCo_4F_Frlg/scripts.inc new file mode 100644 index 000000000000..98cb0c4d1bb3 --- /dev/null +++ b/data/maps/SilphCo_4F_Frlg/scripts.inc @@ -0,0 +1,86 @@ +SilphCo_4F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_4F_OnLoad + .byte 0 + +SilphCo_4F_OnLoad:: + call_if_unset FLAG_SILPH_4F_DOOR_1, EventScript_Close4FDoor1 + call_if_unset FLAG_SILPH_4F_DOOR_2, EventScript_Close4FDoor2 + end + +SilphCo_4F_EventScript_WorkerM:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_4F_EventScript_WorkerMRocketsGone + msgbox SilphCo_4F_Text_CantYouSeeImHiding + release + end + +SilphCo_4F_EventScript_WorkerMRocketsGone:: + msgbox SilphCo_4F_Text_TeamRocketIsGone + release + end + +SilphCo_4F_EventScript_FloorSign:: + msgbox SilphCo_4F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_4F_EventScript_Rodney:: + trainerbattle_single TRAINER_SCIENTIST_RODNEY, SilphCo_4F_Text_RodneyIntro, SilphCo_4F_Text_RodneyDefeat + msgbox SilphCo_4F_Text_RodneyPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_4F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_26, SilphCo_4F_Text_Grunt1Intro, SilphCo_4F_Text_Grunt1Defeat + msgbox SilphCo_4F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_4F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_27, SilphCo_4F_Text_Grunt2Intro, SilphCo_4F_Text_Grunt2Defeat + msgbox SilphCo_4F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_4F_Text_CantYouSeeImHiding:: + .string "Sssh!\n" + .string "Can't you see I'm hiding?$" + +SilphCo_4F_Text_TeamRocketIsGone:: + .string "Huh?\n" + .string "TEAM ROCKET is gone?$" + +SilphCo_4F_Text_Grunt1Intro:: + .string "TEAM ROCKET has taken control\n" + .string "of SILPH CO.!$" + +SilphCo_4F_Text_Grunt1Defeat:: + .string "Arrgh!$" + +SilphCo_4F_Text_Grunt1PostBattle:: + .string "Fwahahaha!\n" + .string "My BOSS has been after this place!$" + +SilphCo_4F_Text_RodneyIntro:: + .string "My POKéMON is my loyal servant.$" + +SilphCo_4F_Text_RodneyDefeat:: + .string "Darn!\n" + .string "You weak POKéMON!$" + +SilphCo_4F_Text_RodneyPostBattle:: + .string "The doors are electronically\n" + .string "locked.\p" + .string "It takes a CARD KEY to open the\n" + .string "doors here.$" + +SilphCo_4F_Text_Grunt2Intro:: + .string "Intruder spotted!$" + +SilphCo_4F_Text_Grunt2Defeat:: + .string "Who are you?$" + +SilphCo_4F_Text_Grunt2PostBattle:: + .string "I better tell the BOSS on 11F!$" + +SilphCo_4F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "4F$" + diff --git a/data/maps/SilphCo_5F_Frlg/map.json b/data/maps/SilphCo_5F_Frlg/map.json new file mode 100644 index 000000000000..5a4396fad490 --- /dev/null +++ b/data/maps/SilphCo_5F_Frlg/map.json @@ -0,0 +1,348 @@ +{ + "id": "MAP_SILPH_CO_5F", + "name": "SilphCo_5F_Frlg", + "layout": "LAYOUT_SILPH_CO_5F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 5, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 35, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_5F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 23, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SilphCo_5F_EventScript_Dalton", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 16, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_5F_EventScript_WorkerM", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 11, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SilphCo_5F_EventScript_Beau", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 9, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SilphCo_5F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_5F_EventScript_ItemProtein", + "flag": "FLAG_HIDE_SILPH_CO_5F_PROTEIN" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_5F_EventScript_ItemTM01", + "flag": "FLAG_HIDE_SILPH_CO_5F_TM01" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 22, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_5F_EventScript_ItemCardKey", + "flag": "FLAG_HIDE_SILPH_CO_5F_CARD_KEY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_5F_EventScript_Scientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": "0" + }, + { + "x": 15, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "1" + }, + { + "x": 30, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": "2" + }, + { + "x": 10, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 20, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "5" + }, + { + "x": 33, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": "2" + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 13, + "y": 16, + "elevation": 0, + "item": "ITEM_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 8, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door1" + }, + { + "type": "sign", + "x": 8, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door1" + }, + { + "type": "sign", + "x": 8, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door2" + }, + { + "type": "sign", + "x": 8, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door2" + }, + { + "type": "sign", + "x": 19, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door3" + }, + { + "type": "sign", + "x": 19, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door3" + }, + { + "type": "sign", + "x": 7, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door1" + }, + { + "type": "sign", + "x": 7, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door1" + }, + { + "type": "sign", + "x": 7, + "y": 19, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door2" + }, + { + "type": "sign", + "x": 7, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door2" + }, + { + "type": "sign", + "x": 18, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door3" + }, + { + "type": "sign", + "x": 18, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_Door3" + }, + { + "type": "sign", + "x": 28, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_PokemonReport3" + }, + { + "type": "sign", + "x": 30, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_PokemonReport2" + }, + { + "type": "sign", + "x": 25, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_PokemonReport1" + }, + { + "type": "hidden_item", + "x": 32, + "y": 9, + "elevation": 0, + "item": "ITEM_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 29, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_5F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_5F_Frlg/scripts.inc b/data/maps/SilphCo_5F_Frlg/scripts.inc new file mode 100644 index 000000000000..69441dadee80 --- /dev/null +++ b/data/maps/SilphCo_5F_Frlg/scripts.inc @@ -0,0 +1,140 @@ +SilphCo_5F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_5F_OnLoad + .byte 0 + +SilphCo_5F_OnLoad:: + call_if_unset FLAG_SILPH_5F_DOOR_1, EventScript_Close5FDoor1 + call_if_unset FLAG_SILPH_5F_DOOR_2, EventScript_Close5FDoor2 + call_if_unset FLAG_SILPH_5F_DOOR_3, EventScript_Close5FDoor3 + end + +SilphCo_5F_EventScript_WorkerM:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_5F_EventScript_WorkerMRocketsGone + msgbox SilphCo_5F_Text_RocketsInUproarAboutIntruder + release + end + +SilphCo_5F_EventScript_WorkerMRocketsGone:: + msgbox SilphCo_5F_Text_YoureOurHeroThankYou + release + end + +SilphCo_5F_EventScript_PokemonReport1:: + msgbox SilphCo_5F_Text_PorygonFirstVRMon, MSGBOX_SIGN + end + +SilphCo_5F_EventScript_PokemonReport2:: + msgbox SilphCo_5F_Text_Over350TechniquesConfirmed, MSGBOX_SIGN + end + +SilphCo_5F_EventScript_PokemonReport3:: + msgbox SilphCo_5F_Text_SomeMonsEvolveWhenTraded, MSGBOX_SIGN + end + +SilphCo_5F_EventScript_FloorSign:: + msgbox SilphCo_5F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_5F_EventScript_Beau:: + trainerbattle_single TRAINER_SCIENTIST_BEAU, SilphCo_5F_Text_BeauIntro, SilphCo_5F_Text_BeauDefeat + msgbox SilphCo_5F_Text_BeauPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_5F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_28, SilphCo_5F_Text_Grunt1Intro, SilphCo_5F_Text_Grunt1Defeat + msgbox SilphCo_5F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_5F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_29, SilphCo_5F_Text_Grunt2Intro, SilphCo_5F_Text_Grunt2Defeat + msgbox SilphCo_5F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_5F_EventScript_Dalton:: + trainerbattle_single TRAINER_JUGGLER_DALTON, SilphCo_5F_Text_DaltonIntro, SilphCo_5F_Text_DaltonDefeat + msgbox SilphCo_5F_Text_DaltonPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_5F_Text_RocketsInUproarAboutIntruder:: + .string "TEAM ROCKET is in an uproar over\n" + .string "some intruder.\p" + .string "That's you, right?$" + +SilphCo_5F_Text_YoureOurHeroThankYou:: + .string "TEAM ROCKET took off!\n" + .string "You're our hero! Thank you!$" + +SilphCo_5F_Text_Grunt1Intro:: + .string "I heard a kid was wandering\n" + .string "around.$" + +SilphCo_5F_Text_Grunt1Defeat:: + .string "Boom!$" + +SilphCo_5F_Text_Grunt1PostBattle:: + .string "It's not smart to pick a fight with\n" + .string "TEAM ROCKET!$" + +SilphCo_5F_Text_BeauIntro:: + .string "We study POKé BALL technology on\n" + .string "this floor.$" + +SilphCo_5F_Text_BeauDefeat:: + .string "Dang!\n" + .string "Blast it!$" + +SilphCo_5F_Text_BeauPostBattle:: + .string "We worked on the ultimate POKé\n" + .string "BALL which would catch anything.$" + +SilphCo_5F_Text_DaltonIntro:: + .string "Whaaat?\p" + .string "There shouldn't be any children\n" + .string "here!$" + +SilphCo_5F_Text_DaltonDefeat:: + .string "Oh, goodness!$" + +SilphCo_5F_Text_DaltonPostBattle:: + .string "You're only on 5F.\n" + .string "It's a long way to my BOSS!$" + +SilphCo_5F_Text_Grunt2Intro:: + .string "Show TEAM ROCKET a little respect!$" + +SilphCo_5F_Text_Grunt2Defeat:: + .string "Cough…\n" + .string "Cough…$" + +SilphCo_5F_Text_Grunt2PostBattle:: + .string "Which reminds me.\p" + .string "KOFFING evolves into WEEZING!$" + +SilphCo_5F_Text_PorygonFirstVRMon:: + .string "It's a POKéMON REPORT!\p" + .string "POKéMON LAB created PORYGON,\n" + .string "the first virtual-reality POKéMON.$" + +SilphCo_5F_Text_Over350TechniquesConfirmed:: + .string "It's a POKéMON REPORT!\p" + .string "Over 350 POKéMON techniques have\n" + .string "been confirmed.$" + +SilphCo_5F_Text_SomeMonsEvolveWhenTraded:: + .string "It's a POKéMON REPORT!\p" + .string "Some POKéMON have been confirmed\n" + .string "to evolve when they are traded.$" + +SilphCo_5F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "5F$" + +SilphCo_5F_Text_RocketBossLookingForStrongMons:: + .string "Those thugs that took over our\n" + .string "building…\p" + .string "Their BOSS said he was looking for\n" + .string "strong POKéMON.\p" + .string "I hope our PRESIDENT managed to\n" + .string "avoid trouble…$" diff --git a/data/maps/SilphCo_6F_Frlg/map.json b/data/maps/SilphCo_6F_Frlg/map.json new file mode 100644 index 000000000000..71dec7b76fec --- /dev/null +++ b/data/maps/SilphCo_6F_Frlg/map.json @@ -0,0 +1,250 @@ +{ + "id": "MAP_SILPH_CO_6F", + "name": "SilphCo_6F_Frlg", + "layout": "LAYOUT_SILPH_CO_6F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 6, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 21, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_6F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 23, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_WorkerM1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 24, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_WorkerF1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 22, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_WorkerM2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_WorkerM3", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 16, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_WorkerF2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 9, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SilphCo_6F_EventScript_Taylor", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 2, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_ItemHPUp", + "flag": "FLAG_HIDE_SILPH_CO_6F_HP_UP" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 1, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_6F_EventScript_ItemXSpecial", + "flag": "FLAG_HIDE_SILPH_CO_6F_X_SPECIAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 18, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_6F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + } + ], + "warp_events": [ + { + "x": 14, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": "0" + }, + { + "x": 29, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": "4" + }, + { + "x": 26, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": "2" + }, + { + "x": 2, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_4F", + "dest_warp_id": "1" + }, + { + "x": 20, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_6F_EventScript_Door" + }, + { + "type": "sign", + "x": 6, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_6F_EventScript_Door" + }, + { + "type": "sign", + "x": 5, + "y": 15, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_6F_EventScript_Door" + }, + { + "type": "sign", + "x": 5, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_6F_EventScript_Door" + }, + { + "type": "hidden_item", + "x": 1, + "y": 8, + "elevation": 0, + "item": "ITEM_CARBOS", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 25, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_6F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_6F_Frlg/scripts.inc b/data/maps/SilphCo_6F_Frlg/scripts.inc new file mode 100644 index 000000000000..3363e8e81549 --- /dev/null +++ b/data/maps/SilphCo_6F_Frlg/scripts.inc @@ -0,0 +1,170 @@ +SilphCo_6F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_6F_OnLoad + .byte 0 + +SilphCo_6F_OnLoad:: + call_if_unset FLAG_SILPH_6F_DOOR, EventScript_Close6FDoor + end + +SilphCo_6F_EventScript_WorkerM2:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_6F_EventScript_WorkerM2RocketsGone + msgbox SilphCo_6F_Text_TargetedSilphForOurMonProducts + release + end + +SilphCo_6F_EventScript_WorkerM2RocketsGone:: + msgbox SilphCo_6F_Text_ComeWorkForSilphWhenYoureOlder + release + end + +SilphCo_6F_EventScript_WorkerM3:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_6F_EventScript_WorkerM3RocketsGone + msgbox SilphCo_6F_Text_RocketsTookOverBuilding + release + end + +SilphCo_6F_EventScript_WorkerM3RocketsGone:: + msgbox SilphCo_6F_Text_BetterGetBackToWork + release + end + +SilphCo_6F_EventScript_WorkerM1:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_6F_EventScript_WorkerM1RocketsGone + msgbox SilphCo_6F_Text_HelpMePlease + release + end + +SilphCo_6F_EventScript_WorkerM1RocketsGone:: + msgbox SilphCo_6F_Text_WeGotEngaged + release + end + +SilphCo_6F_EventScript_WorkerF1:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_6F_EventScript_WorkerF1RocketsGone + msgbox SilphCo_6F_Text_ThatManIsSuchACoward + release + end + +SilphCo_6F_EventScript_WorkerF1RocketsGone:: + msgbox SilphCo_6F_Text_NeedsMeToLookAfterHim + release + end + +SilphCo_6F_EventScript_WorkerF2:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_6F_EventScript_WorkerF2RocketsGone + msgbox SilphCo_6F_Text_RocketsTryingToConquerWorld + release + end + +SilphCo_6F_EventScript_WorkerF2RocketsGone:: + msgbox SilphCo_6F_Text_RocketsRanAwayBecauseOfYou + release + end + +SilphCo_6F_EventScript_FloorSign:: + msgbox SilphCo_6F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_6F_EventScript_Taylor:: + trainerbattle_single TRAINER_SCIENTIST_TAYLOR, SilphCo_6F_Text_TaylorIntro, SilphCo_6F_Text_TaylorDefeat + msgbox SilphCo_6F_Text_TaylorPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_6F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_30, SilphCo_6F_Text_Grunt1Intro, SilphCo_6F_Text_Grunt1Defeat + msgbox SilphCo_6F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_6F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_31, SilphCo_6F_Text_Grunt2Intro, SilphCo_6F_Text_Grunt2Defeat + msgbox SilphCo_6F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_6F_Text_RocketsTookOverBuilding:: + .string "The ROCKETS came and took over\n" + .string "the building!$" + +SilphCo_6F_Text_BetterGetBackToWork:: + .string "Well, better get back to work.$" + +SilphCo_6F_Text_HelpMePlease:: + .string "Oh dear, oh dear.\n" + .string "Help me, please!$" + +SilphCo_6F_Text_WeGotEngaged:: + .string "We got engaged.\n" + .string "Heheh!$" + +SilphCo_6F_Text_ThatManIsSuchACoward:: + .string "That man next to me…\n" + .string "He's such a coward!$" + +SilphCo_6F_Text_NeedsMeToLookAfterHim:: + .string "He's so helpless, he needed\n" + .string "someone like me to look after him.$" + +SilphCo_6F_Text_RocketsTryingToConquerWorld:: + .string "TEAM ROCKET is trying to conquer\n" + .string "the world with POKéMON.$" + +SilphCo_6F_Text_RocketsRanAwayBecauseOfYou:: + .string "TEAM ROCKET ran away, and it's all\n" + .string "because of you!$" + +SilphCo_6F_Text_TargetedSilphForOurMonProducts:: + .string "They must have targeted SILPH for\n" + .string "our POKéMON products.$" + +SilphCo_6F_Text_ComeWorkForSilphWhenYoureOlder:: + .string "Come work for SILPH when you\n" + .string "get older.$" + +SilphCo_6F_Text_Grunt1Intro:: + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +SilphCo_6F_Text_Grunt1Defeat:: + .string "Flame out!$" + +SilphCo_6F_Text_Grunt1PostBattle:: + .string "No matter!\n" + .string "My brothers will avenge me!$" + +SilphCo_6F_Text_TaylorIntro:: + .string "That rotten PRESIDENT!\p" + .string "Serves him right for shipping me\n" + .string "off to the TIKSI BRANCH!\p" + .string "That's why TEAM ROCKET came after\n" + .string "us, I'm sure of it!$" + +SilphCo_6F_Text_TaylorDefeat:: + .string "Shoot!$" + +SilphCo_6F_Text_TaylorPostBattle:: + .string "TIKSI BRANCH?\n" + .string "It's in Russian no-man's-land!$" + +SilphCo_6F_Text_Grunt2Intro:: + .string "You dare betray TEAM ROCKET?$" + +SilphCo_6F_Text_Grunt2Defeat:: + .string "You traitor!$" + +SilphCo_6F_Text_Grunt2PostBattle:: + .string "If you stand for justice, you\n" + .string "betray us bad guys!$" + +SilphCo_6F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "6F$" + diff --git a/data/maps/SilphCo_7F_Frlg/map.json b/data/maps/SilphCo_7F_Frlg/map.json new file mode 100644 index 000000000000..cce3b406fdf3 --- /dev/null +++ b/data/maps/SilphCo_7F_Frlg/map.json @@ -0,0 +1,356 @@ +{ + "id": "MAP_SILPH_CO_7F", + "name": "SilphCo_7F_Frlg", + "layout": "LAYOUT_SILPH_CO_7F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 7, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_SILPH_CO_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 2, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SILPH_RIVAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 0, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_7F_EventScript_LaprasGuy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 24, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SilphCo_7F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 24, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_7F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 13, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SilphCo_7F_EventScript_Grunt3", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_7F_EventScript_WorkerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 13, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_7F_EventScript_WorkerM1", + "flag": "0" + }, + { + "local_id": "LOCALID_SILPH_CO_7F_WORKER_M2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 9, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_7F_EventScript_WorkerM2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 3, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SilphCo_7F_EventScript_Joshua", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 0, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_7F_EventScript_ItemCalcium", + "flag": "FLAG_HIDE_SILPH_CO_7F_CALCIUM" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 30, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_7F_EventScript_ItemTM08", + "flag": "FLAG_HIDE_SILPH_CO_7F_TM08" + } + ], + "warp_events": [ + { + "x": 19, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_6F", + "dest_warp_id": "0" + }, + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_11F", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": "5" + }, + { + "x": 27, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "2" + }, + { + "x": 23, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 2, + "y": 4, + "elevation": 3, + "var": "VAR_MAP_SCENE_SILPH_CO_7F", + "var_value": "0", + "script": "SilphCo_7F_EventScript_RivalTriggerTop" + }, + { + "type": "trigger", + "x": 2, + "y": 5, + "elevation": 3, + "var": "VAR_MAP_SCENE_SILPH_CO_7F", + "var_value": "0", + "script": "SilphCo_7F_EventScript_RivalTriggerBottom" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 11, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door1" + }, + { + "type": "sign", + "x": 12, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door1" + }, + { + "type": "sign", + "x": 11, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door1" + }, + { + "type": "sign", + "x": 12, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door1" + }, + { + "type": "sign", + "x": 24, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door2" + }, + { + "type": "sign", + "x": 25, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door2" + }, + { + "type": "sign", + "x": 25, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door2" + }, + { + "type": "sign", + "x": 24, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door2" + }, + { + "type": "sign", + "x": 25, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door3" + }, + { + "type": "sign", + "x": 26, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door3" + }, + { + "type": "sign", + "x": 25, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door3" + }, + { + "type": "sign", + "x": 26, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_Door3" + }, + { + "type": "hidden_item", + "x": 22, + "y": 11, + "elevation": 0, + "item": "ITEM_ZINC", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 20, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_7F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_7F_Frlg/scripts.inc b/data/maps/SilphCo_7F_Frlg/scripts.inc new file mode 100644 index 000000000000..6fd7c1a81d28 --- /dev/null +++ b/data/maps/SilphCo_7F_Frlg/scripts.inc @@ -0,0 +1,368 @@ +SilphCo_7F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_7F_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, SilphCo_7F_OnTransition + .byte 0 + +SilphCo_7F_OnLoad:: + call_if_unset FLAG_SILPH_7F_DOOR_1, EventScript_Close7FDoor1 + call_if_unset FLAG_SILPH_7F_DOOR_2, EventScript_Close7FDoor2 + call_if_unset FLAG_SILPH_7F_DOOR_3, EventScript_Close7FDoor3 + end + +SilphCo_7F_OnTransition:: + call_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_7F_EventScript_SetObjRocketsGone + end + +SilphCo_7F_EventScript_SetObjRocketsGone:: + setobjectmovementtype LOCALID_SILPH_CO_7F_WORKER_M2, MOVEMENT_TYPE_FACE_UP + return + +SilphCo_7F_EventScript_RivalTriggerTop:: + lockall + setvar VAR_TEMP_1, 0 + goto SilphCo_7F_EventScript_RivalScene + end + +SilphCo_7F_EventScript_RivalTriggerBottom:: + lockall + setvar VAR_TEMP_1, 1 + goto SilphCo_7F_EventScript_RivalScene + end + +SilphCo_7F_EventScript_RivalScene:: + textcolor NPC_TEXT_COLOR_MALE + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_SILPH_CO_RIVAL, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_SILPH_CO_RIVAL, Common_Movement_Delay48 + waitmovement 0 + msgbox SilphCo_7F_Text_RivalWhatKeptYou + call_if_eq VAR_TEMP_1, 0, SilphCo_7F_EventScript_RivalApproachTop + call_if_eq VAR_TEMP_1, 1, SilphCo_7F_EventScript_RivalApproachBottom + msgbox SilphCo_7F_Text_RivalIntro + setvar VAR_LAST_TALKED, LOCALID_SILPH_CO_RIVAL + call_if_eq VAR_STARTER_MON, 2, SilphCo_7F_EventScript_RivalSquirtle + call_if_eq VAR_STARTER_MON, 1, SilphCo_7F_EventScript_RivalBulbasaur + call_if_eq VAR_STARTER_MON, 0, SilphCo_7F_EventScript_RivalCharmander + msgbox SilphCo_7F_Text_RivalPostBattle + closemessage + playbgm MUS_RG_RIVAL_EXIT, 0 + call_if_eq VAR_TEMP_1, 0, SilphCo_7F_EventScript_RivalExitTop + call_if_eq VAR_TEMP_1, 1, SilphCo_7F_EventScript_RivalExitBottom + playse SE_WARP_IN + fadedefaultbgm + removeobject LOCALID_SILPH_CO_RIVAL + waitse + setvar VAR_MAP_SCENE_SILPH_CO_7F, 1 + releaseall + end + +SilphCo_7F_EventScript_RivalApproachTop:: + closemessage + applymovement LOCALID_SILPH_CO_RIVAL, SilphCo_7F_Movement_RivalApproachTop + waitmovement 0 + return + +SilphCo_7F_EventScript_RivalApproachBottom:: + return + +SilphCo_7F_EventScript_RivalSquirtle:: + trainerbattle_no_intro TRAINER_RIVAL_SILPH_SQUIRTLE, SilphCo_7F_Text_RivalDefeat + return + +SilphCo_7F_EventScript_RivalBulbasaur:: + trainerbattle_no_intro TRAINER_RIVAL_SILPH_BULBASAUR, SilphCo_7F_Text_RivalDefeat + return + +SilphCo_7F_EventScript_RivalCharmander:: + trainerbattle_no_intro TRAINER_RIVAL_SILPH_CHARMANDER, SilphCo_7F_Text_RivalDefeat + return + +SilphCo_7F_EventScript_RivalExitTop:: + applymovement LOCALID_SILPH_CO_RIVAL, SilphCo_7F_Movement_RivalExitTop + waitmovement 0 + return + +SilphCo_7F_EventScript_RivalExitBottom:: + applymovement LOCALID_SILPH_CO_RIVAL, SilphCo_7F_Movement_RivalExitBottom + waitmovement 0 + return + +SilphCo_7F_Movement_RivalApproachTop:: + walk_up + step_end + +SilphCo_7F_Movement_RivalExitTop:: + walk_right + walk_right + walk_right + walk_up + delay_16 + step_end + +SilphCo_7F_Movement_RivalExitBottom:: + walk_left + walk_up + walk_up + walk_right + walk_right + walk_right + walk_right + delay_16 + step_end + +SilphCo_7F_EventScript_LaprasGuy:: + lock + faceplayer + goto_if_set FLAG_GOT_LAPRAS_FROM_SILPH, SilphCo_7F_EventScript_AlreadyGotLapras + msgbox SilphCo_7F_Text_HaveMonForSavingUs + setvar VAR_TEMP_1, SPECIES_LAPRAS + givemon SPECIES_LAPRAS, 25 + goto_if_eq VAR_RESULT, 0, SilphCo_7F_EventScript_ReceiveLaprasParty + goto_if_eq VAR_RESULT, 1, SilphCo_7F_EventScript_ReceiveLaprasPC + goto_if_eq VAR_RESULT, 2, Common_EventScript_NoMoreRoomForPokemon + release + end + +SilphCo_7F_EventScript_ReceiveLaprasParty:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message SilphCo_7F_Text_ObtainedLaprasFromEmployee + waitmessage + waitfanfare + bufferspeciesname STR_VAR_1, SPECIES_LAPRAS + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SilphCo_7F_EventScript_EndReceiveLapras + call Common_EventScript_GetGiftMonPartySlot + call Common_EventScript_NameReceivedPartyMon + goto SilphCo_7F_EventScript_EndReceiveLapras + end + +SilphCo_7F_EventScript_ReceiveLaprasPC:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message SilphCo_7F_Text_ObtainedLaprasFromEmployee + waitmessage + waitfanfare + bufferspeciesname STR_VAR_1, SPECIES_LAPRAS + msgbox gText_NicknameThisPokemon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SilphCo_7F_EventScript_LaprasTransferredToPC + call Common_EventScript_NameReceivedBoxMon + goto SilphCo_7F_EventScript_LaprasTransferredToPC + end + +SilphCo_7F_EventScript_LaprasTransferredToPC:: + call Common_EventScript_TransferredToPC + goto SilphCo_7F_EventScript_EndReceiveLapras + end + +SilphCo_7F_EventScript_EndReceiveLapras:: + textcolor NPC_TEXT_COLOR_MALE + msgbox SilphCo_7F_Text_ExplainLapras + setflag FLAG_GOT_LAPRAS_FROM_SILPH + release + end + +SilphCo_7F_EventScript_AlreadyGotLapras:: + msgbox SilphCo_7F_Text_RocketBossWentToBoardroom + release + end + +SilphCo_7F_EventScript_WorkerM1:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_7F_EventScript_WorkerM1RocketsGone + msgbox SilphCo_7F_Text_RocketsAfterMasterBall + release + end + +SilphCo_7F_EventScript_WorkerM1RocketsGone:: + msgbox SilphCo_7F_Text_CanceledMasterBallProject + release + end + +SilphCo_7F_EventScript_WorkerM2:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_7F_EventScript_WorkerM2RocketsGone + msgbox SilphCo_7F_Text_BadIfTeamRocketTookOver + release + end + +SilphCo_7F_EventScript_WorkerM2RocketsGone:: + msgbox SilphCo_7F_Text_WowYouChasedOffTeamRocket + release + end + +SilphCo_7F_EventScript_WorkerF:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_7F_EventScript_WorkerFRocketsGone + msgbox SilphCo_7F_Text_ReallyDangerousHere + release + end + +SilphCo_7F_EventScript_WorkerFRocketsGone:: + msgbox SilphCo_7F_Text_ThankYouSoMuch + release + end + +SilphCo_7F_EventScript_FloorSign:: + msgbox SilphCo_7F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_7F_EventScript_Joshua:: + trainerbattle_single TRAINER_SCIENTIST_JOSHUA, SilphCo_7F_Text_JoshuaIntro, SilphCo_7F_Text_JoshuaDefeat + msgbox SilphCo_7F_Text_JoshuaPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_7F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_33, SilphCo_7F_Text_Grunt1Intro, SilphCo_7F_Text_Grunt1Defeat + msgbox SilphCo_7F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_7F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_34, SilphCo_7F_Text_Grunt2Intro, SilphCo_7F_Text_Grunt2Defeat + msgbox SilphCo_7F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_7F_EventScript_Grunt3:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_35, SilphCo_7F_Text_Grunt3Intro, SilphCo_7F_Text_Grunt3Defeat + msgbox SilphCo_7F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_7F_Text_HaveMonForSavingUs:: + .string "Oh! Hi! You're not a ROCKET!\n" + .string "You came to save us?\l" + .string "Why, thank you!\p" + .string "I want you to have this POKéMON\n" + .string "for saving us.$" + +SilphCo_7F_Text_ObtainedLaprasFromEmployee:: + .string "{PLAYER} obtained a LAPRAS from\n" + .string "the SILPH employee!$" + +SilphCo_7F_Text_ExplainLapras:: + .string "It's a LAPRAS.\n" + .string "It's a very intelligent POKéMON.\p" + .string "We kept it in our lab, but it will\n" + .string "be much better off with you.\p" + .string "I think you will be a good TRAINER\n" + .string "for LAPRAS!\p" + .string "It's a good swimmer.\n" + .string "It'll give you a lift across water!$" + +SilphCo_7F_Text_RocketBossWentToBoardroom:: + .string "TEAM ROCKET's BOSS went to the\n" + .string "boardroom!\p" + .string "Is our PRESIDENT okay?\n" + .string "I'm worried.$" + +SilphCo_7F_Text_RocketsAfterMasterBall:: + .string "TEAM ROCKET was after the MASTER\n" + .string "BALL, which catches any POKéMON.$" + +SilphCo_7F_Text_CanceledMasterBallProject:: + .string "We canceled the MASTER BALL\n" + .string "project because of TEAM ROCKET.$" + +SilphCo_7F_Text_BadIfTeamRocketTookOver:: + .string "It would be bad if TEAM ROCKET\n" + .string "took over SILPH or our POKéMON.$" + +SilphCo_7F_Text_WowYouChasedOffTeamRocket:: + .string "Wow!\p" + .string "You chased off TEAM ROCKET all by\n" + .string "yourself?$" + +SilphCo_7F_Text_ReallyDangerousHere:: + .string "You!\n" + .string "It's really dangerous here!\p" + .string "You came to save me?\n" + .string "You can't!$" + +SilphCo_7F_Text_ThankYouSoMuch:: + .string "Thank you so much!$" + +SilphCo_7F_Text_Grunt3Intro:: + .string "Uh-oh!\n" + .string "I smell a little mouse!$" + +SilphCo_7F_Text_Grunt3Defeat:: + .string "Lights out!$" + +SilphCo_7F_Text_Grunt3PostBattle:: + .string "You won't find my BOSS by just\n" + .string "scurrying around!$" + +SilphCo_7F_Text_JoshuaIntro:: + .string "Heheh!\p" + .string "You mistook me for a SILPH worker?$" + +SilphCo_7F_Text_JoshuaDefeat:: + .string "I'm done!$" + +SilphCo_7F_Text_JoshuaPostBattle:: + .string "Despite your age, you are a\n" + .string "skilled TRAINER!$" + +SilphCo_7F_Text_Grunt1Intro:: + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +SilphCo_7F_Text_Grunt1Defeat:: + .string "Aack!\n" + .string "Brothers, I lost!$" + +SilphCo_7F_Text_Grunt1PostBattle:: + .string "Doesn't matter.\n" + .string "My brothers will repay the favor!$" + +SilphCo_7F_Text_Grunt2Intro:: + .string "A child intruder?\n" + .string "That must be you!$" + +SilphCo_7F_Text_Grunt2Defeat:: + .string "Fine!\n" + .string "I lost!$" + +SilphCo_7F_Text_Grunt2PostBattle:: + .string "Go on home before my BOSS gets\n" + .string "ticked off!$" + +SilphCo_7F_Text_RivalWhatKeptYou:: + .string "{RIVAL}: What kept you, {PLAYER}?$" + +SilphCo_7F_Text_RivalIntro:: + .string "{RIVAL}: Hahaha! I thought you'd\n" + .string "turn up if I waited here!\p" + .string "I guess TEAM ROCKET slowed you\n" + .string "down! Not that I care!\p" + .string "I saw you in SAFFRON, so I decided\n" + .string "to see if you got better!$" + +SilphCo_7F_Text_RivalDefeat:: + .string "Oh, man!\n" + .string "So, you are ready for BOSS\l" + .string "ROCKET!$" + +SilphCo_7F_Text_RivalPostBattle:: + .string "Well, {PLAYER}!\n" + .string "I'm moving on up and ahead!\p" + .string "By checking my POKéDEX, I'm\n" + .string "starting to see what's strong and\l" + .string "how they evolve!\p" + .string "Am I a genius or what?\p" + .string "I'm going to the POKéMON LEAGUE to\n" + .string "boot out the ELITE FOUR.\p" + .string "I'll become the world's most\n" + .string "powerful TRAINER!\p" + .string "{PLAYER}, well, good luck to you!\n" + .string "Don't sweat it!\l" + .string "Smell ya!$" + +SilphCo_7F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "7F$" + diff --git a/data/maps/SilphCo_8F_Frlg/map.json b/data/maps/SilphCo_8F_Frlg/map.json new file mode 100644 index 000000000000..3262343fcffe --- /dev/null +++ b/data/maps/SilphCo_8F_Frlg/map.json @@ -0,0 +1,208 @@ +{ + "id": "MAP_SILPH_CO_8F", + "name": "SilphCo_8F_Frlg", + "layout": "LAYOUT_SILPH_CO_8F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 8, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 28, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SilphCo_8F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 10, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SilphCo_8F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_8F_EventScript_Parker", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_M", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_8F_EventScript_WorkerM", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 24, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_8F_EventScript_ItemIron", + "flag": "FLAG_HIDE_SILPH_CO_8F_IRON" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 29, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_8F_EventScript_Scientist", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 16, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_9F", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": "4" + }, + { + "x": 10, + "y": 6, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": "5" + }, + { + "x": 28, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_7F", + "dest_warp_id": "3" + }, + { + "x": 2, + "y": 12, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": "1" + }, + { + "x": 2, + "y": 17, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_2F", + "dest_warp_id": "2" + }, + { + "x": 22, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_8F_EventScript_Door" + }, + { + "type": "sign", + "x": 6, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_8F_EventScript_Door" + }, + { + "type": "sign", + "x": 5, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_8F_EventScript_Door" + }, + { + "type": "sign", + "x": 5, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_8F_EventScript_Door" + }, + { + "type": "hidden_item", + "x": 29, + "y": 10, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 27, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_8F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_8F_Frlg/scripts.inc b/data/maps/SilphCo_8F_Frlg/scripts.inc new file mode 100644 index 000000000000..2a4918cd708e --- /dev/null +++ b/data/maps/SilphCo_8F_Frlg/scripts.inc @@ -0,0 +1,89 @@ +SilphCo_8F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_8F_OnLoad + .byte 0 + +SilphCo_8F_OnLoad:: + call_if_unset FLAG_SILPH_8F_DOOR, EventScript_Close8FDoor + end + +SilphCo_8F_EventScript_WorkerM:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_8F_EventScript_WorkerMRocketsGone + msgbox SilphCo_8F_Text_WonderIfSilphIsFinished + release + end + +SilphCo_8F_EventScript_WorkerMRocketsGone:: + msgbox SilphCo_8F_Text_ThanksForSavingUs + release + end + +SilphCo_8F_EventScript_FloorSign:: + msgbox SilphCo_8F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_8F_EventScript_Parker:: + trainerbattle_single TRAINER_SCIENTIST_PARKER, SilphCo_8F_Text_ParkerIntro, SilphCo_8F_Text_ParkerDefeat + msgbox SilphCo_8F_Text_ParkerPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_8F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_32, SilphCo_8F_Text_Grunt1Intro, SilphCo_8F_Text_Grunt1Defeat + msgbox SilphCo_8F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_8F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_36, SilphCo_8F_Text_Grunt2Intro, SilphCo_8F_Text_Grunt2Defeat + msgbox SilphCo_8F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_8F_Text_WonderIfSilphIsFinished:: + .string "I wonder if SILPH is finished…$" + +SilphCo_8F_Text_ThanksForSavingUs:: + .string "Thanks for saving us!$" + +SilphCo_8F_Text_Grunt1Intro:: + .string "That's as far as you'll go!$" + +SilphCo_8F_Text_Grunt1Defeat:: + .string "Not enough grit!$" + +SilphCo_8F_Text_Grunt1PostBattle:: + .string "If you don't turn back…\n" + .string "I'll call for backup!$" + +SilphCo_8F_Text_ParkerIntro:: + .string "You're causing us problems!$" + +SilphCo_8F_Text_ParkerDefeat:: + .string "Huh?\n" + .string "I lost?$" + +SilphCo_8F_Text_ParkerPostBattle:: + .string "So, what do you think of SILPH\n" + .string "BUILDING's maze?$" + +SilphCo_8F_Text_Grunt2Intro:: + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +SilphCo_8F_Text_Grunt2Defeat:: + .string "Whoo!\n" + .string "Oh, Brothers!$" + +SilphCo_8F_Text_Grunt2PostBattle:: + .string "I'll leave you up to my brothers.$" + +SilphCo_8F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "8F$" + +SilphCo_8F_Text_ToRocketBossMonsAreTools:: + .string "TEAM ROCKET's BOSS is terribly\n" + .string "cruel!\p" + .string "To him, POKéMON are just tools to\n" + .string "be used.\p" + .string "What will happen if that tyrant\n" + .string "takes over our company…$" diff --git a/data/maps/SilphCo_9F_Frlg/map.json b/data/maps/SilphCo_9F_Frlg/map.json new file mode 100644 index 000000000000..d09e8b4751f0 --- /dev/null +++ b/data/maps/SilphCo_9F_Frlg/map.json @@ -0,0 +1,272 @@ +{ + "id": "MAP_SILPH_CO_9F", + "name": "SilphCo_9F_Frlg", + "layout": "LAYOUT_SILPH_CO_9F", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 9, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 26, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SilphCo_9F_EventScript_Ed", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 15, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SilphCo_9F_EventScript_Grunt2", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 2, + "y": 16, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SilphCo_9F_EventScript_HealWoman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 1, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SilphCo_9F_EventScript_Grunt1", + "flag": "FLAG_HIDE_SILPH_ROCKETS" + } + ], + "warp_events": [ + { + "x": 16, + "y": 2, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_8F", + "dest_warp_id": "0" + }, + { + "x": 22, + "y": 18, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_5F", + "dest_warp_id": "3" + }, + { + "x": 9, + "y": 4, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_3F", + "dest_warp_id": "4" + }, + { + "x": 18, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SILPH_CO_10F", + "dest_warp_id": "3" + }, + { + "x": 24, + "y": 3, + "elevation": 0, + "dest_map": "MAP_SILPH_CO_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 11, + "y": 14, + "elevation": 3, + "item": "ITEM_MAX_POTION", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 3, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door1" + }, + { + "type": "sign", + "x": 3, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door1" + }, + { + "type": "sign", + "x": 13, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door2" + }, + { + "type": "sign", + "x": 13, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door2" + }, + { + "type": "sign", + "x": 21, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door3" + }, + { + "type": "sign", + "x": 22, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door3" + }, + { + "type": "sign", + "x": 22, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door3" + }, + { + "type": "sign", + "x": 21, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door3" + }, + { + "type": "sign", + "x": 21, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door4" + }, + { + "type": "sign", + "x": 21, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door4" + }, + { + "type": "sign", + "x": 22, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door4" + }, + { + "type": "sign", + "x": 22, + "y": 13, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door4" + }, + { + "type": "sign", + "x": 2, + "y": 11, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door1" + }, + { + "type": "sign", + "x": 2, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door1" + }, + { + "type": "sign", + "x": 12, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door2" + }, + { + "type": "sign", + "x": 12, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_Door2" + }, + { + "type": "hidden_item", + "x": 5, + "y": 8, + "elevation": 0, + "item": "ITEM_CALCIUM", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 17, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_9F_EventScript_FloorSign" + } + ] +} diff --git a/data/maps/SilphCo_9F_Frlg/scripts.inc b/data/maps/SilphCo_9F_Frlg/scripts.inc new file mode 100644 index 000000000000..bbce068309e6 --- /dev/null +++ b/data/maps/SilphCo_9F_Frlg/scripts.inc @@ -0,0 +1,93 @@ +SilphCo_9F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SilphCo_9F_OnLoad + .byte 0 + +SilphCo_9F_OnLoad:: + call_if_unset FLAG_SILPH_9F_DOOR_1, EventScript_Close9FDoor1 + call_if_unset FLAG_SILPH_9F_DOOR_2, EventScript_Close9FDoor2 + call_if_unset FLAG_SILPH_9F_DOOR_3, EventScript_Close9FDoor3 + call_if_unset FLAG_SILPH_9F_DOOR_4, EventScript_Close9FDoor4 + end + +SilphCo_9F_EventScript_HealWoman:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_SILPH_CO_11F, 1, SilphCo_9F_EventScript_HealWomanRocketsGone + msgbox SilphCo_9F_Text_YouShouldTakeQuickNap + closemessage + call Common_EventScript_OutOfCenterPartyHeal + msgbox SilphCo_9F_Text_DontGiveUp + release + end + +SilphCo_9F_EventScript_HealWomanRocketsGone:: + msgbox SilphCo_9F_Text_ThankYouSoMuch + release + end + +SilphCo_9F_EventScript_FloorSign:: + msgbox SilphCo_9F_Text_FloorSign, MSGBOX_SIGN + end + +SilphCo_9F_EventScript_Ed:: + trainerbattle_single TRAINER_SCIENTIST_ED, SilphCo_9F_Text_EdIntro, SilphCo_9F_Text_EdDefeat + msgbox SilphCo_9F_Text_EdPostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_9F_EventScript_Grunt1:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_37, SilphCo_9F_Text_Grunt1Intro, SilphCo_9F_Text_Grunt1Defeat + msgbox SilphCo_9F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_9F_EventScript_Grunt2:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_38, SilphCo_9F_Text_Grunt2Intro, SilphCo_9F_Text_Grunt2Defeat + msgbox SilphCo_9F_Text_Grunt2PostBattle, MSGBOX_AUTOCLOSE + end + +SilphCo_9F_Text_YouShouldTakeQuickNap:: + .string "You look tired.\n" + .string "You should take a quick nap.$" + +SilphCo_9F_Text_DontGiveUp:: + .string "Don't give up!$" + +SilphCo_9F_Text_ThankYouSoMuch:: + .string "Thank you so much.$" + +SilphCo_9F_Text_Grunt1Intro:: + .string "Your POKéMON seem to adore you,\n" + .string "kid!$" + +SilphCo_9F_Text_Grunt1Defeat:: + .string "Ghaaah!$" + +SilphCo_9F_Text_Grunt1PostBattle:: + .string "If I had started as a TRAINER at\n" + .string "your age…$" + +SilphCo_9F_Text_EdIntro:: + .string "Your POKéMON have weak points!\n" + .string "I can nail them!$" + +SilphCo_9F_Text_EdDefeat:: + .string "You hammered me!$" + +SilphCo_9F_Text_EdPostBattle:: + .string "Exploiting weak spots does work.\n" + .string "Think about type advantages.$" + +SilphCo_9F_Text_Grunt2Intro:: + .string "I am one of the four ROCKET\n" + .string "BROTHERS!$" + +SilphCo_9F_Text_Grunt2Defeat:: + .string "Warg!\n" + .string "Brothers, I lost!$" + +SilphCo_9F_Text_Grunt2PostBattle:: + .string "My brothers will avenge me!$" + +SilphCo_9F_Text_FloorSign:: + .string "SILPH CO. HEAD OFFICE\n" + .string "9F$" + diff --git a/data/maps/SilphCo_Elevator_Frlg/map.json b/data/maps/SilphCo_Elevator_Frlg/map.json new file mode 100644 index 000000000000..b23a3f6250b0 --- /dev/null +++ b/data/maps/SilphCo_Elevator_Frlg/map.json @@ -0,0 +1,39 @@ +{ + "id": "MAP_SILPH_CO_ELEVATOR", + "name": "SilphCo_Elevator_Frlg", + "layout": "LAYOUT_SILPH_CO_ELEVATOR", + "music": "MUS_RG_SILPH", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SILPH_CO", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 0, + "y": 2, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SilphCo_Elevator_EventScript_FloorSelect" + } + ] +} diff --git a/data/maps/SilphCo_Elevator_Frlg/scripts.inc b/data/maps/SilphCo_Elevator_Frlg/scripts.inc new file mode 100644 index 000000000000..45d95af35e03 --- /dev/null +++ b/data/maps/SilphCo_Elevator_Frlg/scripts.inc @@ -0,0 +1,143 @@ +SilphCo_Elevator_Frlg_MapScripts:: + .byte 0 + +SilphCo_Elevator_EventScript_FloorSelect:: + lockall + setvar VAR_0x8004, 1 + call_if_unset FLAG_TEMP_2, EventScript_GetElevatorFloor + copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR + special DrawElevatorCurrentFloorWindow + message gText_WantWhichFloor + waitmessage + setvar VAR_0x8004, SCROLL_MULTI_SILPHCO_FLOORS + specialvar VAR_RESULT, InitElevatorFloorSelectMenuPos + special ShowScrollableMultichoice + waitstate + switch VAR_RESULT + case 0, SilphCo_Elevator_EventScript_To11F + case 1, SilphCo_Elevator_EventScript_To10F + case 2, SilphCo_Elevator_EventScript_To9F + case 3, SilphCo_Elevator_EventScript_To8F + case 4, SilphCo_Elevator_EventScript_To7F + case 5, SilphCo_Elevator_EventScript_To6F + case 6, SilphCo_Elevator_EventScript_To5F + case 7, SilphCo_Elevator_EventScript_To4F + case 8, SilphCo_Elevator_EventScript_To3F + case 9, SilphCo_Elevator_EventScript_To2F + case 10, SilphCo_Elevator_EventScript_To1F + case 11, SilphCo_Elevator_EventScript_ExitFloorSelect + case 127, SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To1F:: + setvar VAR_0x8006, 4 + setdynamicwarp MAP_SILPH_CO_1F, 255, 22, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 4, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 4 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To2F:: + setvar VAR_0x8006, 5 + setdynamicwarp MAP_SILPH_CO_2F, 255, 22, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 5, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 5 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To3F:: + setvar VAR_0x8006, 6 + setdynamicwarp MAP_SILPH_CO_3F, 255, 22, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 6, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 6 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To4F:: + setvar VAR_0x8006, 7 + setdynamicwarp MAP_SILPH_CO_4F, 255, 22, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 7, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 7 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To5F:: + setvar VAR_0x8006, 8 + setdynamicwarp MAP_SILPH_CO_5F, 255, 22, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 8, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 8 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To6F:: + setvar VAR_0x8006, 9 + setdynamicwarp MAP_SILPH_CO_6F, 255, 20, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 9, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 9 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To7F:: + setvar VAR_0x8006, 10 + setdynamicwarp MAP_SILPH_CO_7F, 255, 23, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 10, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 10 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To8F:: + setvar VAR_0x8006, 11 + setdynamicwarp MAP_SILPH_CO_8F, 255, 22, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 11, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 11 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To9F:: + setvar VAR_0x8006, 12 + setdynamicwarp MAP_SILPH_CO_9F, 255, 24, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 12, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 12 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To10F:: + setvar VAR_0x8006, 13 + setdynamicwarp MAP_SILPH_CO_10F, 255, 13, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 13, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 13 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_To11F:: + setvar VAR_0x8006, 14 + setdynamicwarp MAP_SILPH_CO_11F, 255, 13, 3 + goto_if_eq VAR_ELEVATOR_FLOOR, 14, SilphCo_Elevator_EventScript_ExitFloorSelect + call SilphCo_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 14 + goto SilphCo_Elevator_EventScript_ExitFloorSelect + end + +SilphCo_Elevator_EventScript_ExitFloorSelect:: + special CloseElevatorCurrentFloorWindow + releaseall + end + +SilphCo_Elevator_EventScript_MoveElevator:: + special CloseElevatorCurrentFloorWindow + closemessage + waitse + special AnimateElevator + waitstate + setflag FLAG_TEMP_2 + return diff --git a/data/maps/SixIsland_AlteringCave_Frlg/map.json b/data/maps/SixIsland_AlteringCave_Frlg/map.json new file mode 100644 index 000000000000..69ca11ec4e52 --- /dev/null +++ b/data/maps/SixIsland_AlteringCave_Frlg/map.json @@ -0,0 +1,36 @@ +{ + "id": "MAP_SIX_ISLAND_ALTERING_CAVE", + "name": "SixIsland_AlteringCave_Frlg", + "layout": "LAYOUT_SIX_ISLAND_ALTERING_CAVE", + "music": "MUS_RG_SEVII_CAVE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_ALTERING_CAVE_FRLG", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 18, + "y": 22, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_OUTCAST_ISLAND", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SixIsland_AlteringCave_Frlg/scripts.inc b/data/maps/SixIsland_AlteringCave_Frlg/scripts.inc new file mode 100644 index 000000000000..9ec9dbb0af5b --- /dev/null +++ b/data/maps/SixIsland_AlteringCave_Frlg/scripts.inc @@ -0,0 +1,7 @@ +SixIsland_AlteringCave_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SixIsland_AlteringCave_OnTransition + .byte 0 + +SixIsland_AlteringCave_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE + end diff --git a/data/maps/SixIsland_DottedHole_1F_Frlg/map.json b/data/maps/SixIsland_DottedHole_1F_Frlg/map.json new file mode 100644 index 000000000000..92b3907b26d9 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_1F_Frlg/map.json @@ -0,0 +1,57 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "name": "SixIsland_DottedHole_1F_Frlg", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_1F", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_RUIN_VALLEY", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "dest_warp_id": "2" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SixIsland_DottedHole_1F_Frlg/scripts.inc b/data/maps/SixIsland_DottedHole_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..dd5b8f047ade --- /dev/null +++ b/data/maps/SixIsland_DottedHole_1F_Frlg/scripts.inc @@ -0,0 +1,31 @@ +SixIsland_DottedHole_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SixIsland_DottedHole_1F_OnTransition + .byte 0 + +SixIsland_DottedHole_1F_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F + end + +SixIsland_DottedHole_B1F_EventScript_BrailleUp:: + lockall + braillemsgbox Braille_Text_Up + releaseall + end + +SixIsland_DottedHole_B4F_EventScript_BrailleDown:: + lockall + braillemsgbox Braille_Text_Down + releaseall + end + +SixIsland_DottedHole_B3F_EventScript_BrailleRight:: + lockall + braillemsgbox Braille_Text_Right + releaseall + end + +SixIsland_DottedHole_B2F_EventScript_BrailleLeft:: + lockall + braillemsgbox Braille_Text_Left + releaseall + end diff --git a/data/maps/SixIsland_DottedHole_B1F_Frlg/map.json b/data/maps/SixIsland_DottedHole_B1F_Frlg/map.json new file mode 100644 index 000000000000..c0823793c2f1 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B1F_Frlg/map.json @@ -0,0 +1,71 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "name": "SixIsland_DottedHole_B1F_Frlg", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B1F", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "SixIsland_DottedHole_B1F_EventScript_BrailleUp" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B1F_Frlg/scripts.inc b/data/maps/SixIsland_DottedHole_B1F_Frlg/scripts.inc new file mode 100644 index 000000000000..8d7c083f771c --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B1F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B1F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_B2F_Frlg/map.json b/data/maps/SixIsland_DottedHole_B2F_Frlg/map.json new file mode 100644 index 000000000000..c2b2b2e8fa07 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B2F_Frlg/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", + "name": "SixIsland_DottedHole_B2F_Frlg", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B2F", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "SixIsland_DottedHole_B2F_EventScript_BrailleLeft" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B2F_Frlg/scripts.inc b/data/maps/SixIsland_DottedHole_B2F_Frlg/scripts.inc new file mode 100644 index 000000000000..2415eabdf133 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B2F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B2F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_B3F_Frlg/map.json b/data/maps/SixIsland_DottedHole_B3F_Frlg/map.json new file mode 100644 index 000000000000..d93bbe440e26 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B3F_Frlg/map.json @@ -0,0 +1,67 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", + "name": "SixIsland_DottedHole_B3F_Frlg", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B3F", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", + "dest_warp_id": "4" + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "SixIsland_DottedHole_B3F_EventScript_BrailleRight" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B3F_Frlg/scripts.inc b/data/maps/SixIsland_DottedHole_B3F_Frlg/scripts.inc new file mode 100644 index 000000000000..6d94a94b7826 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B3F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B3F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_B4F_Frlg/map.json b/data/maps/SixIsland_DottedHole_B4F_Frlg/map.json new file mode 100644 index 000000000000..ec5e3d1b0404 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B4F_Frlg/map.json @@ -0,0 +1,71 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", + "name": "SixIsland_DottedHole_B4F_Frlg", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_B4F", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + + ], + "warp_events": [ + { + "x": 6, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", + "dest_warp_id": "2" + }, + { + "x": 6, + "y": 1, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 11, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 5, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 5, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "SixIsland_DottedHole_B4F_EventScript_BrailleDown" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_B4F_Frlg/scripts.inc b/data/maps/SixIsland_DottedHole_B4F_Frlg/scripts.inc new file mode 100644 index 000000000000..6265bb3d8ab0 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_B4F_Frlg/scripts.inc @@ -0,0 +1,2 @@ +SixIsland_DottedHole_B4F_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/map.json b/data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/map.json new file mode 100644 index 000000000000..24ad7cc20965 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/map.json @@ -0,0 +1,79 @@ +{ + "id": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "name": "SixIsland_DottedHole_SapphireRoom_Frlg", + "layout": "LAYOUT_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", + "music": "MUS_RG_SEVII_DUNGEON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_DOTTED_HOLE", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_SAPPHIRE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAPPHIRE", + "x": 7, + "y": 7, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_DottedHole_SapphireRoom_EventScript_Sapphire", + "flag": "FLAG_HIDE_SAPPHIRE" + }, + { + "local_id": "LOCALID_DOTTED_HOLE_THIEF", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 5, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_DOTTED_HOLE_SCIENTIST" + } + ], + "warp_events": [ + { + "x": 11, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 7, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "SixIsland_DottedHole_SapphireRoom_EventScript_BrailleMessage" + } + ] +} diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..2a8c463d65f0 --- /dev/null +++ b/data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/scripts.inc @@ -0,0 +1,264 @@ +SixIsland_DottedHole_SapphireRoom_Frlg_MapScripts:: + .byte 0 + +SixIsland_DottedHole_SapphireRoom_EventScript_Sapphire:: + lock + faceplayer + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_RG_OBTAIN_KEY_ITEM + message SixIsland_DottedHole_SapphireRoom_Text_FoundSapphire + waitmessage + waitfanfare + closemessage + setobjectxyperm LOCALID_DOTTED_HOLE_THIEF, 5, 0 + addobject LOCALID_DOTTED_HOLE_THIEF + playse SE_FALL + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefFallIn + waitmovement 0 + playse SE_M_STRENGTH + call_if_eq VAR_FACING, DIR_NORTH, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft + call_if_eq VAR_FACING, DIR_SOUTH, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft + call_if_eq VAR_FACING, DIR_EAST, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown + call_if_eq VAR_FACING, DIR_WEST, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown + setvar VAR_0x8004, 3 + setvar VAR_0x8005, 0 + setvar VAR_0x8006, 12 + setvar VAR_0x8007, 3 + special ShakeScreen + delay 60 + call_if_eq VAR_FACING, DIR_NORTH, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireNorth + call_if_eq VAR_FACING, DIR_SOUTH, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireSouth + call_if_eq VAR_FACING, DIR_EAST, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireEast + call_if_eq VAR_FACING, DIR_WEST, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireWest + textcolor NPC_TEXT_COLOR_MALE + msgbox SixIsland_DottedHole_SapphireRoom_Text_IWasRightInTailingYou + closemessage + call_if_eq VAR_FACING, DIR_NORTH, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireNorth + call_if_eq VAR_FACING, DIR_SOUTH, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireSouth + call_if_eq VAR_FACING, DIR_EAST, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireEast + call_if_eq VAR_FACING, DIR_WEST, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireWest + removeobject LOCALID_SAPPHIRE + call_if_eq VAR_FACING, DIR_NORTH, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft2 + call_if_eq VAR_FACING, DIR_SOUTH, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft2 + call_if_eq VAR_FACING, DIR_EAST, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown2 + call_if_eq VAR_FACING, DIR_WEST, SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown2 + msgbox SixIsland_DottedHole_SapphireRoom_Text_SellToTeamRocketTellPassword + closemessage + call_if_eq VAR_FACING, DIR_NORTH, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitNorth + call_if_eq VAR_FACING, DIR_SOUTH, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitSouth + call_if_eq VAR_FACING, DIR_EAST, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitEast + call_if_eq VAR_FACING, DIR_WEST, SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitWest + playse SE_EXIT + delay 35 + removeobject LOCALID_DOTTED_HOLE_THIEF + setflag FLAG_LEARNED_YES_NAH_CHANSEY + release + end + +@ Lots of redundant scripts below +SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft2:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown2:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireNorth:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromLeft + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireSouth:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromLeft + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireEast:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromBelow + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireWest:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromBelow + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireNorth:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireSouth:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireEast:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireWest:: + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitNorth:: + applymovement LOCALID_PLAYER, SixIsland_DottedHole_SapphireRoom_Movement_PlayerWatchThiefExit + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitNorth + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitSouth:: + applymovement LOCALID_PLAYER, SixIsland_DottedHole_SapphireRoom_Movement_PlayerWatchThiefExit + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitSouth + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitEast:: + applymovement LOCALID_PLAYER, SixIsland_DottedHole_SapphireRoom_Movement_PlayerWatchThiefExit + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitEastWest + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitWest:: + applymovement LOCALID_PLAYER, SixIsland_DottedHole_SapphireRoom_Movement_PlayerWatchThiefExit + applymovement LOCALID_DOTTED_HOLE_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitEastWest + waitmovement 0 + return + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromLeft:: + walk_up + walk_up + walk_in_place_faster_right + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromBelow:: + walk_right + walk_right + walk_in_place_faster_up + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft:: + walk_right + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow:: + walk_up + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitNorth:: + walk_fast_up + walk_fast_right + walk_fast_right + walk_fast_right + walk_fast_down + walk_fast_right + walk_fast_right + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitSouth:: + walk_fast_down + walk_fast_right + walk_fast_right + walk_fast_right + walk_fast_up + walk_fast_right + walk_fast_right + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefExitEastWest:: + walk_fast_right + walk_fast_right + walk_fast_right + walk_fast_right + walk_fast_up + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_ThiefFallIn:: + face_down + disable_anim + slide_down + slide_down + slide_down + slide_down + slide_down + slide_down + slide_down + slide_down + slide_down + restore_anim + step_end + +SixIsland_DottedHole_SapphireRoom_Movement_PlayerWatchThiefExit:: + delay_16 + walk_in_place_faster_right + step_end + +SixIsland_DottedHole_SapphireRoom_EventScript_BrailleMessage:: + lockall + setvar VAR_0x8005, 130 + braillemessage_wait Braille_Text_LetTheTwo + braillemessage_wait Braille_Text_Glittering + braillemessage_wait Braille_Text_Stones + braillemessage_wait Braille_Text_OneInRed + braillemessage_wait Braille_Text_OneInBlue + braillemessage_wait Braille_Text_ConnectThe + braillemessage_wait Braille_Text_Past + braillemessage_wait Braille_Text_TwoFriends + braillemessage_wait Braille_Text_Sharing + braillemessage_wait Braille_Text_PowerOpen + braillemessage_wait Braille_Text_AWindowTo + braillemessage_wait Braille_Text_ANewWorld + braillemessage_wait Braille_Text_ThatGlows + braillemessage_wait Braille_Text_TheNext + braillemessage_wait Braille_Text_WorldWaits + braillemsgbox Braille_Text_ForYou + releaseall + end + +SixIsland_DottedHole_SapphireRoom_Text_FoundSapphire:: + .string "{PLAYER} found a SAPPHIRE!$" + +SixIsland_DottedHole_SapphireRoom_Text_IWasRightInTailingYou:: + .string "Fufu… Fufufufu…\n" + .string "I guessed right.\p" + .string "I was right in tailing you!$" + +SixIsland_DottedHole_SapphireRoom_Text_SellToTeamRocketTellPassword:: + .string "I knew that there was a SAPPHIRE\n" + .string "here, so it belongs to me!\p" + .string "I'll sell it to TEAM ROCKET for\n" + .string "serious money.\p" + .string "…D-don't glare at me like that!\p" + .string "If you want it back, why don't you\n" + .string "go get it after I sell it?\p" + .string "I'll even tell you one of the\n" + .string "passwords to TEAM ROCKET's\l" + .string "WAREHOUSE.\p" + .string "The WAREHOUSE password I know is\n" + .string "“Yes, nah, CHANSEY.”\p" + .string "I'm done.\n" + .string "Don't think badly of me!$" + diff --git a/data/maps/SixIsland_Frlg/map.json b/data/maps/SixIsland_Frlg/map.json new file mode 100644 index 000000000000..171639ca5fac --- /dev/null +++ b/data/maps/SixIsland_Frlg/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_SIX_ISLAND", + "name": "SixIsland_Frlg", + "layout": "LAYOUT_SIX_ISLAND", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SIX_ISLAND_WATER_PATH", + "offset": -40, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 10, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_EventScript_Hiker", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 11, + "y": 23, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_HARBOR", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 11, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 16, + "y": 17, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_HOUSE", + "dest_warp_id": "0" + }, + { + "x": 20, + "y": 11, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_MART", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_EventScript_IslandSign" + }, + { + "type": "hidden_item", + "x": 9, + "y": 7, + "elevation": 3, + "item": "ITEM_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SixIsland_Frlg/scripts.inc b/data/maps/SixIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..b140061e5191 --- /dev/null +++ b/data/maps/SixIsland_Frlg/scripts.inc @@ -0,0 +1,34 @@ +SixIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SixIsland_OnTransition + .byte 0 + +SixIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND + end + +SixIsland_EventScript_Hiker:: + msgbox SixIsland_Text_ThatWayToWaterPathRuinValley, MSGBOX_NPC + end + +SixIsland_EventScript_Boy:: + msgbox SixIsland_Text_SkyAtNightIsFantastic, MSGBOX_NPC + end + +SixIsland_EventScript_IslandSign:: + msgbox SixIsland_Text_IslandSign, MSGBOX_SIGN + end + +SixIsland_Text_IslandSign:: + .string "SIX ISLAND\n" + .string "Fortune Island of Aged Wisdom$" + +SixIsland_Text_ThatWayToWaterPathRuinValley:: + .string "Keep going this way and you'll get\n" + .string "to the WATER PATH.\p" + .string "Stay on that and you'll get to\n" + .string "the RUIN VALLEY.$" + +SixIsland_Text_SkyAtNightIsFantastic:: + .string "When you're this far away from the\n" + .string "city, the sky at night is fantastic.$" + diff --git a/data/maps/SixIsland_GreenPath_Frlg/map.json b/data/maps/SixIsland_GreenPath_Frlg/map.json new file mode 100644 index 000000000000..f2c944ffb9dc --- /dev/null +++ b/data/maps/SixIsland_GreenPath_Frlg/map.json @@ -0,0 +1,106 @@ +{ + "id": "MAP_SIX_ISLAND_GREEN_PATH", + "name": "SixIsland_GreenPath_Frlg", + "layout": "LAYOUT_SIX_ISLAND_GREEN_PATH", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_GREEN_PATH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SIX_ISLAND_OUTCAST_ISLAND", + "offset": 0, + "direction": "up" + }, + { + "map": "MAP_SIX_ISLAND_WATER_PATH", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 11, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_GreenPath_EventScript_Jaclyn", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 63, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": "1" + }, + { + "x": 64, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": "1" + }, + { + "x": 45, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": "4" + }, + { + "x": 46, + "y": 10, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", + "dest_warp_id": "4" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 40, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_GreenPath_EventScript_LeftRouteSign" + }, + { + "type": "sign", + "x": 69, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_GreenPath_EventScript_RightRouteSign" + }, + { + "type": "hidden_item", + "x": 12, + "y": 9, + "elevation": 3, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SixIsland_GreenPath_Frlg/scripts.inc b/data/maps/SixIsland_GreenPath_Frlg/scripts.inc new file mode 100644 index 000000000000..7f7d374e8f07 --- /dev/null +++ b/data/maps/SixIsland_GreenPath_Frlg/scripts.inc @@ -0,0 +1,32 @@ +SixIsland_GreenPath_Frlg_MapScripts:: + .byte 0 + +SixIsland_GreenPath_EventScript_RightRouteSign:: + msgbox SixIsland_GreenPath_Text_LeftRouteSign, MSGBOX_SIGN + end + +SixIsland_GreenPath_EventScript_LeftRouteSign:: + msgbox SixIsland_GreenPath_Text_RightRouteSign, MSGBOX_SIGN + end + +SixIsland_GreenPath_Text_JaclynIntro:: + .string "…Huh?\p" + .string "I was envisioning my house, but\n" + .string "this is where I TELEPORT?$" + +SixIsland_GreenPath_Text_JaclynDefeat:: + .string "Big boo-boo!$" + +SixIsland_GreenPath_Text_JaclynPostBattle:: + .string "I am so scatterbrained!\p" + .string "I need to focus so I can TELEPORT\n" + .string "properly to my house!$" + +SixIsland_GreenPath_Text_LeftRouteSign:: + .string "GREEN PATH\n" + .string "PATTERN BUSH AHEAD$" + +SixIsland_GreenPath_Text_RightRouteSign:: + .string "GREEN PATH\n" + .string "Think Green, Keep Nature Clean!$" + diff --git a/data/maps/SixIsland_Harbor_Frlg/map.json b/data/maps/SixIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..781eb81d153f --- /dev/null +++ b/data/maps/SixIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_SIX_ISLAND_HARBOR", + "name": "SixIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_Harbor_Frlg/scripts.inc b/data/maps/SixIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..263c3583ec89 --- /dev/null +++ b/data/maps/SixIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,11 @@ +SixIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +SixIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_SIX_ISLAND + goto EventScript_ChooseDestFromIsland + end diff --git a/data/maps/SixIsland_House_Frlg/map.json b/data/maps/SixIsland_House_Frlg/map.json new file mode 100644 index 000000000000..678ccb08dcf7 --- /dev/null +++ b/data/maps/SixIsland_House_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SIX_ISLAND_HOUSE", + "name": "SixIsland_House_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_67", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_House_EventScript_OldMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_House_Frlg/scripts.inc b/data/maps/SixIsland_House_Frlg/scripts.inc new file mode 100644 index 000000000000..8d259cf7be33 --- /dev/null +++ b/data/maps/SixIsland_House_Frlg/scripts.inc @@ -0,0 +1,14 @@ +SixIsland_House_Frlg_MapScripts:: + .byte 0 + +SixIsland_House_EventScript_OldMan:: + msgbox SixIsland_House_Text_GoodPlaceForNatureAndHistory, MSGBOX_NPC + end + +SixIsland_House_Text_GoodPlaceForNatureAndHistory:: + .string "There's nothing that young people'd\n" + .string "find exciting here on this island.\p" + .string "But, this is a good place in terms\n" + .string "of nature and history.\p" + .string "Relax and enjoy your stay.$" + diff --git a/data/maps/SixIsland_Mart_Frlg/map.json b/data/maps/SixIsland_Mart_Frlg/map.json new file mode 100644 index 000000000000..3a84234d2abe --- /dev/null +++ b/data/maps/SixIsland_Mart_Frlg/map.json @@ -0,0 +1,73 @@ +{ + "id": "MAP_SIX_ISLAND_MART", + "name": "SixIsland_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN_FRLG", + "x": 8, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_Mart_EventScript_OldWoman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 7, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_Mart_EventScript_Picnicker", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_Mart_Frlg/scripts.inc b/data/maps/SixIsland_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..a05e71f72502 --- /dev/null +++ b/data/maps/SixIsland_Mart_Frlg/scripts.inc @@ -0,0 +1,43 @@ +SixIsland_Mart_Frlg_MapScripts:: + .byte 0 + +SixIsland_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart SixIsland_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +SixIsland_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_DREAM_MAIL + .2byte ITEM_NONE + release + end + +SixIsland_Mart_EventScript_Picnicker:: + msgbox SixIsland_Mart_Text_ShouldBuyMailAndWriteLetter, MSGBOX_NPC + end + +SixIsland_Mart_Text_AgathaOldestEverEliteFourMember:: + .string "Play with POKéMON lots and live\n" + .string "a long life!\p" + .string "Take AGATHA, for example.\p" + .string "She set a record for being the\n" + .string "oldest-ever ELITE FOUR member.\p" + .string "She spurs me to do bigger things.$" + +SixIsland_Mart_Text_ShouldBuyMailAndWriteLetter:: + .string "I should buy some MAIL and write\n" + .string "him a letter…$" + diff --git a/data/maps/SixIsland_OutcastIsland_Frlg/map.json b/data/maps/SixIsland_OutcastIsland_Frlg/map.json new file mode 100644 index 000000000000..9948d36d2711 --- /dev/null +++ b/data/maps/SixIsland_OutcastIsland_Frlg/map.json @@ -0,0 +1,158 @@ +{ + "id": "MAP_SIX_ISLAND_OUTCAST_ISLAND", + "name": "SixIsland_OutcastIsland_Frlg", + "layout": "LAYOUT_SIX_ISLAND_OUTCAST_ISLAND", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_OUTCAST_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SIX_ISLAND_GREEN_PATH", + "offset": 0, + "direction": "down" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", + "x": 9, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_OutcastIsland_EventScript_Rocket", + "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 12, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_OutcastIsland_EventScript_Tylor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 13, + "y": 34, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_OutcastIsland_EventScript_Mymo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 14, + "y": 61, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT", + "movement_range_x": 2, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_OutcastIsland_EventScript_Nicole", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 10, + "y": 44, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_OutcastIsland_EventScript_Ava", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", + "x": 11, + "y": 44, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_OutcastIsland_EventScript_Geb", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_OutcastIsland_EventScript_ItemPPUp", + "flag": "FLAG_HIDE_SIX_ISLAND_OUTCAST_ISLAND_PP_UP" + } + ], + "warp_events": [ + { + "x": 7, + "y": 21, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_ALTERING_CAVE", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 16, + "y": 23, + "elevation": 3, + "item": "ITEM_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 6, + "y": 24, + "elevation": 3, + "item": "ITEM_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/SixIsland_OutcastIsland_Frlg/scripts.inc b/data/maps/SixIsland_OutcastIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..70df75548185 --- /dev/null +++ b/data/maps/SixIsland_OutcastIsland_Frlg/scripts.inc @@ -0,0 +1,93 @@ +SixIsland_OutcastIsland_Frlg_MapScripts:: + .byte 0 + +SixIsland_OutcastIsland_EventScript_Rocket:: + trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_46, SixIsland_OutcastIsland_Text_RocketIntro, SixIsland_OutcastIsland_Text_RocketDefeat + msgbox SixIsland_OutcastIsland_Text_RocketPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_Text_RocketIntro:: + .string "There're no rare POKéMON around\n" + .string "these parts! Not a one!\p" + .string "That burns me up, man.\n" + .string "I'll take it out on you!$" + +SixIsland_OutcastIsland_Text_RocketDefeat:: + .string "…Huh?$" + +SixIsland_OutcastIsland_Text_RocketPostBattle:: + .string "So listen, you haven't seen any\n" + .string "rare POKéMON, have you?$" + +SixIsland_OutcastIsland_Text_TylorIntro:: + .string "I'm having no luck at all.\n" + .string "A battle'd be a change of pace!$" + +SixIsland_OutcastIsland_Text_TylorDefeat:: + .string "Nope, no luck at all…$" + +SixIsland_OutcastIsland_Text_TylorPostBattle:: + .string "I can't very well go home without\n" + .string "catching something, though.$" + +SixIsland_OutcastIsland_Text_MymoIntro:: + .string "Gasp… Gasp…\p" + .string "I swam here from SIX ISLE PORT\n" + .string "in one go.$" + +SixIsland_OutcastIsland_Text_MymoDefeat:: + .string "Gasp…\n" + .string "Gasp…$" + +SixIsland_OutcastIsland_Text_MymoPostBattle:: + .string "I'm only at the halfway point…\n" + .string "I'm beat…$" + +SixIsland_OutcastIsland_Text_NicoleIntro:: + .string "It's not so easy sending POKéMON\n" + .string "out while swimming, you know?$" + +SixIsland_OutcastIsland_Text_NicoleDefeat:: + .string "I didn't lose to you at swimming.\n" + .string "This doesn't bother me.$" + +SixIsland_OutcastIsland_Text_NicolePostBattle:: + .string "Are you headed for the island up\n" + .string "past here?\p" + .string "I didn't see anything interesting\n" + .string "there.$" + +SixIsland_OutcastIsland_Text_AvaIntro:: + .string "AVA: Let's have a two-on-two\n" + .string "marine battle!$" + +SixIsland_OutcastIsland_Text_AvaDefeat:: + .string "AVA: Oh, you're amazing!\n" + .string "Even better, you're on your own!$" + +SixIsland_OutcastIsland_Text_AvaPostBattle:: + .string "AVA: You know, I do prefer the\n" + .string "sea over any pool.$" + +SixIsland_OutcastIsland_Text_AvaNotEnoughMons:: + .string "AVA: You're challenging us to\n" + .string "a battle?\p" + .string "You'll need at least two POKéMON\n" + .string "if you want to do that.$" + +SixIsland_OutcastIsland_Text_GebIntro:: + .string "GEB: Big Sister, help!\n" + .string "Please battle with me!$" + +SixIsland_OutcastIsland_Text_GebDefeat:: + .string "GEB: Wow, Big Sister, this person's\n" + .string "really good!$" + +SixIsland_OutcastIsland_Text_GebPostBattle:: + .string "GEB: I'm hanging onto my sister\n" + .string "because I can't touch the bottom.$" + +SixIsland_OutcastIsland_Text_GebNotEnoughMons:: + .string "GEB: Please battle against me and\n" + .string "my sister!\p" + .string "…Oh, you don't have two POKéMON?$" diff --git a/data/maps/SixIsland_PatternBush_Frlg/map.json b/data/maps/SixIsland_PatternBush_Frlg/map.json new file mode 100644 index 000000000000..298c44f3fcd8 --- /dev/null +++ b/data/maps/SixIsland_PatternBush_Frlg/map.json @@ -0,0 +1,238 @@ +{ + "id": "MAP_SIX_ISLAND_PATTERN_BUSH", + "name": "SixIsland_PatternBush_Frlg", + "layout": "LAYOUT_SIX_ISLAND_PATTERN_BUSH", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_PATTERN_BUSH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 48, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SixIsland_PatternBush_EventScript_Bethany", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 10, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_PatternBush_EventScript_Allison", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 51, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_PatternBush_EventScript_Garret", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 12, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_PatternBush_EventScript_Jonah", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 37, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN", + "movement_range_x": 2, + "movement_range_y": 5, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_PatternBush_EventScript_Vance", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 32, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_PatternBush_EventScript_Nash", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 52, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SixIsland_PatternBush_EventScript_Cordell", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 8, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "SixIsland_PatternBush_EventScript_Dalia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 39, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SixIsland_PatternBush_EventScript_Joana", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CAMPER_FRLG", + "x": 3, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SixIsland_PatternBush_EventScript_Riley", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 19, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT", + "movement_range_x": 5, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_PatternBush_EventScript_Marcy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 30, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SixIsland_PatternBush_EventScript_Layton", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 54, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": "0" + }, + { + "x": 55, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": "0" + }, + { + "x": 56, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": "1" + }, + { + "x": 3, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": "2" + }, + { + "x": 4, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": "2" + }, + { + "x": 5, + "y": 26, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", + "dest_warp_id": "3" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/SixIsland_PatternBush_Frlg/scripts.inc b/data/maps/SixIsland_PatternBush_Frlg/scripts.inc new file mode 100644 index 000000000000..3dc64f852cb9 --- /dev/null +++ b/data/maps/SixIsland_PatternBush_Frlg/scripts.inc @@ -0,0 +1,235 @@ +SixIsland_PatternBush_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SixIsland_PatternBush_OnTransition + .byte 0 + +SixIsland_PatternBush_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH + getplayerxy VAR_TEMP_1, VAR_TEMP_2 + call_if_ge VAR_TEMP_1, 50, SixIsland_PatternBush_EventScript_SetEscapeRightExit + call_if_le VAR_TEMP_1, 49, SixIsland_PatternBush_EventScript_SetEscapeLeftExit + end + +SixIsland_PatternBush_EventScript_SetEscapeRightExit:: + setescapewarp MAP_SIX_ISLAND_GREEN_PATH, 255, 64, 10 + return + +SixIsland_PatternBush_EventScript_SetEscapeLeftExit:: + setescapewarp MAP_SIX_ISLAND_GREEN_PATH, 255, 45, 10 + return + +SixIsland_PatternBush_EventScript_Bethany:: + trainerbattle_single TRAINER_PKMN_BREEDER_BETHANY, SixIsland_PatternBush_Text_BethanyIntro, SixIsland_PatternBush_Text_BethanyDefeat + msgbox SixIsland_PatternBush_Text_BethanyPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Allison:: + trainerbattle_single TRAINER_PKMN_BREEDER_ALLISON, SixIsland_PatternBush_Text_AllisonIntro, SixIsland_PatternBush_Text_AllisonDefeat + msgbox SixIsland_PatternBush_Text_AllisonPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Garret:: + trainerbattle_single TRAINER_BUG_CATCHER_GARRET, SixIsland_PatternBush_Text_GarretIntro, SixIsland_PatternBush_Text_GarretDefeat + msgbox SixIsland_PatternBush_Text_GarretPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Jonah:: + trainerbattle_single TRAINER_BUG_CATCHER_JONAH, SixIsland_PatternBush_Text_JonahIntro, SixIsland_PatternBush_Text_JonahDefeat + msgbox SixIsland_PatternBush_Text_JonahPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Vance:: + trainerbattle_single TRAINER_BUG_CATCHER_VANCE, SixIsland_PatternBush_Text_VanceIntro, SixIsland_PatternBush_Text_VanceDefeat + msgbox SixIsland_PatternBush_Text_VancePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Nash:: + trainerbattle_single TRAINER_YOUNGSTER_NASH, SixIsland_PatternBush_Text_NashIntro, SixIsland_PatternBush_Text_NashDefeat + msgbox SixIsland_PatternBush_Text_NashPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Cordell:: + trainerbattle_single TRAINER_YOUNGSTER_CORDELL, SixIsland_PatternBush_Text_CordellIntro, SixIsland_PatternBush_Text_CordellDefeat + msgbox SixIsland_PatternBush_Text_CordellPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Dalia:: + trainerbattle_single TRAINER_LASS_DALIA, SixIsland_PatternBush_Text_DaliaIntro, SixIsland_PatternBush_Text_DaliaDefeat + msgbox SixIsland_PatternBush_Text_DaliaPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Joana:: + trainerbattle_single TRAINER_LASS_JOANA, SixIsland_PatternBush_Text_JoanaIntro, SixIsland_PatternBush_Text_JoanaDefeat + msgbox SixIsland_PatternBush_Text_JoanaPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Riley:: + trainerbattle_single TRAINER_CAMPER_RILEY, SixIsland_PatternBush_Text_RileyIntro, SixIsland_PatternBush_Text_RileyDefeat + msgbox SixIsland_PatternBush_Text_RileyPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Marcy:: + trainerbattle_single TRAINER_PICNICKER_MARCY, SixIsland_PatternBush_Text_MarcyIntro, SixIsland_PatternBush_Text_MarcyDefeat + msgbox SixIsland_PatternBush_Text_MarcyPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_EventScript_Layton:: + trainerbattle_single TRAINER_RUIN_MANIAC_LAYTON, SixIsland_PatternBush_Text_LaytonIntro, SixIsland_PatternBush_Text_LaytonDefeat + msgbox SixIsland_PatternBush_Text_LaytonPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_PatternBush_Text_BethanyIntro:: + .string "I'm curious, how do you raise your\n" + .string "POKéMON?$" + +SixIsland_PatternBush_Text_BethanyDefeat:: + .string "You raise your POKéMON with a\n" + .string "whole lot of love!$" + +SixIsland_PatternBush_Text_BethanyPostBattle:: + .string "In the same way your mother raised\n" + .string "you full of love, you should raise\l" + .string "your POKéMON.$" + +SixIsland_PatternBush_Text_AllisonIntro:: + .string "I'm working to preserve the natural\n" + .string "ecology of POKéMON here.$" + +SixIsland_PatternBush_Text_AllisonDefeat:: + .string "Oh, for someone so young, you are\n" + .string "tremendous!$" + +SixIsland_PatternBush_Text_AllisonPostBattle:: + .string "I'm not saying that you shouldn't\n" + .string "catch POKéMON.\p" + .string "I just want people to raise their\n" + .string "POKéMON responsibly.$" + +SixIsland_PatternBush_Text_GarretIntro:: + .string "I caught a BUG POKéMON that lives\n" + .string "only around here!$" + +SixIsland_PatternBush_Text_GarretDefeat:: + .string "Heheh…\n" + .string "Isn't my POKéMON awesome?$" + +SixIsland_PatternBush_Text_GarretPostBattle:: + .string "There's a girl near the BUSH who\n" + .string "measures HERACROSS for TRAINERS.$" + +SixIsland_PatternBush_Text_JonahIntro:: + .string "You know, it just doesn't feel right\n" + .string "if I don't use BUG POKéMON.$" + +SixIsland_PatternBush_Text_JonahDefeat:: + .string "It's okay, losing is a fun part of\n" + .string "POKéMON's appeal, too.$" + +SixIsland_PatternBush_Text_JonahPostBattle:: + .string "By the way, “appeal” is a weird\n" + .string "word, if you think about it.\p" + .string "Like, is it like an orange peel?\n" + .string "Or like a ringing bell?$" + +SixIsland_PatternBush_Text_VanceIntro:: + .string "Yeah, yeah, yeah!\n" + .string "Look at all the BUG POKéMON!$" + +SixIsland_PatternBush_Text_VanceDefeat:: + .string "I got beat while I was still busy\n" + .string "celebrating!$" + +SixIsland_PatternBush_Text_VancePostBattle:: + .string "I'm going to bring my little brother\n" + .string "here next time.$" + +SixIsland_PatternBush_Text_NashIntro:: + .string "Look, look! There are funny\n" + .string "patterns on the ground.$" + +SixIsland_PatternBush_Text_NashDefeat:: + .string "Super awesome!$" + +SixIsland_PatternBush_Text_NashPostBattle:: + .string "The funny patterns on the ground…\p" + .string "They look like the patterns on my\n" + .string "grandpa's clothes.$" + +SixIsland_PatternBush_Text_CordellIntro:: + .string "I bet you think I'm just some guy,\n" + .string "don't you, eh?$" + +SixIsland_PatternBush_Text_CordellDefeat:: + .string "I bet you think I'm weak,\n" + .string "don't you, eh?$" + +SixIsland_PatternBush_Text_CordellPostBattle:: + .string "Ayup, you townies come around all\n" + .string "so dandy with a hat that flashy…\p" + .string "How about giving me that?$" + +SixIsland_PatternBush_Text_DaliaIntro:: + .string "Take a deep breath.\n" + .string "Isn't the air delicious?$" + +SixIsland_PatternBush_Text_DaliaDefeat:: + .string "If you'd like, I can teach you how\n" + .string "to breathe properly.$" + +SixIsland_PatternBush_Text_DaliaPostBattle:: + .string "First, exhale.\n" + .string "Blow everything out.\p" + .string "When you can't exhale anymore,\n" + .string "inhale the clean air!\p" + .string "Isn't it refreshing?$" + +SixIsland_PatternBush_Text_JoanaIntro:: + .string "I love BUG POKéMON.\n" + .string "That's why I'm here all the time.\p" + .string "Am I the only girl like that?$" + +SixIsland_PatternBush_Text_JoanaDefeat:: + .string "I lost, but I'm still laughing.\n" + .string "Am I the only girl like that?$" + +SixIsland_PatternBush_Text_JoanaPostBattle:: + .string "I'm going to keep on collecting\n" + .string "BUG POKéMON.\p" + .string "Am I the only girl like that?$" + +SixIsland_PatternBush_Text_RileyIntro:: + .string "This is a good spot.\n" + .string "I'll pitch my tent here.$" + +SixIsland_PatternBush_Text_RileyDefeat:: + .string "Wimped out…$" + +SixIsland_PatternBush_Text_RileyPostBattle:: + .string "I'm going to observe the night sky\n" + .string "here.$" + +SixIsland_PatternBush_Text_MarcyIntro:: + .string "Oh, yuck!\n" + .string "I think a bug stung me!$" + +SixIsland_PatternBush_Text_MarcyDefeat:: + .string "It wasn't a bug.\n" + .string "I cut my shin on some grass.$" + +SixIsland_PatternBush_Text_MarcyPostBattle:: + .string "A little cut like that…\n" + .string "A little spit's enough to cure it!$" + +SixIsland_PatternBush_Text_LaytonIntro:: + .string "Have you noticed something odd\n" + .string "about these parts?$" + +SixIsland_PatternBush_Text_LaytonDefeat:: + .string "Have you taken a good look around\n" + .string "your feet?$" + +SixIsland_PatternBush_Text_LaytonPostBattle:: + .string "There are places here in PATTERN\n" + .string "BUSH where grass won't grow.\p" + .string "What could be the cause of such\n" + .string "a phenomenon?$" + diff --git a/data/maps/SixIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/SixIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..4d2d0a82312d --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,96 @@ +{ + "id": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", + "name": "SixIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_SIX_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "local_id": "LOCALID_SIX_ISLAND_RIVAL", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLUE", + "x": 5, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 13, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_PokemonCenter_1F_EventScript_Hiker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_PokemonCenter_1F_EventScript_OldMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/SixIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..bfad29aa915d --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,115 @@ +SixIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, SixIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, SixIsland_PokemonCenter_1F_OnFrame + .byte 0 + +SixIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_SIX_ISLAND + call_if_eq VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F, 0, SixIsland_PokemonCenter_1F_EventScript_ShowRival + end + +SixIsland_PokemonCenter_1F_EventScript_ShowRival:: + clearflag FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL + return + +SixIsland_PokemonCenter_1F_OnFrame:: + map_script_2 VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F, 0, SixIsland_PokemonCenter_1F_EventScript_RivalScene + .2byte 0 + +SixIsland_PokemonCenter_1F_EventScript_RivalScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_SIX_ISLAND_RIVAL, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_RIVAL, 0 + applymovement LOCALID_SIX_ISLAND_RIVAL, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_SIX_ISLAND_RIVAL, Common_Movement_Delay48 + waitmovement 0 + delay 25 + applymovement LOCALID_SIX_ISLAND_RIVAL, SixIsland_PokemonCenter_1F_Movement_RivalApproach + waitmovement 0 + msgbox SixIsland_PokemonCenter_1F_Text_RivalImpossibleToGetAllMonsAroundHere + closemessage + applymovement LOCALID_PLAYER, SixIsland_PokemonCenter_1F_Movement_PlayerWatchRivalExit + applymovement LOCALID_SIX_ISLAND_RIVAL, SixIsland_PokemonCenter_1F_Movement_RivalExit + waitmovement 0 + fadedefaultbgm + playse SE_EXIT + delay 35 + removeobject LOCALID_SIX_ISLAND_RIVAL + setvar VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F, 1 + setvar VAR_MAP_SCENE_FOUR_ISLAND, 1 + releaseall + end + +SixIsland_PokemonCenter_1F_Movement_RivalApproach:: + walk_right + walk_right + walk_down + walk_down + step_end + +SixIsland_PokemonCenter_1F_Movement_RivalExit:: + delay_16 + delay_4 + walk_down + step_end + +SixIsland_PokemonCenter_1F_Movement_PlayerWatchRivalExit:: + walk_left + walk_in_place_faster_right + step_end + +SixIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +SixIsland_PokemonCenter_1F_EventScript_Hiker:: + msgbox SixIsland_PokemonCenter_1F_Text_SomethingHiddenOnThisIsland, MSGBOX_NPC + end + +SixIsland_PokemonCenter_1F_EventScript_OldMan:: + msgbox SixIsland_PokemonCenter_1F_Text_SomeMonsEvolveByTradingWithHeldItem, MSGBOX_NPC + end + +SixIsland_PokemonCenter_1F_Text_SomethingHiddenOnThisIsland:: + .string "For ten years, I've searched for\n" + .string "RUINS.\p" + .string "No, make that twenty years.\p" + .string "I get this feeling that there's\n" + .string "something hidden on this island.$" + +SixIsland_PokemonCenter_1F_Text_SomeMonsEvolveByTradingWithHeldItem:: + .string "You know of POKéMON that evolve\n" + .string "only upon trading, yes?\p" + .string "But did you know that there are\n" + .string "still others?\p" + .string "Some POKéMON evolve only when\n" + .string "traded while holding specific items.$" + +SixIsland_PokemonCenter_1F_Text_RivalImpossibleToGetAllMonsAroundHere:: + .string "{RIVAL}: Hey, {PLAYER}!\n" + .string "How's your POKéDEX filling up?\p" + .string "It looks like it's impossible to get\n" + .string "all the POKéMON by hanging around\l" + .string "just these parts.\p" + .string "Maybe there are POKéMON we don't\n" + .string "know about somewhere far away…\p" + .string "… … … … … … … … …\p" + .string "Well, if I can't do it, there's no\n" + .string "way for you to get it done.\p" + .string "I'm not going to get all desperate\n" + .string "over this.\p" + .string "I'll keep collecting POKéMON at my\n" + .string "own pace while I train them.\p" + .string "That's what I'll do.\n" + .string "So there's no point staying here.\l" + .string "I may as well leave for home.\p" + .string "That's that, then!\n" + .string "Smell ya later!$" + diff --git a/data/maps/SixIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/SixIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..430d939c2682 --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_SIX_ISLAND_POKEMON_CENTER_2F", + "name": "SixIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SIX_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/SixIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..17de1daa112e --- /dev/null +++ b/data/maps/SixIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +SixIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +SixIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +SixIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +SixIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/SixIsland_RuinValley_Frlg/map.json b/data/maps/SixIsland_RuinValley_Frlg/map.json new file mode 100644 index 000000000000..73589ad883a4 --- /dev/null +++ b/data/maps/SixIsland_RuinValley_Frlg/map.json @@ -0,0 +1,287 @@ +{ + "id": "MAP_SIX_ISLAND_RUIN_VALLEY", + "name": "SixIsland_RuinValley_Frlg", + "layout": "LAYOUT_SIX_ISLAND_RUIN_VALLEY", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_RUIN_VALLEY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SIX_ISLAND_WATER_PATH", + "offset": -80, + "direction": "right" + } + ], + "object_events": [ + { + "local_id": "LOCALID_RUIN_VALLEY_SCIENTIST", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 24, + "y": 25, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_RuinValley_EventScript_Scientist", + "flag": "FLAG_HIDE_RUIN_VALLEY_SCIENTIST" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 32, + "y": 11, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SixIsland_RuinValley_EventScript_Stanly", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 33, + "y": 16, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_RuinValley_EventScript_Foster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 31, + "y": 24, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_RuinValley_EventScript_Larry", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 14, + "y": 10, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "SixIsland_RuinValley_EventScript_Daryl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 21, + "y": 29, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_RuinValley_EventScript_Hector", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 17, + "y": 10, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 17, + "y": 12, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 18, + "y": 11, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 34, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 41, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 41, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 42, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_RuinValley_EventScript_ItemHPUp", + "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_HP_UP" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 19, + "y": 11, + "elevation": 5, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_RuinValley_EventScript_ItemFullRestore", + "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_FULL_RESTORE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 43, + "y": 32, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_RuinValley_EventScript_ItemSunStone", + "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_SUN_STONE" + } + ], + "warp_events": [ + { + "x": 24, + "y": 24, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 24, + "y": 24, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_RuinValley_EventScript_DottedHoleDoor" + } + ] +} diff --git a/data/maps/SixIsland_RuinValley_Frlg/scripts.inc b/data/maps/SixIsland_RuinValley_Frlg/scripts.inc new file mode 100644 index 000000000000..83787c5c2abc --- /dev/null +++ b/data/maps/SixIsland_RuinValley_Frlg/scripts.inc @@ -0,0 +1,130 @@ +SixIsland_RuinValley_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, SixIsland_RuinValley_OnLoad + .byte 0 + +SixIsland_RuinValley_OnLoad:: + call_if_set FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE, SixIsland_RuinValley_EventScript_OpenDottedHoleDoor + end + +SixIsland_RuinValley_EventScript_OpenDottedHoleDoor:: + setmetatile 24, 24, METATILE_SeviiIslands67_DottedHoleDoor_Open, 0 + return + +SixIsland_RuinValley_EventScript_Scientist:: + lock + msgbox SixIsland_RuinValley_Text_CantFigureOutHowToGetInside + applymovement LOCALID_RUIN_VALLEY_SCIENTIST, Common_Movement_FacePlayer + waitmovement 0 + msgbox SixIsland_RuinValley_Text_IFoundThisPlace + applymovement LOCALID_RUIN_VALLEY_SCIENTIST, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +SixIsland_RuinValley_EventScript_DottedHoleDoor:: + lockall + goto_if_set FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE, SixIsland_RuinValley_EventScript_DottedHoleDoorOpen + msgbox SixIsland_RuinValley_Text_CheckDoorMoreThoroughly, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, SixIsland_RuinValley_EventScript_IgnoreDottedHoleDoor + msgbox SixIsland_RuinValley_Text_SeveralDotsOnTheDoor + braillemsgbox Braille_Text_Cut + releaseall + end + +SixIsland_RuinValley_EventScript_DottedHoleDoorOpen:: + msgbox SixIsland_RuinValley_Text_DoorIsOpen + releaseall + end + +SixIsland_RuinValley_EventScript_IgnoreDottedHoleDoor:: + msgbox SixIsland_RuinValley_Text_LeftDoorAlone + releaseall + end + +SixIsland_RuinValley_Text_CantFigureOutHowToGetInside:: + .string "I can't figure out how I'm supposed\n" + .string "to get inside.$" + +SixIsland_RuinValley_Text_IFoundThisPlace:: + .string "Let me tell you, I found this\n" + .string "place.\p" + .string "Don't look so envious, will you?$" + +SixIsland_RuinValley_Text_CheckDoorMoreThoroughly:: + .string "The door doesn't budge at all.\n" + .string "Check it more thoroughly?$" + +SixIsland_RuinValley_Text_LeftDoorAlone:: + .string "{PLAYER} left the door alone.$" + +SixIsland_RuinValley_Text_SeveralDotsOnTheDoor:: + .string "On closer inspection, there are\n" + .string "several dots on the door…$" + +SixIsland_RuinValley_Text_DoorIsOpen:: + .string "The door is open.$" + +SixIsland_RuinValley_Text_StanlyIntro:: + .string "There appear to be many secrets\n" + .string "still unsolved in this world.$" + +SixIsland_RuinValley_Text_StanlyDefeat:: + .string "Hmm…$" + +SixIsland_RuinValley_Text_StanlyPostBattle:: + .string "I suggest to you that you, too,\n" + .string "give a thought to the secrets and\l" + .string "mysteries of our world once a day.$" + +SixIsland_RuinValley_Text_FosterIntro:: + .string "I'm curious, what compelled you to\n" + .string "come here?$" + +SixIsland_RuinValley_Text_FosterDefeat:: + .string "It's been so long since I battled,\n" + .string "my instincts are off.$" + +SixIsland_RuinValley_Text_FosterPostBattle:: + .string "There are several ruins on the\n" + .string "SEVII ISLANDS.\p" + .string "The majority of them date back\n" + .string "a long way.$" + +SixIsland_RuinValley_Text_LarryIntro:: + .string "It's been said that there are\n" + .string "mysterious stones on this island.\p" + .string "I suspect it has something to do\n" + .string "with the ruins here.$" + +SixIsland_RuinValley_Text_LarryDefeat:: + .string "Oh, interesting.$" + +SixIsland_RuinValley_Text_LarryPostBattle:: + .string "Those ruins over there…\p" + .string "I haven't had any luck in finding\n" + .string "how I can get inside.$" + +SixIsland_RuinValley_Text_DarylIntro:: + .string "A battle with you, so high up!$" + +SixIsland_RuinValley_Text_DarylDefeat:: + .string "Oh, the heartbreak of losing so\n" + .string "easily to you!$" + +SixIsland_RuinValley_Text_DarylPostBattle:: + .string "Experience the joy of climbing!$" + +SixIsland_RuinValley_Text_HectorIntro:: + .string "I'm pretty familiar with the land\n" + .string "around these parts.$" + +SixIsland_RuinValley_Text_HectorDefeat:: + .string "You don't need to be so pushy.\n" + .string "I'll be happy to tell you.$" + +SixIsland_RuinValley_Text_HectorPostBattle:: + .string "The door to the ruins…\n" + .string "It has these strange patterns\l" + .string "engraved on the outside.\p" + .string "I don't know what they mean,\n" + .string "though.$" diff --git a/data/maps/SixIsland_WaterPath_Frlg/map.json b/data/maps/SixIsland_WaterPath_Frlg/map.json new file mode 100644 index 000000000000..4c399b3f308a --- /dev/null +++ b/data/maps/SixIsland_WaterPath_Frlg/map.json @@ -0,0 +1,229 @@ +{ + "id": "MAP_SIX_ISLAND_WATER_PATH", + "name": "SixIsland_WaterPath_Frlg", + "layout": "LAYOUT_SIX_ISLAND_WATER_PATH", + "music": "MUS_RG_SEVII_ROUTE", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_WATER_PATH", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_SIX_ISLAND_GREEN_PATH", + "offset": 0, + "direction": "left" + }, + { + "map": "MAP_SIX_ISLAND", + "offset": 40, + "direction": "left" + }, + { + "map": "MAP_SIX_ISLAND_RUIN_VALLEY", + "offset": 80, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 12, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SixIsland_WaterPath_EventScript_Rose", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 11, + "y": 52, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "SixIsland_WaterPath_EventScript_Edward", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", + "x": 13, + "y": 35, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SixIsland_WaterPath_EventScript_Samir", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 15, + "y": 45, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_WaterPath_EventScript_Denise", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 6, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_WaterPath_EventScript_Miu", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 7, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "SixIsland_WaterPath_EventScript_Mia", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 11, + "y": 76, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "SixIsland_WaterPath_EventScript_Earl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 19, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_WaterPath_EventScript_ItemElixir", + "flag": "FLAG_HIDE_SIX_ISLAND_WATER_PATH_ELIXIR" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 87, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_WaterPath_EventScript_ItemDragonScale", + "flag": "FLAG_HIDE_SIX_ISLAND_WATER_PATH_DRAGON_SCALE" + } + ], + "warp_events": [ + { + "x": 5, + "y": 13, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE1", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 19, + "elevation": 0, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE2", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_WaterPath_EventScript_HornWantedSign" + }, + { + "type": "hidden_item", + "x": 15, + "y": 76, + "elevation": 3, + "item": "ITEM_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 3, + "y": 8, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 13, + "y": 63, + "elevation": 3, + "item": "ITEM_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 12, + "y": 54, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_WaterPath_EventScript_RouteSign" + } + ] +} diff --git a/data/maps/SixIsland_WaterPath_Frlg/scripts.inc b/data/maps/SixIsland_WaterPath_Frlg/scripts.inc new file mode 100644 index 000000000000..a7c14129e711 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_Frlg/scripts.inc @@ -0,0 +1,113 @@ +SixIsland_WaterPath_Frlg_MapScripts:: + .byte 0 + +SixIsland_WaterPath_EventScript_HornWantedSign:: + msgbox SixIsland_WaterPath_Text_WantedUltimateHorn, MSGBOX_SIGN + end + +SixIsland_WaterPath_EventScript_RouteSign:: + msgbox SixIsland_WaterPath_Text_RouteSign, MSGBOX_SIGN + end + +SixIsland_WaterPath_Text_RoseIntro:: + .string "I let a pleasant breeze lead me\n" + .string "all the way here.$" + +SixIsland_WaterPath_Text_RoseDefeat:: + .string "Giggle… You're so cute when you're\n" + .string "determined.$" + +SixIsland_WaterPath_Text_RosePostBattle:: + .string "I want to go to the woods over\n" + .string "there, but…\p" + .string "There are lots of BUG POKéMON.\n" + .string "They scare me a little.$" + +SixIsland_WaterPath_Text_EdwardIntro:: + .string "I'm practicing in secret so no one\n" + .string "can see me.$" + +SixIsland_WaterPath_Text_EdwardDefeat:: + .string "Nobody saw me losing, right?$" + +SixIsland_WaterPath_Text_EdwardPostBattle:: + .string "As a performer, I don't want people\n" + .string "to know about the effort I put in.$" + +SixIsland_WaterPath_Text_SamirIntro:: + .string "What, you're suggesting that you're\n" + .string "sick of seeing SWIMMERS like me?\p" + .string "Aww, don't be hatin'!$" + +SixIsland_WaterPath_Text_SamirDefeat:: + .string "Oh, no, no, no.$" + +SixIsland_WaterPath_Text_SamirPostBattle:: + .string "I couldn't lift the stigma of being\n" + .string "a SWIMMER…$" + +SixIsland_WaterPath_Text_DeniseIntro:: + .string "My boyfriend's always busy, so I\n" + .string "come swimming by myself.$" + +SixIsland_WaterPath_Text_DeniseDefeat:: + .string "Awww, I knew this would happen!$" + +SixIsland_WaterPath_Text_DenisePostBattle:: + .string "When I can't be with my boyfriend,\n" + .string "I spend time with the POKéMON he\l" + .string "gave me.$" + +SixIsland_WaterPath_Text_EarlIntro:: + .string "Tell me, where are the mountains\n" + .string "around these parts?$" + +SixIsland_WaterPath_Text_EarlDefeat:: + .string "I lost my way while I was busy\n" + .string "battling!$" + +SixIsland_WaterPath_Text_EarlPostBattle:: + .string "Aren't there any mountains around\n" + .string "these parts?$" + +SixIsland_WaterPath_Text_MiuIntro:: + .string "MIU: Hello, POKéMON!\n" + .string "It's time to play!$" + +SixIsland_WaterPath_Text_MiuDefeat:: + .string "MIU: Oh, no!\n" + .string "Mommy!$" + +SixIsland_WaterPath_Text_MiuPostBattle:: + .string "MIU: It makes me all sad inside\n" + .string "when we lose…$" + +SixIsland_WaterPath_Text_MiuNotEnoughMons:: + .string "MIU: MIA and I are TWINS.\n" + .string "We want to battle together.$" + +SixIsland_WaterPath_Text_MiaIntro:: + .string "MIA: Hello, POKéMON!\n" + .string "It's time to battle!$" + +SixIsland_WaterPath_Text_MiaDefeat:: + .string "MIA: You're mean!\n" + .string "You're bad for winning!$" + +SixIsland_WaterPath_Text_MiaPostBattle:: + .string "MIA: Ohh…\n" + .string "I'm sorry, my POKéMON…$" + +SixIsland_WaterPath_Text_MiaNotEnoughMons:: + .string "MIA: Oh, you only have one\n" + .string "POKéMON?\p" + .string "Don't you feel lonesome?$" + +SixIsland_WaterPath_Text_WantedUltimateHorn:: + .string "Wanted!\n" + .string "The Ultimate Horn!$" + +SixIsland_WaterPath_Text_RouteSign:: + .string "WATER PATH\n" + .string "Leads to RUIN VALLEY$" + diff --git a/data/maps/SixIsland_WaterPath_House1_Frlg/map.json b/data/maps/SixIsland_WaterPath_House1_Frlg/map.json new file mode 100644 index 000000000000..7ba4eba71d0d --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House1_Frlg/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_SIX_ISLAND_WATER_PATH_HOUSE1", + "name": "SixIsland_WaterPath_House1_Frlg", + "layout": "LAYOUT_HOUSE4_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_WATER_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_WaterPath_House1_EventScript_Beauty", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 9, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "SixIsland_WaterPath_House1_EventScript_SizeRecord" + } + ] +} diff --git a/data/maps/SixIsland_WaterPath_House1_Frlg/scripts.inc b/data/maps/SixIsland_WaterPath_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..88b127c8e049 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House1_Frlg/scripts.inc @@ -0,0 +1,127 @@ +SixIsland_WaterPath_House1_Frlg_MapScripts:: + .byte 0 + +SixIsland_WaterPath_House1_EventScript_Beauty:: + lock + faceplayer + setvar VAR_0x8004, SPECIES_HERACROSS + specialvar VAR_RESULT, DoesPlayerPartyContainSpecies + goto_if_eq VAR_RESULT, FALSE, SixIsland_WaterPath_House1_EventScript_NoHeracrossInParty + special GetHeracrossSizeRecordInfo + msgbox SixIsland_WaterPath_House1_Text_MayIMeasureHeracross + special ChoosePartyMon + waitstate + copyvar VAR_RESULT, VAR_0x8004 + goto_if_ge VAR_RESULT, PARTY_SIZE, SixIsland_WaterPath_House1_EventScript_DontShowMon + special CompareHeracrossSize + goto_if_eq VAR_RESULT, 1, SixIsland_WaterPath_House1_EventScript_ShownNonHeracross + goto_if_eq VAR_RESULT, 2, SixIsland_WaterPath_House1_EventScript_ShownSmallHeracross + goto_if_eq VAR_RESULT, 3, SixIsland_WaterPath_House1_EventScript_ShownBigHeracross + goto_if_eq VAR_RESULT, 4, SixIsland_WaterPath_House1_EventScript_ShownTiedHeracross + release + end + +SixIsland_WaterPath_House1_EventScript_NoHeracrossInParty:: + msgbox SixIsland_WaterPath_House1_Text_LoveItNeedItHeracross + release + end + +SixIsland_WaterPath_House1_EventScript_DontShowMon:: + release + end + +SixIsland_WaterPath_House1_EventScript_ShownNonHeracross:: + msgbox SixIsland_WaterPath_House1_Text_ThisWontDo + release + end + +SixIsland_WaterPath_House1_EventScript_ShownSmallHeracross:: + goto_if_unset FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1, SixIsland_WaterPath_House1_EventScript_ShownBigHeracross + msgbox SixIsland_WaterPath_House1_Text_ItsXInchesYInchesWasBiggest + release + end + +SixIsland_WaterPath_House1_EventScript_ShownTiedHeracross:: + goto_if_unset FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1, SixIsland_WaterPath_House1_EventScript_ShownBigHeracross + msgbox SixIsland_WaterPath_House1_Text_ItsXInchesSameAsBefore + release + end + +SixIsland_WaterPath_House1_EventScript_ShownBigHeracross:: + setflag FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1 + msgbox SixIsland_WaterPath_House1_Text_ItsXInchesDeserveReward + giveitem ITEM_NEST_BALL + goto_if_eq VAR_RESULT, FALSE, SixIsland_WaterPath_House1_EventScript_NoRoomForNestBall + msgbox SixIsland_WaterPath_House1_Text_WantToSeeBiggerOne + release + end + +SixIsland_WaterPath_House1_EventScript_NoRoomForNestBall:: + msgbox SixIsland_WaterPath_House1_Text_YourBagIsFull + release + end + +SixIsland_WaterPath_House1_EventScript_SizeRecord:: + lockall + goto_if_set FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1, SixIsland_WaterPath_House1_EventScript_SizeRecordNonEmpty + msgbox SixIsland_WaterPath_House1_Text_BlankChartOfSomeSort + releaseall + end + +SixIsland_WaterPath_House1_EventScript_SizeRecordNonEmpty:: + special GetHeracrossSizeRecordInfo + msgbox SixIsland_WaterPath_House1_Text_BiggestHeracrossIsXInches + releaseall + end + +SixIsland_WaterPath_House1_Text_LoveItNeedItHeracross:: + .string "Hera, hera, HERACROSS!\n" + .string "Big and shiny, it's the bug boss!\l" + .string "Love it, need it, HERACROSS!$" + +SixIsland_WaterPath_House1_Text_MayIMeasureHeracross:: + .string "Eeeeek!\n" + .string "That's a HERACROSS!\p" + .string "Please, please, may I measure how\n" + .string "big it is?$" + +SixIsland_WaterPath_House1_Text_ItsXInchesDeserveReward:: + .string "Eeeek, it's {STR_VAR_2} inches!\n" + .string "I've never seen anything like this!\l" + .string "You deserve a reward!$" + +SixIsland_WaterPath_House1_Text_WantToSeeBiggerOne:: + .string "I want to see a much, much bigger\n" + .string "HERACROSS than that one.\p" + .string "Oh, how I adore them, big\n" + .string "HERACROSS!$" + +SixIsland_WaterPath_House1_Text_ItsXInchesSameAsBefore:: + .string "Huh? This {STR_VAR_2}-inch measurement…\n" + .string "Oh, boo! It's the same as before.$" + +SixIsland_WaterPath_House1_Text_ItsXInchesYInchesWasBiggest:: + .string "Oh, it's just {STR_VAR_2} inches.\n" + .string "The HERACROSS before was bigger.\p" + .string "It was {STR_VAR_3} inches, the biggest\n" + .string "HERACROSS you've brought me.$" + +SixIsland_WaterPath_House1_Text_ThisWontDo:: + .string "Oh, no! This won't do!\p" + .string "HERACROSS looks much more macho\n" + .string "and cool, and has a lovely horn!$" + +SixIsland_WaterPath_House1_Text_YourBagIsFull:: + .string "Your BAG is full.\n" + .string "My reward won't fit.$" + +SixIsland_WaterPath_House1_Text_BiggestHeracrossIsXInches:: + .string "The biggest HERACROSS that I have\n" + .string "ever seen measured so far is:\p" + .string "{STR_VAR_3} inches!$" + +SixIsland_WaterPath_House1_Text_BlankChartOfSomeSort:: + .string "It's a blank chart of some sort.\p" + .string "It has spaces for writing in\n" + .string "records of some kind.$" + diff --git a/data/maps/SixIsland_WaterPath_House2_Frlg/map.json b/data/maps/SixIsland_WaterPath_House2_Frlg/map.json new file mode 100644 index 000000000000..d567109c8733 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House2_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_SIX_ISLAND_WATER_PATH_HOUSE2", + "name": "SixIsland_WaterPath_House2_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_WATER_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "SixIsland_WaterPath_House2_EventScript_Man", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_SIX_ISLAND_WATER_PATH", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/SixIsland_WaterPath_House2_Frlg/scripts.inc b/data/maps/SixIsland_WaterPath_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..e0a60fe234a1 --- /dev/null +++ b/data/maps/SixIsland_WaterPath_House2_Frlg/scripts.inc @@ -0,0 +1,13 @@ +SixIsland_WaterPath_House2_Frlg_MapScripts:: + .byte 0 + +SixIsland_WaterPath_House2_EventScript_Man:: + msgbox SixIsland_WaterPath_House2_Text_MyNeighborMeasuredMe, MSGBOX_NPC + end + +SixIsland_WaterPath_House2_Text_MyNeighborMeasuredMe:: + .string "My height is 67.0 inches on the\n" + .string "button.\p" + .string "I know it is this precisely because\n" + .string "my neighbor measured me.$" + diff --git a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc index 78d55273117c..4d69c234777f 100644 --- a/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc +++ b/data/maps/SlateportCity_BattleTentBattleRoom/scripts.inc @@ -57,9 +57,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_EnterRoom:: waitmessage closemessage special HealPlayerParty - setvar VAR_0x8004, SPECIAL_BATTLE_FACTORY - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle + dofacilitytrainerbattle FACILITY_BATTLE_FACTORY waitstate switch VAR_RESULT case 1, SlateportCity_BattleTentBattleRoom_EventScript_DefeatedOpponent diff --git a/data/maps/SlateportCity_NameRatersHouse/scripts.inc b/data/maps/SlateportCity_NameRatersHouse/scripts.inc index 34d788a6aac2..7c101850967e 100644 --- a/data/maps/SlateportCity_NameRatersHouse/scripts.inc +++ b/data/maps/SlateportCity_NameRatersHouse/scripts.inc @@ -11,7 +11,7 @@ SlateportCity_NameRatersHouse_EventScript_NameRater:: SlateportCity_NameRatersHouse_EventScript_ChooseMonToRate:: msgbox SlateportCity_NameRatersHouse_Text_CritiqueWhichMonNickname, MSGBOX_DEFAULT - special ChoosePartyMon + chooseboxmon waitstate goto_if_ne VAR_0x8004, PARTY_NOTHING_CHOSEN, SlateportCity_NameRatersHouse_EventScript_RateMonNickname goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, SlateportCity_NameRatersHouse_EventScript_DeclineNameRate diff --git a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc index 04639065062f..c6736eb9222e 100644 --- a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc +++ b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc @@ -6,10 +6,10 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SeedotBrother:: lock faceplayer msgbox SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigSeedot, MSGBOX_DEFAULT - special ChoosePartyMon + setvar VAR_0x8009, SPECIES_SEEDOT + chooseboxmon SELECT_PC_MON_TRADE waitstate - copyvar VAR_RESULT, VAR_0x8004 - goto_if_eq VAR_RESULT, PARTY_NOTHING_CHOSEN, SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowSeedot + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowSeedot special CompareSeedotSize goto_if_eq VAR_RESULT, 1, SootopolisCity_LotadAndSeedotHouse_EventScript_NotSeedot goto_if_eq VAR_RESULT, 2, SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot @@ -50,10 +50,10 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_LotadBrother:: lock faceplayer msgbox SootopolisCity_LotadAndSeedotHouse_Text_PleaseShowMeBigLotad, MSGBOX_DEFAULT - special ChoosePartyMon + setvar VAR_0x8009, SPECIES_LOTAD + chooseboxmon SELECT_PC_MON_TRADE waitstate - copyvar VAR_RESULT, VAR_0x8004 - goto_if_eq VAR_RESULT, PARTY_NOTHING_CHOSEN, SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowLotad + goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, SootopolisCity_LotadAndSeedotHouse_EventScript_CancelShowLotad special CompareLotadSize goto_if_eq VAR_RESULT, 1, SootopolisCity_LotadAndSeedotHouse_EventScript_NotLotad goto_if_eq VAR_RESULT, 2, SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad diff --git a/data/maps/ThreeIsland_BerryForest_Frlg/map.json b/data/maps/ThreeIsland_BerryForest_Frlg/map.json new file mode 100644 index 000000000000..c830a11457ac --- /dev/null +++ b/data/maps/ThreeIsland_BerryForest_Frlg/map.json @@ -0,0 +1,391 @@ +{ + "id": "MAP_THREE_ISLAND_BERRY_FOREST", + "name": "ThreeIsland_BerryForest_Frlg", + "layout": "LAYOUT_THREE_ISLAND_BERRY_FOREST", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_BERRY_FOREST", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_BERRY_FOREST_LOSTELLE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_BerryForest_EventScript_Lostelle", + "flag": "FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 12, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 19, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 23, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_14" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 38, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_15" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 44, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_16" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 44, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_17" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 16, + "y": 43, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_18" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 17, + "y": 39, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_19" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 14, + "y": 39, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_1A" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 11, + "y": 39, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_1B" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_BerryForest_EventScript_ItemMaxEther", + "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ETHER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 27, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_BerryForest_EventScript_ItemFullHeal", + "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_FULL_HEAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 43, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_BerryForest_EventScript_ItemMaxElixir", + "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ELIXIR" + } + ], + "warp_events": [ + { + "x": 43, + "y": 41, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "dest_warp_id": "0" + }, + { + "x": 42, + "y": 41, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "dest_warp_id": "0" + }, + { + "x": 44, + "y": 41, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 7, + "y": 27, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ThreeIsland_BerryForest_EventScript_BewareSign" + }, + { + "type": "sign", + "x": 39, + "y": 35, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ThreeIsland_BerryForest_EventScript_WelcomeSign" + }, + { + "type": "hidden_item", + "x": 31, + "y": 25, + "elevation": 3, + "item": "ITEM_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 15, + "y": 15, + "elevation": 3, + "item": "ITEM_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 25, + "y": 24, + "elevation": 3, + "item": "ITEM_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 11, + "y": 24, + "elevation": 3, + "item": "ITEM_WEPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 37, + "y": 18, + "elevation": 3, + "item": "ITEM_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 14, + "y": 23, + "elevation": 3, + "item": "ITEM_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 47, + "y": 5, + "elevation": 3, + "item": "ITEM_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 7, + "y": 30, + "elevation": 3, + "item": "ITEM_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 16, + "y": 5, + "elevation": 3, + "item": "ITEM_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 25, + "y": 6, + "elevation": 3, + "item": "ITEM_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 46, + "y": 32, + "elevation": 3, + "item": "ITEM_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 43, + "y": 16, + "elevation": 3, + "item": "ITEM_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 8, + "y": 5, + "elevation": 3, + "item": "ITEM_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/ThreeIsland_BerryForest_Frlg/scripts.inc b/data/maps/ThreeIsland_BerryForest_Frlg/scripts.inc new file mode 100644 index 000000000000..bcaa1e7b789b --- /dev/null +++ b/data/maps/ThreeIsland_BerryForest_Frlg/scripts.inc @@ -0,0 +1,104 @@ +ThreeIsland_BerryForest_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ThreeIsland_BerryForest_OnTransition + .byte 0 + +ThreeIsland_BerryForest_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST + setescapewarp MAP_THREE_ISLAND_BOND_BRIDGE, 12, 6 + end + +ThreeIsland_BerryForest_EventScript_Lostelle:: + lock + faceplayer + msgbox ThreeIsland_BerryForest_Text_HelpScaryPokemon + playse SE_PIN + applymovement LOCALID_BERRY_FOREST_LOSTELLE, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_BERRY_FOREST_LOSTELLE, ThreeIsland_BerryForest_Movement_LostelleLookAround + waitmovement 0 + msgbox ThreeIsland_BerryForest_Text_HereItComesAgain + waitse + playmoncry SPECIES_HYPNO, CRY_MODE_ENCOUNTER + waitmoncry + setwildbattle SPECIES_HYPNO, 30 + dowildbattle + applymovement LOCALID_BERRY_FOREST_LOSTELLE, Common_Movement_FacePlayer + waitmovement 0 + msgbox ThreeIsland_BerryForest_Text_ThankYouHaveThis + giveitem ITEM_IAPAPA_BERRY + call_if_eq VAR_RESULT, FALSE, ThreeIsland_BerryForest_EventScript_NoRoomForBerry + special GetPlayerBigGuyGirlString + msgbox ThreeIsland_BerryForest_Text_LetsGoHome + closemessage + setflag FLAG_RESCUED_LOSTELLE + setflag FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2 + clearflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE + warp MAP_TWO_ISLAND_JOYFUL_GAME_CORNER, 6, 6 + waitstate + release + end + +ThreeIsland_BerryForest_EventScript_NoRoomForBerry:: + msgbox ThreeIsland_BerryForest_Text_BerryPouchIsFull + return + +ThreeIsland_BerryForest_Movement_LostelleLookAround:: + walk_in_place_faster_left + delay_16 + walk_in_place_faster_right + delay_8 + walk_in_place_faster_left + step_end + +ThreeIsland_BerryForest_EventScript_WelcomeSign:: + msgbox ThreeIsland_BerryForest_Text_WelcomeToBerryForest, MSGBOX_SIGN + end + +ThreeIsland_BerryForest_EventScript_BewareSign:: + msgbox ThreeIsland_BerryForest_Text_BewareWildBerryLovingMons, MSGBOX_SIGN + end + +ThreeIsland_BerryForest_Text_HelpScaryPokemon:: + .string "LOSTELLE: Whimper… Sniff…\n" + .string "Oh! Please, help!\p" + .string "A scary POKéMON appeared there\n" + .string "a little while ago.\p" + .string "It kept scaring.\n" + .string "It made LOSTELLE scared.\p" + .string "I'm too scared to move!\n" + .string "But I want to go home…$" + +ThreeIsland_BerryForest_Text_HereItComesAgain:: + .string "Oh! Here it comes again!\n" + .string "No! Go away! It's scaring me!\p" + .string "Waaaaaaah!\n" + .string "I want my daddy!$" + +ThreeIsland_BerryForest_Text_ThankYouHaveThis:: + .string "Ohh! That was so scary!\n" + .string "Thank you!\p" + .string "LOSTELLE came to pick some\n" + .string "BERRIES.\p" + .string "You can have this!$" + +ThreeIsland_BerryForest_Text_LetsGoHome:: + .string "What's your name?\p" + .string "LOSTELLE's scared, so can I go\n" + .string "with you to my daddy's house?\p" + .string "Okay!\n" + .string "Let's go home!$" + +ThreeIsland_BerryForest_Text_BerryPouchIsFull:: + .string "Your BERRY POUCH is full.\n" + .string "I guess you don't want this.$" + +ThreeIsland_BerryForest_Text_WelcomeToBerryForest:: + .string "Welcome to the BERRY FOREST\p" + .string "Be friendly and share BERRIES with\n" + .string "others and POKéMON.$" + +ThreeIsland_BerryForest_Text_BewareWildBerryLovingMons:: + .string "Beware of wild, BERRY-loving\n" + .string "POKéMON!$" + diff --git a/data/maps/ThreeIsland_BondBridge_Frlg/map.json b/data/maps/ThreeIsland_BondBridge_Frlg/map.json new file mode 100644 index 000000000000..6af540cef899 --- /dev/null +++ b/data/maps/ThreeIsland_BondBridge_Frlg/map.json @@ -0,0 +1,219 @@ +{ + "id": "MAP_THREE_ISLAND_BOND_BRIDGE", + "name": "ThreeIsland_BondBridge_Frlg", + "layout": "LAYOUT_THREE_ISLAND_BOND_BRIDGE", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_BOND_BRIDGE", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_THREE_ISLAND", + "offset": 0, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 27, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "ThreeIsland_BondBridge_EventScript_Nikki", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 68, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "ThreeIsland_BondBridge_EventScript_Violet", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TUBER_F_FRLG", + "x": 33, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ThreeIsland_BondBridge_EventScript_Amira", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TUBER_F_FRLG", + "x": 50, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ThreeIsland_BondBridge_EventScript_Alexis", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", + "x": 36, + "y": 4, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ThreeIsland_BondBridge_EventScript_Tisha", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 77, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ThreeIsland_BondBridge_EventScript_Joy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 78, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ThreeIsland_BondBridge_EventScript_Meg", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 72, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 86, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_13" + } + ], + "warp_events": [ + { + "x": 12, + "y": 6, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 6, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 14, + "y": 7, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ThreeIsland_BondBridge_EventScript_BerryForestSign" + }, + { + "type": "hidden_item", + "x": 61, + "y": 5, + "elevation": 0, + "item": "ITEM_MAX_REPEL", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 44, + "y": 12, + "elevation": 3, + "item": "ITEM_PEARL", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 33, + "y": 7, + "elevation": 3, + "item": "ITEM_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST", + "quantity": 1, + "underfoot": false + }, + { + "type": "sign", + "x": 91, + "y": 9, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ThreeIsland_BondBridge_EventScript_BondBridgeSign" + } + ] +} diff --git a/data/maps/ThreeIsland_BondBridge_Frlg/scripts.inc b/data/maps/ThreeIsland_BondBridge_Frlg/scripts.inc new file mode 100644 index 000000000000..97e055bd3452 --- /dev/null +++ b/data/maps/ThreeIsland_BondBridge_Frlg/scripts.inc @@ -0,0 +1,112 @@ +ThreeIsland_BondBridge_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_BondBridge_EventScript_BerryForestSign:: + msgbox ThreeIsland_BondBridge_Text_BerryForestAhead, MSGBOX_SIGN + end + +ThreeIsland_BondBridge_EventScript_BondBridgeSign:: + msgbox ThreeIsland_BondBridge_Text_BondBridgeSign, MSGBOX_SIGN + end + +ThreeIsland_BondBridge_Text_NikkiIntro:: + .string "The salty tang of the sea…\n" + .string "It tickles my heart.$" + +ThreeIsland_BondBridge_Text_NikkiDefeat:: + .string "…Sniff, sniff…\n" + .string "Something smells unpleasant…$" + +ThreeIsland_BondBridge_Text_NikkiPostBattle:: + .string "Perhaps that reek is your sweaty\n" + .string "POKéMON's body odor…$" + +ThreeIsland_BondBridge_Text_VioletIntro:: + .string "Where are you off to in such\n" + .string "a hurry?$" + +ThreeIsland_BondBridge_Text_VioletDefeat:: + .string "You're raising some wonderful\n" + .string "POKéMON.$" + +ThreeIsland_BondBridge_Text_VioletPostBattle:: + .string "If you keep going this way, you'll\n" + .string "eventually reach BERRY FOREST.$" + +ThreeIsland_BondBridge_Text_AmiraIntro:: + .string "My mommy said that I can't swim\n" + .string "without my float ring.$" + +ThreeIsland_BondBridge_Text_AmiraDefeat:: + .string "Waaah!\n" + .string "Waaah!$" + +ThreeIsland_BondBridge_Text_AmiraPostBattle:: + .string "This year, I'm going to finally\n" + .string "learn how to swim!$" + +ThreeIsland_BondBridge_Text_AlexisIntro:: + .string "Yay, yay!\n" + .string "POKéMON!$" + +ThreeIsland_BondBridge_Text_AlexisDefeat:: + .string "What happens now?$" + +ThreeIsland_BondBridge_Text_AlexisPostBattle:: + .string "Did I just win?\n" + .string "Or did I lose?$" + +ThreeIsland_BondBridge_Text_TishaIntro:: + .string "Oh, no, don't come here!\n" + .string "Please, stay away from me!$" + +ThreeIsland_BondBridge_Text_TishaDefeat:: + .string "Okay, you've won!\n" + .string "Now will you please go away?$" + +ThreeIsland_BondBridge_Text_TishaPostBattle:: + .string "A POKéMON bit through my \n" + .string "swimsuit.\p" + .string "I can't get out of the water!$" + +ThreeIsland_BondBridge_Text_JoyIntro:: + .string "JOY: We'll teach you what our\n" + .string "favorite POKéMON is!$" + +ThreeIsland_BondBridge_Text_JoyDefeat:: + .string "JOY: Ohh…\n" + .string "MEG!$" + +ThreeIsland_BondBridge_Text_JoyPostBattle:: + .string "JOY: Wasn't that fun?\n" + .string "I hope we can battle again!$" + +ThreeIsland_BondBridge_Text_JoyNotEnoughMons:: + .string "JOY: I really want to battle with\n" + .string "MEG.\p" + .string "One POKéMON isn't enough.$" + +ThreeIsland_BondBridge_Text_MegIntro:: + .string "MEG: We'll show you our favorite\n" + .string "POKéMON.$" + +ThreeIsland_BondBridge_Text_MegDefeat:: + .string "MEG: Ohh…\n" + .string "JOY!$" + +ThreeIsland_BondBridge_Text_MegPostBattle:: + .string "MEG: JOY, wasn't that fun?$" + +ThreeIsland_BondBridge_Text_MegNotEnoughMons:: + .string "MEG: I want to battle together\n" + .string "with JOY.\p" + .string "One POKéMON isn't enough.$" + +ThreeIsland_BondBridge_Text_BerryForestAhead:: + .string "BERRY FOREST AHEAD$" + +ThreeIsland_BondBridge_Text_BondBridgeSign:: + .string "BOND BRIDGE\n" + .string "Please be quiet when crossing.\p" + .string "BERRY FOREST AHEAD$" + diff --git a/data/maps/ThreeIsland_DunsparceTunnel_Frlg/map.json b/data/maps/ThreeIsland_DunsparceTunnel_Frlg/map.json new file mode 100644 index 000000000000..7d23298fd397 --- /dev/null +++ b/data/maps/ThreeIsland_DunsparceTunnel_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", + "name": "ThreeIsland_DunsparceTunnel_Frlg", + "layout": "LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLE_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "local_id": "LOCALID_PROSPECTOR", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 23, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_DunsparceTunnel_EventScript_Prospector", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 4, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_PORT", + "dest_warp_id": "0" + }, + { + "x": 25, + "y": 5, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_PORT", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 21, + "y": 3, + "elevation": 0, + "item": "ITEM_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/ThreeIsland_DunsparceTunnel_Frlg/scripts.inc b/data/maps/ThreeIsland_DunsparceTunnel_Frlg/scripts.inc new file mode 100644 index 000000000000..e13f181b52cb --- /dev/null +++ b/data/maps/ThreeIsland_DunsparceTunnel_Frlg/scripts.inc @@ -0,0 +1,79 @@ +ThreeIsland_DunsparceTunnel_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ThreeIsland_DunsparceTunnel_OnTransition + .byte 0 + +ThreeIsland_DunsparceTunnel_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL + specialvar VAR_RESULT, IsNationalPokedexEnabled + copyvar VAR_0x8008, VAR_RESULT + call_if_eq VAR_0x8008, TRUE, ThreeIsland_DunsparceTunnel_EventScript_SetLayoutDugOut + call_if_eq VAR_0x8008, FALSE, ThreeIsland_DunsparceTunnel_EventScript_MoveProspectorToWall + end + +ThreeIsland_DunsparceTunnel_EventScript_SetLayoutDugOut:: + setmaplayoutindex LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL_DUG_OUT + return + +ThreeIsland_DunsparceTunnel_EventScript_MoveProspectorToWall:: + setobjectxyperm LOCALID_PROSPECTOR, 6, 3 + setobjectmovementtype LOCALID_PROSPECTOR, MOVEMENT_TYPE_FACE_RIGHT + return + +ThreeIsland_DunsparceTunnel_EventScript_Prospector:: + lock + faceplayer + goto_if_set FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL, ThreeIsland_DunsparceTunnel_EventScript_ProspectorAlreadyGaveNugget + specialvar VAR_RESULT, IsNationalPokedexEnabled + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_DunsparceTunnel_EventScript_ProspectorStruckGold + msgbox ThreeIsland_DunsparceTunnel_Text_ProspectingForGold + closemessage + applymovement LOCALID_PROSPECTOR, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +ThreeIsland_DunsparceTunnel_EventScript_ProspectorStruckGold:: + msgbox ThreeIsland_DunsparceTunnel_Text_StruckGoldThisIsForYou + giveitem ITEM_NUGGET + goto_if_eq VAR_RESULT, FALSE, ThreeIsland_DunsparceTunnel_EventScript_NoRoomForNugget + setflag FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL + goto ThreeIsland_DunsparceTunnel_EventScript_ProspectorAlreadyGaveNugget + end + +ThreeIsland_DunsparceTunnel_EventScript_NoRoomForNugget:: + msgbox ThreeIsland_DunsparceTunnel_Text_WhoopsBagCrammedFull + release + end + +ThreeIsland_DunsparceTunnel_EventScript_ProspectorAlreadyGaveNugget:: + msgbox ThreeIsland_DunsparceTunnel_Text_ThatsANugget + release + end + +ThreeIsland_DunsparceTunnel_Text_ProspectingForGold:: + .string "Hey, there!\n" + .string "How's it going?\p" + .string "What am I doing here, you ask?\n" + .string "Why, I'm prospecting for gold!\p" + .string "When I strike it rich, I'm buying\n" + .string "a house in KANTO.$" + +ThreeIsland_DunsparceTunnel_Text_StruckGoldThisIsForYou:: + .string "Hey, there! How's it going?\n" + .string "Did you hear? I've struck gold!\p" + .string "You remembered that I was\n" + .string "prospecting, didn't you?\p" + .string "You can't begin to imagine just\n" + .string "how happy I am.\p" + .string "So, I'll show you!\n" + .string "This is for you!$" + +ThreeIsland_DunsparceTunnel_Text_ThatsANugget:: + .string "That's a NUGGET!\p" + .string "I can't give you any nuggets of\n" + .string "wisdom, so that'll have to do!$" + +ThreeIsland_DunsparceTunnel_Text_WhoopsBagCrammedFull:: + .string "Whoops, your BAG is crammed full!\n" + .string "I'll give this to you later.$" + diff --git a/data/maps/ThreeIsland_Frlg/map.json b/data/maps/ThreeIsland_Frlg/map.json new file mode 100644 index 000000000000..3d41b323b558 --- /dev/null +++ b/data/maps/ThreeIsland_Frlg/map.json @@ -0,0 +1,399 @@ +{ + "id": "MAP_THREE_ISLAND", + "name": "ThreeIsland_Frlg", + "layout": "LAYOUT_THREE_ISLAND", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_THREE_ISLAND_PORT", + "offset": 0, + "direction": "down" + }, + { + "map": "MAP_THREE_ISLAND_BOND_BRIDGE", + "offset": 0, + "direction": "left" + } + ], + "object_events": [ + { + "local_id": "LOCALID_THREE_ISLAND_ANTIBIKER1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 7, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_AntiBiker1", + "flag": "FLAG_HIDE_THREE_ISLAND_ANTIBIKERS" + }, + { + "local_id": "LOCALID_THREE_ISLAND_ANTIBIKER2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 8, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_AntiBiker2", + "flag": "FLAG_HIDE_THREE_ISLAND_ANTIBIKERS" + }, + { + "local_id": "LOCALID_PAXTON", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 8, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker", + "flag": "FLAG_HIDE_THREE_ISLAND_LONE_BIKER" + }, + { + "local_id": "LOCALID_THREE_ISLAND_BIKER3", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 9, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + }, + { + "local_id": "LOCALID_THREE_ISLAND_BIKER1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 9, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + }, + { + "local_id": "LOCALID_THREE_ISLAND_BIKER4", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 10, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + }, + { + "local_id": "LOCALID_THREE_ISLAND_BIKER2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 10, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + }, + { + "local_id": "LOCALID_THREE_ISLAND_BIKER5", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 11, + "y": 23, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 20, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 18, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_ItemZinc", + "flag": "FLAG_HIDE_THREE_ISLAND_ZINC" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 15, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 14, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_DODUO", + "x": 15, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Doduo", + "flag": "0" + }, + { + "local_id": "LOCALID_THREE_ISLAND_BIKER6", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 15, + "y": 31, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_EventScript_Biker6", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + } + ], + "warp_events": [ + { + "x": 3, + "y": 31, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE1", + "dest_warp_id": "0" + }, + { + "x": 14, + "y": 27, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 18, + "y": 12, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_MART", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 6, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE2", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 6, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE3", + "dest_warp_id": "0" + }, + { + "x": 12, + "y": 12, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE4", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 19, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_HOUSE5", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 27, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "2", + "script": "ThreeIsland_EventScript_BikerBossIntroTrigger" + }, + { + "type": "trigger", + "x": 8, + "y": 27, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "2", + "script": "ThreeIsland_EventScript_BikerBossIntroTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 27, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "2", + "script": "ThreeIsland_EventScript_BikerBossIntroTrigger" + }, + { + "type": "trigger", + "x": 10, + "y": 27, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "2", + "script": "ThreeIsland_EventScript_BikerBossIntroTrigger" + }, + { + "type": "trigger", + "x": 7, + "y": 26, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "3", + "script": "ThreeIsland_EventScript_BattleBikersTriggerLeft" + }, + { + "type": "trigger", + "x": 8, + "y": 26, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "3", + "script": "ThreeIsland_EventScript_BattleBikersTriggerMidLeft" + }, + { + "type": "trigger", + "x": 9, + "y": 26, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "3", + "script": "ThreeIsland_EventScript_BattleBikersTriggerMid" + }, + { + "type": "trigger", + "x": 11, + "y": 27, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "2", + "script": "ThreeIsland_EventScript_BikerBossIntroTrigger" + }, + { + "type": "trigger", + "x": 10, + "y": 26, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "3", + "script": "ThreeIsland_EventScript_BattleBikersTriggerMidRight" + }, + { + "type": "trigger", + "x": 11, + "y": 26, + "elevation": 3, + "var": "VAR_MAP_SCENE_THREE_ISLAND", + "var_value": "3", + "script": "ThreeIsland_EventScript_BattleBikersTriggerRight" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 12, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ThreeIsland_EventScript_IslandSign" + }, + { + "type": "hidden_item", + "x": 5, + "y": 13, + "elevation": 3, + "item": "ITEM_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/ThreeIsland_Frlg/scripts.inc b/data/maps/ThreeIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..bb10b584584f --- /dev/null +++ b/data/maps/ThreeIsland_Frlg/scripts.inc @@ -0,0 +1,554 @@ +ThreeIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ThreeIsland_OnTransition + .byte 0 + +ThreeIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_THREE_ISLAND + call_if_set FLAG_RESCUED_LOSTELLE, ThreeIsland_EventScript_HideAntiBikers + call_if_eq VAR_MAP_SCENE_THREE_ISLAND, 4, ThreeIsland_EventScript_SetAntiBikersMovementAfterBikers + end + +ThreeIsland_EventScript_HideAntiBikers:: + setflag FLAG_HIDE_THREE_ISLAND_ANTIBIKERS + return + +ThreeIsland_EventScript_SetAntiBikersMovementAfterBikers:: + setobjectmovementtype LOCALID_THREE_ISLAND_ANTIBIKER1, MOVEMENT_TYPE_LOOK_AROUND + setobjectmovementtype LOCALID_THREE_ISLAND_ANTIBIKER2, MOVEMENT_TYPE_LOOK_AROUND + return + +ThreeIsland_EventScript_Biker:: + lock + setvar VAR_TEMP_1, 2 + call ThreeIsland_EventScript_BikerArgumentScene + release + end + +ThreeIsland_EventScript_AntiBiker1:: + lock + goto_if_set FLAG_GOT_FULL_RESTORE_FROM_THREE_ISLAND_DEFENDER, ThreeIsland_EventScript_AntiBiker1GotFullRestore + goto_if_eq VAR_MAP_SCENE_THREE_ISLAND, 4, ThreeIsland_EventScript_GiveFullRestore + setvar VAR_TEMP_1, 0 + call ThreeIsland_EventScript_BikerArgumentScene + release + end + +ThreeIsland_EventScript_AntiBiker1GotFullRestore:: + applymovement LOCALID_THREE_ISLAND_ANTIBIKER1, Common_Movement_FacePlayer + waitmovement 0 + msgbox ThreeIsland_Text_YouveGotImpressiveMons + release + end + +ThreeIsland_EventScript_GiveFullRestore:: + applymovement LOCALID_THREE_ISLAND_ANTIBIKER1, Common_Movement_FacePlayer + waitmovement 0 + msgbox ThreeIsland_Text_ThankYouOhYourMonGotHurt + checkitemspace ITEM_FULL_RESTORE + goto_if_eq VAR_RESULT, FALSE, ThreeIsland_EventScript_NoRoomForFullRestore + msgreceiveditem ThreeIsland_Text_GivenFullRestore, ITEM_FULL_RESTORE + additem ITEM_FULL_RESTORE + setflag FLAG_GOT_FULL_RESTORE_FROM_THREE_ISLAND_DEFENDER + msgbox ThreeIsland_Text_YouveGotImpressiveMons + release + end + +ThreeIsland_EventScript_NoRoomForFullRestore:: + msgbox ThreeIsland_Text_OhYourBagIsFull + release + end + +ThreeIsland_EventScript_BikerArgumentScene:: + call_if_eq VAR_TEMP_1, 1, ThreeIsland_EventScript_PlayerFaceLeft + call_if_eq VAR_TEMP_1, 2, ThreeIsland_EventScript_PlayerFaceLeft + applymovement LOCALID_THREE_ISLAND_ANTIBIKER1, ThreeIsland_Movement_SpeakRight + waitmovement 0 + msgbox ThreeIsland_Text_GoBackToKanto + call_if_eq VAR_TEMP_1, 0, ThreeIsland_EventScript_PlayerFaceRight + call_if_eq VAR_TEMP_1, 1, ThreeIsland_EventScript_PlayerFaceRight + call_if_eq VAR_TEMP_1, 2, ThreeIsland_EventScript_PlayerFaceBiker + applymovement LOCALID_THREE_ISLAND_BIKER1, ThreeIsland_Movement_SpeakLeft + waitmovement 0 + msgbox ThreeIsland_Text_BossIsOnHisWay + call_if_eq VAR_TEMP_1, 0, ThreeIsland_EventScript_PlayerFaceUp + call_if_eq VAR_TEMP_1, 1, ThreeIsland_EventScript_PlayerFaceUp + call_if_eq VAR_TEMP_1, 2, ThreeIsland_EventScript_PlayerFaceAntiBiker + applymovement LOCALID_THREE_ISLAND_ANTIBIKER2, ThreeIsland_Movement_SpeakRight + waitmovement 0 + msgbox ThreeIsland_Text_GetOffIslandNow + call_if_eq VAR_TEMP_1, 0, ThreeIsland_EventScript_PlayerFaceRight + call_if_eq VAR_TEMP_1, 1, ThreeIsland_EventScript_PlayerFaceRight + call_if_eq VAR_TEMP_1, 2, ThreeIsland_EventScript_PlayerFaceBiker + applymovement LOCALID_THREE_ISLAND_BIKER3, ThreeIsland_Movement_SpeakLeft + waitmovement 0 + msgbox ThreeIsland_Text_WhosGonnaMakeMe + return + +ThreeIsland_EventScript_PlayerFaceUp:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + return + +@ Unused +ThreeIsland_EventScript_PlayerFaceDown:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + return + +ThreeIsland_EventScript_PlayerFaceLeft:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + return + +ThreeIsland_EventScript_PlayerFaceRight:: + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + return + +ThreeIsland_EventScript_PlayerFaceBiker:: + getplayerxy VAR_0x8004, VAR_0x8005 + goto_if_ge VAR_0x8004, 9, ThreeIsland_EventScript_PlayerFaceUp + goto ThreeIsland_EventScript_PlayerFaceRight + end + +ThreeIsland_EventScript_PlayerFaceAntiBiker:: + getplayerxy VAR_0x8004, VAR_0x8005 + goto_if_ge VAR_0x8004, 9, ThreeIsland_EventScript_PlayerFaceLeft + goto ThreeIsland_EventScript_PlayerFaceUp + end + +ThreeIsland_EventScript_AntiBiker2:: + lock + goto_if_eq VAR_MAP_SCENE_THREE_ISLAND, 4, ThreeIsland_EventScript_AntiBiker2BikersGone + setvar VAR_TEMP_1, 1 + call ThreeIsland_EventScript_BikerArgumentScene + release + end + +ThreeIsland_EventScript_AntiBiker2BikersGone:: + applymovement LOCALID_THREE_ISLAND_ANTIBIKER2, Common_Movement_FacePlayer + waitmovement 0 + msgbox ThreeIsland_Text_LostelleWentOffTowardsBondBridge + release + end + +ThreeIsland_EventScript_BikerBossIntroTrigger:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_THREE_ISLAND_ANTIBIKER1, ThreeIsland_Movement_SpeakRight + waitmovement 0 + msgbox ThreeIsland_Text_AreYouBossGoBackToKanto + applymovement LOCALID_PAXTON, ThreeIsland_Movement_SpeakLeft + waitmovement 0 + msgbox ThreeIsland_Text_JustGotHerePal + applymovement LOCALID_THREE_ISLAND_ANTIBIKER1, ThreeIsland_Movement_SpeakRight + waitmovement 0 + msgbox ThreeIsland_Text_FollowersRaisingHavoc + applymovement LOCALID_PAXTON, ThreeIsland_Movement_SpeakLeft + waitmovement 0 + msgbox ThreeIsland_Text_OughtToBeThankingUs + applymovement LOCALID_THREE_ISLAND_ANTIBIKER1, ThreeIsland_Movement_SpeakRight + waitmovement 0 + msgbox ThreeIsland_Text_YouCowardsToughInPack + setvar VAR_MAP_SCENE_THREE_ISLAND, 3 + releaseall + end + +ThreeIsland_Movement_SpeakLeft:: + walk_in_place_left + step_end + +ThreeIsland_Movement_SpeakRight:: + walk_in_place_right + step_end + +ThreeIsland_EventScript_BattleBikersTriggerLeft:: + lockall + setvar VAR_TEMP_1, 0 + goto ThreeIsland_EventScript_BattleBikersScene + end + +ThreeIsland_EventScript_BattleBikersTriggerMidLeft:: + lockall + setvar VAR_TEMP_1, 1 + goto ThreeIsland_EventScript_BattleBikersScene + end + +ThreeIsland_EventScript_BattleBikersTriggerMid:: + lockall + setvar VAR_TEMP_1, 2 + goto ThreeIsland_EventScript_BattleBikersScene + end + +ThreeIsland_EventScript_BattleBikersTriggerMidRight:: + lockall + setvar VAR_TEMP_1, 3 + goto ThreeIsland_EventScript_BattleBikersScene + end + +ThreeIsland_EventScript_BattleBikersTriggerRight:: + lockall + setvar VAR_TEMP_1, 4 + goto ThreeIsland_EventScript_BattleBikersScene + end + +ThreeIsland_EventScript_BattleBikersScene:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_THREE_ISLAND_BIKER1, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playse SE_PIN + applymovement LOCALID_THREE_ISLAND_BIKER1, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_THREE_ISLAND_BIKER1, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_THREE_ISLAND_BIKER1, ThreeIsland_Movement_BikerApproach + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_BOY, 0 + msgbox ThreeIsland_Text_WannaMakeSomethingOfYourStaring, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, ThreeIsland_EventScript_LeaveBikersAlone + msgbox ThreeIsland_Text_Biker1Intro + setvar VAR_LAST_TALKED, LOCALID_THREE_ISLAND_BIKER1 + trainerbattle_no_intro TRAINER_BIKER_GOON, ThreeIsland_Text_Biker1Defeat + applymovement LOCALID_THREE_ISLAND_BIKER1, ThreeIsland_Movement_BikerSpeak + waitmovement 0 + msgbox ThreeIsland_Text_Biker1PostBattle + closemessage + applymovement LOCALID_THREE_ISLAND_BIKER2, ThreeIsland_Movement_BikerApproach + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_BOY, 0 + msgbox ThreeIsland_Text_Biker2Intro + setvar VAR_LAST_TALKED, LOCALID_THREE_ISLAND_BIKER2 + trainerbattle_no_intro TRAINER_BIKER_GOON_2, ThreeIsland_Text_Biker2Defeat + applymovement LOCALID_THREE_ISLAND_BIKER2, ThreeIsland_Movement_BikerSpeak + waitmovement 0 + msgbox ThreeIsland_Text_Biker2PostBattle + closemessage + applymovement LOCALID_THREE_ISLAND_BIKER3, ThreeIsland_Movement_BikerApproach + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_BOY, 0 + msgbox ThreeIsland_Text_Biker3Intro + setvar VAR_LAST_TALKED, LOCALID_THREE_ISLAND_BIKER3 + trainerbattle_no_intro TRAINER_BIKER_GOON_3, ThreeIsland_Text_Biker3Defeat + applymovement LOCALID_THREE_ISLAND_BIKER3, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + applymovement LOCALID_THREE_ISLAND_BIKER4, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_THREE_ISLAND_BIKER5, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + msgbox ThreeIsland_Text_Biker3PostBattle + closemessage + delay 45 + call_if_eq VAR_TEMP_1, 0, ThreeIsland_EventScript_PaxtonApproachLeft + call_if_eq VAR_TEMP_1, 1, ThreeIsland_EventScript_PaxtonApproachMidLeft + call_if_eq VAR_TEMP_1, 2, ThreeIsland_EventScript_PaxtonApproachMid + call_if_eq VAR_TEMP_1, 3, ThreeIsland_EventScript_PaxtonApproachMidRight + call_if_eq VAR_TEMP_1, 4, ThreeIsland_EventScript_PaxtonApproachRight + playbgm MUS_RG_ENCOUNTER_BOY, 0 + msgbox ThreeIsland_Text_PaxtonIntro + setvar VAR_LAST_TALKED, LOCALID_PAXTON + trainerbattle_no_intro TRAINER_CUE_BALL_PAXTON, ThreeIsland_Text_PaxtonDefeat + msgbox ThreeIsland_Text_PaxtonPostBattle + closemessage + fadescreenswapbuffers FADE_TO_BLACK + removeobject LOCALID_PAXTON + removeobject LOCALID_THREE_ISLAND_BIKER1 + removeobject LOCALID_THREE_ISLAND_BIKER2 + removeobject LOCALID_THREE_ISLAND_BIKER3 + removeobject LOCALID_THREE_ISLAND_BIKER4 + removeobject LOCALID_THREE_ISLAND_BIKER5 + removeobject LOCALID_THREE_ISLAND_BIKER6 + fadescreenswapbuffers FADE_FROM_BLACK + setvar VAR_MAP_SCENE_THREE_ISLAND, 4 + releaseall + end + +ThreeIsland_EventScript_PaxtonApproachLeft:: + applymovement LOCALID_THREE_ISLAND_BIKER3, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachLeft + waitmovement 0 + return + +ThreeIsland_EventScript_PaxtonApproachMidLeft:: + applymovement LOCALID_THREE_ISLAND_BIKER3, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidLeft + waitmovement 0 + return + +ThreeIsland_EventScript_PaxtonApproachMid:: + applymovement LOCALID_THREE_ISLAND_BIKER3, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMid + applymovement LOCALID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton + waitmovement 0 + return + +ThreeIsland_EventScript_PaxtonApproachMidRight:: + applymovement LOCALID_THREE_ISLAND_BIKER3, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton + applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidRight + waitmovement 0 + return + +ThreeIsland_EventScript_PaxtonApproachRight:: + applymovement LOCALID_THREE_ISLAND_BIKER3, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton + applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachRight + waitmovement 0 + return + +ThreeIsland_EventScript_LeaveBikersAlone:: + msgbox ThreeIsland_Text_ThatsSmart + closemessage + applymovement LOCALID_PLAYER, ThreeIsland_Movement_PlayerLeaveBikers + waitmovement 0 + applymovement LOCALID_THREE_ISLAND_BIKER1, ThreeIsland_Movement_Biker1ReturnToPack + waitmovement 0 + fadedefaultbgm + releaseall + end + +ThreeIsland_Movement_PlayerLeaveBikers:: + walk_down + step_end + +ThreeIsland_Movement_BikerApproach:: + walk_down + step_end + +ThreeIsland_Movement_Biker1ReturnToPack:: + walk_up + walk_in_place_faster_left + step_end + +ThreeIsland_Movement_BikerSpeak:: + walk_in_place_down + step_end + +ThreeIsland_Movement_PaxtonApproachLeft:: + walk_down + walk_left + walk_in_place_faster_down + step_end + +ThreeIsland_Movement_PaxtonApproachMidLeft:: + walk_down + step_end + +ThreeIsland_Movement_PaxtonApproachMid:: + walk_down + walk_down + walk_in_place_faster_right + step_end + +ThreeIsland_Movement_PlayerFacePaxton:: + delay_16 + delay_16 + walk_in_place_faster_left + step_end + +ThreeIsland_Movement_PaxtonApproachMidRight:: + walk_down + walk_down + walk_right + walk_in_place_faster_right + step_end + +ThreeIsland_Movement_PaxtonApproachRight:: + walk_down + walk_down + walk_right + walk_right + walk_in_place_faster_right + step_end + +ThreeIsland_EventScript_Woman:: + msgbox ThreeIsland_Text_WouldntWantToSeeBikersHereAgain, MSGBOX_NPC + end + +ThreeIsland_EventScript_LittleBoy:: + msgbox ThreeIsland_Text_WhenDodouEvolvesGoingToPlayGame, MSGBOX_NPC + end + +ThreeIsland_EventScript_Doduo:: + lock + faceplayer + waitse + playmoncry SPECIES_DODUO, CRY_MODE_NORMAL + msgbox ThreeIsland_Text_Doduo + waitmoncry + release + end + +ThreeIsland_EventScript_IslandSign:: + msgbox ThreeIsland_Text_IslandSign, MSGBOX_SIGN + end + +ThreeIsland_EventScript_Biker6:: + msgbox ThreeIsland_Text_IslandBelongsToUs, MSGBOX_NPC + end + +ThreeIsland_Text_IslandSign:: + .string "THREE ISLAND\n" + .string "Kin Island of Family Bonding$" + +ThreeIsland_Text_IslandBelongsToUs:: + .string "Hyahoo!\p" + .string "From this day on, this island\n" + .string "belongs to us!$" + +ThreeIsland_Text_GoBackToKanto:: + .string "We don't need you people bringing\n" + .string "your noise and trouble here!\p" + .string "We're asking you to go back to\n" + .string "KANTO!$" + +ThreeIsland_Text_BossIsOnHisWay:: + .string "Hey, go cry somewhere else.\n" + .string "Our boss is on his way.\p" + .string "When he gets here, we'll give you\n" + .string "a k-rad motorbike show you won't\l" + .string "soon forget!$" + +ThreeIsland_Text_GetOffIslandNow:: + .string "W-what!? Not on your life!\n" + .string "Get off the island now!$" + +ThreeIsland_Text_WhosGonnaMakeMe:: + .string "Who's gonna make me?$" + +ThreeIsland_Text_AreYouBossGoBackToKanto:: + .string "Are you the boss?\n" + .string "Go back to KANTO right now!$" + +ThreeIsland_Text_JustGotHerePal:: + .string "Hah?\p" + .string "I just got here, pal.\p" + .string "What's with the hostile attitude?\n" + .string "It's mighty cold of you!$" + +ThreeIsland_Text_FollowersRaisingHavoc:: + .string "Your gang of followers have been\n" + .string "raising havoc on their bikes.\p" + .string "Do you have any idea how much\n" + .string "trouble they've caused us on the\l" + .string "island?$" + +ThreeIsland_Text_OughtToBeThankingUs:: + .string "No, man, I don't get it at all.\p" + .string "Look at this place.\n" + .string "What do you do for entertainment?\p" + .string "You ought to be thanking us for\n" + .string "livening up this sleepy village.\p" + .string "But hey, if you insist, you can try\n" + .string "making us leave.$" + +ThreeIsland_Text_YouCowardsToughInPack:: + .string "Grr… You cowards…\n" + .string "So tough in a pack…$" + +ThreeIsland_Text_WannaMakeSomethingOfYourStaring:: + .string "You, what are you staring at?\n" + .string "Don't you know it's not polite?\p" + .string "You wanna make something of it\n" + .string "or what?$" + +ThreeIsland_Text_ThatsSmart:: + .string "That's smart.\n" + .string "Keep your nose out of this.$" + +ThreeIsland_Text_Biker1Intro:: + .string "Heh, I like your guts.\n" + .string "You'll be losing money to me, but…$" + +ThreeIsland_Text_Biker1Defeat:: + .string "Wha…\n" + .string "What is this kid?!$" + +ThreeIsland_Text_Biker1PostBattle:: + .string "Aww, man…\n" + .string "Don't you dare laugh!$" + +ThreeIsland_Text_Biker2Intro:: + .string "Aren't you from KANTO?\n" + .string "You should be on our side!$" + +ThreeIsland_Text_Biker2Defeat:: + .string "Stop fooling around!$" + +ThreeIsland_Text_Biker2PostBattle:: + .string "What's the matter with you,\n" + .string "getting all hot like that?\p" + .string "Totally uncool, man!$" + +ThreeIsland_Text_Biker3Intro:: + .string "We invited the boss out here,\n" + .string "but you had to mess it up!\p" + .string "You embarrassed us, man!$" + +ThreeIsland_Text_Biker3Defeat:: + .string "… … … … … …$" + +ThreeIsland_Text_Biker3PostBattle:: + .string "Boss, I'm telling you, you've gotta\n" + .string "do something about this kid!$" + +ThreeIsland_Text_PaxtonIntro:: + .string "I've been watching you, and I'd say\n" + .string "you've done enough.\p" + .string "What are you, their friend or\n" + .string "something?\p" + .string "Then I guess you'll be battling me\n" + .string "in their place.$" + +ThreeIsland_Text_PaxtonDefeat:: + .string "All right, enough!\n" + .string "We'll leave like you wanted!\p" + .string "We'll be happy to see the last of\n" + .string "this boring island!$" + +ThreeIsland_Text_PaxtonPostBattle:: + .string "Humph! Yeah, go right on hanging\n" + .string "around with these hayseeds!$" + +ThreeIsland_Text_ThankYouOhYourMonGotHurt:: + .string "Thank you! Those goons were\n" + .string "nothing but bad trouble.\p" + .string "Oh, look, your POKéMON got hurt\n" + .string "on my account.$" + +ThreeIsland_Text_GivenFullRestore:: + .string "{PLAYER} was given\n" + .string "a FULL RESTORE.$" + +ThreeIsland_Text_OhYourBagIsFull:: + .string "Oh?\n" + .string "Your BAG is full.$" + +ThreeIsland_Text_YouveGotImpressiveMons:: + .string "You've got seriously impressive\n" + .string "POKéMON with you.$" + +ThreeIsland_Text_LostelleWentOffTowardsBondBridge:: + .string "It'd be fantastic if someone as\n" + .string "strong as you lived here.\p" + .string "I hope you'll at least stay here\n" + .string "a while.\p" + .string "…I beg your pardon?\n" + .string "You're looking for LOSTELLE?\p" + .string "LOSTELLE went off towards BOND\n" + .string "BRIDGE a while ago.$" + +ThreeIsland_Text_WouldntWantToSeeBikersHereAgain:: + .string "THREE ISLAND is actually the most\n" + .string "populous of the islands here.\p" + .string "Still, it could be less sleepy.\p" + .string "But I wouldn't want to see goons\n" + .string "like those BIKERS here again.$" + +ThreeIsland_Text_WhenDodouEvolvesGoingToPlayGame:: + .string "I'm going to train my DODUO in the\n" + .string "BERRY FOREST.\p" + .string "When it evolves, I'm going to play\n" + .string "a game on TWO ISLAND.$" + +ThreeIsland_Text_Doduo:: + .string "DODUO: Gigiih!$" + diff --git a/data/maps/ThreeIsland_Harbor_Frlg/map.json b/data/maps/ThreeIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..c67657083b55 --- /dev/null +++ b/data/maps/ThreeIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_THREE_ISLAND_HARBOR", + "name": "ThreeIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLE_PORT", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_PORT", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_Harbor_Frlg/scripts.inc b/data/maps/ThreeIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..716bb55847b8 --- /dev/null +++ b/data/maps/ThreeIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,11 @@ +ThreeIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_THREE_ISLAND + goto EventScript_ChooseDestFromIsland + end diff --git a/data/maps/ThreeIsland_House1_Frlg/map.json b/data/maps/ThreeIsland_House1_Frlg/map.json new file mode 100644 index 000000000000..a8e62ab0076a --- /dev/null +++ b/data/maps/ThreeIsland_House1_Frlg/map.json @@ -0,0 +1,54 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE1", + "name": "ThreeIsland_House1_Frlg", + "layout": "LAYOUT_THREE_ISLAND_HOUSE1", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 3, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House1_EventScript_Lostelle", + "flag": "FLAG_HIDE_LOSTELLE_IN_HER_HOME" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 2, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ThreeIsland_House1_EventScript_DisplayCase" + } + ] +} diff --git a/data/maps/ThreeIsland_House1_Frlg/scripts.inc b/data/maps/ThreeIsland_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..286596cac3d5 --- /dev/null +++ b/data/maps/ThreeIsland_House1_Frlg/scripts.inc @@ -0,0 +1,24 @@ +ThreeIsland_House1_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_House1_EventScript_Lostelle:: + lock + faceplayer + special GetPlayerBigGuyGirlString + msgbox ThreeIsland_House1_Text_YoureAlwaysSoCool + release + end + +ThreeIsland_House1_EventScript_DisplayCase:: + msgbox ThreeIsland_House1_Text_RareRocksGemsDisplayed, MSGBOX_SIGN + end + +ThreeIsland_House1_Text_YoureAlwaysSoCool:: + .string "LOSTELLE: Hi, {PLAYER}!\n" + .string "You're always so cool!\p" + .string "I'll make lunch for you, too, one\n" + .string "day, {PLAYER}.$" + +ThreeIsland_House1_Text_RareRocksGemsDisplayed:: + .string "Rare rocks and gems are displayed.$" + diff --git a/data/maps/ThreeIsland_House2_Frlg/map.json b/data/maps/ThreeIsland_House2_Frlg/map.json new file mode 100644 index 000000000000..d798a7db1161 --- /dev/null +++ b/data/maps/ThreeIsland_House2_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE2", + "name": "ThreeIsland_House2_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House2_EventScript_Rocker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House2_EventScript_Man", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House2_Frlg/scripts.inc b/data/maps/ThreeIsland_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..5a5c8a14bfc0 --- /dev/null +++ b/data/maps/ThreeIsland_House2_Frlg/scripts.inc @@ -0,0 +1,32 @@ +ThreeIsland_House2_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_House2_EventScript_Man:: + lock + faceplayer + famechecker FAMECHECKER_SABRINA, 1 + msgbox ThreeIsland_House2_Text_IAdmireSabrina + release + end + +ThreeIsland_House2_EventScript_Rocker:: + msgbox ThreeIsland_House2_Text_CantMakeThisSpoonBend, MSGBOX_NPC + end + +ThreeIsland_House2_Text_CantMakeThisSpoonBend:: + .string "Urrrrrrrrgggghhhh…\n" + .string "Kwaaaaah!\p" + .string "…It's useless! I can't make this\n" + .string "spoon bend with my mind.\p" + .string "Maybe I really don't have any\n" + .string "psychic powers.$" + +ThreeIsland_House2_Text_IAdmireSabrina:: + .string "You know about a girl GYM LEADER\n" + .string "in SAFFRON CITY?\p" + .string "She uses PSYCHIC-type POKéMON,\n" + .string "right?\p" + .string "I admire her, I really do.\p" + .string "I've heard that she's one cool\n" + .string "customer and beautiful, too.$" + diff --git a/data/maps/ThreeIsland_House3_Frlg/map.json b/data/maps/ThreeIsland_House3_Frlg/map.json new file mode 100644 index 000000000000..bbd5c6e11b87 --- /dev/null +++ b/data/maps/ThreeIsland_House3_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE3", + "name": "ThreeIsland_House3_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 8, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House3_EventScript_Beauty", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House3_Frlg/scripts.inc b/data/maps/ThreeIsland_House3_Frlg/scripts.inc new file mode 100644 index 000000000000..016e916aa3e1 --- /dev/null +++ b/data/maps/ThreeIsland_House3_Frlg/scripts.inc @@ -0,0 +1,12 @@ +ThreeIsland_House3_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_House3_EventScript_Beauty:: + msgbox ThreeIsland_House3_Text_WantedToLiveSomewhereQuiet, MSGBOX_NPC + end + +ThreeIsland_House3_Text_WantedToLiveSomewhereQuiet:: + .string "I bought this house because I\n" + .string "wanted to live somewhere quiet.\p" + .string "Today, I think I'll go out fishing.$" + diff --git a/data/maps/ThreeIsland_House4_Frlg/map.json b/data/maps/ThreeIsland_House4_Frlg/map.json new file mode 100644 index 000000000000..307cd4fc95b8 --- /dev/null +++ b/data/maps/ThreeIsland_House4_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE4", + "name": "ThreeIsland_House4_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House4_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 6, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House4_EventScript_LittleBoy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House4_Frlg/scripts.inc b/data/maps/ThreeIsland_House4_Frlg/scripts.inc new file mode 100644 index 000000000000..38d41b9b91e1 --- /dev/null +++ b/data/maps/ThreeIsland_House4_Frlg/scripts.inc @@ -0,0 +1,21 @@ +ThreeIsland_House4_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_House4_EventScript_BaldingMan:: + msgbox ThreeIsland_House4_Text_GhostsInBerryForest, MSGBOX_NPC + end + +ThreeIsland_House4_EventScript_LittleBoy:: + msgbox ThreeIsland_House4_Text_PapaKeepsLyingToMe, MSGBOX_NPC + end + +ThreeIsland_House4_Text_GhostsInBerryForest:: + .string "You must never, ever go out to\n" + .string "the BERRY FOREST alone.\p" + .string "Why?\n" + .string "There are ghosts there.$" + +ThreeIsland_House4_Text_PapaKeepsLyingToMe:: + .string "Papa keeps lying to me, and won't\n" + .string "let me go out and play!$" + diff --git a/data/maps/ThreeIsland_House5_Frlg/map.json b/data/maps/ThreeIsland_House5_Frlg/map.json new file mode 100644 index 000000000000..55b2419c3526 --- /dev/null +++ b/data/maps/ThreeIsland_House5_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_THREE_ISLAND_HOUSE5", + "name": "ThreeIsland_House5_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_House5_EventScript_LittleGirl", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_House5_Frlg/scripts.inc b/data/maps/ThreeIsland_House5_Frlg/scripts.inc new file mode 100644 index 000000000000..edcfb684d748 --- /dev/null +++ b/data/maps/ThreeIsland_House5_Frlg/scripts.inc @@ -0,0 +1,28 @@ +ThreeIsland_House5_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_House5_EventScript_LittleGirl:: + lock + faceplayer + goto_if_set FLAG_RESCUED_LOSTELLE, ThreeIsland_House5_EventScript_LittleGirlLostelleFound + msgbox ThreeIsland_House5_Text_ImNotLostelle + release + end + +ThreeIsland_House5_EventScript_LittleGirlLostelleFound:: + msgbox ThreeIsland_House5_Text_IllGoPlayWithLostelle + release + end + +ThreeIsland_House5_Text_ImNotLostelle:: + .string "Me?\n" + .string "I'm not LOSTELLE.\p" + .string "She's probably gone to the\n" + .string "BERRY FOREST, I think.\p" + .string "She picks BERRIES there for making\n" + .string "lunch.$" + +ThreeIsland_House5_Text_IllGoPlayWithLostelle:: + .string "I think I'll go play with LOSTELLE\n" + .string "today.$" + diff --git a/data/maps/ThreeIsland_Mart_Frlg/map.json b/data/maps/ThreeIsland_Mart_Frlg/map.json new file mode 100644 index 000000000000..12fa177bf2ed --- /dev/null +++ b/data/maps/ThreeIsland_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_THREE_ISLAND_MART", + "name": "ThreeIsland_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PICNICKER_FRLG", + "x": 2, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Mart_EventScript_Picnicker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Mart_EventScript_BugCatcher", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 6, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Mart_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_Mart_Frlg/scripts.inc b/data/maps/ThreeIsland_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..5b1aba1572f5 --- /dev/null +++ b/data/maps/ThreeIsland_Mart_Frlg/scripts.inc @@ -0,0 +1,54 @@ +ThreeIsland_Mart_Frlg_MapScripts:: + .byte 0 + +ThreeIsland_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart ThreeIsland_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +ThreeIsland_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +ThreeIsland_Mart_EventScript_Picnicker:: + msgbox ThreeIsland_Mart_Text_TrueThatCeldadonDeptStoreBigger, MSGBOX_NPC + end + +ThreeIsland_Mart_EventScript_BugCatcher:: + msgbox ThreeIsland_Mart_Text_PeopleHealWithBerriesFromForest, MSGBOX_NPC + end + +ThreeIsland_Mart_EventScript_Youngster:: + msgbox ThreeIsland_Mart_Text_BikersWereAboutToTrashMart, MSGBOX_NPC + end + +ThreeIsland_Mart_Text_TrueThatCeldadonDeptStoreBigger:: + .string "Is it true?\p" + .string "CELADON DEPT. STORE is several\n" + .string "times bigger than this shop?$" + +ThreeIsland_Mart_Text_PeopleHealWithBerriesFromForest:: + .string "I sometimes buy medicine here.\p" + .string "But a lot of people heal POKéMON\n" + .string "with BERRIES from BERRY FOREST.\p" + .string "After all, BERRIES are free and\n" + .string "they never run out.$" + +ThreeIsland_Mart_Text_BikersWereAboutToTrashMart:: + .string "Those BIKERS were about to trash\n" + .string "this POKéMON MART.\p" + .string "Am I glad they decided to leave!$" + diff --git a/data/maps/ThreeIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/ThreeIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..d534aceccdcf --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,95 @@ +{ + "id": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", + "name": "ThreeIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_THREE_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 12, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_PokemonCenter_1F_EventScript_Rocker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 3, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_PokemonCenter_1F_EventScript_Lass", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_PokemonCenter_1F_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND", + "dest_warp_id": "1" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/ThreeIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..2d63ed771c5d --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,47 @@ +ThreeIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ThreeIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +ThreeIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_THREE_ISLAND + end + +ThreeIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +ThreeIsland_PokemonCenter_1F_EventScript_Sailor:: + msgbox ThreeIsland_PokemonCenter_1F_Text_ImpossibleToSurfBetweenIslands, MSGBOX_NPC + end + +ThreeIsland_PokemonCenter_1F_EventScript_Lass:: + msgbox ThreeIsland_PokemonCenter_1F_Text_AlwaysBerriesInBerryForest, MSGBOX_NPC + end + +ThreeIsland_PokemonCenter_1F_EventScript_Rocker:: + msgbox ThreeIsland_PokemonCenter_1F_Text_PCNetworkCanLinkWithKanto, MSGBOX_NPC + end + +ThreeIsland_PokemonCenter_1F_Text_PCNetworkCanLinkWithKanto:: + .string "Hey, did you hear the news?\p" + .string "The PC network here can now link\n" + .string "with PCs in KANTO.\p" + .string "I don't know how that came about,\n" + .string "but it's fantastic!$" + +ThreeIsland_PokemonCenter_1F_Text_ImpossibleToSurfBetweenIslands:: + .string "It's impossible to SURF between the\n" + .string "islands around these parts.\p" + .string "The tides are too fast and\n" + .string "treacherous.$" + +ThreeIsland_PokemonCenter_1F_Text_AlwaysBerriesInBerryForest:: + .string "Let's crush BERRIES!\n" + .string "…That'd be wasting BERRIES?\p" + .string "You can always find some BERRIES\n" + .string "on the ground in BERRY FOREST.$" + diff --git a/data/maps/ThreeIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/ThreeIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..0029c35bf603 --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_THREE_ISLAND_POKEMON_CENTER_2F", + "name": "ThreeIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ThreeIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/ThreeIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..fa7a40f489c7 --- /dev/null +++ b/data/maps/ThreeIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +ThreeIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +ThreeIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +ThreeIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +ThreeIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/ThreeIsland_Port_Frlg/map.json b/data/maps/ThreeIsland_Port_Frlg/map.json new file mode 100644 index 000000000000..d5b7b962adcc --- /dev/null +++ b/data/maps/ThreeIsland_Port_Frlg/map.json @@ -0,0 +1,97 @@ +{ + "id": "MAP_THREE_ISLAND_PORT", + "name": "ThreeIsland_Port_Frlg", + "layout": "LAYOUT_THREE_ISLAND_PORT", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_THREE_ISLE_PORT", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_THREE_ISLAND", + "offset": 0, + "direction": "up" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Port_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 8, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT", + "movement_range_x": 3, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Port_EventScript_Biker1", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 13, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ThreeIsland_Port_EventScript_Biker2", + "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" + } + ], + "warp_events": [ + { + "x": 16, + "y": 4, + "elevation": 0, + "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", + "dest_warp_id": "0" + }, + { + "x": 38, + "y": 5, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", + "dest_warp_id": "1" + }, + { + "x": 12, + "y": 13, + "elevation": 3, + "dest_map": "MAP_THREE_ISLAND_HARBOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/ThreeIsland_Port_Frlg/scripts.inc b/data/maps/ThreeIsland_Port_Frlg/scripts.inc new file mode 100644 index 000000000000..fb57604e5b66 --- /dev/null +++ b/data/maps/ThreeIsland_Port_Frlg/scripts.inc @@ -0,0 +1,64 @@ +ThreeIsland_Port_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ThreeIsland_Port_OnTransition + .byte 0 + +ThreeIsland_Port_OnTransition:: + clearflag FLAG_SYS_PC_STORAGE_DISABLED + setflag FLAG_SEVII_DETOUR_FINISHED + end + +ThreeIsland_Port_EventScript_Woman:: + lock + faceplayer + goto_if_ge VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2, ThreeIsland_Port_EventScript_WomanLostelleFound + goto_if_ge VAR_MAP_SCENE_THREE_ISLAND, 4, ThreeIsland_Port_EventScript_WomanBikersGone + msgbox ThreeIsland_Port_Text_IllCallThePolice + release + end + +ThreeIsland_Port_EventScript_WomanLostelleFound:: + msgbox ThreeIsland_Port_Text_EverythingTurnedOutForBest + release + end + +ThreeIsland_Port_EventScript_WomanBikersGone:: + msgbox ThreeIsland_Port_Text_ThankGoodnessBikersGone + release + end + +ThreeIsland_Port_EventScript_Biker1:: + msgbox ThreeIsland_Port_Text_WereKantoRiderFederation, MSGBOX_NPC + end + +ThreeIsland_Port_EventScript_Biker2:: + lock + msgbox ThreeIsland_Port_Text_ForkOverMoney + release + end + +ThreeIsland_Port_Text_WereKantoRiderFederation:: + .string "We're the KANTO RIDER FEDERATION!\n" + .string "Vroom! Vavavavooom! Vroom!\p" + .string "My bike's wimpy, so I have to\n" + .string "make exhaust noises myself!$" + +ThreeIsland_Port_Text_ForkOverMoney:: + .string "Hey, hey, lady!\n" + .string "Fork over some spending money!$" + +ThreeIsland_Port_Text_IllCallThePolice:: + .string "Aiyeeh!\p" + .string "Wh-who are you?!\n" + .string "I… I'll call the police!$" + +ThreeIsland_Port_Text_ThankGoodnessBikersGone:: + .string "Those BIKERS…\n" + .string "Are they gone?\p" + .string "Oh, thank goodness!\n" + .string "They certainly had me terrified!$" + +ThreeIsland_Port_Text_EverythingTurnedOutForBest:: + .string "Those BIKERS ran off, and\n" + .string "LOSTELLE was found safe.\p" + .string "Everything turned out for the best!$" + diff --git a/data/maps/TradeCenter_Frlg/map.json b/data/maps/TradeCenter_Frlg/map.json new file mode 100644 index 000000000000..f7a6a92338dc --- /dev/null +++ b/data/maps/TradeCenter_Frlg/map.json @@ -0,0 +1,71 @@ +{ + "id": "MAP_TRADE_CENTER_FRLG", + "name": "TradeCenter_Frlg", + "layout": "LAYOUT_TRADE_CENTER_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", + "x": 9, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TradeCenter_EventScript_Attendant_Frlg", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 4, + "y": 5, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "TradeCenter_EventScript_Chair0" + }, + { + "type": "trigger", + "x": 7, + "y": 5, + "elevation": 3, + "var": "VAR_TEMP_0", + "var_value": "0", + "script": "TradeCenter_EventScript_Chair1" + } + ], + "bg_events": [] +} diff --git a/data/maps/TradeCenter_Frlg/scripts.inc b/data/maps/TradeCenter_Frlg/scripts.inc new file mode 100644 index 000000000000..bcc7777d89e6 --- /dev/null +++ b/data/maps/TradeCenter_Frlg/scripts.inc @@ -0,0 +1,2 @@ +TradeCenter_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 0ab5545175d2..a223a8884516 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -215,6 +215,7 @@ TrainerHill_Entrance_Movement_PlayerExitElevator: TrainerHill_Entrance_EventScript_Records:: lockall fadescreen FADE_TO_BLACK + setvar VAR_0x8004, 0 special ShowTrainerHillRecords waitstate releaseall diff --git a/data/maps/TrainerTower_1F_Frlg/map.json b/data/maps/TrainerTower_1F_Frlg/map.json new file mode 100644 index 000000000000..ae6c26608766 --- /dev/null +++ b/data/maps/TrainerTower_1F_Frlg/map.json @@ -0,0 +1,142 @@ +{ + "id": "MAP_TRAINER_TOWER_1F", + "name": "TrainerTower_1F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_1F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_2F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_LOBBY", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 0, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [ + + ] +} diff --git a/data/maps/TrainerTower_1F_Frlg/scripts.inc b/data/maps/TrainerTower_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..15f698ff60ec --- /dev/null +++ b/data/maps/TrainerTower_1F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ All Trainer Tower floors/roof share these scripts for their object events + +TrainerTower_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_2F_Frlg/map.json b/data/maps/TrainerTower_2F_Frlg/map.json new file mode 100644 index 000000000000..760b02d00e17 --- /dev/null +++ b/data/maps/TrainerTower_2F_Frlg/map.json @@ -0,0 +1,147 @@ +{ + "id": "MAP_TRAINER_TOWER_2F", + "name": "TrainerTower_2F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_2F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_3F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_1F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/TrainerTower_2F_Frlg/scripts.inc b/data/maps/TrainerTower_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..cfcb980079f0 --- /dev/null +++ b/data/maps/TrainerTower_2F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_2F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_2F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_2F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_2F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_2F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_3F_Frlg/map.json b/data/maps/TrainerTower_3F_Frlg/map.json new file mode 100644 index 000000000000..7deefdf9fa5d --- /dev/null +++ b/data/maps/TrainerTower_3F_Frlg/map.json @@ -0,0 +1,149 @@ +{ + "id": "MAP_TRAINER_TOWER_3F", + "name": "TrainerTower_3F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_3F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_4F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_2F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [ + + ] +} diff --git a/data/maps/TrainerTower_3F_Frlg/scripts.inc b/data/maps/TrainerTower_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..18be53549d6b --- /dev/null +++ b/data/maps/TrainerTower_3F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_3F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_3F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_3F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_3F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_3F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_3F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_4F_Frlg/map.json b/data/maps/TrainerTower_4F_Frlg/map.json new file mode 100644 index 000000000000..26eb60f3762d --- /dev/null +++ b/data/maps/TrainerTower_4F_Frlg/map.json @@ -0,0 +1,147 @@ +{ + "id": "MAP_TRAINER_TOWER_4F", + "name": "TrainerTower_4F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_4F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_5F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_3F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/TrainerTower_4F_Frlg/scripts.inc b/data/maps/TrainerTower_4F_Frlg/scripts.inc new file mode 100644 index 000000000000..1f2cbdeda585 --- /dev/null +++ b/data/maps/TrainerTower_4F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_4F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_4F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_4F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_4F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_4F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_4F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_5F_Frlg/map.json b/data/maps/TrainerTower_5F_Frlg/map.json new file mode 100644 index 000000000000..904208f64163 --- /dev/null +++ b/data/maps/TrainerTower_5F_Frlg/map.json @@ -0,0 +1,149 @@ +{ + "id": "MAP_TRAINER_TOWER_5F", + "name": "TrainerTower_5F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_5F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_6F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_4F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [ + + ] +} diff --git a/data/maps/TrainerTower_5F_Frlg/scripts.inc b/data/maps/TrainerTower_5F_Frlg/scripts.inc new file mode 100644 index 000000000000..f1b9bbafc9a5 --- /dev/null +++ b/data/maps/TrainerTower_5F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_5F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_5F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_5F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_5F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_5F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_5F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_6F_Frlg/map.json b/data/maps/TrainerTower_6F_Frlg/map.json new file mode 100644 index 000000000000..74bad247abb6 --- /dev/null +++ b/data/maps/TrainerTower_6F_Frlg/map.json @@ -0,0 +1,147 @@ +{ + "id": "MAP_TRAINER_TOWER_6F", + "name": "TrainerTower_6F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_6F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_7F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_5F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/TrainerTower_6F_Frlg/scripts.inc b/data/maps/TrainerTower_6F_Frlg/scripts.inc new file mode 100644 index 000000000000..d804cc0b8d51 --- /dev/null +++ b/data/maps/TrainerTower_6F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_6F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_6F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_6F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_6F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_6F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_6F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_7F_Frlg/map.json b/data/maps/TrainerTower_7F_Frlg/map.json new file mode 100644 index 000000000000..f249076b5f24 --- /dev/null +++ b/data/maps/TrainerTower_7F_Frlg/map.json @@ -0,0 +1,147 @@ +{ + "id": "MAP_TRAINER_TOWER_7F", + "name": "TrainerTower_7F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_7F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_8F", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_6F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/TrainerTower_7F_Frlg/scripts.inc b/data/maps/TrainerTower_7F_Frlg/scripts.inc new file mode 100644 index 000000000000..c7ed4f3935b5 --- /dev/null +++ b/data/maps/TrainerTower_7F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_7F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_7F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_7F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_7F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_7F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_7F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_8F_Frlg/map.json b/data/maps/TrainerTower_8F_Frlg/map.json new file mode 100644 index 000000000000..99f5cf8e000b --- /dev/null +++ b/data/maps/TrainerTower_8F_Frlg/map.json @@ -0,0 +1,147 @@ +{ + "id": "MAP_TRAINER_TOWER_8F", + "name": "TrainerTower_8F_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_8F", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer1", + "flag": "FLAG_TEMP_2" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_SINGLES", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 15, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_SinglesTrainer", + "flag": "FLAG_TEMP_3" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_KNOCKOUT", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_KnockoutTrainer", + "flag": "FLAG_TEMP_4" + }, + { + "local_id": "LOCALID_TOWER_TRAINER_DOUBLES2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 11, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_DoublesTrainer2", + "flag": "FLAG_TEMP_5" + } + ], + "warp_events": [ + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_ROOF", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_7F", + "dest_warp_id": "0" + }, + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 10, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_E", + "var_value": "0", + "script": "TrainerTower_EventScript_SingleBattleTrigger" + }, + { + "type": "trigger", + "x": 9, + "y": 12, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerTop" + }, + { + "type": "trigger", + "x": 9, + "y": 13, + "elevation": 3, + "var": "VAR_TEMP_F", + "var_value": "0", + "script": "TrainerTower_EventScript_DoubleBattleTriggerBottom" + } + ], + "bg_events": [] +} diff --git a/data/maps/TrainerTower_8F_Frlg/scripts.inc b/data/maps/TrainerTower_8F_Frlg/scripts.inc new file mode 100644 index 000000000000..2c67eebfbc3a --- /dev/null +++ b/data/maps/TrainerTower_8F_Frlg/scripts.inc @@ -0,0 +1,27 @@ +TrainerTower_8F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below scripts are unused, the identical versions in the 1F script are used instead + +TrainerTower_8F_EventScript_DoublesTrainer1:: + call TrainerTower_EventScript_SpeakToDoublesTrainer1 + end + +TrainerTower_8F_EventScript_SinglesTrainer:: + call TrainerTower_EventScript_SpeakToSinglesTrainer + end + +TrainerTower_8F_EventScript_KnockoutTrainer:: + call TrainerTower_EventScript_SpeakToKnockoutTrainer + end + +TrainerTower_8F_EventScript_DoublesTrainer2:: + call TrainerTower_EventScript_SpeakToDoublesTrainer2 + end + +TrainerTower_8F_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TrainerTower_Elevator_Frlg/map.json b/data/maps/TrainerTower_Elevator_Frlg/map.json new file mode 100644 index 000000000000..9eef3ebde8b5 --- /dev/null +++ b/data/maps/TrainerTower_Elevator_Frlg/map.json @@ -0,0 +1,39 @@ +{ + "id": "MAP_TRAINER_TOWER_ELEVATOR", + "name": "TrainerTower_Elevator_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_ELEVATOR", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 2, + "y": 5, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 0, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "TrainerTower_Elevator_EventScript_FloorSelect" + } + ] +} diff --git a/data/maps/TrainerTower_Elevator_Frlg/scripts.inc b/data/maps/TrainerTower_Elevator_Frlg/scripts.inc new file mode 100644 index 000000000000..a09b181fd9e4 --- /dev/null +++ b/data/maps/TrainerTower_Elevator_Frlg/scripts.inc @@ -0,0 +1,79 @@ +TrainerTower_Elevator_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +TrainerTower_Elevator_EventScript_FloorSelect:: + lockall + setvar VAR_0x8004, 6 + call_if_unset FLAG_TEMP_2, EventScript_GetElevatorFloor + copyvar VAR_0x8005, VAR_ELEVATOR_FLOOR + special DrawElevatorCurrentFloorWindow + message gText_WantWhichFloor + waitmessage + setvar VAR_0x8004, 6 + specialvar VAR_RESULT, InitElevatorFloorSelectMenuPos + switch VAR_RESULT + case 0, TrainerTower_Elevator_EventScript_FloorSelectFromRoof + case 1, TrainerTower_Elevator_EventScript_FloorSelectFromLobby + end + +TrainerTower_Elevator_EventScript_FloorSelectFromRoof:: + multichoicedefault 0, 0, MULTI_ROOFTOP_B1F, 0, FALSE + goto TrainerTower_Elevator_EventScript_ChooseFloor + end + +TrainerTower_Elevator_EventScript_FloorSelectFromLobby:: + multichoicedefault 0, 0, MULTI_ROOFTOP_B1F, 1, FALSE + goto TrainerTower_Elevator_EventScript_ChooseFloor + end + +TrainerTower_Elevator_EventScript_ChooseFloor:: + switch VAR_RESULT + case 0, TrainerTower_Elevator_EventScript_SelectRoof + case 1, TrainerTower_Elevator_EventScript_SelectLobby + case 2, TrainerTower_Elevator_EventScript_CloseFloorSelect + case MULTI_B_PRESSED, TrainerTower_Elevator_EventScript_CloseFloorSelect + end + +TrainerTower_Elevator_EventScript_SelectLobby:: + setvar VAR_0x8006, 3 + setdynamicwarp MAP_TRAINER_TOWER_LOBBY, 17, 8 + goto_if_eq VAR_ELEVATOR_FLOOR, 3, TrainerTower_Elevator_EventScript_CloseFloorSelect + call TrainerTower_Elevator_EventScript_MoveElevator + setvar VAR_ELEVATOR_FLOOR, 3 + special CloseElevatorCurrentFloorWindow + delay 25 + applymovement LOCALID_PLAYER, TrainerTower_Elevator_Movement_ExitElevator + waitmovement 0 + warp MAP_TRAINER_TOWER_LOBBY, 17, 8 + waitstate + releaseall + end + +TrainerTower_Elevator_EventScript_SelectRoof:: + goto TrainerTower_Elevator_EventScript_CloseFloorSelect + end + +TrainerTower_Elevator_EventScript_CloseFloorSelect:: + special CloseElevatorCurrentFloorWindow + releaseall + end + +TrainerTower_Elevator_EventScript_MoveElevator:: + special CloseElevatorCurrentFloorWindow + closemessage + waitse + special AnimateElevator + waitstate + setflag FLAG_TEMP_2 + return + +TrainerTower_Elevator_Movement_ExitElevator:: + walk_in_place_faster_down + delay_16 + walk_down + walk_right + walk_right + walk_down + step_end diff --git a/data/maps/TrainerTower_Lobby_Frlg/map.json b/data/maps/TrainerTower_Lobby_Frlg/map.json new file mode 100644 index 000000000000..567daf430a3a --- /dev/null +++ b/data/maps/TrainerTower_Lobby_Frlg/map.json @@ -0,0 +1,139 @@ +{ + "id": "MAP_TRAINER_TOWER_LOBBY", + "name": "TrainerTower_Lobby_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_LOBBY", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_TOWER_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 4, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_Lobby_EventScript_Nurse", + "flag": "0" + }, + { + "local_id": "LOCALID_TOWER_MART_CLERK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", + "x": 14, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_Lobby_EventScript_MartClerk", + "flag": "0" + }, + { + "local_id": "LOCALID_TOWER_RECEPTIONIST", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", + "x": 11, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_Lobby_EventScript_Receptionist", + "flag": "0" + }, + { + "local_id": "LOCALID_TOWER_COOLTRAINER_F", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 12, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_Lobby_EventScript_CooltrainerF", + "flag": "0" + }, + { + "local_id": "LOCALID_TOWER_BALDING_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 2, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_Lobby_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 9, + "y": 2, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_1F", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 15, + "elevation": 3, + "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER", + "dest_warp_id": "0" + }, + { + "x": 17, + "y": 8, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 9, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_TRAINER_TOWER", + "var_value": "0", + "script": "TrainerTower_Lobby_EventScript_EntryTrigger" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 8, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "TrainerTower_Lobby_EventScript_ShowRecords" + } + ] +} diff --git a/data/maps/TrainerTower_Lobby_Frlg/scripts.inc b/data/maps/TrainerTower_Lobby_Frlg/scripts.inc new file mode 100644 index 000000000000..951d0da7bfb0 --- /dev/null +++ b/data/maps/TrainerTower_Lobby_Frlg/scripts.inc @@ -0,0 +1,342 @@ +TrainerTower_Lobby_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_Lobby_OnResume + map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, TrainerTower_Lobby_OnReturnToField + map_script MAP_SCRIPT_ON_TRANSITION, TrainerTower_Lobby_OnTransition + map_script MAP_SCRIPT_ON_LOAD, TrainerTower_Lobby_OnLoad + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_Lobby_OnFrame + .byte 0 + +TrainerTower_Lobby_OnResume:: + setvar VAR_TEMP_2, 0 + ttower_resumetimer + ttower_shouldexit + goto_if_eq VAR_RESULT, FALSE, TrainerTower_Lobby_OnResumeEnd + @ Never reached, above always FALSE + setvar VAR_TEMP_0, 0 + setobjectxy LOCALID_PLAYER, 9, 7 + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_FaceReceptionist +TrainerTower_Lobby_OnResumeEnd:: + end + +TrainerTower_Lobby_OnReturnToField:: + addobject LOCALID_TOWER_NURSE + addobject LOCALID_TOWER_MART_CLERK + addobject LOCALID_TOWER_RECEPTIONIST + addobject LOCALID_TOWER_COOLTRAINER_F + addobject LOCALID_TOWER_BALDING_MAN + end + +TrainerTower_Lobby_OnLoad:: + call_if_eq VAR_TEMP_D, 17, TrainerTower_Lobby_OpenCounterBarrier + end + +TrainerTower_Lobby_OpenCounterBarrier:: + setmetatile 17, 10, METATILE_TrainerTower_Floor_ShadeBottomLeft, 0 + return + +TrainerTower_Lobby_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_TRAINER_TOWER_LOBBY + getplayerxy VAR_TEMP_D, VAR_RESULT + end + +TrainerTower_Lobby_OnFrame:: + map_script_2 VAR_TEMP_0, 0, TrainerTower_Lobby_EventScript_Enter + map_script_2 VAR_TEMP_D, 17, TrainerTower_Lobby_EventScript_ExitElevator + .2byte 0 + +TrainerTower_Lobby_EventScript_ExitElevator:: + lockall + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_ExitElevator + waitmovement 0 + setmetatile 17, 10, METATILE_TrainerTower_CounterBarrier, 1 + special DrawWholeMapView + playse SE_CLICK + waitse + setvar VAR_TEMP_D, 0 + releaseall + end + +TrainerTower_Lobby_Movement_ExitElevator:: + walk_down + walk_down + step_end + +TrainerTower_Lobby_EventScript_Enter:: + setvar VAR_TEMP_0, 1 + ttower_getchallengestatus + switch VAR_RESULT + case TT_CHALLENGE_STATUS_LOST, TrainerTower_Lobby_EventScript_LostChallenge + case TT_CHALLENGE_STATUS_UNK, TrainerTower_Lobby_EventScript_ExitChallengeSpeakToReceptionist + case TT_CHALLENGE_STATUS_NORMAL, TrainerTower_Lobby_EventScript_EnterEnd + +TrainerTower_Lobby_EventScript_LostChallenge:: + lock + faceplayer + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_FaceReceptionist + textcolor NPC_TEXT_COLOR_FEMALE + msgbox TrainerTower_Lobby_Text_TooBadComeBackTryAgain + goto TrainerTower_Lobby_EventScript_ExitChallenge + +@ Presumably E-Reader related +TrainerTower_Lobby_EventScript_ExitChallengeSpeakToReceptionist:: + lock + faceplayer + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_FaceReceptionist + textcolor NPC_TEXT_COLOR_FEMALE + msgbox TrainerTower_Lobby_Text_MoveCounterHereWhenTrainersSwitch +TrainerTower_Lobby_EventScript_ExitChallenge:: + closemessage + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_WalkDown + waitmovement 0 + setvar VAR_MAP_SCENE_TRAINER_TOWER, 0 + release +TrainerTower_Lobby_EventScript_EnterEnd:: + end + +TrainerTower_Lobby_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +TrainerTower_Lobby_EventScript_Receptionist:: + lock + faceplayer + ttower_getbeatchallenge + goto_if_eq VAR_RESULT, TRUE, TrainerTower_Lobby_EventScript_ThanksForCompeting + msgbox TrainerTower_Lobby_Text_GiveItYourBest + goto TrainerTower_Lobby_EventScript_ReceptionistEnd + +TrainerTower_Lobby_EventScript_ThanksForCompeting:: + msgbox TrainerTower_Lobby_Text_ThanksForCompeting +TrainerTower_Lobby_EventScript_ReceptionistEnd:: + release + end + +TrainerTower_Lobby_EventScript_MartClerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart TrainerTower_Lobby_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +TrainerTower_Lobby_Mart_Items:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_FULL_RESTORE + .2byte ITEM_MAX_POTION + .2byte ITEM_HYPER_POTION + .2byte ITEM_REVIVE + .2byte ITEM_FULL_HEAL + .2byte ITEM_ESCAPE_ROPE + .2byte ITEM_MAX_REPEL + .2byte ITEM_NONE + release + end + +TrainerTower_Lobby_EventScript_EntryTrigger:: + lockall + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_FaceReceptionist + textcolor NPC_TEXT_COLOR_FEMALE + msgbox TrainerTower_Lobby_Text_WelcomeToTrainerTower + ttower_getnumfloors + goto_if_eq VAR_RESULT, FALSE, TrainerTower_Lobby_EventScript_AllFloorsUsed + msgbox TrainerTower_Lobby_Text_TrainersUpToFloorNum + goto TrainerTower_Lobby_EventScript_AskEnterChallenge + +TrainerTower_Lobby_EventScript_AllFloorsUsed:: + msgbox TrainerTower_Lobby_Text_TrainersUpEighthFloor +TrainerTower_Lobby_EventScript_AskEnterChallenge:: + message TrainerTower_Lobby_Text_LikeToChallengeTrainers + waitmessage + multichoice 18, 6, MULTI_YESNOINFO, FALSE + switch VAR_RESULT + case 0, TrainerTower_Lobby_EventScript_ChooseChallenge + case 1, TrainerTower_Lobby_EventScript_DeclineChallenge + case 2, TrainerTower_Lobby_EventScript_ChallengeInfo + case MULTI_B_PRESSED, TrainerTower_Lobby_EventScript_DeclineChallenge + end + +TrainerTower_Lobby_EventScript_ChallengeInfo:: + msgbox TrainerTower_Lobby_Text_ExplainTrainerTower + goto TrainerTower_Lobby_EventScript_AskEnterChallenge + end + +TrainerTower_Lobby_EventScript_ChooseChallenge:: + multichoice 13, 3, MULTI_TRAINER_TOWER_MODE, FALSE + switch VAR_RESULT + case 0, TrainerTower_Lobby_EventScript_BeginChallenge + case 1, TrainerTower_Lobby_EventScript_BeginChallenge + case 2, TrainerTower_Lobby_EventScript_BeginChallenge + case 3, TrainerTower_Lobby_EventScript_BeginChallenge + case 4, TrainerTower_Lobby_EventScript_DeclineChallenge + case MULTI_B_PRESSED, TrainerTower_Lobby_EventScript_DeclineChallenge + end + +TrainerTower_Lobby_EventScript_BeginChallenge:: + copyvar VAR_0x8005, VAR_RESULT + setvar VAR_MAP_SCENE_TRAINER_TOWER, 1 + special HealPlayerParty + msgbox TrainerTower_Lobby_Text_StartClockGetSetGo + ttower_startchallenge + releaseall + end + +TrainerTower_Lobby_EventScript_DeclineChallenge:: + msgbox TrainerTower_Lobby_Text_PleaseVisitUsAgain + closemessage + applymovement LOCALID_PLAYER, TrainerTower_Lobby_Movement_WalkDown + waitmovement 0 + releaseall + end + +TrainerTower_Lobby_Movement_FaceReceptionist:: + face_right + step_end + +TrainerTower_Lobby_Movement_WalkDown:: + walk_down + step_end + +TrainerTower_Lobby_EventScript_ShowRecords:: + lockall + fadescreen FADE_TO_BLACK + setvar VAR_0x8004, 1 + special ShowTrainerHillRecords + waitstate + releaseall + end + +TrainerTower_Lobby_EventScript_CooltrainerF:: + msgbox TrainerTower_Lobby_Text_WonderWhatKindsOfTrainers, MSGBOX_NPC + end + +TrainerTower_Lobby_EventScript_BaldingMan:: + msgbox TrainerTower_Lobby_Text_StairsTougherThanAnyBattle, MSGBOX_NPC + end + +@ All Trainer Tower text (Lobby and Roof) is interleaved here + +TrainerTower_Lobby_Text_WelcomeToTrainerTower:: + .string "Hello!\p" + .string "Welcome to TRAINER TOWER where\n" + .string "TRAINERS gather from all over!$" + +TrainerTower_Lobby_Text_TrainersUpToFloorNum:: + .string "TRAINERS from all over the world\n" + .string "gather here to battle.\p" + .string "Let me see…\p" + .string "Right now, there are TRAINERS only\n" + .string "up to Floor {STR_VAR_1}.$" + +TrainerTower_Lobby_Text_TrainersUpEighthFloor:: + .string "TRAINERS are awaiting your\n" + .string "challenge up to the eighth floor.$" + +TrainerTower_Lobby_Text_LikeToChallengeTrainers:: + .string "Would you like to challenge the\n" + .string "waiting TRAINERS?$" + +TrainerTower_Lobby_Text_StartClockGetSetGo:: + .string "Okay, I'll get the clock started,\n" + .string "so give it everything you have.\p" + .string "On your marks…\p" + .string "Get set…\p" + .string "Go!$" + +TrainerTower_Lobby_Text_PleaseVisitUsAgain:: + .string "Please do visit us again!$" + +TrainerTower_Lobby_Text_TooBadComeBackTryAgain:: + .string "That was too bad.\p" + .string "I think you put in a tremendous\n" + .string "effort in your battling.\p" + .string "Please come back and try again!$" + +TrainerTower_Lobby_Text_GiveItYourBest:: + .string "I hope you give it your best.$" + +TrainerTower_Lobby_Text_MoveCounterHereWhenTrainersSwitch:: + .string "When the TRAINERS switch places,\n" + .string "the movement can be hectic.\p" + .string "To avoid the stampede, we moved\n" + .string "the reception counter here.\p" + .string "I'm sorry for the inconvenience.$" + +TrainerTower_Roof_Text_ImOwnerBattledPerfectly:: + .string "Hello…\p" + .string "I am the owner of this TOWER…\p" + .string "How the sky soars above this\n" + .string "rooftop…\p" + .string "The caress of the winds up here…\p" + .string "It's all so perfect…\p" + .string "The way you battled…\n" + .string "It, too, was perfection…$" + +TrainerTower_Roof_Text_ThisIsForYou:: + .string "This is for you…$" + +TrainerTower_Roof_Text_DoneItInRecordTime:: + .string "Oh!\n" + .string "Stupendous!\p" + .string "It's marvelous how you've come up\n" + .string "here so quickly.\p" + .string "The fact is, you've done it in\n" + .string "record time…\p" + .string "I'll have your record posted at\n" + .string "the reception counter.$" + +TrainerTower_Roof_Text_TookSweetTimeGettingHere:: + .string "You seem to have taken your sweet\n" + .string "time getting here…$" + +TrainerTower_Roof_Text_IdLikeToSeeBetterTime:: + .string "What I would like to see is a\n" + .string "better time out of you…\p" + .string "I'm counting on you.\p" + .string "Until then, farewell…$" + +TrainerTower_Text_XMinYZSec:: + .string "{STR_VAR_1} min. {STR_VAR_2}.{STR_VAR_3} sec.$" + +TrainerTower_Lobby_Text_HereAreTheResults:: + .string "せいせきひょうです$" + +TrainerTower_Lobby_Text_NeedTwoMonsForDouble:: + .string "This is a two-on-two battle.\p" + .string "You may not battle unless you have\n" + .string "at least two POKéMON.$" + +TrainerTower_Lobby_Text_ExplainTrainerTower:: + .string "Here at TRAINER TOWER, there is an\n" + .string "event called TIME ATTACK.\p" + .string "You will be timed on how quickly\n" + .string "you can get from the reception\l" + .string "counter to the OWNER on the roof.\p" + .string "The best times will be recorded on\n" + .string "the Time Board.\p" + .string "Try competing with friends to see\n" + .string "who can beat it the fastest.\p" + .string "You will not earn any EXP. Points\n" + .string "or money by beating TRAINERS here.$" + +TrainerTower_Lobby_Text_ThanksForCompeting:: + .string "Thank you for competing!$" + +TrainerTower_Lobby_Text_WonderWhatKindsOfTrainers:: + .string "I'm here to see how good I am.\p" + .string "I wonder what kinds of TRAINERS\n" + .string "are waiting for me?\p" + .string "It's nerve-racking!$" + +TrainerTower_Lobby_Text_StairsTougherThanAnyBattle:: + .string "Gasp, gasp…\n" + .string "Gasp…\p" + .string "Never mind battling! These stairs…\n" + .string "They're tougher than any battle…$" + diff --git a/data/maps/TrainerTower_Roof_Frlg/map.json b/data/maps/TrainerTower_Roof_Frlg/map.json new file mode 100644 index 000000000000..9e1086f70aec --- /dev/null +++ b/data/maps/TrainerTower_Roof_Frlg/map.json @@ -0,0 +1,52 @@ +{ + "id": "MAP_TRAINER_TOWER_ROOF", + "name": "TrainerTower_Roof_Frlg", + "layout": "LAYOUT_TRAINER_TOWER_ROOF", + "music": "MUS_RG_TRAINER_TOWER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TRAINER_TOWER_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", + "x": 9, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TrainerTower_EventScript_Owner", + "flag": "FLAG_TEMP_6" + } + ], + "warp_events": [ + { + "x": 13, + "y": 5, + "elevation": 0, + "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", + "dest_warp_id": "0" + }, + { + "x": 4, + "y": 6, + "elevation": 3, + "dest_map": "MAP_TRAINER_TOWER_8F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TrainerTower_Roof_Frlg/scripts.inc b/data/maps/TrainerTower_Roof_Frlg/scripts.inc new file mode 100644 index 000000000000..7b90ea4ab6e3 --- /dev/null +++ b/data/maps/TrainerTower_Roof_Frlg/scripts.inc @@ -0,0 +1,10 @@ +TrainerTower_Roof_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, TrainerTower_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, TrainerTower_OnFrame + .byte 0 + +@ Below script is unused, the identical version in the 1F script is used instead + +TrainerTower_Roof_EventScript_Owner:: + call TrainerTower_EventScript_SpeakToOwner + end diff --git a/data/maps/TwoIsland_CapeBrink_Frlg/map.json b/data/maps/TwoIsland_CapeBrink_Frlg/map.json new file mode 100644 index 000000000000..38650a4c9dc7 --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink_Frlg/map.json @@ -0,0 +1,61 @@ +{ + "id": "MAP_TWO_ISLAND_CAPE_BRINK", + "name": "TwoIsland_CapeBrink_Frlg", + "layout": "LAYOUT_TWO_ISLAND_CAPE_BRINK", + "music": "MUS_RG_ROUTE3", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CAPE_BRINK", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_TWO_ISLAND", + "offset": -24, + "direction": "down" + } + ], + "object_events": [ + + ], + "warp_events": [ + { + "x": 12, + "y": 16, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK_HOUSE", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 16, + "y": 28, + "elevation": 3, + "item": "ITEM_PP_MAX", + "flag": "FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX", + "quantity": 1, + "underfoot": true + }, + { + "type": "hidden_item", + "x": 15, + "y": 13, + "elevation": 3, + "item": "ITEM_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/TwoIsland_CapeBrink_Frlg/scripts.inc b/data/maps/TwoIsland_CapeBrink_Frlg/scripts.inc new file mode 100644 index 000000000000..95db895c9501 --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink_Frlg/scripts.inc @@ -0,0 +1,2 @@ +TwoIsland_CapeBrink_Frlg_MapScripts:: + .byte 0 diff --git a/data/maps/TwoIsland_CapeBrink_House_Frlg/map.json b/data/maps/TwoIsland_CapeBrink_House_Frlg/map.json new file mode 100644 index 000000000000..0c05d35e8dea --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink_House_Frlg/map.json @@ -0,0 +1,46 @@ +{ + "id": "MAP_TWO_ISLAND_CAPE_BRINK_HOUSE", + "name": "TwoIsland_CapeBrink_House_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_CAPE_BRINK", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_CAPE_BRINK_TUTOR", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CHANNELER", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_CapeBrink_House_EventScript_StarterTutor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_CapeBrink_House_Frlg/scripts.inc b/data/maps/TwoIsland_CapeBrink_House_Frlg/scripts.inc new file mode 100644 index 000000000000..274034bb9ac6 --- /dev/null +++ b/data/maps/TwoIsland_CapeBrink_House_Frlg/scripts.inc @@ -0,0 +1,58 @@ +TwoIsland_CapeBrink_House_Frlg_MapScripts:: + .byte 0 + +@ See move_tutors.inc + +Text_UltimateMoveThatMon:: + .string "I perfected the ultimate move of\n" + .string "its type…\p" + .string "But will no one take it for\n" + .string "future use?\p" + .string "…Hm? Hmmm!\p" + .string "Y-you…\n" + .string "Th-that {STR_VAR_1}…$" + +Text_JustMistaken:: + .string "…No…\n" + .string "I was just mistaken.$" + +Text_AllowMeToTeachMonUltimateMove:: + .string "Oh! This is the one!\n" + .string "This is the POKéMON!\p" + .string "This {STR_VAR_1} is worthy of\n" + .string "learning my ultimate move!\p" + .string "Will you allow it?\p" + .string "Will you allow your {STR_VAR_1} to\n" + .string "learn my {STR_VAR_2}?$" + +Text_YouRejectIt:: + .string "Gaah! You reject it?\n" + .string "No, I won't be dissuaded!$" + +Text_LetMeConferUltimateMove:: + .string "You will allow it?\p" + .string "Then, let me confer my ultimate\n" + .string "{STR_VAR_2} on your {STR_VAR_1}.\p" + .string "Ggggrah-awooo!$" + +Text_TaughtMove:: + .string "Gasp, gasp, gasp…\p" + .string "I didn't think I could teach that\n" + .string "move while I still lived…$" + +Text_MakeBestUseOfMove:: + .string "I implore you to make the best\n" + .string "use of that move and gain power!$" + +Text_PassedOnEverythingIKnow:: + .string "Gasp, gasp, gasp…\p" + .string "I have no regrets now.\n" + .string "I've passed on everything I know.\p" + .string "Now I can live out my life knowing\n" + .string "my work is done.$" + +Text_FeelRejuvenated:: + .string "After I passed on my knowledge to\n" + .string "you, I felt so much relief.\p" + .string "In fact, I feel rejuvenated,\n" + .string "as if I were younger again!$" diff --git a/data/maps/TwoIsland_Frlg/map.json b/data/maps/TwoIsland_Frlg/map.json new file mode 100644 index 000000000000..5819228427b5 --- /dev/null +++ b/data/maps/TwoIsland_Frlg/map.json @@ -0,0 +1,211 @@ +{ + "id": "MAP_TWO_ISLAND", + "name": "TwoIsland_Frlg", + "layout": "LAYOUT_TWO_ISLAND", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_TWO_ISLAND_CAPE_BRINK", + "offset": 24, + "direction": "up" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 28, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 31, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_Woman", + "flag": "FLAG_HIDE_TWO_ISLAND_WOMAN" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BEAUTY_FRLG", + "x": 30, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_Beauty", + "flag": "FLAG_HIDE_TWO_ISLAND_BEAUTY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 26, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_Sailor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 27, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_SuperNerd", + "flag": "FLAG_HIDE_TWO_ISLAND_SUPER_NERD" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 30, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 39, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_ItemRevive", + "flag": "FLAG_HIDE_TWO_ISLAND_REVIVE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY_FRLG", + "x": 37, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_LittleBoy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 24, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_EventScript_Boy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 39, + "y": 9, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_JOYFUL_GAME_CORNER", + "dest_warp_id": "0" + }, + { + "x": 33, + "y": 9, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_HOUSE", + "dest_warp_id": "0" + }, + { + "x": 21, + "y": 7, + "elevation": 0, + "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "0" + }, + { + "x": 10, + "y": 8, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND_HARBOR", + "dest_warp_id": "0" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 29, + "y": 8, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "TwoIsland_EventScript_IslandSign" + }, + { + "type": "sign", + "x": 40, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "TwoIsland_EventScript_JoyfulGameCornerSign" + }, + { + "type": "sign", + "x": 8, + "y": 3, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "TwoIsland_EventScript_FastCurrentSign" + } + ] +} diff --git a/data/maps/TwoIsland_Frlg/scripts.inc b/data/maps/TwoIsland_Frlg/scripts.inc new file mode 100644 index 000000000000..e263bf0b408a --- /dev/null +++ b/data/maps/TwoIsland_Frlg/scripts.inc @@ -0,0 +1,303 @@ +TwoIsland_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, TwoIsland_OnTransition + .byte 0 + +TwoIsland_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_TWO_ISLAND + setflag FLAG_VISITED_TWO_ISLAND + call TwoIsland_EventScript_SetShopState + end + +TwoIsland_EventScript_SetShopState:: + goto_if_set FLAG_IS_CHAMPION, TwoIsland_EventScript_SetShopStateAfterHoennLink + goto_if_set FLAG_SYS_GAME_CLEAR, TwoIsland_EventScript_SetShopStateAfterChampion + goto_if_set FLAG_RESCUED_LOSTELLE, TwoIsland_EventScript_SetShopStateAfterLostelleRescue + goto TwoIsland_EventScript_SetShopStateDefault + end + +TwoIsland_EventScript_SetShopStateAfterHoennLink:: + goto_if_unset FLAG_TWO_ISLAND_SHOP_INTRODUCED, TwoIsland_EventScript_SetShopInitial + goto_if_unset FLAG_TWO_ISLAND_SHOP_EXPANDED_1, TwoIsland_EventScript_SetShopExpanded1 + goto_if_unset FLAG_TWO_ISLAND_SHOP_EXPANDED_2, TwoIsland_EventScript_SetShopExpanded2 + goto TwoIsland_EventScript_SetShopExpanded3 + end + +TwoIsland_EventScript_SetShopStateAfterChampion:: + goto_if_unset FLAG_TWO_ISLAND_SHOP_INTRODUCED, TwoIsland_EventScript_SetShopInitial + goto_if_unset FLAG_RESCUED_LOSTELLE, TwoIsland_EventScript_SetShopInitial + goto_if_unset FLAG_TWO_ISLAND_SHOP_EXPANDED_1, TwoIsland_EventScript_SetShopExpanded1 + goto TwoIsland_EventScript_SetShopExpanded2 + end + +TwoIsland_EventScript_SetShopStateAfterLostelleRescue:: + goto_if_unset FLAG_TWO_ISLAND_SHOP_INTRODUCED, TwoIsland_EventScript_SetShopInitial + goto TwoIsland_EventScript_SetShopExpanded1 + end + +TwoIsland_EventScript_SetShopStateDefault:: + goto TwoIsland_EventScript_SetShopInitial + end + +TwoIsland_EventScript_SetShopInitial:: + setvar VAR_MAP_SCENE_TWO_ISLAND, 1 + return + +TwoIsland_EventScript_SetShopExpanded1:: + setvar VAR_MAP_SCENE_TWO_ISLAND, 2 + clearflag FLAG_HIDE_TWO_ISLAND_WOMAN + return + +TwoIsland_EventScript_SetShopExpanded2:: + setvar VAR_MAP_SCENE_TWO_ISLAND, 3 + clearflag FLAG_HIDE_TWO_ISLAND_BEAUTY + return + +TwoIsland_EventScript_SetShopExpanded3:: + setvar VAR_MAP_SCENE_TWO_ISLAND, 4 + clearflag FLAG_HIDE_TWO_ISLAND_SUPER_NERD + return + +TwoIsland_EventScript_Clerk:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND, 4, TwoIsland_EventScript_ClerkShopExpanded3 + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND, 3, TwoIsland_EventScript_ClerkShopExpanded2 + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND, 2, TwoIsland_EventScript_ClerkShopExpanded1 + goto TwoIsland_EventScript_ClerkShopInitial + end + +TwoIsland_EventScript_ClerkShopExpanded3:: + goto_if_set FLAG_TWO_ISLAND_SHOP_EXPANDED_3, TwoIsland_EventScript_ClerkShopSkipIntro + setflag FLAG_TWO_ISLAND_SHOP_EXPANDED_3 + message TwoIsland_Text_BringingItemsFromDistantLands + waitmessage + goto TwoIsland_EventScript_ShopExpanded3 + end + +TwoIsland_EventScript_ClerkShopExpanded2:: + goto_if_set FLAG_TWO_ISLAND_SHOP_EXPANDED_2, TwoIsland_EventScript_ClerkShopSkipIntro + setflag FLAG_TWO_ISLAND_SHOP_EXPANDED_2 + message TwoIsland_Text_HopeYouGiveItYourBest + waitmessage + goto TwoIsland_EventScript_ShopExpanded2 + end + +TwoIsland_EventScript_ClerkShopExpanded1:: + goto_if_set FLAG_TWO_ISLAND_SHOP_EXPANDED_1, TwoIsland_EventScript_ClerkShopSkipIntro + setflag FLAG_TWO_ISLAND_SHOP_EXPANDED_1 + message TwoIsland_Text_AddedMerchandiseForLostelle + waitmessage + goto TwoIsland_EventScript_ShopExpanded1 + end + +TwoIsland_EventScript_ClerkShopInitial:: + goto_if_set FLAG_TWO_ISLAND_SHOP_INTRODUCED, TwoIsland_EventScript_ClerkShopSkipIntro + setflag FLAG_TWO_ISLAND_SHOP_INTRODUCED + message TwoIsland_Text_WelcomeToShopMerchandiseLimited + waitmessage + goto TwoIsland_EventScript_ShopInitial + end + +TwoIsland_EventScript_ClerkShopSkipIntro:: + message gText_HowMayIServeYou + waitmessage + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND, 4, TwoIsland_EventScript_ShopExpanded3 + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND, 3, TwoIsland_EventScript_ShopExpanded2 + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND, 2, TwoIsland_EventScript_ShopExpanded1 + goto TwoIsland_EventScript_ShopInitial + end + +TwoIsland_EventScript_ShopInitial:: + pokemart TwoIsland_Items_ShopInitial + msgbox gText_PleaseComeAgain + release + end + + .align 2 +TwoIsland_Items_ShopInitial:: + .2byte ITEM_GREAT_BALL + .2byte ITEM_FRESH_WATER + .2byte ITEM_NONE + release + end + +TwoIsland_EventScript_ShopExpanded1:: + pokemart TwoIsland_Items_ShopExpanded1 + msgbox gText_PleaseComeAgain + release + end + + .align 2 +TwoIsland_Items_ShopExpanded1:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_SODA_POP + .2byte ITEM_FRESH_WATER + .2byte ITEM_NONE + release + end + +TwoIsland_EventScript_ShopExpanded2:: + pokemart TwoIsland_Items_ShopExpanded2 + msgbox gText_PleaseComeAgain + release + end + + .align 2 +TwoIsland_Items_ShopExpanded2:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_GREAT_BALL + .2byte ITEM_LEMONADE + .2byte ITEM_SODA_POP + .2byte ITEM_FRESH_WATER + .2byte ITEM_MOOMOO_MILK + .2byte ITEM_NONE + release + end + +TwoIsland_EventScript_ShopExpanded3:: + pokemart TwoIsland_Items_ShopExpanded3 + msgbox gText_PleaseComeAgain + release + end + + .align 2 +TwoIsland_Items_ShopExpanded3:: + .2byte ITEM_ULTRA_BALL + .2byte ITEM_REPEAT_BALL + .2byte ITEM_TIMER_BALL + .2byte ITEM_LEMONADE + .2byte ITEM_SODA_POP + .2byte ITEM_FRESH_WATER + .2byte ITEM_MOOMOO_MILK + .2byte ITEM_LAVA_COOKIE + .2byte ITEM_NONE + release + end + +TwoIsland_EventScript_Sailor:: + msgbox TwoIsland_Text_FellowMovedFromCeladonCity, MSGBOX_NPC + end + +TwoIsland_EventScript_Woman:: + msgbox TwoIsland_Text_ShopkeepersBrotherWorksGameCorner, MSGBOX_NPC + end + +TwoIsland_EventScript_Beauty:: + lock + faceplayer + famechecker FAMECHECKER_BRUNO, 4 + msgbox TwoIsland_Text_BrunoCameToIslandWhileBack + release + end + +TwoIsland_EventScript_SuperNerd:: + msgbox TwoIsland_Text_BuyRareItemsHere, MSGBOX_NPC + end + +TwoIsland_EventScript_Boy:: + msgbox TwoIsland_Text_OldWomanLivesOutOnCape, MSGBOX_NPC + end + +TwoIsland_EventScript_LittleBoy:: + msgbox TwoIsland_Text_HaveYouTriedJumpingGame, MSGBOX_NPC + end + +TwoIsland_EventScript_IslandSign:: + msgbox TwoIsland_Text_IslandSign, MSGBOX_SIGN + end + +TwoIsland_EventScript_JoyfulGameCornerSign:: + msgbox TwoIsland_Text_JoyfulGameCornerSign, MSGBOX_SIGN + end + +TwoIsland_EventScript_FastCurrentSign:: + msgbox TwoIsland_Text_DangerFastCurrent, MSGBOX_SIGN + end + +TwoIsland_Text_IslandSign:: + .string "TWO ISLAND\n" + .string "Boon Island for Two$" + +TwoIsland_Text_JoyfulGameCornerSign:: + .string "Skip & Chomp!\n" + .string "Joyful GAME CORNER$" + +TwoIsland_Text_DangerFastCurrent:: + .string "DANGER! FAST CURRENT!\n" + .string "Fishing and surfing prohibited!$" + +TwoIsland_Text_WelcomeToShopMerchandiseLimited:: + .string "Oh!\n" + .string "Hello, welcome to my shop!\p" + .string "We've only opened up recently.\p" + .string "Our merchandise is limited, but I\n" + .string "hope we can serve your needs.$" + +TwoIsland_Text_AddedMerchandiseForLostelle:: + .string "I can't tell you how grateful I am\n" + .string "for your rescue of LOSTELLE.\p" + .string "Thanks to your feat, the people of\n" + .string "THREE ISLAND have changed their\l" + .string "attitudes about KANTO people.\p" + .string "And, I'm from KANTO, you see.\p" + .string "The people of THREE ISLAND\n" + .string "helped me add to my merchandise.$" + +TwoIsland_Text_HopeYouGiveItYourBest:: + .string "Hi! I'm giving it my best here.\n" + .string "I hope you do too, {PLAYER}.$" + +TwoIsland_Text_BringingItemsFromDistantLands:: + .string "Oh, hello, {PLAYER}!\n" + .string "Welcome!\p" + .string "I've started bringing in items from\n" + .string "distant lands.\p" + .string "I've got some rare items in, too.\n" + .string "Please have a look!$" + +TwoIsland_Text_FellowMovedFromCeladonCity:: + .string "That fellow there, he moved here\n" + .string "from CELADON CITY.\p" + .string "He started up a shop with his\n" + .string "younger brother.\p" + .string "You have to wonder if he knew what\n" + .string "he was getting into.$" + +TwoIsland_Text_ShopkeepersBrotherWorksGameCorner:: + .string "The shopkeeper's brother took\n" + .string "a job at the GAME CORNER.\p" + .string "He's trying to pull together money\n" + .string "so they can buy more merchandise.$" + +TwoIsland_Text_BrunoCameToIslandWhileBack:: + .string "Listen, listen.\n" + .string "Did you know?\p" + .string "A famous TRAINER came to the\n" + .string "ISLAND a little while back.\p" + .string "He's one of the ELITE FOUR.\n" + .string "His name is BRUNO.\p" + .string "He went away disappointed when he\n" + .string "found out that they were all sold\l" + .string "out of Rage Candybars.$" + +TwoIsland_Text_BuyRareItemsHere:: + .string "The discerning TRAINER knows to\n" + .string "buy rare items here!$" + +TwoIsland_Text_OldWomanLivesOutOnCape:: + .string "There's an old woman who lives in\n" + .string "a cottage out on the cape.\p" + .string "She gives the eye to POKéMON.\n" + .string "It's a bit unnerving.$" + +TwoIsland_Text_HaveYouTriedJumpingGame:: + .string "Boing! Boing!\n" + .string "Have you tried the jumping game?\p" + .string "The POKéMON you can enter…\n" + .string "Boing!\p" + .string "Some go boing!\p" + .string "And some go boooooooing!\p" + .string "Did you know that?\n" + .string "Boing!$" + diff --git a/data/maps/TwoIsland_Harbor_Frlg/map.json b/data/maps/TwoIsland_Harbor_Frlg/map.json new file mode 100644 index 000000000000..01bdc0b5b017 --- /dev/null +++ b/data/maps/TwoIsland_Harbor_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_TWO_ISLAND_HARBOR", + "name": "TwoIsland_Harbor_Frlg", + "layout": "LAYOUT_ISLAND_HARBOR_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", + "x": 8, + "y": 9, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_Harbor_EventScript_Sailor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 8, + "y": 2, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_Harbor_Frlg/scripts.inc b/data/maps/TwoIsland_Harbor_Frlg/scripts.inc new file mode 100644 index 000000000000..a27f96e22727 --- /dev/null +++ b/data/maps/TwoIsland_Harbor_Frlg/scripts.inc @@ -0,0 +1,11 @@ +TwoIsland_Harbor_Frlg_MapScripts:: + .byte 0 + +TwoIsland_Harbor_EventScript_Sailor:: + lock + faceplayer + message Text_WhereDoYouWantToSail + waitmessage + setvar VAR_0x8004, SEAGALLOP_TWO_ISLAND + goto EventScript_ChooseDestFromTwoIsland + end diff --git a/data/maps/TwoIsland_House_Frlg/map.json b/data/maps/TwoIsland_House_Frlg/map.json new file mode 100644 index 000000000000..dbdda4111c6f --- /dev/null +++ b/data/maps/TwoIsland_House_Frlg/map.json @@ -0,0 +1,45 @@ +{ + "id": "MAP_TWO_ISLAND_HOUSE", + "name": "TwoIsland_House_Frlg", + "layout": "LAYOUT_HOUSE3_FRLG", + "music": "MUS_RG_SEVII_123", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 7, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_House_EventScript_MoveManiac", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_House_Frlg/scripts.inc b/data/maps/TwoIsland_House_Frlg/scripts.inc new file mode 100644 index 000000000000..e1c566fa9e05 --- /dev/null +++ b/data/maps/TwoIsland_House_Frlg/scripts.inc @@ -0,0 +1,166 @@ +.equ CHECKED_MUSHROOMS, FLAG_TEMP_1 +.equ HAS_BIG_MUSHROOM, FLAG_TEMP_2 +.equ HAS_TINY_MUSHROOMS, FLAG_TEMP_3 +.equ HAS_BOTH_MUSHROOMS, FLAG_TEMP_4 + +TwoIsland_House_Frlg_MapScripts:: + .byte 0 + +TwoIsland_House_EventScript_MoveManiac:: + lock + faceplayer + clearflag HAS_BIG_MUSHROOM + clearflag HAS_TINY_MUSHROOMS + clearflag HAS_BOTH_MUSHROOMS + goto_if_set CHECKED_MUSHROOMS, TwoIsland_House_EventScript_CheckPlayerHasMushrooms + msgbox TwoIsland_House_Text_TeachMonMoveForMushroom + setflag CHECKED_MUSHROOMS + goto TwoIsland_House_EventScript_CheckPlayerHasMushrooms + end + +TwoIsland_House_EventScript_CheckPlayerHasMushrooms:: + checkitem ITEM_BIG_MUSHROOM + call_if_eq VAR_RESULT, TRUE, TwoIsland_House_EventScript_SetHasBigMushroom + checkitem ITEM_TINY_MUSHROOM, 2 + call_if_eq VAR_RESULT, TRUE, TwoIsland_House_EventScript_SetHasTinyMushrooms + goto_if_set HAS_BIG_MUSHROOM, TwoIsland_House_EventScript_CheckAlsoHasTinyMushrooms + goto_if_set HAS_TINY_MUSHROOMS, TwoIsland_House_EventScript_CheckAlsoHasBigMushroom + goto TwoIsland_House_EventScript_EndTutorMove + end + +TwoIsland_House_EventScript_CheckAlsoHasTinyMushrooms:: + call_if_set HAS_TINY_MUSHROOMS, TwoIsland_House_EventScript_SetHasBothMushrooms + goto TwoIsland_House_EventScript_AskTutorMon + end + +TwoIsland_House_EventScript_CheckAlsoHasBigMushroom:: + call_if_set HAS_BIG_MUSHROOM, TwoIsland_House_EventScript_SetHasBothMushrooms + goto TwoIsland_House_EventScript_AskTutorMon + end + +TwoIsland_House_EventScript_AskTutorMon:: + msgbox TwoIsland_House_Text_WantMeToTeachMove, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, TwoIsland_House_EventScript_EndTutorMove + goto TwoIsland_House_EventScript_ChooseMonToTutor + end + +TwoIsland_House_EventScript_ChooseMonToTutor:: + msgbox TwoIsland_House_Text_TutorWhichMon + special ChooseMonForMoveRelearner + waitstate + goto_if_ge VAR_0x8004, PARTY_SIZE, TwoIsland_House_EventScript_EndTutorMove + special IsSelectedMonEgg + goto_if_eq VAR_RESULT, TRUE, TwoIsland_House_EventScript_CantTutorEgg + goto_if_eq VAR_0x8005, 0, TwoIsland_House_EventScript_NoMoveToTutorMon + goto TwoIsland_House_EventScript_ChooseMoveToTeach + end + +TwoIsland_House_EventScript_ChooseMoveToTeach:: + msgbox TwoIsland_House_Text_TeachWhichMove + special TeachMoveRelearnerMove + waitstate + goto_if_eq VAR_0x8004, 0, TwoIsland_House_EventScript_ChooseMonToTutor + goto_if_set HAS_BOTH_MUSHROOMS, TwoIsland_House_EventScript_ChooseMushroom + goto_if_set HAS_BIG_MUSHROOM, TwoIsland_House_EventScript_GiveBigMushroom + goto_if_set HAS_TINY_MUSHROOMS, TwoIsland_House_EventScript_GiveTinyMushrooms + end + +TwoIsland_House_EventScript_GiveBigMushroom:: + removeitem ITEM_BIG_MUSHROOM + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox TwoIsland_House_Text_HandedOverOneBigMushroom + call EventScript_RestorePrevTextColor + goto TwoIsland_House_EventScript_EndTutorMove + end + +TwoIsland_House_EventScript_GiveTinyMushrooms:: + removeitem ITEM_TINY_MUSHROOM, 2 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox TwoIsland_House_Text_HandedOverTwoTinyMushrooms + call EventScript_RestorePrevTextColor + goto TwoIsland_House_EventScript_EndTutorMove + end + +TwoIsland_House_EventScript_ChooseMushroom:: + message TwoIsland_House_Text_IllNeedMushroomOrTwo + waitmessage + multichoice 0, 0, MULTI_MUSHROOMS, TRUE + switch VAR_RESULT + case 0, TwoIsland_House_EventScript_GiveTinyMushrooms + case 1, TwoIsland_House_EventScript_GiveBigMushroom + end + +TwoIsland_House_EventScript_NoMoveToTutorMon:: + msgbox TwoIsland_House_Text_NoMoveICanTeachThatMon + goto TwoIsland_House_EventScript_ChooseMonToTutor + end + +TwoIsland_House_EventScript_CantTutorEgg:: + msgbox TwoIsland_House_Text_CantTeachAnEgg + goto TwoIsland_House_EventScript_ChooseMonToTutor + end + +TwoIsland_House_EventScript_EndTutorMove:: + msgbox TwoIsland_House_Text_NeedMushroomOrTwoToLearnMove + release + end + +TwoIsland_House_EventScript_SetHasBigMushroom:: + setflag HAS_BIG_MUSHROOM + return + +TwoIsland_House_EventScript_SetHasTinyMushrooms:: + setflag HAS_TINY_MUSHROOMS + return + +TwoIsland_House_EventScript_SetHasBothMushrooms:: + setflag HAS_BOTH_MUSHROOMS + return + +TwoIsland_House_Text_TeachMonMoveForMushroom:: + .string "I'm the POKéMON MOVE MANIAC.\p" + .string "I know every single move that\n" + .string "POKéMON learn growing up.\p" + .string "I'm also a mushroom maniac.\p" + .string "Bring me two TINYMUSHROOMS,\n" + .string "or one BIG MUSHROOM.\p" + .string "If you do that for me, I'll teach\n" + .string "a move to one POKéMON.$" + +TwoIsland_House_Text_WantMeToTeachMove:: + .string "Sniff, sniff…\n" + .string "Hm! You smell of MUSHROOMS!\p" + .string "Do you want me to teach a move\n" + .string "to a POKéMON of yours?$" + +TwoIsland_House_Text_TutorWhichMon:: + .string "Which POKéMON needs tutoring?$" + +TwoIsland_House_Text_TeachWhichMove:: + .string "Which move should I teach?$" + +TwoIsland_House_Text_NoMoveICanTeachThatMon:: + .string "Sorry…\p" + .string "It doesn't appear as if I have a\n" + .string "move I can teach that POKéMON.$" + +TwoIsland_House_Text_IllNeedMushroomOrTwo:: + .string "Then, I'll need a MUSHROOM or two.\n" + .string "What are you going to give me?$" + +TwoIsland_House_Text_HandedOverTwoTinyMushrooms:: + .string "{PLAYER} handed over two\n" + .string "TINYMUSHROOMS in exchange.$" + +TwoIsland_House_Text_HandedOverOneBigMushroom:: + .string "{PLAYER} handed over one\n" + .string "BIG MUSHROOM in exchange.$" + +TwoIsland_House_Text_NeedMushroomOrTwoToLearnMove:: + .string "If your POKéMON need to learn a\n" + .string "move, I need a MUSHROOM or two.$" + +TwoIsland_House_Text_CantTeachAnEgg:: + .string "Hunh? There isn't a single move\n" + .string "that I can teach an EGG.$" + diff --git a/data/maps/TwoIsland_JoyfulGameCorner_Frlg/map.json b/data/maps/TwoIsland_JoyfulGameCorner_Frlg/map.json new file mode 100644 index 000000000000..e9ddb98d78ad --- /dev/null +++ b/data/maps/TwoIsland_JoyfulGameCorner_Frlg/map.json @@ -0,0 +1,107 @@ +{ + "id": "MAP_TWO_ISLAND_JOYFUL_GAME_CORNER", + "name": "TwoIsland_JoyfulGameCorner_Frlg", + "layout": "LAYOUT_TWO_ISLAND_JOYFUL_GAME_CORNER", + "music": "MUS_GAME_CORNER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_JOYFUL_GAME_CORNER_DADDY", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 5, + "y": 5, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_JoyfulGameCorner_EventScript_LostellesDaddy", + "flag": "0" + }, + { + "local_id": "LOCALID_JOYFUL_GAME_CORNER_BIKER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BIKER", + "x": 5, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER" + }, + { + "local_id": "LOCALID_JOYFUL_GAME_CORNER_LOSTELLE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 6, + "y": 5, + "elevation": 1, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_JoyfulGameCorner_EventScript_Lostelle", + "flag": "FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_JoyfulGameCorner_EventScript_InfoMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 1, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "TwoIsland_JoyfulGameCorner_EventScript_ShowPokemonJumpRecords" + }, + { + "type": "sign", + "x": 0, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "TwoIsland_JoyfulGameCorner_EventScript_ShowDodrioBerryPickingRecords" + } + ] +} diff --git a/data/maps/TwoIsland_JoyfulGameCorner_Frlg/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner_Frlg/scripts.inc new file mode 100644 index 000000000000..b5c678718407 --- /dev/null +++ b/data/maps/TwoIsland_JoyfulGameCorner_Frlg/scripts.inc @@ -0,0 +1,303 @@ +TwoIsland_JoyfulGameCorner_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, TwoIsland_JoyfulGameCorner_OnTransition + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, TwoIsland_JoyfulGameCorner_OnWarp + map_script MAP_SCRIPT_ON_FRAME_TABLE, TwoIsland_JoyfulGameCorner_OnFrame + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + .byte 0 + +TwoIsland_JoyfulGameCorner_OnTransition:: + call_if_set FLAG_GOT_MOON_STONE_FROM_JOYFUL_GAME_CORNER, TwoIsland_JoyfulGameCorner_EventScript_SetLostelleReturnedPos + end + +TwoIsland_JoyfulGameCorner_EventScript_SetLostelleReturnedPos:: + setobjectxyperm LOCALID_JOYFUL_GAME_CORNER_DADDY, 6, 2 + setobjectmovementtype LOCALID_JOYFUL_GAME_CORNER_DADDY, MOVEMENT_TYPE_FACE_DOWN + setobjectmovementtype LOCALID_JOYFUL_GAME_CORNER_LOSTELLE, MOVEMENT_TYPE_LOOK_AROUND + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 4 + return + +TwoIsland_JoyfulGameCorner_OnWarp:: + map_script_2 VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2, TwoIsland_JoyfulGameCorner_EventScript_TurnPlayerNorth + map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, EventScript_CheckTurnAttendant_Frlg + .2byte 0 + +TwoIsland_JoyfulGameCorner_EventScript_TurnPlayerNorth:: + turnobject LOCALID_PLAYER, DIR_NORTH + end + +TwoIsland_JoyfulGameCorner_OnFrame:: + map_script_2 VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 0, TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene + map_script_2 VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 2, TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene + map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_ExitMinigameRoom + .2byte 0 + +TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox TwoIsland_JoyfulGameCorner_Text_YouRescuedLostelle + textcolor NPC_TEXT_COLOR_FEMALE + special GetPlayerBigGuyGirlString + msgbox TwoIsland_JoyfulGameCorner_Text_LostelleItsOkayDaddy + closemessage + applymovement LOCALID_JOYFUL_GAME_CORNER_LOSTELLE, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3 + releaseall + end + +TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_JOYFUL_GAME_CORNER_DADDY, TwoIsland_JoyfulGameCorner_Movement_DaddyPacing + waitmovement 0 + msgbox TwoIsland_JoyfulGameCorner_Text_WhereHasLostelleGottenTo + closemessage + applymovement LOCALID_JOYFUL_GAME_CORNER_DADDY, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playse SE_PIN + applymovement LOCALID_JOYFUL_GAME_CORNER_DADDY, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_JOYFUL_GAME_CORNER_DADDY, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_JOYFUL_GAME_CORNER_DADDY, TwoIsland_JoyfulGameCorner_Movement_DaddyApproachPlayer + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + msgbox TwoIsland_JoyfulGameCorner_Text_PleaseHelpFindLostelle + closemessage + playse SE_DOOR + waitse + applymovement LOCALID_PLAYER, TwoIsland_JoyfulGameCorner_Movement_PlayerFaceDaddy + waitmovement 0 + playbgm MUS_RG_ENCOUNTER_BOY, 0 + addobject LOCALID_JOYFUL_GAME_CORNER_BIKER + applymovement LOCALID_JOYFUL_GAME_CORNER_BIKER, TwoIsland_JoyfulGameCorner_Movement_BikerLookAround + waitmovement 0 + msgbox TwoIsland_JoyfulGameCorner_Text_IsThisOnlyThreeIsland + applymovement LOCALID_JOYFUL_GAME_CORNER_BIKER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + msgbox TwoIsland_JoyfulGameCorner_Text_ThisIsTwoIslandMoveIt + msgbox TwoIsland_JoyfulGameCorner_Text_TheseIslandsAreConfusing + closemessage + applymovement LOCALID_JOYFUL_GAME_CORNER_BIKER, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + playse SE_EXIT + removeobject LOCALID_JOYFUL_GAME_CORNER_BIKER + fadedefaultbgm + delay 60 + msgbox TwoIsland_JoyfulGameCorner_Text_PunkScuffedUpMyFloor + clearflag FLAG_HIDE_THREE_ISLAND_LONE_BIKER + setvar VAR_MAP_SCENE_THREE_ISLAND, 2 + setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 1 + releaseall + end + +TwoIsland_JoyfulGameCorner_Movement_DaddyPacing:: + walk_left + walk_right + walk_right + delay_8 + walk_in_place_faster_up + delay_16 + step_end + +TwoIsland_JoyfulGameCorner_Movement_DaddyApproachPlayer:: + walk_down + walk_down + walk_down + walk_in_place_faster_left + step_end + +TwoIsland_JoyfulGameCorner_Movement_PlayerFaceDaddy:: + walk_left + walk_in_place_faster_right + step_end + +TwoIsland_JoyfulGameCorner_Movement_BikerLookAround:: + walk_in_place_faster_left + delay_8 + walk_in_place_faster_right + delay_8 + walk_in_place_faster_up + step_end + +TwoIsland_JoyfulGameCorner_EventScript_InfoMan:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 4, JoyfulGameCorner_EventScript_InfoMan2_Frlg + goto_if_set FLAG_RESCUED_LOSTELLE, TwoIsland_JoyfulGameCorner_EventScript_GetGamesGoingSoon + msgbox TwoIsland_JoyfulGameCorner_Text_NotRunningAnyGamesToday + release + end + +TwoIsland_JoyfulGameCorner_EventScript_GetGamesGoingSoon:: + msgbox TwoIsland_JoyfulGameCorner_Text_GetGamesGoingSoon + release + end + +@ Only referred to as Lostelles Daddy in text +TwoIsland_JoyfulGameCorner_EventScript_LostellesDaddy:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 4, JoyfulGameCorner_EventScript_MinigameAttendant_Frlg + goto_if_set FLAG_GOT_MOON_STONE_FROM_JOYFUL_GAME_CORNER, TwoIsland_JoyfulGameCorner_EventScript_GetGameCornerRunning + goto_if_eq VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3, TwoIsland_JoyfulGameCorner_EventScript_GiveDaddyMeteorite + msgbox TwoIsland_JoyfulGameCorner_Text_PleaseGoToThreeIsland + release + end + +TwoIsland_JoyfulGameCorner_EventScript_GiveDaddyMeteorite:: + goto_if_set FLAG_NO_ROOM_FOR_JOYFUL_GAME_CORNER_MOON_STONE, TwoIsland_JoyfulGameCorner_EventScript_ReceiveMoonStone + msgbox TwoIsland_JoyfulGameCorner_Text_ThisIsForMe + setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 2 + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_OBTAIN_TMHM + message TwoIsland_JoyfulGameCorner_Text_HandedMeteoriteToLostellesDaddy + waitmessage + waitfanfare + call EventScript_RestorePrevTextColor + removeitem ITEM_METEORITE + msgbox TwoIsland_JoyfulGameCorner_Text_OhThisIsFromBill + goto TwoIsland_JoyfulGameCorner_EventScript_ReceiveMoonStone + end + +TwoIsland_JoyfulGameCorner_EventScript_ReceiveMoonStone:: + checkitemspace ITEM_MOON_STONE + goto_if_eq VAR_RESULT, FALSE, TwoIsland_JoyfulGameCorner_EventScript_NoRoomForMoonStone + additem ITEM_MOON_STONE + setflag FLAG_GOT_MOON_STONE_FROM_JOYFUL_GAME_CORNER + msgreceiveditem TwoIsland_JoyfulGameCorner_Text_ReceivedMoonStoneFromLostellesDaddy, ITEM_MOON_STONE + release + end + +TwoIsland_JoyfulGameCorner_EventScript_GetGameCornerRunning:: + msgbox TwoIsland_JoyfulGameCorner_Text_IllGetGameCornerRunning + release + end + +TwoIsland_JoyfulGameCorner_EventScript_NoRoomForMoonStone:: + setflag FLAG_NO_ROOM_FOR_JOYFUL_GAME_CORNER_MOON_STONE + msgbox TwoIsland_JoyfulGameCorner_Text_NotGoingToFitInBag + release + end + +TwoIsland_JoyfulGameCorner_EventScript_Lostelle:: + lock + faceplayer + msgbox TwoIsland_JoyfulGameCorner_Text_PleaseShowMeYouBeingCool + release + end + +TwoIsland_JoyfulGameCorner_Text_WhereHasLostelleGottenTo:: + .string "Now, where's LOSTELLE gotten to\n" + .string "today?\p" + .string "She always brings me lunch every\n" + .string "day right about now…$" + +TwoIsland_JoyfulGameCorner_Text_PleaseHelpFindLostelle:: + .string "Hm? You, there!\n" + .string "Are you a friend of LOSTELLE's?\p" + .string "Have you seen LOSTELLE around?\n" + .string "I don't know where she might be.\l" + .string "She should've been here long ago.\p" + .string "LOSTELLE's a cutie - she got my\n" + .string "looks - so what if someone…\p" + .string "What if something's happened to\n" + .string "my LOSTELLE?!\p" + .string "Please, help me find her!\n" + .string "Please go search THREE ISLAND!$" + +TwoIsland_JoyfulGameCorner_Text_IsThisOnlyThreeIsland:: + .string "Hah? What is this GAME CORNER?\n" + .string "How much sadder can this get?\p" + .string "Those clowns…\p" + .string "They said they'd be waiting on the\n" + .string "island, so where are they?\p" + .string "Hey, you! Is this the only THREE\n" + .string "ISLAND around here?$" + +TwoIsland_JoyfulGameCorner_Text_ThisIsTwoIslandMoveIt:: + .string "Try waking up before you crawl out\n" + .string "of bed, you punk.\p" + .string "This is TWO ISLAND!\p" + .string "Move it! Get your filthy motorbike\n" + .string "out of my place!$" + +TwoIsland_JoyfulGameCorner_Text_TheseIslandsAreConfusing:: + .string "Huh…\n" + .string "Oh, oh, gotcha.\p" + .string "Tch…\n" + .string "These islands are confusing…$" + +TwoIsland_JoyfulGameCorner_Text_PunkScuffedUpMyFloor:: + .string "Would you look at that?\n" + .string "That punk scuffed up my floor.$" + +TwoIsland_JoyfulGameCorner_Text_PleaseGoToThreeIsland:: + .string "Hey, but listen! I'm begging you,\n" + .string "you have to go to THREE ISLAND.\p" + .string "If anything were to happen to my\n" + .string "LOSTELLE…\p" + .string "My place is the house with the red\n" + .string "roof on THREE ISLAND.\p" + .string "She may just show up late here,\n" + .string "so I can't run off anywhere.\p" + .string "That's why I have to get you to do\n" + .string "me this big favor.$" + +TwoIsland_JoyfulGameCorner_Text_NotRunningAnyGamesToday:: + .string "I'm sorry.\n" + .string "We're not running any games today.$" + +TwoIsland_JoyfulGameCorner_Text_GetGamesGoingSoon:: + .string "We'll get the games going soon\n" + .string "for you!$" + +TwoIsland_JoyfulGameCorner_Text_YouRescuedLostelle:: + .string "So you rescued LOSTELLE?\n" + .string "How can I thank you?\p" + .string "LOSTELLE, darling, forgive me!\p" + .string "Daddy didn't know you were scared\n" + .string "and in trouble!$" + +TwoIsland_JoyfulGameCorner_Text_LostelleItsOkayDaddy:: + .string "LOSTELLE: It's okay, Daddy.\n" + .string "I got to be friends with {PLAYER}!$" + +TwoIsland_JoyfulGameCorner_Text_ThisIsForMe:: + .string "Oh, what's that?\n" + .string "You're saying that this is for me?\p" + .string "How did you know that I love rare\n" + .string "rocks and gems?\p" + .string "You sure know how to make a guy\n" + .string "happy.$" + +TwoIsland_JoyfulGameCorner_Text_HandedMeteoriteToLostellesDaddy:: + .string "{PLAYER} handed the METEORITE\n" + .string "to LOSTELLE's daddy.$" + +TwoIsland_JoyfulGameCorner_Text_OhThisIsFromBill:: + .string "Oh, I see, this is from BILL!\n" + .string "You have to thank him for me!\p" + .string "You know, you've been fantastic.\n" + .string "I want you to have this.$" + +TwoIsland_JoyfulGameCorner_Text_ReceivedMoonStoneFromLostellesDaddy:: + .string "{PLAYER} received a MOON STONE\n" + .string "from LOSTELLE's daddy.$" + +TwoIsland_JoyfulGameCorner_Text_NotGoingToFitInBag:: + .string "Your BAG's not going to fit another\n" + .string "thing…$" + +TwoIsland_JoyfulGameCorner_Text_IllGetGameCornerRunning:: + .string "All right, I'll get the GAME CORNER\n" + .string "running right away.\p" + .string "You have to come visit with a\n" + .string "friend.$" + +TwoIsland_JoyfulGameCorner_Text_PleaseShowMeYouBeingCool:: + .string "Listen, listen!\p" + .string "Please show me you being cool\n" + .string "again!$" + diff --git a/data/maps/TwoIsland_PokemonCenter_1F_Frlg/map.json b/data/maps/TwoIsland_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..23b10899a2a6 --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,81 @@ +{ + "id": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", + "name": "TwoIsland_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_TWO_ISLAND_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GBA_KID", + "x": 11, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_PokemonCenter_1F_EventScript_GBAKid", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "TwoIsland_PokemonCenter_1F_EventScript_BugCatcher", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_TWO_ISLAND", + "dest_warp_id": "2" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/TwoIsland_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..76e3ec8163d3 --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,38 @@ +TwoIsland_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, TwoIsland_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +TwoIsland_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_TWO_ISLAND + end + +TwoIsland_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +TwoIsland_PokemonCenter_1F_EventScript_GBAKid:: + msgbox TwoIsland_PokemonCenter_1F_Text_HaveYouVisitedGameCorner, MSGBOX_NPC + end + +TwoIsland_PokemonCenter_1F_EventScript_BugCatcher:: + msgbox TwoIsland_PokemonCenter_1F_Text_OldLadyLivesOutOnCape, MSGBOX_NPC + end + +TwoIsland_PokemonCenter_1F_Text_HaveYouVisitedGameCorner:: + .string "Have you visited the GAME CORNER\n" + .string "already?\p" + .string "It's no good to go alone.\n" + .string "You have to take a friend along.$" + +TwoIsland_PokemonCenter_1F_Text_OldLadyLivesOutOnCape:: + .string "Not many people live on\n" + .string "TWO ISLAND.\p" + .string "There is this old lady who lives\n" + .string "out on the cape.\p" + .string "She's been there since I don't know\n" + .string "when.$" + diff --git a/data/maps/TwoIsland_PokemonCenter_2F_Frlg/map.json b/data/maps/TwoIsland_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..10e63f4262fa --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_TWO_ISLAND_POKEMON_CENTER_2F", + "name": "TwoIsland_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_TWO_ISLAND", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/TwoIsland_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/TwoIsland_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..8250b8aad774 --- /dev/null +++ b/data/maps/TwoIsland_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +TwoIsland_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +TwoIsland_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +TwoIsland_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +TwoIsland_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/UndergroundPath_EastEntrance_Frlg/map.json b/data/maps/UndergroundPath_EastEntrance_Frlg/map.json new file mode 100644 index 000000000000..00f0614ebbfc --- /dev/null +++ b/data/maps/UndergroundPath_EastEntrance_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", + "name": "UndergroundPath_EastEntrance_Frlg", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_UNDERGROUND_PATH_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UndergroundPath_EastEntrance_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE8", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_EastEntrance_Frlg/scripts.inc b/data/maps/UndergroundPath_EastEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..f5580e65b0d8 --- /dev/null +++ b/data/maps/UndergroundPath_EastEntrance_Frlg/scripts.inc @@ -0,0 +1,12 @@ +UndergroundPath_EastEntrance_Frlg_MapScripts:: + .byte 0 + +UndergroundPath_EastEntrance_EventScript_Woman:: + msgbox UndergroundPath_EastEntrance_Text_DoYouGoToCeladonDeptStore, MSGBOX_NPC + end + +UndergroundPath_EastEntrance_Text_DoYouGoToCeladonDeptStore:: + .string "The DEPARTMENT STORE in CELADON\n" + .string "has a great selection.\p" + .string "Do you go there very often?$" + diff --git a/data/maps/UndergroundPath_EastWestTunnel_Frlg/map.json b/data/maps/UndergroundPath_EastWestTunnel_Frlg/map.json new file mode 100644 index 000000000000..e0c32ceba943 --- /dev/null +++ b/data/maps/UndergroundPath_EastWestTunnel_Frlg/map.json @@ -0,0 +1,108 @@ +{ + "id": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "name": "UndergroundPath_EastWestTunnel_Frlg", + "layout": "LAYOUT_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "music": "MUS_RG_ROUTE1", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_UNDERGROUND_PATH_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 76, + "y": 3, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 3, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 7, + "y": 3, + "elevation": 3, + "item": "ITEM_POTION", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 17, + "y": 5, + "elevation": 3, + "item": "ITEM_PARALYZE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 31, + "y": 4, + "elevation": 3, + "item": "ITEM_AWAKENING", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 45, + "y": 3, + "elevation": 3, + "item": "ITEM_BURN_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 70, + "y": 3, + "elevation": 3, + "item": "ITEM_ICE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 55, + "y": 2, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 62, + "y": 5, + "elevation": 3, + "item": "ITEM_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/UndergroundPath_EastWestTunnel_Frlg/scripts.inc b/data/maps/UndergroundPath_EastWestTunnel_Frlg/scripts.inc new file mode 100644 index 000000000000..0f9594032139 --- /dev/null +++ b/data/maps/UndergroundPath_EastWestTunnel_Frlg/scripts.inc @@ -0,0 +1,7 @@ +UndergroundPath_EastWestTunnel_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, UndergroundPath_EastWestTunnel_OnTransition + .byte 0 + +UndergroundPath_EastWestTunnel_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL + end diff --git a/data/maps/UndergroundPath_NorthEntrance_Frlg/map.json b/data/maps/UndergroundPath_NorthEntrance_Frlg/map.json new file mode 100644 index 000000000000..c7c985545068 --- /dev/null +++ b/data/maps/UndergroundPath_NorthEntrance_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", + "name": "UndergroundPath_NorthEntrance_Frlg", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_UNDERGROUND_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UndergroundPath_NorthEntrance_EventScript_Saige", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE5", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_NorthEntrance_Frlg/scripts.inc b/data/maps/UndergroundPath_NorthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..0e616bf7a32f --- /dev/null +++ b/data/maps/UndergroundPath_NorthEntrance_Frlg/scripts.inc @@ -0,0 +1,36 @@ +UndergroundPath_NorthEntrance_Frlg_MapScripts:: + .byte 0 + +UndergroundPath_NorthEntrance_EventScript_Saige:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_NIDORAN + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_MS_NIDO_TRADE, UndergroundPath_NorthEntrance_EventScript_AlreadyTraded + msgbox Trade_Text_DoYouHaveMonWantToTradeForMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, UndergroundPath_NorthEntrance_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, UndergroundPath_NorthEntrance_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, UndergroundPath_NorthEntrance_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox Trade_Text_ThanksYoureAPal + setflag FLAG_DID_MS_NIDO_TRADE + release + end + +UndergroundPath_NorthEntrance_EventScript_DeclineTrade:: + msgbox Trade_Text_ThatsTooBad + release + end + +UndergroundPath_NorthEntrance_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox Trade_Text_ThisIsNoMon + release + end + +UndergroundPath_NorthEntrance_EventScript_AlreadyTraded:: + msgbox Trade_Text_HowIsMyOldMon + release + end diff --git a/data/maps/UndergroundPath_NorthSouthTunnel_Frlg/map.json b/data/maps/UndergroundPath_NorthSouthTunnel_Frlg/map.json new file mode 100644 index 000000000000..65180d428ed2 --- /dev/null +++ b/data/maps/UndergroundPath_NorthSouthTunnel_Frlg/map.json @@ -0,0 +1,108 @@ +{ + "id": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "name": "UndergroundPath_NorthSouthTunnel_Frlg", + "layout": "LAYOUT_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "music": "MUS_RG_ROUTE1", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_UNDERGROUND_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [], + "warp_events": [ + { + "x": 4, + "y": 3, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 3, + "y": 60, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "hidden_item", + "x": 5, + "y": 30, + "elevation": 3, + "item": "ITEM_POTION", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 5, + "y": 6, + "elevation": 3, + "item": "ITEM_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 2, + "y": 57, + "elevation": 3, + "item": "ITEM_BURN_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 1, + "y": 24, + "elevation": 3, + "item": "ITEM_AWAKENING", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 6, + "y": 53, + "elevation": 3, + "item": "ITEM_ICE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 3, + "y": 15, + "elevation": 3, + "item": "ITEM_PARALYZE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 3, + "y": 39, + "elevation": 3, + "item": "ITEM_ETHER", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/UndergroundPath_NorthSouthTunnel_Frlg/scripts.inc b/data/maps/UndergroundPath_NorthSouthTunnel_Frlg/scripts.inc new file mode 100644 index 000000000000..7f2b8ad1aa11 --- /dev/null +++ b/data/maps/UndergroundPath_NorthSouthTunnel_Frlg/scripts.inc @@ -0,0 +1,7 @@ +UndergroundPath_NorthSouthTunnel_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, UndergroundPath_NorthSouthTunnel_OnTransition + .byte 0 + +UndergroundPath_NorthSouthTunnel_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL + end diff --git a/data/maps/UndergroundPath_SouthEntrance_Frlg/map.json b/data/maps/UndergroundPath_SouthEntrance_Frlg/map.json new file mode 100644 index 000000000000..b03ba4db3056 --- /dev/null +++ b/data/maps/UndergroundPath_SouthEntrance_Frlg/map.json @@ -0,0 +1,70 @@ +{ + "id": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", + "name": "UndergroundPath_SouthEntrance_Frlg", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_UNDERGROUND_PATH", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UndergroundPath_SouthEntrance_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE6", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + + ] +} diff --git a/data/maps/UndergroundPath_SouthEntrance_Frlg/scripts.inc b/data/maps/UndergroundPath_SouthEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..6fb80d2162ee --- /dev/null +++ b/data/maps/UndergroundPath_SouthEntrance_Frlg/scripts.inc @@ -0,0 +1,11 @@ +UndergroundPath_SouthEntrance_Frlg_MapScripts:: + .byte 0 + +UndergroundPath_SouthEntrance_EventScript_Woman:: + msgbox UndergroundPath_SouthEntrance_Text_PeopleLoseThingsInTheDarkness, MSGBOX_NPC + end + +UndergroundPath_SouthEntrance_Text_PeopleLoseThingsInTheDarkness:: + .string "People often lose things in the\n" + .string "darkness of the UNDERGROUND PATH.$" + diff --git a/data/maps/UndergroundPath_WestEntrance_Frlg/map.json b/data/maps/UndergroundPath_WestEntrance_Frlg/map.json new file mode 100644 index 000000000000..734cdefb691f --- /dev/null +++ b/data/maps/UndergroundPath_WestEntrance_Frlg/map.json @@ -0,0 +1,66 @@ +{ + "id": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", + "name": "UndergroundPath_WestEntrance_Frlg", + "layout": "LAYOUT_UNDERGROUND_PATH_ENTRANCE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_UNDERGROUND_PATH_2", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 5, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UndergroundPath_WestEntrance_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": "0" + }, + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_ROUTE7", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 4, + "elevation": 3, + "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UndergroundPath_WestEntrance_Frlg/scripts.inc b/data/maps/UndergroundPath_WestEntrance_Frlg/scripts.inc new file mode 100644 index 000000000000..dac2f441c05c --- /dev/null +++ b/data/maps/UndergroundPath_WestEntrance_Frlg/scripts.inc @@ -0,0 +1,11 @@ +UndergroundPath_WestEntrance_Frlg_MapScripts:: + .byte 0 + +UndergroundPath_WestEntrance_EventScript_BaldingMan:: + msgbox UndergroundPath_WestEntrance_Text_SleepyMonNearCeladon, MSGBOX_NPC + end + +UndergroundPath_WestEntrance_Text_SleepyMonNearCeladon:: + .string "I heard a sleepy POKéMON appeared\n" + .string "out near CELADON CITY, too.$" + diff --git a/data/maps/UnionRoom_Frlg/map.json b/data/maps/UnionRoom_Frlg/map.json new file mode 100644 index 000000000000..fe48f7d72d79 --- /dev/null +++ b/data/maps/UnionRoom_Frlg/map.json @@ -0,0 +1,165 @@ +{ + "id": "MAP_UNION_ROOM_FRLG", + "name": "UnionRoom_Frlg", + "layout": "LAYOUT_UNION_ROOM_FRLG", + "music": "MUS_RG_UNION_ROOM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_SPECIAL_AREA", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_LINK", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", + "x": 3, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Attendant_Frlg", + "flag": "0" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_4", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_3", + "x": 1, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player4_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_4" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_8", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_7", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player8_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_8" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_7", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_6", + "x": 1, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player7_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_7" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_6", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_5", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player6_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_6" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_5", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_4", + "x": 13, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player5_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_5" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_3", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_2", + "x": 10, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player3_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_3" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_1", + "x": 13, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player2_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_2" + }, + { + "local_id": "LOCALID_UNION_ROOM_PLAYER_1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "UnionRoom_EventScript_Player1_Frlg", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_1" + } + ], + "warp_events": [ + { + "x": 7, + "y": 11, + "elevation": 3, + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/UnionRoom_Frlg/scripts.inc b/data/maps/UnionRoom_Frlg/scripts.inc new file mode 100644 index 000000000000..5412274032f8 --- /dev/null +++ b/data/maps/UnionRoom_Frlg/scripts.inc @@ -0,0 +1,107 @@ +UnionRoom_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_RESUME, UnionRoom_OnResume_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, UnionRoom_OnTransition_Frlg + .byte 0 + +UnionRoom_OnResume_Frlg:: + setflag FLAG_HIDE_UNION_ROOM_PLAYER_1 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_2 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_3 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_4 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_5 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_6 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_7 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_8 + removeobject LOCALID_UNION_ROOM_PLAYER_1 + removeobject LOCALID_UNION_ROOM_PLAYER_2 + removeobject LOCALID_UNION_ROOM_PLAYER_3 + removeobject LOCALID_UNION_ROOM_PLAYER_4 + removeobject LOCALID_UNION_ROOM_PLAYER_5 + removeobject LOCALID_UNION_ROOM_PLAYER_6 + removeobject LOCALID_UNION_ROOM_PLAYER_7 + removeobject LOCALID_UNION_ROOM_PLAYER_8 + special RunUnionRoom + end + +UnionRoom_OnTransition_Frlg:: + setflag FLAG_TEMP_HIDE_FOLLOWER + end + +UnionRoom_EventScript_Player1_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 1 + waitstate + release + end + +UnionRoom_EventScript_Player2_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 2 + waitstate + release + end + +UnionRoom_EventScript_Player3_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 3 + waitstate + release + end + +UnionRoom_EventScript_Player4_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 4 + waitstate + release + end + +UnionRoom_EventScript_Player5_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 5 + waitstate + release + end + +UnionRoom_EventScript_Player6_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 6 + waitstate + release + end + +UnionRoom_EventScript_Player7_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 7 + waitstate + release + end + +UnionRoom_EventScript_Player8_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 8 + waitstate + release + end + +UnionRoom_EventScript_Attendant_Frlg:: + lock + faceplayer + setvar VAR_RESULT, 9 + waitstate + release + end + +UnionRoom_EventScript_Unused_Frlg:: + lockall + setvar VAR_RESULT, 10 + waitstate + releaseall + end diff --git a/data/maps/VermilionCity_Frlg/map.json b/data/maps/VermilionCity_Frlg/map.json new file mode 100644 index 000000000000..2c3035bdfe63 --- /dev/null +++ b/data/maps/VermilionCity_Frlg/map.json @@ -0,0 +1,306 @@ +{ + "id": "MAP_VERMILION_CITY", + "name": "VermilionCity_Frlg", + "layout": "LAYOUT_VERMILION_CITY", + "music": "MUS_RG_VERMILLION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE6", + "offset": 12, + "direction": "up" + }, + { + "map": "MAP_ROUTE11", + "offset": 10, + "direction": "right" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 22, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 17, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_OldMan1", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", + "x": 36, + "y": 10, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_OldMan2", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MACHOP", + "x": 35, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 2, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_Machop", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 31, + "y": 30, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_Sailor", + "flag": "0" + }, + { + "local_id": "LOCALID_VERMILION_FERRY_SAILOR", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 24, + "y": 33, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_FerrySailor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 19, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", + "x": 25, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_EventScript_OaksAide", + "flag": "FLAG_HIDE_VERMILION_CITY_OAKS_AIDE" + } + ], + "warp_events": [ + { + "x": 22, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": "1" + }, + { + "x": 23, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": "1" + }, + { + "x": 24, + "y": 34, + "elevation": 3, + "dest_map": "MAP_SSANNE_EXTERIOR", + "dest_warp_id": "1" + }, + { + "x": 9, + "y": 6, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_HOUSE1", + "dest_warp_id": "1" + }, + { + "x": 15, + "y": 6, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 12, + "y": 17, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_POKEMON_FAN_CLUB", + "dest_warp_id": "1" + }, + { + "x": 19, + "y": 17, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_HOUSE2", + "dest_warp_id": "1" + }, + { + "x": 29, + "y": 17, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_MART", + "dest_warp_id": "1" + }, + { + "x": 28, + "y": 24, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_HOUSE3", + "dest_warp_id": "1" + }, + { + "x": 14, + "y": 25, + "elevation": 0, + "dest_map": "MAP_VERMILION_CITY_GYM", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 33, + "elevation": 0, + "var": "VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER", + "var_value": "0", + "script": "VermilionCity_EventScript_CheckTicketLeft" + }, + { + "type": "trigger", + "x": 23, + "y": 33, + "elevation": 0, + "var": "VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER", + "var_value": "0", + "script": "VermilionCity_EventScript_CheckTicketRight" + }, + { + "type": "trigger", + "x": 22, + "y": 32, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "VermilionCity_EventScript_ExitedTicketCheck" + }, + { + "type": "trigger", + "x": 23, + "y": 32, + "elevation": 0, + "var": "VAR_TEMP_1", + "var_value": "0", + "script": "VermilionCity_EventScript_ExitedTicketCheck" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 33, + "y": 6, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_EventScript_CitySign" + }, + { + "type": "sign", + "x": 10, + "y": 17, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_EventScript_PokemonFanClubSign" + }, + { + "type": "sign", + "x": 10, + "y": 24, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_EventScript_GymSign" + }, + { + "type": "sign", + "x": 34, + "y": 18, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_EventScript_HarborSign" + }, + { + "type": "sign", + "x": 45, + "y": 17, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_EventScript_SnorlaxNotice" + }, + { + "type": "hidden_item", + "x": 14, + "y": 11, + "elevation": 3, + "item": "ITEM_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/VermilionCity_Frlg/scripts.inc b/data/maps/VermilionCity_Frlg/scripts.inc new file mode 100644 index 000000000000..f5acbc95e3ea --- /dev/null +++ b/data/maps/VermilionCity_Frlg/scripts.inc @@ -0,0 +1,396 @@ +VermilionCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, VermilionCity_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, VermilionCity_OnFrame + .byte 0 + +VermilionCity_OnFrame:: + map_script_2 VAR_MAP_SCENE_VERMILION_CITY, 2, VermilionCity_EventScript_ExitSSAnne + .2byte 0 + +VermilionCity_EventScript_ExitSSAnne:: + lockall + applymovement LOCALID_PLAYER, VermilionCity_Movement_ExitSSAnne + waitmovement 0 + setvar VAR_MAP_SCENE_VERMILION_CITY, 3 + releaseall + end + +VermilionCity_Movement_ExitSSAnne:: + walk_up + walk_up + step_end + +VermilionCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_VERMILION_CITY + call_if_set FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION, VermilionCity_EventScript_HideOaksAide + end + +VermilionCity_EventScript_HideOaksAide:: + setflag FLAG_HIDE_VERMILION_CITY_OAKS_AIDE + return + +VermilionCity_EventScript_Woman:: + msgbox VermilionCity_Text_GrimerMultipliesInSludge, MSGBOX_NPC + end + +VermilionCity_EventScript_OldMan1:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_VERMILION_CITY, 3, VermilionCity_EventScript_OldMan1SSAnneLeft + msgbox VermilionCity_Text_DidYouSeeSSAnneInHarbor + release + end + +VermilionCity_EventScript_OldMan1SSAnneLeft:: + msgbox VermilionCity_Text_SSAnneHasDepartedForYear + release + end + +VermilionCity_EventScript_FerrySailor:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_VERMILION_CITY, 3, VermilionCity_EventScript_CheckSeagallopPresent + msgbox VermilionCity_Text_WelcomeToTheSSAnne + release + end + +VermilionCity_EventScript_CheckHasMysticTicket:: + goto_if_unset FLAG_ENABLE_SHIP_NAVEL_ROCK, EventScript_SetResultFalse + checkitem ITEM_MYSTIC_TICKET + goto_if_eq VAR_RESULT, FALSE, EventScript_SetResultFalse + goto EventScript_SetResultTrue + end + +VermilionCity_EventScript_CheckHasAuroraTicket:: + goto_if_unset FLAG_ENABLE_SHIP_BIRTH_ISLAND, EventScript_SetResultFalse + checkitem ITEM_AURORA_TICKET + goto_if_eq VAR_RESULT, FALSE, EventScript_SetResultFalse + goto EventScript_SetResultTrue + end + +VermilionCity_EventScript_CheckSeagallopPresent:: + setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, VermilionCity_EventScript_ChooseSeagallopDestRainbowPass + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1, VermilionCity_EventScript_ChooseSeagallopDestTriPass + msgbox VermilionCity_Text_TheShipSetSail + release + end + +VermilionCity_EventScript_ChooseSeagallopDestRainbowPass:: + call VermilionCity_EventScript_CheckHasMysticTicket + goto_if_eq VAR_RESULT, TRUE, VermilionCity_EventScript_HasMysticTicket + call VermilionCity_EventScript_CheckHasAuroraTicket + goto_if_eq VAR_RESULT, TRUE, VermilionCity_EventScript_HasAuroraTicket + setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY + message VermilionCity_Text_BoardSeagallopRainbowPass + waitmessage + goto EventScript_SeviiDestinationsPage1 + end + +VermilionCity_EventScript_HasMysticTicket:: + call VermilionCity_EventScript_CheckHasAuroraTicket + goto_if_eq VAR_RESULT, TRUE, VermilionCity_EventScript_HasMysticAndAuroraTickets + call_if_unset FLAG_SHOWN_MYSTIC_TICKET, VermilionCity_EventScript_ShowMysticTicket + message VermilionCity_Text_BoardSeagallopFerry + waitmessage + multichoice 17, 6, MULTI_SEVII_NAVEL, FALSE + switch VAR_RESULT + case 0, EventScript_SeviiDestinationsPage1 + case 1, EventScript_SailToNavelRock + case 2, EventScript_CancelSail + case 127, EventScript_CancelSail + end + +VermilionCity_EventScript_ShowMysticTicket:: + setflag FLAG_SHOWN_MYSTIC_TICKET + msgbox VermilionCity_Text_OhMysticTicketTakeYouToNavelRock + return + +VermilionCity_EventScript_HasAuroraTicket:: + call_if_unset FLAG_SHOWN_AURORA_TICKET, VermilionCity_EventScript_ShowAuroraTicket + message VermilionCity_Text_BoardSeagallopFerry + waitmessage + multichoice 13, 6, MULTI_SEVII_BIRTH, FALSE + switch VAR_RESULT + case 0, EventScript_SeviiDestinationsPage1 + case 1, EventScript_SailToBirthIsland + case 2, EventScript_CancelSail + case 127, EventScript_CancelSail + end + +VermilionCity_EventScript_ShowAuroraTicket:: + setflag FLAG_SHOWN_AURORA_TICKET + msgbox VermilionCity_Text_OhAuroraTicketTakeYouToBirthIsland + return + +VermilionCity_EventScript_HasMysticAndAuroraTickets:: + call_if_unset FLAG_SHOWN_MYSTIC_TICKET, VermilionCity_EventScript_ShowMysticTicket + call_if_unset FLAG_SHOWN_AURORA_TICKET, VermilionCity_EventScript_ShowAuroraTicket + message VermilionCity_Text_BoardSeagallopFerry + waitmessage + multichoice 13, 5, MULTI_SEVII_NAVEL_BIRTH, FALSE + switch VAR_RESULT + case 0, EventScript_SeviiDestinationsPage1 + case 1, EventScript_SailToNavelRock + case 2, EventScript_SailToBirthIsland + case 3, EventScript_CancelSail + case 127, EventScript_CancelSail + end + +EventScript_SailToNavelRock:: + msgbox VermilionCity_Text_Seagallop10Departing + setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY + setvar VAR_0x8006, SEAGALLOP_NAVEL_ROCK + goto EventScript_SetSail + end + +EventScript_SailToBirthIsland:: + msgbox VermilionCity_Text_Seagallop12Departing + setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY + setvar VAR_0x8006, SEAGALLOP_BIRTH_ISLAND + goto EventScript_SetSail + end + +VermilionCity_EventScript_ChooseSeagallopDestTriPass:: + message VermilionCity_Text_BoardSeagallopTriPass + waitmessage + setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY + multichoice 19, 5, MULTI_SEAGALLOP_123, FALSE + switch VAR_RESULT + case 0, EventScript_SailToOneIsland2 + case 1, EventScript_SailToTwoIsland2 + case 2, EventScript_SailToThreeIsland2 + case 3, EventScript_CancelSail + case 127, EventScript_CancelSail + end + +@ Unreachable +Vermilion_EventScript_Unused:: + release + end + +VermilionCity_EventScript_CheckTicketLeft:: + lockall + goto VermilionCity_EventScript_CheckTicket + end + +VermilionCity_EventScript_CheckTicketRight:: + lockall + goto VermilionCity_EventScript_CheckTicket + end + +VermilionCity_EventScript_ExitedTicketCheck:: + lockall + setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 0 + releaseall + end + +VermilionCity_EventScript_CheckTicket:: + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_VERMILION_FERRY_SAILOR, Common_Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + goto_if_eq VAR_MAP_SCENE_VERMILION_CITY, 3, VermilionCity_EventScript_CheckSeagallopPresentTrigger + msgbox VermilionCity_Text_DoYouHaveATicket + goto_if_unset FLAG_GOT_SS_TICKET, VermilionCity_EventScript_DontHaveSSTicket + msgbox VermilionCity_Text_FlashedSSTicket + setvar VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER, 1 + releaseall + end + +VermilionCity_EventScript_DontHaveSSTicket:: + msgbox VermilionCity_Text_DontHaveNeededSSTicket + closemessage + goto VermilionCity_EventScript_WalkUpPier + end + +VermilionCity_EventScript_CheckSeagallopPresentTrigger:: + setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, VermilionCity_EventScript_ChooseSeagallopDestRainbowPass + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1, VermilionCity_EventScript_ChooseSeagallopDestTriPass + msgbox VermilionCity_Text_TheShipSetSail + closemessage + goto VermilionCity_EventScript_WalkUpPier + end + +VermilionCity_EventScript_Sailor:: + msgbox VermilionCity_Text_SSAnneVisitsOnceAYear, MSGBOX_NPC + end + +VermilionCity_EventScript_OaksAide:: + lock + faceplayer + setflag FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION + msgbox VermilionCity_Text_Route2AideHasPackageForYou + release + end + +VermilionCity_EventScript_OldMan2:: + msgbox VermilionCity_Text_BuildingOnThisLand, MSGBOX_NPC + end + +VermilionCity_EventScript_Machop:: + lock + faceplayer + waitse + playmoncry SPECIES_MACHOP, CRY_MODE_NORMAL + msgbox VermilionCity_Text_Machop + waitmoncry + msgbox VermilionCity_Text_MachopStompingLandFlat + release + end + +VermilionCity_EventScript_CitySign:: + msgbox VermilionCity_Text_CitySign, MSGBOX_SIGN + end + +VermilionCity_EventScript_SnorlaxNotice:: + msgbox VermilionCity_Text_SnorlaxBlockingRoute12, MSGBOX_SIGN + end + +VermilionCity_EventScript_PokemonFanClubSign:: + msgbox VermilionCity_Text_PokemonFanClubSign, MSGBOX_SIGN + end + +VermilionCity_EventScript_GymSign:: + lockall + famechecker FAMECHECKER_LTSURGE, 0 + msgbox VermilionCity_Text_GymSign + releaseall + end + +VermilionCity_EventScript_HarborSign:: + msgbox VermilionCity_Text_VermilionHarbor, MSGBOX_SIGN + end + +VermilionCity_Text_GrimerMultipliesInSludge:: + .string "We're careful about pollution here.\p" + .string "We've heard GRIMER multiplies in\n" + .string "toxic sludge.$" + +VermilionCity_Text_DidYouSeeSSAnneInHarbor:: + .string "Did you see the S.S. ANNE moored\n" + .string "in the harbor?$" + +VermilionCity_Text_SSAnneHasDepartedForYear:: + .string "So, the S.S. ANNE has departed?\p" + .string "She'll be back in VERMILION about\n" + .string "this time next year.$" + +VermilionCity_Text_BuildingOnThisLand:: + .string "I'm putting up a building on this\n" + .string "plot of land. I own it all.\p" + .string "My POKéMON is tamping the land\n" + .string "to lay the foundation.$" + +VermilionCity_Text_Machop:: + .string "MACHOP: Guoh! Gogogoh!$" + +VermilionCity_Text_MachopStompingLandFlat:: + .string "A MACHOP is stomping the land flat.$" + +VermilionCity_Text_SSAnneVisitsOnceAYear:: + .string "The S.S. ANNE is a famous luxury\n" + .string "cruise ship.\p" + .string "It visits VERMILION once a year.$" + +VermilionCity_Text_CitySign:: + .string "VERMILION CITY\n" + .string "The Port of Exquisite Sunsets$" + +VermilionCity_Text_SnorlaxBlockingRoute12:: + .string "NOTICE!\p" + .string "ROUTE 12 may be blocked off by a\n" + .string "sleeping POKéMON.\p" + .string "Detour through ROCK TUNNEL to\n" + .string "LAVENDER TOWN.\p" + .string "VERMILION POLICE$" + +VermilionCity_Text_PokemonFanClubSign:: + .string "POKéMON FAN CLUB\n" + .string "All POKéMON fans welcome!$" + +VermilionCity_Text_GymSign:: + .string "VERMILION CITY POKéMON GYM\n" + .string "LEADER: LT. SURGE\l" + .string "The Lightning American!$" + +VermilionCity_Text_VermilionHarbor:: + .string "VERMILION HARBOR$" + +VermilionCity_Text_WelcomeToTheSSAnne:: + .string "Welcome to the S.S. ANNE!$" + +VermilionCity_Text_DoYouHaveATicket:: + .string "Welcome to the S.S. ANNE!\p" + .string "Excuse me, do you have a ticket?$" + +VermilionCity_Text_FlashedSSTicket:: + .string "{FONT_NORMAL}{PLAYER} flashed the S.S. TICKET!\p" + .string "{FONT_MALE}Great!\n" + .string "Welcome to the S.S. ANNE!$" + +VermilionCity_Text_DontHaveNeededSSTicket:: + .string "{FONT_NORMAL}{PLAYER} doesn't have the needed\n" + .string "S.S. TICKET.\p" + .string "{FONT_MALE}Sorry!\p" + .string "You need a ticket to get aboard.$" + +VermilionCity_Text_TheShipSetSail:: + .string "The ship set sail.$" + +VermilionCity_Text_BoardSeagallopTriPass:: + .string "Ah, you have a TRI-PASS.\p" + .string "Would you like to board\n" + .string "a SEAGALLOP ferry?$" + +VermilionCity_Text_Seagallop7Departing:: + .string "Okay, everything's in order.\p" + .string "SEAGALLOP HI-SPEED 7 will be\n" + .string "departing immediately.$" + +VermilionCity_Text_BoardSeagallopRainbowPass:: + .string "Ah, you have a RAINBOW PASS.\p" + .string "Would you like to board\n" + .string "a SEAGALLOP ferry?$" + +VermilionCity_Text_OhMysticTicketTakeYouToNavelRock:: + .string "Oh! That's a MYSTICTICKET!\n" + .string "Now that is rare.\p" + .string "We'll be happy to take you to\n" + .string "NAVEL ROCK anytime.$" + +VermilionCity_Text_OhAuroraTicketTakeYouToBirthIsland:: + .string "Oh! That's an AURORATICKET!\n" + .string "Now that is rare.\p" + .string "We'll be happy to take you to\n" + .string "BIRTH ISLAND anytime.$" + +VermilionCity_Text_BoardSeagallopFerry:: + .string "Would you like to board\n" + .string "a SEAGALLOP ferry?$" + +VermilionCity_Text_Seagallop10Departing:: + .string "Okay, everything's in order for you\n" + .string "to board a special ferry.\p" + .string "SEAGALLOP HI-SPEED 10 will be\n" + .string "departing immediately.$" + +VermilionCity_Text_Seagallop12Departing:: + .string "Okay, everything's in order for you\n" + .string "to board a special ferry.\p" + .string "SEAGALLOP HI-SPEED 12 will be\n" + .string "departing immediately.$" + +VermilionCity_Text_Route2AideHasPackageForYou:: + .string "Oh, hello, {PLAYER}!\n" + .string "How are you doing?\p" + .string "It's me, one of PROF. OAK's AIDES.\p" + .string "Did you meet the other AIDE?\p" + .string "He had a package from PROF. OAK\n" + .string "for you, {PLAYER}.\p" + .string "He said he'd look for you around\n" + .string "ROUTE 2, {PLAYER}.\p" + .string "If you're in the ROUTE 2 area,\n" + .string "please look for him.$" + diff --git a/data/maps/VermilionCity_Gym_Frlg/map.json b/data/maps/VermilionCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..070d9112e193 --- /dev/null +++ b/data/maps/VermilionCity_Gym_Frlg/map.json @@ -0,0 +1,252 @@ +{ + "id": "MAP_VERMILION_CITY_GYM", + "name": "VermilionCity_Gym_Frlg", + "layout": "LAYOUT_VERMILION_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LT_SURGE", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_Gym_EventScript_LtSurge", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 2, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "VermilionCity_Gym_EventScript_Baily", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SAILOR_FRLG", + "x": 8, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "VermilionCity_Gym_EventScript_Dwayne", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 4, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_Gym_EventScript_GymGuy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 7, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "VermilionCity_Gym_EventScript_Tucker", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "9" + }, + { + "x": 5, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "9" + }, + { + "x": 6, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "9" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 3, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 7, + "y": 17, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 1, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan1" + }, + { + "type": "sign", + "x": 3, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan2" + }, + { + "type": "sign", + "x": 5, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan3" + }, + { + "type": "sign", + "x": 7, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan4" + }, + { + "type": "sign", + "x": 9, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan5" + }, + { + "type": "sign", + "x": 1, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan6" + }, + { + "type": "sign", + "x": 3, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan7" + }, + { + "type": "sign", + "x": 5, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan8" + }, + { + "type": "sign", + "x": 7, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan9" + }, + { + "type": "sign", + "x": 9, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan10" + }, + { + "type": "sign", + "x": 1, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan11" + }, + { + "type": "sign", + "x": 3, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan12" + }, + { + "type": "sign", + "x": 5, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan13" + }, + { + "type": "sign", + "x": 7, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan14" + }, + { + "type": "sign", + "x": 9, + "y": 14, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_Gym_EventScript_TrashCan15" + } + ] +} diff --git a/data/maps/VermilionCity_Gym_Frlg/scripts.inc b/data/maps/VermilionCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..37aa1b698b18 --- /dev/null +++ b/data/maps/VermilionCity_Gym_Frlg/scripts.inc @@ -0,0 +1,421 @@ +.equ FOUND_FIRST_SWITCH, FLAG_TEMP_1 +.equ SWITCH1_ID, VAR_0x8004 +.equ SWITCH2_ID, VAR_0x8005 +.equ TRASH_CAN_ID, VAR_0x8008 + +VermilionCity_Gym_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, VermilionCity_Gym_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, VermilionCity_Gym_OnTransition + .byte 0 + +VermilionCity_Gym_OnLoad:: + call_if_set FOUND_FIRST_SWITCH, VermilionCity_Gym_EventScript_SetOneBeamOff + call_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_SetBeamsOff + end + +VermilionCity_Gym_EventScript_SetOneBeamOff:: + setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn, 1 + setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn, 1 + setmetatile 5, 6, METATILE_VermilionGym_Beam_MidTop_HalfOn, 1 + setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn, 1 + setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_HalfOn, 1 + setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn, 1 + setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn, 1 + setmetatile 5, 7, METATILE_VermilionGym_Beam_MidBottom_HalfOn, 1 + setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn, 1 + setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn, 1 + return + +VermilionCity_Gym_EventScript_SetBeamsOff:: + setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Off, 1 + setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off, 0 + setmetatile 5, 6, METATILE_VermilionGym_Floor, 0 + setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off, 0 + setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_Off, 1 + setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Off, 1 + setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off, 0 + setmetatile 5, 7, METATILE_VermilionGym_Floor, 0 + setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off, 0 + setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Off, 1 + return + +VermilionCity_Gym_OnTransition:: + call VermilionCity_Gym_EventScript_InitTrashCans + end + +VermilionCity_Gym_EventScript_InitTrashCans:: + goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, Common_EventScript_NopReturn + special SetVermilionTrashCans + copyvar VAR_TEMP_0, SWITCH1_ID + copyvar VAR_TEMP_1, SWITCH2_ID + return + +VermilionCity_Gym_EventScript_TrashCan1:: + lockall + setvar TRASH_CAN_ID, 1 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan2:: + lockall + setvar TRASH_CAN_ID, 2 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan3:: + lockall + setvar TRASH_CAN_ID, 3 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan4:: + lockall + setvar TRASH_CAN_ID, 4 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan5:: + lockall + setvar TRASH_CAN_ID, 5 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan6:: + lockall + setvar TRASH_CAN_ID, 6 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan7:: + lockall + setvar TRASH_CAN_ID, 7 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan8:: + lockall + setvar TRASH_CAN_ID, 8 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan9:: + lockall + setvar TRASH_CAN_ID, 9 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan10:: + lockall + setvar TRASH_CAN_ID, 10 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan11:: + lockall + setvar TRASH_CAN_ID, 11 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan12:: + lockall + setvar TRASH_CAN_ID, 12 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan13:: + lockall + setvar TRASH_CAN_ID, 13 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan14:: + lockall + setvar TRASH_CAN_ID, 14 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan15:: + lockall + setvar TRASH_CAN_ID, 15 + goto VermilionCity_Gym_EventScript_TrashCan + end + +VermilionCity_Gym_EventScript_TrashCan:: + copyvar SWITCH1_ID, VAR_TEMP_0 + copyvar SWITCH2_ID, VAR_TEMP_1 + goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_LocksAlreadyOpen + goto_if_set FOUND_FIRST_SWITCH, VermilionCity_Gym_EventScript_TrySwitchTwo + goto_if_eq SWITCH1_ID, TRASH_CAN_ID, VermilionCity_Gym_EventScript_FoundSwitchOne + msgbox VermilionCity_Gym_Text_NopeOnlyTrashHere + releaseall + end + +VermilionCity_Gym_EventScript_FoundSwitchOne:: + msgbox VermilionCity_Gym_Text_SwitchUnderTrashFirstLockOpened + playse SE_PIN + waitse + call VermilionCity_Gym_EventScript_SetOneBeamOff + special DrawWholeMapView + setflag FOUND_FIRST_SWITCH + releaseall + end + +VermilionCity_Gym_EventScript_TrySwitchTwo:: + goto_if_eq SWITCH2_ID, TRASH_CAN_ID, VermilionCity_Gym_EventScript_FoundSwitchTwo + msgbox VermilionCity_Gym_Text_OnlyTrashLocksWereReset + clearflag FOUND_FIRST_SWITCH + special SetVermilionTrashCans + copyvar VAR_TEMP_0, SWITCH1_ID + copyvar VAR_TEMP_1, SWITCH2_ID + call VermilionCity_Gym_EventScript_SetBeamsOn + special DrawWholeMapView + releaseall + end + +VermilionCity_Gym_EventScript_FoundSwitchTwo:: + msgbox VermilionCity_Gym_Text_SecondLockOpened + closemessage + call VermilionCity_Gym_EventScript_SetBeamsOff + special DrawWholeMapView + playse SE_UNLOCK + waitse + setflag FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES + releaseall + end + +VermilionCity_Gym_EventScript_LocksAlreadyOpen:: + msgbox VermilionCity_Gym_Text_NopeOnlyTrashHere + releaseall + end + +VermilionCity_Gym_EventScript_SetBeamsOn:: + setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_On, 1 + setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On, 1 + setmetatile 5, 6, METATILE_VermilionGym_Beam_MidTop, 1 + setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_On, 1 + setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_On, 1 + setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_On, 1 + setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On, 1 + setmetatile 5, 7, METATILE_VermilionGym_Beam_MidBottom, 1 + setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On, 1 + setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_On, 1 + return + +VermilionCity_Gym_EventScript_LtSurge:: + famechecker FAMECHECKER_LTSURGE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_LT_SURGE, VermilionCity_Gym_Text_LtSurgeIntro, VermilionCity_Gym_Text_LtSurgeDefeat, VermilionCity_Gym_EventScript_DefeatedLtSurge, NO_MUSIC + goto_if_unset FLAG_GOT_TM34_FROM_SURGE, VermilionCity_Gym_EventScript_GiveTM34 + msgbox VermilionCity_Gym_Text_LtSurgePostBattle + release + end + +VermilionCity_Gym_EventScript_DefeatedLtSurge:: + famechecker FAMECHECKER_LTSURGE, 1 + call_if_unset FLAG_GOT_HM05, VermilionCity_Gym_EventScript_ShowOaksAide + clearflag FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL + setflag FLAG_DEFEATED_LT_SURGE + setflag FLAG_BADGE03_GET + set_gym_trainers_frlg 3 + goto VermilionCity_Gym_EventScript_GiveTM34 + end + +VermilionCity_Gym_EventScript_ShowOaksAide:: + clearflag FLAG_HIDE_VERMILION_CITY_OAKS_AIDE + return + +VermilionCity_Gym_EventScript_GiveTM34:: + msgbox VermilionCity_Gym_Text_ExplainThunderBadgeTakeThis + checkitemspace ITEM_TM34 + goto_if_eq VAR_RESULT, FALSE, VermilionCity_Gym_EventScript_NoRoomForTM34 + giveitem_msg VermilionCity_Gym_Text_ReceivedTM34FromLtSurge, ITEM_TM34 + setflag FLAG_GOT_TM34_FROM_SURGE + msgbox VermilionCity_Gym_Text_ExplainTM34 + release + end + +VermilionCity_Gym_EventScript_NoRoomForTM34:: + msgbox VermilionCity_Gym_Text_MakeRoomInYourBag + release + end + +VermilionCity_Gym_EventScript_Dwayne:: + trainerbattle_single TRAINER_SAILOR_DWAYNE, VermilionCity_Gym_Text_DwayneIntro, VermilionCity_Gym_Text_DwayneDefeat + famechecker FAMECHECKER_LTSURGE, 4 + msgbox VermilionCity_Gym_Text_DwaynePostBattle, MSGBOX_AUTOCLOSE + end + +VermilionCity_Gym_EventScript_Baily:: + trainerbattle_single TRAINER_ENGINEER_BAILY, VermilionCity_Gym_Text_BailyIntro, VermilionCity_Gym_Text_BailyDefeat + msgbox VermilionCity_Gym_Text_BailyPostBattle, MSGBOX_AUTOCLOSE + end + +VermilionCity_Gym_EventScript_Tucker:: + trainerbattle_single TRAINER_GENTLEMAN_TUCKER, VermilionCity_Gym_Text_TuckerIntro, VermilionCity_Gym_Text_TuckerDefeat, VermilionCity_Gym_EventScript_DefeatedTucker + famechecker FAMECHECKER_LTSURGE, 3 + msgbox VermilionCity_Gym_Text_TuckerPostBattle, MSGBOX_AUTOCLOSE + end + +VermilionCity_Gym_EventScript_DefeatedTucker:: + famechecker FAMECHECKER_LTSURGE, 2 + release + end + +VermilionCity_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_LT_SURGE, VermilionCity_Gym_EventScript_GymGuyPostVictory + msgbox VermilionCity_Gym_Text_GymGuyAdvice + release + end + +VermilionCity_Gym_EventScript_GymGuyPostVictory:: + msgbox VermilionCity_Gym_Text_GymGuyPostVictory + release + end + +VermilionCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE03_GET, VermilionCity_Gym_EventScript_GymStatuePostVictory + msgbox VermilionCity_Gym_Text_GymStatue + releaseall + end + +VermilionCity_Gym_EventScript_GymStatuePostVictory:: + msgbox VermilionCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +VermilionCity_Gym_Text_LtSurgeIntro:: + .string "Hey, kid! What do you think you're\n" + .string "doing here?\p" + .string "You won't live long in combat!\n" + .string "Not with your puny power!\p" + .string "I tell you, kid, electric POKéMON\n" + .string "saved me during the war!\p" + .string "They zapped my enemies into\n" + .string "paralysis!\p" + .string "The same as I'll do to you!{PLAY_BGM}{MUS_RG_ENCOUNTER_GYM_LEADER}$" + +VermilionCity_Gym_Text_LtSurgePostBattle:: + .string "A little word of advice, kid!\p" + .string "Electricity is sure powerful!\p" + .string "But, it's useless against GROUND-\n" + .string "type POKéMON!$" + +VermilionCity_Gym_Text_ExplainThunderBadgeTakeThis:: + .string "The THUNDERBADGE cranks up your\n" + .string "POKéMON's SPEED!\p" + .string "It also lets your POKéMON FLY\n" + .string "lightning-quick anytime, kid!\p" + .string "You're special, kid!\n" + .string "Take this!$" + +VermilionCity_Gym_Text_ReceivedTM34FromLtSurge:: + .string "{PLAYER} received TM34\n" + .string "from LT. SURGE.$" + +VermilionCity_Gym_Text_ExplainTM34:: + .string "TM34 contains SHOCK WAVE!\p" + .string "Teach it to an ELECTRIC POKéMON!$" + +VermilionCity_Gym_Text_MakeRoomInYourBag:: + .string "Yo, kid, make room in your BAG!$" + +VermilionCity_Gym_Text_LtSurgeDefeat:: + .string "Now that's a shocker!\p" + .string "You're the real deal, kid!\p" + .string "Fine, then, take the THUNDERBADGE!$" + +VermilionCity_Gym_Text_TuckerIntro:: + .string "When I was in the Army, LT. SURGE\n" + .string "was my strict CO.\p" + .string "He was a hard taskmaster.$" + +VermilionCity_Gym_Text_TuckerDefeat:: + .string "Stop!\n" + .string "You're very good!$" + +VermilionCity_Gym_Text_TuckerPostBattle:: + .string "It's not easy opening that door.\p" + .string "LT. SURGE was always famous for\n" + .string "his cautious nature in the Army.$" + +VermilionCity_Gym_Text_BailyIntro:: + .string "I'm a lightweight, but I'm good\n" + .string "with electricity!\p" + .string "That's why I joined this GYM.$" + +VermilionCity_Gym_Text_BailyDefeat:: + .string "Fried!$" + +VermilionCity_Gym_Text_BailyPostBattle:: + .string "Okay, I'll talk!\p" + .string "LT. SURGE said he hid door\n" + .string "switches inside something.$" + +VermilionCity_Gym_Text_DwayneIntro:: + .string "This is no place for kids!\n" + .string "Not even if you're good!$" + +VermilionCity_Gym_Text_DwayneDefeat:: + .string "Wow!\n" + .string "Surprised me!$" + +VermilionCity_Gym_Text_DwaynePostBattle:: + .string "LT. SURGE installed the traps in\n" + .string "the GYM himself.\p" + .string "He set up double locks everywhere.\n" + .string "Let me give you a hint.\p" + .string "When you open the first lock, the\n" + .string "second lock is right next to it.$" + +VermilionCity_Gym_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "LT. SURGE has a nickname.\p" + .string "People refer to him as the\n" + .string "Lightning American!\p" + .string "He's an expert on electric\n" + .string "POKéMON.\p" + .string "BIRD/WATER-type POKéMON match\n" + .string "poorly against the ELECTRIC type.\p" + .string "Beware of paralysis, too.\p" + .string "LT. SURGE is very cautious.\p" + .string "He's locked himself in, so it won't\n" + .string "be easy getting to him.$" + +VermilionCity_Gym_Text_GymGuyPostVictory:: + .string "Whew!\n" + .string "That match was electric!$" + +VermilionCity_Gym_Text_GymStatue:: + .string "VERMILION POKéMON GYM\n" + .string "LEADER: LT. SURGE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +VermilionCity_Gym_Text_GymStatuePlayerWon:: + .string "VERMILION POKéMON GYM\n" + .string "LEADER: LT. SURGE\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + +VermilionCity_Gym_Text_NopeOnlyTrashHere:: + .string "Nope!\n" + .string "There's only trash here.$" + +VermilionCity_Gym_Text_SwitchUnderTrashFirstLockOpened:: + .string "Hey! There's a switch under the\n" + .string "trash! Turn it on!\p" + .string "The first electric lock opened!$" + +VermilionCity_Gym_Text_SecondLockOpened:: + .string "The second electric lock opened!\n" + .string "The motorized door opened!$" + +VermilionCity_Gym_Text_OnlyTrashLocksWereReset:: + .string "Nope!\n" + .string "There's only trash here.\p" + .string "Hey!\n" + .string "The electric locks were reset!$" + diff --git a/data/maps/VermilionCity_House1_Frlg/map.json b/data/maps/VermilionCity_House1_Frlg/map.json new file mode 100644 index 000000000000..84071cef12ef --- /dev/null +++ b/data/maps/VermilionCity_House1_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_VERMILION_CITY_HOUSE1", + "name": "VermilionCity_House1_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_FUCHSIA", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FISHER", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_House1_EventScript_FishingGuru", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "3" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_House1_Frlg/scripts.inc b/data/maps/VermilionCity_House1_Frlg/scripts.inc new file mode 100644 index 000000000000..c39ce8b8b597 --- /dev/null +++ b/data/maps/VermilionCity_House1_Frlg/scripts.inc @@ -0,0 +1,68 @@ +VermilionCity_House1_Frlg_MapScripts:: + .byte 0 + +VermilionCity_House1_EventScript_FishingGuru:: + lock + faceplayer + goto_if_set FLAG_GOT_OLD_ROD, VermilionCity_House1_EventScript_AlreadyGotOldRod + msgbox VermilionCity_House1_Text_ImFishingGuruDoYouLikeToFish, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, VermilionCity_House1_EventScript_GiveOldRod + msgbox VermilionCity_House1_Text_OhThatsSoDisappointing + release + end + +VermilionCity_House1_EventScript_AlreadyGotOldRod:: + msgbox VermilionCity_House1_Text_HowAreTheFishBiting + release + end + +VermilionCity_House1_EventScript_GiveOldRod:: + checkitemspace ITEM_OLD_ROD + goto_if_eq VAR_RESULT, FALSE, VermilionCity_House1_EventScript_NoRoomForOldRod + additem ITEM_OLD_ROD + msgbox VermilionCity_House1_Text_TakeThisAndFish + msgreceiveditem VermilionCity_House1_Text_ReceivedOldRodFromFishingGuru, ITEM_OLD_ROD + setflag FLAG_GOT_OLD_ROD + msgbox VermilionCity_House1_Text_FishingIsAWayOfLife + release + end + +VermilionCity_House1_EventScript_NoRoomForOldRod:: + msgbox VermilionCity_House1_Text_NoRoomForNiceGift + release + end + +VermilionCity_House1_Text_ImFishingGuruDoYouLikeToFish:: + .string "I'm the FISHING GURU!\p" + .string "I simply looove fishing!\n" + .string "I can't bear to go without.\p" + .string "Tell me, do you like to fish?$" + +VermilionCity_House1_Text_TakeThisAndFish:: + .string "Grand! I like your style.\n" + .string "I think we can be friends.\p" + .string "Take this and fish, young friend!$" + +VermilionCity_House1_Text_ReceivedOldRodFromFishingGuru:: + .string "{PLAYER} received an OLD ROD from\n" + .string "the FISHING GURU.$" + +VermilionCity_House1_Text_FishingIsAWayOfLife:: + .string "Fishing is a way of life!\n" + .string "It is like the finest poetry.\p" + .string "From the seas to rivers, go out\n" + .string "and land the big one, my friend.$" + +VermilionCity_House1_Text_OhThatsSoDisappointing:: + .string "Oh…\n" + .string "That's so disappointing…$" + +VermilionCity_House1_Text_HowAreTheFishBiting:: + .string "Hello there, {PLAYER}!\p" + .string "How are the fish biting?$" + +VermilionCity_House1_Text_NoRoomForNiceGift:: + .string "Oh, no!\p" + .string "I had a nice gift for you, but you\n" + .string "have no room for it!$" + diff --git a/data/maps/VermilionCity_House2_Frlg/map.json b/data/maps/VermilionCity_House2_Frlg/map.json new file mode 100644 index 000000000000..74ce99ae3b2a --- /dev/null +++ b/data/maps/VermilionCity_House2_Frlg/map.json @@ -0,0 +1,59 @@ +{ + "id": "MAP_VERMILION_CITY_HOUSE2", + "name": "VermilionCity_House2_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_VERMILLION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 4, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_House2_EventScript_Elyssa", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "6" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "6" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "6" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_House2_Frlg/scripts.inc b/data/maps/VermilionCity_House2_Frlg/scripts.inc new file mode 100644 index 000000000000..0f1bac6e8818 --- /dev/null +++ b/data/maps/VermilionCity_House2_Frlg/scripts.inc @@ -0,0 +1,57 @@ +VermilionCity_House2_Frlg_MapScripts:: + .byte 0 + +VermilionCity_House2_EventScript_Elyssa:: + lock + faceplayer + setvar VAR_0x8008, INGAME_TRADE_FARFETCHD + call EventScript_GetInGameTradeSpeciesInfo + goto_if_set FLAG_DID_CH_DING_TRADE, VermilionCity_House2_EventScript_AlreadyTraded + msgbox VermilionCity_House2_Text_DoYouHaveMonWantToTradeForMyMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, VermilionCity_House2_EventScript_DeclineTrade + call EventScript_ChooseMonForInGameTrade + goto_if_ge VAR_0x8004, PARTY_SIZE, VermilionCity_House2_EventScript_DeclineTrade + call EventScript_GetInGameTradeSpecies + goto_if_ne VAR_RESULT, VAR_0x8009, VermilionCity_House2_EventScript_NotRequestedMon + call EventScript_DoInGameTrade + msgbox VermilionCity_House2_Text_ThankYou + setflag FLAG_DID_CH_DING_TRADE + release + end + +VermilionCity_House2_EventScript_DeclineTrade:: + msgbox VermilionCity_House2_Text_ThatsTooBad + release + end + +VermilionCity_House2_EventScript_NotRequestedMon:: + bufferspeciesname STR_VAR_1, VAR_0x8009 + msgbox VermilionCity_House2_Text_ThisIsNoMon + release + end + +VermilionCity_House2_EventScript_AlreadyTraded:: + msgbox VermilionCity_House2_Text_HowIsMyOldMon + release + end + +VermilionCity_House2_Text_DoYouHaveMonWantToTradeForMyMon:: + .string "Hi!\n" + .string "Do you have a {STR_VAR_1}?\p" + .string "Want to trade it for my\n" + .string "{STR_VAR_2}?$" + +VermilionCity_House2_Text_ThatsTooBad:: + .string "That's too bad.$" + +VermilionCity_House2_Text_ThisIsNoMon:: + .string "…This is no {STR_VAR_1}.\p" + .string "If you get one, please trade it\n" + .string "to me!$" + +VermilionCity_House2_Text_ThankYou:: + .string "Thank you!$" + +VermilionCity_House2_Text_HowIsMyOldMon:: + .string "How is my old {STR_VAR_2}?\p" + .string "My {STR_VAR_1} is doing great!$" diff --git a/data/maps/VermilionCity_House3_Frlg/map.json b/data/maps/VermilionCity_House3_Frlg/map.json new file mode 100644 index 000000000000..73dbbb1fad12 --- /dev/null +++ b/data/maps/VermilionCity_House3_Frlg/map.json @@ -0,0 +1,110 @@ +{ + "id": "MAP_VERMILION_CITY_HOUSE3", + "name": "VermilionCity_House3_Frlg", + "layout": "LAYOUT_HOUSE1_FRLG", + "music": "MUS_RG_VERMILLION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_House3_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIDGEY", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 2, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_House3_EventScript_Pidgey", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", + "x": 6, + "y": 4, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "0x0", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 2, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_House3_EventScript_Lass", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "8" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "8" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "8" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 6, + "y": 4, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_House3_EventScript_Letter" + } + ] +} diff --git a/data/maps/VermilionCity_House3_Frlg/scripts.inc b/data/maps/VermilionCity_House3_Frlg/scripts.inc new file mode 100644 index 000000000000..94c76a8ecbe3 --- /dev/null +++ b/data/maps/VermilionCity_House3_Frlg/scripts.inc @@ -0,0 +1,45 @@ +VermilionCity_House3_Frlg_MapScripts:: + .byte 0 + +VermilionCity_House3_EventScript_Boy:: + msgbox VermilionCity_House3_Text_PidgeyFlyLetterToSaffron, MSGBOX_NPC + end + +VermilionCity_House3_EventScript_Lass:: + msgbox VermilionCity_House3_Text_SendMyPidgeyToUnionRoom, MSGBOX_NPC + end + +VermilionCity_House3_EventScript_Pidgey:: + lock + faceplayer + waitse + playmoncry SPECIES_PIDGEY, CRY_MODE_NORMAL + msgbox VermilionCity_House3_Text_Pidgey + waitmoncry + release + end + +VermilionCity_House3_EventScript_Letter:: + msgbox VermilionCity_House3_Text_DearPippiLetter, MSGBOX_SIGN + end + +VermilionCity_House3_Text_PidgeyFlyLetterToSaffron:: + .string "I'm getting my PIDGEY to fly a\n" + .string "letter to SAFFRON in the north.$" + +VermilionCity_House3_Text_Pidgey:: + .string "PIDGEY: Kurukkoo!$" + +VermilionCity_House3_Text_DearPippiLetter:: + .string "Dear PIPPI,\n" + .string "I hope to see you soon.\p" + .string "I heard SAFFRON has problems with\n" + .string "TEAM ROCKET.\p" + .string "VERMILION appears to be safe.$" + +VermilionCity_House3_Text_SendMyPidgeyToUnionRoom:: + .string "I want to exchange MAIL with all\n" + .string "sorts of people.\p" + .string "I send my PIDGEY to a UNION ROOM\n" + .string "to exchange MAIL for me.$" + diff --git a/data/maps/VermilionCity_Mart_Frlg/map.json b/data/maps/VermilionCity_Mart_Frlg/map.json new file mode 100644 index 000000000000..1ed89fb400d3 --- /dev/null +++ b/data/maps/VermilionCity_Mart_Frlg/map.json @@ -0,0 +1,87 @@ +{ + "id": "MAP_VERMILION_CITY_MART", + "name": "VermilionCity_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 4, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_Mart_EventScript_CooltrainerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 9, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_Mart_EventScript_BaldingMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "7" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "7" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "7" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_Mart_Frlg/scripts.inc b/data/maps/VermilionCity_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..5b518c168738 --- /dev/null +++ b/data/maps/VermilionCity_Mart_Frlg/scripts.inc @@ -0,0 +1,48 @@ +VermilionCity_Mart_Frlg_MapScripts:: + .byte 0 + +VermilionCity_Mart_EventScript_CooltrainerF:: + msgbox VermilionCity_Mart_Text_MonsGoodOrBadDependingOnTrainer, MSGBOX_NPC + end + +VermilionCity_Mart_EventScript_BaldingMan:: + msgbox VermilionCity_Mart_Text_TeamRocketAreWickedPeople, MSGBOX_NPC + end + +VermilionCity_Mart_EventScript_Clerk:: + lock + faceplayer + message gText_HowMayIServeYou + waitmessage + pokemart VermilionCity_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +VermilionCity_Mart_Items:: + .2byte ITEM_POKE_BALL + .2byte ITEM_SUPER_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_AWAKENING + .2byte ITEM_ICE_HEAL + .2byte ITEM_REPEL + .2byte ITEM_NONE + release + end + +VermilionCity_Mart_Text_TeamRocketAreWickedPeople:: + .string "There are wicked people who will\n" + .string "use POKéMON for criminal acts.\p" + .string "TEAM ROCKET traffics in rare\n" + .string "POKéMON, for example.\p" + .string "They also abandon POKéMON that\n" + .string "they consider unpopular or useless.\p" + .string "That's the sort of horrid people\n" + .string "they are, TEAM ROCKET.$" + +VermilionCity_Mart_Text_MonsGoodOrBadDependingOnTrainer:: + .string "I think POKéMON can be good or\n" + .string "bad. It depends on the TRAINER.$" + diff --git a/data/maps/VermilionCity_PokemonCenter_1F_Frlg/map.json b/data/maps/VermilionCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..554f525bab1d --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,151 @@ +{ + "id": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", + "name": "VermilionCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_VERMILION_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 4, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_Man", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_HIKER_FRLG", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_Hiker", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 14, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 6, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_VSSeekerWoman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "0", + "x": 2, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_PokemonJournalLtSurge", + "flag": "FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL" + }, + { + "type": "object", + "graphics_id": "0", + "x": 3, + "y": 1, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_INVISIBLE", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonCenter_1F_EventScript_PokemonJournalLtSurge", + "flag": "FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "4" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "4" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "4" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/VermilionCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d261b8d030ed --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,89 @@ +VermilionCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, VermilionCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +VermilionCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_VERMILION_CITY + end + +VermilionCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +VermilionCity_PokemonCenter_1F_EventScript_Man:: + msgbox VermilionCity_PokemonCenter_1F_Text_PoisonedMonFaintedWhileWalking, MSGBOX_NPC + end + +VermilionCity_PokemonCenter_1F_EventScript_Hiker:: + msgbox VermilionCity_PokemonCenter_1F_Text_TrainerMonsStrongerThanWild, MSGBOX_NPC + end + +VermilionCity_PokemonCenter_1F_EventScript_Youngster:: + msgbox VermilionCity_PokemonCenter_1F_Text_AllMonWeakToSpecificTypes, MSGBOX_NPC + end + +VermilionCity_PokemonCenter_1F_EventScript_VSSeekerWoman:: + lock + faceplayer + goto_if_set FLAG_GOT_VS_SEEKER, VermilionCity_PokemonCenter_1F_EventScript_ExplainVSSeeker + msgbox VermilionCity_PokemonCenter_1F_Text_UrgeToBattleSomeoneAgain + setflag FLAG_GOT_VS_SEEKER + giveitem ITEM_VS_SEEKER + goto_if_eq VAR_RESULT, FALSE, EventScript_BagIsFull + msgbox VermilionCity_PokemonCenter_1F_Text_UseDeviceForRematches + release + end + +VermilionCity_PokemonCenter_1F_EventScript_ExplainVSSeeker:: + msgbox VermilionCity_PokemonCenter_1F_Text_ExplainVSSeeker + release + end + +VermilionCity_PokemonCenter_1F_Text_TrainerMonsStrongerThanWild:: + .string "Even if they are the same level,\n" + .string "POKéMON can have very different\l" + .string "stats and abilities.\p" + .string "A POKéMON raised by a TRAINER is\n" + .string "stronger than one in the wild.$" + +VermilionCity_PokemonCenter_1F_Text_PoisonedMonFaintedWhileWalking:: + .string "My POKéMON was poisoned!\n" + .string "It fainted while we were walking!$" + +VermilionCity_PokemonCenter_1F_Text_AllMonWeakToSpecificTypes:: + .string "It is true that a higher-level\n" + .string "POKéMON will be more powerful…\p" + .string "But, all POKéMON will have weak\n" + .string "points against specific types.\p" + .string "So, there appears to be no\n" + .string "universally strong POKéMON.$" + +VermilionCity_PokemonCenter_1F_Text_UrgeToBattleSomeoneAgain:: + .string "The urge to battle with someone\n" + .string "you've tangled with before…\p" + .string "Have you ever had that urge?\n" + .string "I'm sure you have.\p" + .string "I wanted to battle certain people\n" + .string "again over and over, too.\p" + .string "So, I've been giving these away.\n" + .string "Please, take one!$" + +VermilionCity_PokemonCenter_1F_Text_UseDeviceForRematches:: + .string "Use that device and you'll find\n" + .string "TRAINERS looking for a rematch.\p" + .string "You have to charge its battery to\n" + .string "use it, though.$" + +VermilionCity_PokemonCenter_1F_Text_ExplainVSSeeker:: + .string "How do you use the VS SEEKER?\n" + .string "There's nothing to it.\p" + .string "Use it like beep-beep-beep, and\n" + .string "TRAINERS around you will notice.\p" + .string "If any TRAINER wants a rematch,\n" + .string "it will let you know immediately.\p" + .string "Charge its battery and use it\n" + .string "while you're on a road.$" diff --git a/data/maps/VermilionCity_PokemonCenter_2F_Frlg/map.json b/data/maps/VermilionCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..46fa157d820a --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_VERMILION_CITY_POKEMON_CENTER_2F", + "name": "VermilionCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/VermilionCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/VermilionCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..6e11d58462d2 --- /dev/null +++ b/data/maps/VermilionCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +VermilionCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +VermilionCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +VermilionCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +VermilionCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/VermilionCity_PokemonFanClub_Frlg/map.json b/data/maps/VermilionCity_PokemonFanClub_Frlg/map.json new file mode 100644 index 000000000000..80c39648509b --- /dev/null +++ b/data/maps/VermilionCity_PokemonFanClub_Frlg/map.json @@ -0,0 +1,148 @@ +{ + "id": "MAP_VERMILION_CITY_POKEMON_FAN_CLUB", + "name": "VermilionCity_PokemonFanClub_Frlg", + "layout": "LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB", + "music": "MUS_RG_VERMILLION", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VERMILION_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 5, + "y": 4, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonFanClub_EventScript_Chairman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WORKER_F", + "x": 6, + "y": 4, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonFanClub_EventScript_WorkerF", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PIKACHU_FRLG", + "x": 7, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonFanClub_EventScript_Pikachu", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SEEL", + "x": 4, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonFanClub_EventScript_Seel", + "flag": "0" + }, + { + "local_id": "LOCALID_POKEMON_FAN_CLUB_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 4, + "y": 5, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonFanClub_EventScript_Woman", + "flag": "0" + }, + { + "local_id": "LOCALID_POKEMON_FAN_CLUB_FAT_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 7, + "y": 5, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VermilionCity_PokemonFanClub_EventScript_FatMan", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 4, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "5" + }, + { + "x": 5, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "5" + }, + { + "x": 6, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VERMILION_CITY", + "dest_warp_id": "5" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 2, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_PokemonFanClub_EventScript_RulesSign1" + }, + { + "type": "sign", + "x": 9, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "VermilionCity_PokemonFanClub_EventScript_RulesSign2" + } + ] +} diff --git a/data/maps/VermilionCity_PokemonFanClub_Frlg/scripts.inc b/data/maps/VermilionCity_PokemonFanClub_Frlg/scripts.inc new file mode 100644 index 000000000000..1af2995d8d24 --- /dev/null +++ b/data/maps/VermilionCity_PokemonFanClub_Frlg/scripts.inc @@ -0,0 +1,216 @@ +.set SPOKE_TO_WOMAN_LAST, FLAG_TEMP_2 +.set SPOKE_TO_FAT_MAN_LAST, FLAG_TEMP_3 + +VermilionCity_PokemonFanClub_Frlg_MapScripts:: + .byte 0 + +VermilionCity_PokemonFanClub_EventScript_Chairman:: + lock + faceplayer + goto_if_set FLAG_GOT_BIKE_VOUCHER, VermilionCity_PokemonFanClub_EventScript_AlreadyHeardStory + msgbox VermilionCity_PokemonFanClub_Text_DidYouComeToHearAboutMyMons, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, VermilionCity_PokemonFanClub_EventScript_ChairmanStory + msgbox VermilionCity_PokemonFanClub_Text_ComeBackToHearStory + release + end + +VermilionCity_PokemonFanClub_EventScript_AlreadyHeardStory:: + msgbox VermilionCity_PokemonFanClub_Text_DidntComeToSeeAboutMonsAgain + release + end + +VermilionCity_PokemonFanClub_EventScript_ChairmanStory:: + msgbox VermilionCity_PokemonFanClub_Text_ChairmansStory + checkitemspace ITEM_BIKE_VOUCHER + goto_if_eq VAR_RESULT, FALSE, VermilionCity_PokemonFanClub_EventScript_NoRoomForBikeVoucher + setflag FLAG_GOT_BIKE_VOUCHER + giveitem_msg VermilionCity_PokemonFanClub_Text_ReceivedBikeVoucherFromChairman, ITEM_BIKE_VOUCHER, 1, MUS_RG_OBTAIN_KEY_ITEM + msgbox VermilionCity_PokemonFanClub_Text_ExplainBikeVoucher + release + end + +VermilionCity_PokemonFanClub_EventScript_NoRoomForBikeVoucher:: + msgbox VermilionCity_PokemonFanClub_Text_MakeRoomForThis + release + end + +VermilionCity_PokemonFanClub_EventScript_WorkerF:: + lock + faceplayer + goto_if_set FLAG_SYS_GAME_CLEAR, VermilionCity_PokemonFanClub_EventScript_WorkerFGameClear + msgbox VermilionCity_PokemonFanClub_Text_ChairmanVeryVocalAboutPokemon + release + end + +VermilionCity_PokemonFanClub_EventScript_WorkerFGameClear:: + famechecker FAMECHECKER_DAISY, 1 + msgbox VermilionCity_PokemonFanClub_Text_ChairmanReallyAdoresHisMons + release + end + +VermilionCity_PokemonFanClub_EventScript_Woman:: + lock + faceplayer + goto_if_set SPOKE_TO_FAT_MAN_LAST, VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan + msgbox VermilionCity_PokemonFanClub_Text_AdoreMySeel + closemessage + applymovement LOCALID_POKEMON_FAN_CLUB_WOMAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + setflag SPOKE_TO_WOMAN_LAST + release + end + +VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan:: + msgbox VermilionCity_PokemonFanClub_Text_SeelFarMoreAttractive + closemessage + applymovement LOCALID_POKEMON_FAN_CLUB_WOMAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + clearflag SPOKE_TO_FAT_MAN_LAST + release + end + +VermilionCity_PokemonFanClub_EventScript_FatMan:: + lock + faceplayer + goto_if_set SPOKE_TO_WOMAN_LAST, VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman + msgbox VermilionCity_PokemonFanClub_Text_AdmirePikachusTail + closemessage + applymovement LOCALID_POKEMON_FAN_CLUB_FAT_MAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + setflag SPOKE_TO_FAT_MAN_LAST + release + end + +VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman:: + msgbox VermilionCity_PokemonFanClub_Text_PikachuTwiceAsCute + closemessage + applymovement LOCALID_POKEMON_FAN_CLUB_FAT_MAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + clearflag SPOKE_TO_WOMAN_LAST + release + end + +VermilionCity_PokemonFanClub_EventScript_Pikachu:: + lock + faceplayer + waitse + playmoncry SPECIES_PIKACHU, CRY_MODE_NORMAL + msgbox VermilionCity_PokemonFanClub_Text_Pikachu + waitmoncry + release + end + +VermilionCity_PokemonFanClub_EventScript_Seel:: + lock + faceplayer + waitse + playmoncry SPECIES_SEEL, CRY_MODE_NORMAL + msgbox VermilionCity_PokemonFanClub_Text_Seel + waitmoncry + release + end + +VermilionCity_PokemonFanClub_EventScript_RulesSign1:: + msgbox VermilionCity_PokemonFanClub_Text_ListenPolitelyToOtherTrainers, MSGBOX_SIGN + end + +VermilionCity_PokemonFanClub_EventScript_RulesSign2:: + msgbox VermilionCity_PokemonFanClub_Text_SomeoneBragsBragBack, MSGBOX_SIGN + end + +VermilionCity_PokemonFanClub_Text_AdmirePikachusTail:: + .string "Won't you admire my PIKACHU's\n" + .string "adorable tail?$" + +VermilionCity_PokemonFanClub_Text_PikachuTwiceAsCute:: + .string "Humph!\p" + .string "My PIKACHU is twice as cute as\n" + .string "that one!$" + +VermilionCity_PokemonFanClub_Text_AdoreMySeel:: + .string "I just adore my SEEL!\n" + .string "It's so lovable!\p" + .string "It squeals, “Kyuuuh,” when I\n" + .string "hug it!$" + +VermilionCity_PokemonFanClub_Text_SeelFarMoreAttractive:: + .string "Oh, dear!\p" + .string "My SEEL is far more attractive.\n" + .string "By double, I would say.$" + +VermilionCity_PokemonFanClub_Text_Pikachu:: + .string "PIKACHU: Chu! Pikachu!$" + +VermilionCity_PokemonFanClub_Text_Seel:: + .string "SEEL: Kyuoo!$" + +VermilionCity_PokemonFanClub_Text_DidYouComeToHearAboutMyMons:: + .string "I chair the POKéMON Fan Club!\p" + .string "I raise more than a hundred\n" + .string "POKéMON!\p" + .string "I'm very fussy when it comes to\n" + .string "POKéMON! I surely am!\p" + .string "So…\p" + .string "Did you come visit to hear about\n" + .string "my POKéMON?$" + +VermilionCity_PokemonFanClub_Text_ChairmansStory:: + .string "Good!\n" + .string "Then listen up!\p" + .string "My favorite RAPIDASH…\p" + .string "It's…cute…lovely…smart… \n" + .string "plus…amazing…you think so?…\l" + .string "oh yes…it's…stunning…\l" + .string "kindly…love it!\p" + .string "Hug it…when…sleeping…warm\n" + .string "and cuddly…spectacular…\l" + .string "ravishing…\l" + .string "…Oops! Look at the time!\l" + .string "I kept you too long!\p" + .string "Thanks for hearing me out!\n" + .string "I want you to have this!$" + +VermilionCity_PokemonFanClub_Text_ReceivedBikeVoucherFromChairman:: + .string "{PLAYER} received a BIKE VOUCHER\n" + .string "from the CHAIRMAN.$" + +VermilionCity_PokemonFanClub_Text_ExplainBikeVoucher:: + .string "Take that BIKE VOUCHER to the\n" + .string "BIKE SHOP in CERULEAN CITY.\p" + .string "Exchange that for a BICYCLE\n" + .string "free of charge!\p" + .string "Don't worry, my favorite FEAROW\n" + .string "will FLY me anywhere I need to go.\p" + .string "So, I have no need for a BICYCLE.\p" + .string "I hope you like cycling!$" + +VermilionCity_PokemonFanClub_Text_ComeBackToHearStory:: + .string "Oh. Come back when you want to\n" + .string "hear my story!$" + +VermilionCity_PokemonFanClub_Text_DidntComeToSeeAboutMonsAgain:: + .string "Hello, {PLAYER}!\p" + .string "Did you come see me about my\n" + .string "POKéMON again?\p" + .string "No?\n" + .string "Too bad!$" + +VermilionCity_PokemonFanClub_Text_MakeRoomForThis:: + .string "Make room for this!$" + +VermilionCity_PokemonFanClub_Text_ChairmanVeryVocalAboutPokemon:: + .string "Our CHAIRMAN is very vocal about\n" + .string "POKéMON.$" + +VermilionCity_PokemonFanClub_Text_ListenPolitelyToOtherTrainers:: + .string "Let's all listen politely to other\n" + .string "TRAINERS!$" + +VermilionCity_PokemonFanClub_Text_SomeoneBragsBragBack:: + .string "If someone brags, brag right back!$" + +VermilionCity_PokemonFanClub_Text_ChairmanReallyAdoresHisMons:: + .string "Our CHAIRMAN really does adore his\n" + .string "POKéMON.\p" + .string "But the person who is most liked by\n" + .string "POKéMON is DAISY, I think.$" diff --git a/data/maps/VictoryRoad_1F_Frlg/map.json b/data/maps/VictoryRoad_1F_Frlg/map.json new file mode 100644 index 000000000000..ef3f543dfcb5 --- /dev/null +++ b/data/maps/VictoryRoad_1F_Frlg/map.json @@ -0,0 +1,168 @@ +{ + "id": "MAP_VICTORY_ROAD_1F_FRLG", + "name": "VictoryRoad_1F_Frlg", + "layout": "LAYOUT_VICTORY_ROAD_1F_FRLG", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 5, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "VictoryRoad_1F_EventScript_Rolando", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 14, + "y": 6, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "VictoryRoad_1F_EventScript_Naomi", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_1F_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_VICTORY_ROAD_1F_RARE_CANDY" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 14, + "y": 1, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_1F_EventScript_ItemTM02", + "flag": "FLAG_HIDE_VICTORY_ROAD_1F_TM02" + }, + { + "local_id": "LOCALID_VICTORY_ROAD_1F_BOULDER", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 7, + "y": 18, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 4, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 16, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 2, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "0" + }, + { + "x": 11, + "y": 20, + "elevation": 3, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": "0" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 20, + "y": 16, + "elevation": 3, + "var": "VAR_MAP_SCENE_VICTORY_ROAD_1F", + "var_value": "99", + "script": "VictoryRoad_1F_EventScript_FloorSwitch" + } + ], + "bg_events": [ + { + "type": "hidden_item", + "x": 12, + "y": 12, + "elevation": 0, + "item": "ITEM_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 16, + "y": 1, + "elevation": 0, + "item": "ITEM_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/VictoryRoad_1F_Frlg/scripts.inc b/data/maps/VictoryRoad_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..d8689878886f --- /dev/null +++ b/data/maps/VictoryRoad_1F_Frlg/scripts.inc @@ -0,0 +1,67 @@ +VictoryRoad_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, VictoryRoad_1F_Frlg_OnLoad + map_script MAP_SCRIPT_ON_TRANSITION, VictoryRoad_1F_Frlg_OnTransition + .byte 0 + +VictoryRoad_1F_Frlg_OnLoad:: + call_if_ne VAR_MAP_SCENE_VICTORY_ROAD_1F, 100, VictoryRoad_1F_EventScript_SetRockBarrier + end + +VictoryRoad_1F_EventScript_SetRockBarrier:: + setmetatile 12, 14, METATILE_Cave_RockBarrier_Top, 1 + setmetatile 12, 15, METATILE_Cave_RockBarrier_Bottom, 1 + return + +VictoryRoad_1F_Frlg_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_VICTORY_ROAD_1F + end + +VictoryRoad_1F_EventScript_FloorSwitch:: + lockall + goto_if_eq VAR_MAP_SCENE_VICTORY_ROAD_1F, 100, VictoryRoad_1F_EventScript_FloorSwitchAlreadyPressed + setmetatile 12, 14, METATILE_Cave_Floor_Ledge_Top, 0 + setmetatile 12, 15, METATILE_Cave_Floor_Ledge_Bottom, 0 + playse SE_ICE_BREAK + special DrawWholeMapView + waitse + copyobjectxytoperm LOCALID_VICTORY_ROAD_1F_BOULDER + setvar VAR_MAP_SCENE_VICTORY_ROAD_1F, 100 + releaseall + end + +VictoryRoad_1F_EventScript_FloorSwitchAlreadyPressed:: + releaseall + end + +VictoryRoad_1F_EventScript_Naomi:: + trainerbattle_single TRAINER_COOLTRAINER_NAOMI, VictoryRoad_1F_Text_NaomiIntro, VictoryRoad_1F_Text_NaomiDefeat + msgbox VictoryRoad_1F_Text_NaomiPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_1F_EventScript_Rolando:: + trainerbattle_single TRAINER_COOLTRAINER_ROLANDO, VictoryRoad_1F_Text_RolandoIntro, VictoryRoad_1F_Text_RolandoDefeat + msgbox VictoryRoad_1F_Text_RolandoPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_1F_Text_NaomiIntro:: + .string "I wonder if you are good enough\n" + .string "for me?$" + +VictoryRoad_1F_Text_NaomiDefeat:: + .string "I lost out…$" + +VictoryRoad_1F_Text_NaomiPostBattle:: + .string "I never wanted to lose to anybody,\n" + .string "especially to a younger kid…$" + +VictoryRoad_1F_Text_RolandoIntro:: + .string "I can see you're good.\n" + .string "Let me see exactly how good!$" + +VictoryRoad_1F_Text_RolandoDefeat:: + .string "I had a chance…$" + +VictoryRoad_1F_Text_RolandoPostBattle:: + .string "Tch!\n" + .string "I concede, you are better than I!$" + diff --git a/data/maps/VictoryRoad_2F_Frlg/map.json b/data/maps/VictoryRoad_2F_Frlg/map.json new file mode 100644 index 000000000000..2072f49ada20 --- /dev/null +++ b/data/maps/VictoryRoad_2F_Frlg/map.json @@ -0,0 +1,290 @@ +{ + "id": "MAP_VICTORY_ROAD_2F", + "name": "VictoryRoad_2F_Frlg", + "layout": "LAYOUT_VICTORY_ROAD_2F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "VictoryRoad_2F_EventScript_Dawson", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 20, + "y": 11, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "VictoryRoad_2F_EventScript_Daisuke", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 31, + "y": 16, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "VictoryRoad_2F_EventScript_Nelson", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 26, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP", + "movement_range_x": 4, + "movement_range_y": 4, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "VictoryRoad_2F_EventScript_Vincent", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ROCKER", + "x": 36, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "VictoryRoad_2F_EventScript_Gregory", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_2F_EventScript_ItemGuardSpec", + "flag": "FLAG_HIDE_VICTORY_ROAD_2F_GUARD_SPEC" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_2F_EventScript_ItemTM07", + "flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM07" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 25, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_2F_EventScript_ItemFullHeal", + "flag": "FLAG_HIDE_VICTORY_ROAD_2F_FULL_HEAL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 14, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_2F_EventScript_ItemTM37", + "flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM37" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 8, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_VICTORY_ROAD_2F_BOULDER1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 6, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_VICTORY_ROAD_2F_BOULDER2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 33, + "y": 19, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_VICTORY_ROAD_2F_BOULDER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 40, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_2F_EventScript_DoubleEdgeTutor", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 1, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_1F_FRLG", + "dest_warp_id": "0" + }, + { + "x": 3, + "y": 3, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": "0" + }, + { + "x": 34, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": "1" + }, + { + "x": 38, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": "2" + }, + { + "x": 36, + "y": 17, + "elevation": 4, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": "3" + }, + { + "x": 49, + "y": 13, + "elevation": 0, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": "1" + }, + { + "x": 48, + "y": 12, + "elevation": 3, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": "1" + }, + { + "x": 47, + "y": 13, + "elevation": 0, + "dest_map": "MAP_ROUTE23", + "dest_warp_id": "1" + }, + { + "x": 34, + "y": 19, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_3F", + "dest_warp_id": "4" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 2, + "y": 19, + "elevation": 3, + "var": "VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER1", + "var_value": "99", + "script": "VictoryRoad_2F_EventScript_FloorSwitch1" + }, + { + "type": "trigger", + "x": 14, + "y": 19, + "elevation": 3, + "var": "VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER2", + "var_value": "99", + "script": "VictoryRoad_2F_EventScript_FloorSwitch2" + } + ], + "bg_events": [] +} diff --git a/data/maps/VictoryRoad_2F_Frlg/scripts.inc b/data/maps/VictoryRoad_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..e3e718ebaaa6 --- /dev/null +++ b/data/maps/VictoryRoad_2F_Frlg/scripts.inc @@ -0,0 +1,136 @@ +VictoryRoad_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, VictoryRoad_2F_OnLoad + .byte 0 + +VictoryRoad_2F_OnLoad:: + call_if_ne VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER1, 100, VictoryRoad_2F_EventScript_SetRockBarrier1 + call_if_ne VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER2, 100, VictoryRoad_2F_EventScript_SetRockBarrier2 + end + +VictoryRoad_2F_EventScript_SetRockBarrier1:: + setmetatile 13, 10, METATILE_Cave_RockBarrier_Top, 1 + setmetatile 13, 11, METATILE_Cave_RockBarrier_Bottom, 1 + return + +VictoryRoad_2F_EventScript_SetRockBarrier2:: + setmetatile 33, 16, METATILE_Cave_RockBarrier_Top, 1 + setmetatile 33, 17, METATILE_Cave_RockBarrier_Bottom, 1 + return + +VictoryRoad_2F_EventScript_FloorSwitch1:: + lockall + goto_if_eq VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER1, 100, VictoryRoad_2F_EventScript_FloorSwitch1AlreadyPressed + setmetatile 13, 10, METATILE_Cave_Floor_Ledge_Top, 0 + setmetatile 13, 11, METATILE_Cave_Floor_Ledge_Bottom, 0 + playse SE_ICE_BREAK + special DrawWholeMapView + waitse + copyobjectxytoperm LOCALID_VICTORY_ROAD_2F_BOULDER1 + setvar VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER1, 100 + releaseall + end + +VictoryRoad_2F_EventScript_FloorSwitch1AlreadyPressed:: + releaseall + end + +VictoryRoad_2F_EventScript_FloorSwitch2:: + lockall + goto_if_eq VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER2, 100, VictoryRoad_2F_EventScript_FloorSwitch2AlreadyPressed + setmetatile 33, 16, METATILE_Cave_Floor_Ledge_Top, 0 + setmetatile 33, 17, METATILE_Cave_Floor_Ledge_Bottom, 0 + playse SE_ICE_BREAK + special DrawWholeMapView + waitse + copyobjectxytoperm LOCALID_VICTORY_ROAD_2F_BOULDER2 + setvar VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER2, 100 + releaseall + end + +VictoryRoad_2F_EventScript_FloorSwitch2AlreadyPressed:: + releaseall + end + +VictoryRoad_2F_EventScript_Dawson:: + trainerbattle_single TRAINER_POKEMANIAC_DAWSON, VictoryRoad_2F_Text_DawsonIntro, VictoryRoad_2F_Text_DawsonDefeat + msgbox VictoryRoad_2F_Text_DawsonPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_2F_EventScript_Daisuke:: + trainerbattle_single TRAINER_BLACK_BELT_DAISUKE, VictoryRoad_2F_Text_DaisukeIntro, VictoryRoad_2F_Text_DaisukeDefeat + msgbox VictoryRoad_2F_Text_DaisukePostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_2F_EventScript_Nelson:: + trainerbattle_single TRAINER_JUGGLER_NELSON, VictoryRoad_2F_Text_NelsonIntro, VictoryRoad_2F_Text_NelsonDefeat + msgbox VictoryRoad_2F_Text_NelsonPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_2F_EventScript_Gregory:: + trainerbattle_single TRAINER_JUGGLER_GREGORY, VictoryRoad_2F_Text_GregoryIntro, VictoryRoad_2F_Text_GregoryDefeat + msgbox VictoryRoad_2F_Text_GregoryPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_2F_EventScript_Vincent:: + trainerbattle_single TRAINER_TAMER_VINCENT, VictoryRoad_2F_Text_VincentIntro, VictoryRoad_2F_Text_VincentDefeat + msgbox VictoryRoad_2F_Text_VincentPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_2F_Text_DawsonIntro:: + .string "If you can get through here,\n" + .string "you can go meet the ELITE FOUR.$" + +VictoryRoad_2F_Text_DawsonDefeat:: + .string "No!\n" + .string "Unbelievable!$" + +VictoryRoad_2F_Text_DawsonPostBattle:: + .string "I can beat you when it comes to\n" + .string "knowledge about POKéMON!$" + +VictoryRoad_2F_Text_DaisukeIntro:: + .string "This here is VICTORY ROAD.\n" + .string "It's the final test for TRAINERS!$" + +VictoryRoad_2F_Text_DaisukeDefeat:: + .string "Atcho!$" + +VictoryRoad_2F_Text_DaisukePostBattle:: + .string "If you get stuck, try moving some\n" + .string "boulders around.$" + +VictoryRoad_2F_Text_NelsonIntro:: + .string "Ah, so you wish to challenge the\n" + .string "ELITE FOUR?$" + +VictoryRoad_2F_Text_NelsonDefeat:: + .string "You got me!$" + +VictoryRoad_2F_Text_NelsonPostBattle:: + .string "{RIVAL} also came through here.$" + +VictoryRoad_2F_Text_VincentIntro:: + .string "Come on!\n" + .string "I'll whip you!$" + +VictoryRoad_2F_Text_VincentDefeat:: + .string "I got whipped!$" + +VictoryRoad_2F_Text_VincentPostBattle:: + .string "You earned the right to be on\n" + .string "VICTORY ROAD…$" + +VictoryRoad_2F_Text_GregoryIntro:: + .string "Is VICTORY ROAD too tough?$" + +VictoryRoad_2F_Text_GregoryDefeat:: + .string "Well done!$" + +VictoryRoad_2F_Text_GregoryPostBattle:: + .string "Many TRAINERS give up their\n" + .string "challenge here and go home.$" + +@ Unused, old text for Moltres +VictoryRoad_2F_Text_Gyaoo:: + .string "ギヤーオ!$" + diff --git a/data/maps/VictoryRoad_3F_Frlg/map.json b/data/maps/VictoryRoad_3F_Frlg/map.json new file mode 100644 index 000000000000..cbbdd9cfa0f1 --- /dev/null +++ b/data/maps/VictoryRoad_3F_Frlg/map.json @@ -0,0 +1,239 @@ +{ + "id": "MAP_VICTORY_ROAD_3F", + "name": "VictoryRoad_3F_Frlg", + "layout": "LAYOUT_VICTORY_ROAD_3F", + "music": "MUS_RG_MT_MOON", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_UNDERGROUND", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 40, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "VictoryRoad_3F_EventScript_George", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 21, + "y": 5, + "elevation": 4, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "VictoryRoad_3F_EventScript_Alexa", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 10, + "y": 17, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "VictoryRoad_3F_EventScript_Colby", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 11, + "y": 16, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "VictoryRoad_3F_EventScript_Caroline", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 38, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_3F_EventScript_ItemMaxRevive", + "flag": "FLAG_HIDE_VICTORY_ROAD_3F_MAX_REVIVE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 12, + "y": 9, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "VictoryRoad_3F_EventScript_ItemTM50", + "flag": "FLAG_HIDE_VICTORY_ROAD_3F_TM50" + }, + { + "local_id": "LOCALID_VICTORY_ROAD_3F_BOULDER1", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 19, + "y": 15, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 33, + "y": 18, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "FLAG_HIDE_VICTORY_ROAD_2F_BOULDER", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "FLAG_HIDE_VICTORY_ROAD_3F_BOULDER" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 35, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "local_id": "LOCALID_VICTORY_ROAD_3F_BOULDER2", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", + "x": 32, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_StrengthBoulder", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 38, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "VictoryRoad_3F_EventScript_Ray", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", + "x": 39, + "y": 13, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "VictoryRoad_3F_EventScript_Tyra", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 5, + "y": 2, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "1" + }, + { + "x": 34, + "y": 9, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "2" + }, + { + "x": 37, + "y": 10, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "3" + }, + { + "x": 39, + "y": 17, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "4" + }, + { + "x": 34, + "y": 18, + "elevation": 3, + "dest_map": "MAP_VICTORY_ROAD_2F", + "dest_warp_id": "8" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 7, + "y": 7, + "elevation": 3, + "var": "VAR_MAP_SCENE_VICTORY_ROAD_3F", + "var_value": "99", + "script": "VictoryRoad_3F_EventScript_FloorSwitch" + } + ], + "bg_events": [] +} diff --git a/data/maps/VictoryRoad_3F_Frlg/scripts.inc b/data/maps/VictoryRoad_3F_Frlg/scripts.inc new file mode 100644 index 000000000000..467906927da5 --- /dev/null +++ b/data/maps/VictoryRoad_3F_Frlg/scripts.inc @@ -0,0 +1,161 @@ +VictoryRoad_3F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, VictoryRoad_3F_OnLoad + .byte 0 + +VictoryRoad_3F_OnLoad:: + call_if_ne VAR_MAP_SCENE_VICTORY_ROAD_3F, 100, VictoryRoad_3F_EventScript_SetRockBarrier + end + +VictoryRoad_3F_EventScript_SetRockBarrier:: + setmetatile 12, 12, METATILE_Cave_RockBarrier_Top, 1 + setmetatile 12, 13, METATILE_Cave_RockBarrier_Bottom, 1 + return + +VictoryRoad_3F_EventScript_FloorSwitch:: + lockall + goto_if_eq VAR_MAP_SCENE_VICTORY_ROAD_3F, 100, VictoryRoad_3F_EventScript_FloorSwitchAlreadyPressed + setmetatile 12, 12, METATILE_Cave_Floor_Ledge_Top, 0 + setmetatile 12, 13, METATILE_Cave_Floor_Ledge_Bottom, 0 + playse SE_ICE_BREAK + special DrawWholeMapView + waitse + copyobjectxytoperm LOCALID_VICTORY_ROAD_3F_BOULDER1 + copyobjectxytoperm LOCALID_VICTORY_ROAD_3F_BOULDER2 + setvar VAR_MAP_SCENE_VICTORY_ROAD_3F, 100 + releaseall + end + +VictoryRoad_3F_EventScript_FloorSwitchAlreadyPressed:: + releaseall + end + +VictoryRoad_3F_EventScript_George:: + trainerbattle_single TRAINER_COOLTRAINER_GEORGE, VictoryRoad_3F_Text_GeorgeIntro, VictoryRoad_3F_Text_GeorgeDefeat + msgbox VictoryRoad_3F_Text_GeorgePostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_3F_EventScript_Colby:: + trainerbattle_single TRAINER_COOLTRAINER_COLBY, VictoryRoad_3F_Text_ColbyIntro, VictoryRoad_3F_Text_ColbyDefeat + msgbox VictoryRoad_3F_Text_ColbyPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_3F_EventScript_Caroline:: + trainerbattle_single TRAINER_COOLTRAINER_CAROLINE, VictoryRoad_3F_Text_CarolineIntro, VictoryRoad_3F_Text_CarolineDefeat + msgbox VictoryRoad_3F_Text_CarolinePostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_3F_EventScript_Alexa:: + trainerbattle_single TRAINER_COOLTRAINER_ALEXA, VictoryRoad_3F_Text_AlexaIntro, VictoryRoad_3F_Text_AlexaDefeat + msgbox VictoryRoad_3F_Text_AlexaPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_3F_EventScript_Ray:: + trainerbattle_double TRAINER_COOL_COUPLE_RAY_TYRA, VictoryRoad_3F_Text_RayIntro, VictoryRoad_3F_Text_RayDefeat, VictoryRoad_3F_Text_RayNotEnoughMons + msgbox VictoryRoad_3F_Text_RayPostBattle, MSGBOX_AUTOCLOSE + end + +VictoryRoad_3F_EventScript_Tyra:: + trainerbattle_double TRAINER_COOL_COUPLE_RAY_TYRA, VictoryRoad_3F_Text_TyraIntro, VictoryRoad_3F_Text_TyraDefeat, VictoryRoad_3F_Text_TyraNotEnoughMons + msgbox VictoryRoad_3F_Text_TyraPostBattle, MSGBOX_AUTOCLOSE + end + +Text_DoubleEdgeTeach:: + .string "You should be proud of yourself,\n" + .string "having battled your way through\l" + .string "VICTORY ROAD so courageously.\p" + .string "In recognition of your feat,\n" + .string "I'll teach you DOUBLE-EDGE.\p" + .string "Would you like me to teach that\n" + .string "technique?$" + +Text_DoubleEdgeDeclined:: + .string "I'll teach you the technique\n" + .string "anytime.$" + +Text_DoubleEdgeWhichMon:: + .string "Which POKéMON should I teach\n" + .string "DOUBLE-EDGE?$" + +Text_DoubleEdgeTaught:: + .string "Keep that drive going for the\n" + .string "POKéMON LEAGUE!\p" + .string "Take a run at them and knock 'em\n" + .string "out!$" + +VictoryRoad_3F_Text_GeorgeIntro:: + .string "I heard rumors of a child prodigy.$" + +VictoryRoad_3F_Text_GeorgeDefeat:: + .string "The rumors were true!$" + +VictoryRoad_3F_Text_GeorgePostBattle:: + .string "So, it was you who beat GIOVANNI\n" + .string "of TEAM ROCKET?$" + +VictoryRoad_3F_Text_AlexaIntro:: + .string "TRAINERS live to seek stronger\n" + .string "opponents.$" + +VictoryRoad_3F_Text_AlexaDefeat:: + .string "Oh!\n" + .string "So strong!$" + +VictoryRoad_3F_Text_AlexaPostBattle:: + .string "By fighting tough battles, you get\n" + .string "stronger.$" + +VictoryRoad_3F_Text_CarolineIntro:: + .string "I'll show you just how good you\n" + .string "are. Not!$" + +VictoryRoad_3F_Text_CarolineDefeat:: + .string "I'm furious!$" + +VictoryRoad_3F_Text_CarolinePostBattle:: + .string "You showed me just how good\n" + .string "I was…$" + +VictoryRoad_3F_Text_ColbyIntro:: + .string "Only the chosen can pass here!$" + +VictoryRoad_3F_Text_ColbyDefeat:: + .string "I don't believe it!$" + +VictoryRoad_3F_Text_ColbyPostBattle:: + .string "All TRAINERS here are headed to\n" + .string "the POKéMON LEAGUE.\p" + .string "Don't let down your guard.$" + +VictoryRoad_3F_Text_RayIntro:: + .string "RAY: Together, the two of us are\n" + .string "destined for greatness!$" + +VictoryRoad_3F_Text_RayDefeat:: + .string "RAY: Ludicrous!\n" + .string "This can't be!$" + +VictoryRoad_3F_Text_RayPostBattle:: + .string "RAY: You've beaten us.\n" + .string "Greatness remains elusive…$" + +VictoryRoad_3F_Text_RayNotEnoughMons:: + .string "RAY: Together, the two of us are\n" + .string "striving for the pinnacle.\p" + .string "We need you to bring two POKéMON\n" + .string "into battle with us.$" + +VictoryRoad_3F_Text_TyraIntro:: + .string "TYRA: We're trying to become\n" + .string "champions together.$" + +VictoryRoad_3F_Text_TyraDefeat:: + .string "TYRA: Oh, but…$" + +VictoryRoad_3F_Text_TyraPostBattle:: + .string "TYRA: You've taught me that power\n" + .string "can be infinite in shape and form.$" + +VictoryRoad_3F_Text_TyraNotEnoughMons:: + .string "TYRA: You can't battle with us if\n" + .string "you have only one POKéMON.$" + diff --git a/data/maps/ViridianCity_Frlg/map.json b/data/maps/ViridianCity_Frlg/map.json new file mode 100644 index 000000000000..f9bb7f17c31f --- /dev/null +++ b/data/maps/ViridianCity_Frlg/map.json @@ -0,0 +1,283 @@ +{ + "id": "MAP_VIRIDIAN_CITY", + "name": "ViridianCity_Frlg", + "layout": "LAYOUT_VIRIDIAN_CITY", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_SUNNY", + "map_type": "MAP_TYPE_TOWN", + "allow_cycling": true, + "allow_escaping": false, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": [ + { + "map": "MAP_ROUTE2", + "offset": 12, + "direction": "up" + }, + { + "map": "MAP_ROUTE1", + "offset": 12, + "direction": "down" + }, + { + "map": "MAP_ROUTE22", + "offset": 10, + "direction": "left" + } + ], + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_FAT_MAN_FRLG", + "x": 8, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_DreamEaterTutor", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 11, + "y": 24, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_11" + }, + { + "local_id": "LOCALID_VIRIDIAN_OLD_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", + "x": 34, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_OldMan", + "flag": "0" + }, + { + "local_id": "LOCALID_TUTORIAL_MAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_VAR_0", + "x": 21, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 2, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_TutorialOldMan", + "flag": "0" + }, + { + "local_id": "LOCALID_VIRIDIAN_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_3_FRLG", + "x": 20, + "y": 12, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 3, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_Woman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 33, + "y": 26, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 0, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 16, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_Boy", + "flag": "0" + }, + { + "local_id": "LOCALID_VIRIDIAN_BORDER_TREE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG", + "x": 18, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "EventScript_CutTree", + "flag": "FLAG_TEMP_12" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 17, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_EventScript_ItemPotion", + "flag": "FLAG_HIDE_VIRIDIAN_CITY_POTION" + } + ], + "warp_events": [ + { + "x": 26, + "y": 26, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 11, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY_HOUSE", + "dest_warp_id": "1" + }, + { + "x": 36, + "y": 10, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_GYM", + "dest_warp_id": "1" + }, + { + "x": 25, + "y": 18, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_SCHOOL", + "dest_warp_id": "1" + }, + { + "x": 36, + "y": 19, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY_MART", + "dest_warp_id": "1" + } + ], + "coord_events": [ + { + "type": "trigger", + "x": 22, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN", + "var_value": "0", + "script": "ViridianCity_EventScript_RoadBlocked" + }, + { + "type": "trigger", + "x": 36, + "y": 11, + "elevation": 3, + "var": "VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR", + "var_value": "0", + "script": "ViridianCity_EventScript_GymDoorLocked" + }, + { + "type": "trigger", + "x": 20, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN", + "var_value": "1", + "script": "ViridianCity_EventScript_TutorialTriggerLeft" + }, + { + "type": "trigger", + "x": 22, + "y": 8, + "elevation": 3, + "var": "VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN", + "var_value": "1", + "script": "ViridianCity_EventScript_TutorialTriggerRight" + } + ], + "bg_events": [ + { + "type": "sign", + "x": 23, + "y": 1, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_EventScript_TrainerTips1" + }, + { + "type": "sign", + "x": 32, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_EventScript_GymSign" + }, + { + "type": "sign", + "x": 20, + "y": 31, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 20, + "y": 16, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_EventScript_CitySign" + }, + { + "type": "sign", + "x": 36, + "y": 10, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_EventScript_GymDoor" + } + ] +} diff --git a/data/maps/ViridianCity_Frlg/scripts.inc b/data/maps/ViridianCity_Frlg/scripts.inc new file mode 100644 index 000000000000..d77e34c990b4 --- /dev/null +++ b/data/maps/ViridianCity_Frlg/scripts.inc @@ -0,0 +1,359 @@ +ViridianCity_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ViridianCity_OnTransition + .byte 0 + +ViridianCity_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_VIRIDIAN_CITY + call_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 0, ViridianCity_EventScript_SetOldManBlockingRoad + call_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1, ViridianCity_EventScript_SetOldManStandingByRoad + call_if_ge VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 2, ViridianCity_EventScript_SetOldManNormal + call_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 0, ViridianCity_EventScript_TryUnlockGym + end + +ViridianCity_EventScript_SetOldManNormal:: + setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_OLD_MAN_1 + return + +ViridianCity_EventScript_SetOldManStandingByRoad:: + setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_OLD_MAN_1 + setobjectxyperm LOCALID_TUTORIAL_MAN, 21, 8 + setobjectmovementtype LOCALID_TUTORIAL_MAN, MOVEMENT_TYPE_LOOK_AROUND + return + +ViridianCity_EventScript_SetOldManBlockingRoad:: + setvar VAR_OBJ_GFX_ID_0, OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN + setobjectxyperm LOCALID_TUTORIAL_MAN, 21, 11 + setobjectmovementtype LOCALID_TUTORIAL_MAN, MOVEMENT_TYPE_FACE_DOWN + return + +ViridianCity_EventScript_TryUnlockGym:: + goto_if_unset FLAG_BADGE02_GET, Common_EventScript_NopReturn + goto_if_unset FLAG_BADGE03_GET, Common_EventScript_NopReturn + goto_if_unset FLAG_BADGE04_GET, Common_EventScript_NopReturn + goto_if_unset FLAG_BADGE05_GET, Common_EventScript_NopReturn + goto_if_unset FLAG_BADGE06_GET, Common_EventScript_NopReturn + goto_if_unset FLAG_BADGE07_GET, Common_EventScript_NopReturn + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 1 + return + +ViridianCity_EventScript_GymDoorLocked:: + lockall + textcolor NPC_TEXT_COLOR_NEUTRAL + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + delay 20 + msgbox ViridianCity_Text_GymDoorsAreLocked + closemessage + applymovement LOCALID_PLAYER, ViridianCity_Movement_JumpDownLedge + waitmovement 0 + releaseall + end + +ViridianCity_Movement_JumpDownLedge:: + jump_2_down + step_end + +ViridianCity_EventScript_CitySign:: + msgbox ViridianCity_Text_CitySign, MSGBOX_SIGN + end + +ViridianCity_EventScript_TrainerTips1:: + msgbox ViridianCity_Text_CatchMonsForEasierBattles, MSGBOX_SIGN + end + +ViridianCity_EventScript_TrainerTips2:: + msgbox ViridianCity_Text_MovesLimitedByPP, MSGBOX_SIGN + end + +ViridianCity_EventScript_GymSign:: + msgbox ViridianCity_Text_GymSign, MSGBOX_SIGN + end + +ViridianCity_EventScript_GymDoor:: + msgbox ViridianCity_Text_GymDoorsAreLocked, MSGBOX_SIGN + end + +ViridianCity_EventScript_Boy:: + msgbox ViridianCity_Text_CanCarryMonsAnywhere, MSGBOX_NPC + end + +@ Other old man, not the tutorial old man +ViridianCity_EventScript_OldMan:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 1, ViridianCity_EventScript_OldManGymLeaderReturned + msgbox ViridianCity_Text_GymClosedWonderWhoLeaderIs + closemessage + applymovement LOCALID_VIRIDIAN_OLD_MAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +ViridianCity_EventScript_OldManGymLeaderReturned:: + msgbox ViridianCity_Text_ViridiansGymLeaderReturned + release + end + +ViridianCity_EventScript_TutorialOldMan:: + lock + faceplayer + goto_if_set FLAG_BADGE01_GET, ViridianCity_EventScript_AskIfTeachyTVHelpful + goto_if_ge VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 2, ViridianCity_EventScript_TutorialCompleted + goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1, ViridianCity_EventScript_TutorialStart + goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 0, ViridianCity_EventScript_TutorialNotReady + end + +ViridianCity_EventScript_AskIfTeachyTVHelpful:: + msgbox ViridianCity_Text_HowsTeachyTVHelping, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, ViridianCity_EventScript_TeachyTVNotHelpful + msgbox ViridianCity_Text_MyGrandsonOnTheShow + release + end + +ViridianCity_EventScript_TeachyTVNotHelpful:: + msgbox ViridianCity_Text_TooBusyForTeachyTV + release + end + +ViridianCity_EventScript_TutorialCompleted:: + msgbox ViridianCity_Text_WeakenMonsFirstToCatch + release + end + +ViridianCity_EventScript_TutorialStart:: + call ViridianCity_EventScript_DoTutorialBattle + release + end + +@ Unused +ViridianCity_EventScript_WatchToLearnBasics:: + msgbox ViridianCity_Text_WatchThatToLearnBasics + release + end + +@ Unused. Starts battle after the post battle text, which is odd. +ViridianCity_EventScript_TutorialUnused:: + msgbox ViridianCity_Text_ThatWasEducationalTakeThis + special StartOldManTutorialBattle + waitstate + release + end + +ViridianCity_EventScript_TutorialNotReady:: + msgbox ViridianCity_Text_ThisIsPrivateProperty + closemessage + release + end + +ViridianCity_EventScript_Youngster:: + lock + faceplayer + msgbox ViridianCity_Text_WantToKnowAboutCaterpillarMons, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, ViridianCity_EventScript_YoungsterExplainCaterpillars + goto_if_eq VAR_RESULT, NO, ViridianCity_EventScript_YoungsterDeclineExplanation + end + +ViridianCity_EventScript_YoungsterExplainCaterpillars:: + msgbox ViridianCity_Text_ExplainCaterpieWeedle + release + end + +ViridianCity_EventScript_YoungsterDeclineExplanation:: + msgbox ViridianCity_Text_OhOkayThen + release + end + +ViridianCity_EventScript_Woman:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 0, ViridianCity_EventScript_WomanRoadBlocked + msgbox ViridianCity_Text_GoShoppingInPewterOccasionally + release + end + +ViridianCity_EventScript_WomanRoadBlocked:: + msgbox ViridianCity_Text_GrandpaHasntHadCoffeeYet + closemessage + applymovement LOCALID_VIRIDIAN_WOMAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +ViridianCity_EventScript_DreamEaterTutor:: + goto EventScript_DreamEaterTutor + end + +ViridianCity_EventScript_RoadBlocked:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox ViridianCity_Text_ThisIsPrivateProperty + closemessage + applymovement LOCALID_PLAYER, ViridianCity_Movement_WalkDown + waitmovement 0 + releaseall + end + +ViridianCity_Movement_WalkDown:: + walk_down + step_end + +ViridianCity_EventScript_TutorialTriggerLeft:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_TUTORIAL_MAN, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + call ViridianCity_EventScript_DoTutorialBattle + release + end + +ViridianCity_EventScript_TutorialTriggerRight:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_TUTORIAL_MAN, Common_Movement_WalkInPlaceFasterRight + waitmovement 0 + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + call ViridianCity_EventScript_DoTutorialBattle + release + end + +ViridianCity_EventScript_DoTutorialBattle:: + msgbox ViridianCity_Text_ShowYouHowToCatchMons + closemessage + special StartOldManTutorialBattle + waitstate + lock + faceplayer + msgbox ViridianCity_Text_ThatWasEducationalTakeThis + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 2 + giveitem ITEM_TEACHY_TV + msgbox ViridianCity_Text_WatchThatToLearnBasics + return + +ViridianCity_Text_CanCarryMonsAnywhere:: + .string "Those POKé BALLS at your waist!\n" + .string "You have POKéMON, don't you?\p" + .string "It's great that you can carry and\n" + .string "use POKéMON anytime, anywhere.$" + +ViridianCity_Text_GymClosedWonderWhoLeaderIs:: + .string "This POKéMON GYM is always closed.\p" + .string "I wonder who the LEADER is?$" + +ViridianCity_Text_ViridiansGymLeaderReturned:: + .string "VIRIDIAN GYM's LEADER returned!$" + +ViridianCity_Text_WantToKnowAboutCaterpillarMons:: + .string "You want to know about the two\n" + .string "kinds of caterpillar POKéMON?$" + +ViridianCity_Text_OhOkayThen:: + .string "Oh, okay then!$" + +ViridianCity_Text_ExplainCaterpieWeedle:: + .string "CATERPIE has no poison,\n" + .string "but WEEDLE does.\p" + .string "Watch that your POKéMON aren't\n" + .string "stabbed by WEEDLE's POISON STING.$" + +ViridianCity_Text_GrandpaHasntHadCoffeeYet:: + .string "Oh, Grandpa!\n" + .string "Don't be so mean!\p" + .string "I'm so sorry.\n" + .string "He hasn't had his coffee yet.$" + +ViridianCity_Text_GoShoppingInPewterOccasionally:: + .string "I go shopping in PEWTER CITY\n" + .string "occasionally.\p" + .string "I have to take the winding trail in\n" + .string "VIRIDIAN FOREST when I go.$" + +ViridianCity_Text_ThisIsPrivateProperty:: + .string "I absolutely forbid you from\n" + .string "going through here!\p" + .string "This is private property!$" + +ViridianCity_Text_ShowYouHowToCatchMons:: + .string "Well, now, I've had my coffee, and\n" + .string "that's what I need to get going!\p" + .string "Hm?\n" + .string "What is that red box you have?\p" + .string "Ah, so you're working on your\n" + .string "POKéDEX.\p" + .string "Then let me give you a word of\n" + .string "advice.\p" + .string "Whenever you catch a POKéMON,\n" + .string "the POKéDEX automatically updates\l" + .string "its data.\p" + .string "…You don't know how to catch\n" + .string "a POKéMON?\p" + .string "I suppose I had better show you\n" + .string "then!$" + +ViridianCity_Text_ThatWasEducationalTakeThis:: + .string "There! Now tell me, that was\n" + .string "educational, was it not?\p" + .string "And here, take this, too.$" + +ViridianCity_Text_WatchThatToLearnBasics:: + .string "If there's something you don't\n" + .string "understand, watch that.\p" + .string "It will teach you about the basics\n" + .string "of being a POKéMON TRAINER.$" + +ViridianCity_Text_WeakenMonsFirstToCatch:: + .string "Well, now, I've had my coffee, and\n" + .string "that's what I need to get going!\p" + .string "But I made it too strong.\n" + .string "It gave me a headache…\p" + .string "Incidentally, are you filling your\n" + .string "POKéDEX?\p" + .string "At first, focus on weakening the\n" + .string "POKéMON before trying to catch it.$" + +ViridianCity_Text_HowsTeachyTVHelping:: + .string "Well, now, I've had my coffee, and\n" + .string "that's what I need to get going!\p" + .string "But I made it too strong.\n" + .string "It gave me a headache…\p" + .string "Incidentally, is my old TEACHY TV\n" + .string "helping you?$" + +ViridianCity_Text_MyGrandsonOnTheShow:: + .string "Wahaha!\n" + .string "It's my grandson on the show!\p" + .string "Since he's the one doing the\n" + .string "teaching, you're bound to learn.$" + +ViridianCity_Text_TooBusyForTeachyTV:: + .string "Hm… You're too busy to not even\n" + .string "have the time for TEACHY TV…\p" + .string "Time is money, and neither should\n" + .string "be ill spent…$" + +ViridianCity_Text_CitySign:: + .string "VIRIDIAN CITY \n" + .string "The Eternally Green Paradise$" + +ViridianCity_Text_CatchMonsForEasierBattles:: + .string "TRAINER TIPS\p" + .string "Catch POKéMON and expand your\n" + .string "collection.\p" + .string "The more you have, the easier it\n" + .string "is to battle.$" + +ViridianCity_Text_MovesLimitedByPP:: + .string "TRAINER TIPS\p" + .string "The battle moves of POKéMON are\n" + .string "limited by their POWER POINTS, PP.\p" + .string "To replenish PP, rest your tired\n" + .string "POKéMON at a POKéMON CENTER.$" + +ViridianCity_Text_GymSign:: + .string "VIRIDIAN CITY POKéMON GYM$" + +ViridianCity_Text_GymDoorsAreLocked:: + .string "VIRIDIAN GYM's doors are locked…$" + diff --git a/data/maps/ViridianCity_Gym_Frlg/map.json b/data/maps/ViridianCity_Gym_Frlg/map.json new file mode 100644 index 000000000000..057038f91d95 --- /dev/null +++ b/data/maps/ViridianCity_Gym_Frlg/map.json @@ -0,0 +1,213 @@ +{ + "id": "MAP_VIRIDIAN_CITY_GYM", + "name": "ViridianCity_Gym_Frlg", + "layout": "LAYOUT_VIRIDIAN_CITY_GYM", + "music": "MUS_GYM", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_GYM", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "ViridianCity_Gym_EventScript_Takashi", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 12, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "ViridianCity_Gym_EventScript_Yuji", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 11, + "y": 14, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "ViridianCity_Gym_EventScript_Atsushi", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 10, + "y": 10, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "ViridianCity_Gym_EventScript_Jason", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MAN", + "x": 2, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "ViridianCity_Gym_EventScript_Cole", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", + "x": 3, + "y": 11, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "2", + "script": "ViridianCity_Gym_EventScript_Kiyo", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 6, + "y": 8, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "ViridianCity_Gym_EventScript_Samuel", + "flag": "0" + }, + { + "local_id": "LOCALID_VIRIDIAN_GIOVANNI", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_Gym_EventScript_Giovanni", + "flag": "FLAG_HIDE_VIRIDIAN_GIOVANNI" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", + "x": 13, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "3", + "script": "ViridianCity_Gym_EventScript_Warren", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", + "x": 16, + "y": 20, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_Gym_EventScript_GymGuy", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 16, + "y": 22, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "2" + }, + { + "x": 17, + "y": 22, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "2" + }, + { + "x": 18, + "y": 22, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "2" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 15, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_Gym_EventScript_GymStatue" + }, + { + "type": "sign", + "x": 19, + "y": 20, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_Gym_EventScript_GymStatue" + }, + { + "type": "hidden_item", + "x": 2, + "y": 2, + "elevation": 3, + "item": "ITEM_MACHO_BRACE", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE", + "quantity": 1, + "underfoot": true + } + ] +} diff --git a/data/maps/ViridianCity_Gym_Frlg/scripts.inc b/data/maps/ViridianCity_Gym_Frlg/scripts.inc new file mode 100644 index 000000000000..7cbe9a6800a4 --- /dev/null +++ b/data/maps/ViridianCity_Gym_Frlg/scripts.inc @@ -0,0 +1,277 @@ +ViridianCity_Gym_Frlg_MapScripts:: + .byte 0 + +ViridianCity_Gym_EventScript_Giovanni:: + famechecker FAMECHECKER_GIOVANNI, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 + trainerbattle_single TRAINER_LEADER_GIOVANNI, ViridianCity_Gym_Text_GiovanniIntro, ViridianCity_Gym_Text_GiovanniDefeat, ViridianCity_Gym_EventScript_DefeatedGiovanni, NO_MUSIC + goto_if_unset FLAG_GOT_TM26_FROM_GIOVANNI, ViridianCity_Gym_EventScript_GiveTM26 + msgbox ViridianCity_Gym_Text_GiovanniPostBattle + closemessage + fadescreen FADE_TO_BLACK + removeobject LOCALID_VIRIDIAN_GIOVANNI + fadescreen FADE_FROM_BLACK + release + end + +ViridianCity_Gym_EventScript_DefeatedGiovanni:: + famechecker FAMECHECKER_GIOVANNI, 3 + setflag FLAG_HIDE_MISC_KANTO_ROCKETS + setflag FLAG_DEFEATED_LEADER_GIOVANNI + setflag FLAG_BADGE08_GET + setvar VAR_MAP_SCENE_ROUTE22, 3 + set_gym_trainers_frlg 8 + goto ViridianCity_Gym_EventScript_GiveTM26 + end + +ViridianCity_Gym_EventScript_GiveTM26:: + msgbox ViridianCity_Gym_Text_ExplainEarthBadgeTakeThis + checkitemspace ITEM_TM26 + goto_if_eq VAR_RESULT, FALSE, ViridianCity_Gym_EventScript_NoRoomForTM26 + giveitem_msg ViridianCity_Gym_Text_ReceivedTM26FromGiovanni, ITEM_TM26 + setflag FLAG_GOT_TM26_FROM_GIOVANNI + msgbox ViridianCity_Gym_Text_ExplainTM26 + release + end + +ViridianCity_Gym_EventScript_NoRoomForTM26:: + msgbox ViridianCity_Gym_Text_YouDoNotHaveSpace + release + end + +ViridianCity_Gym_EventScript_Jason:: + trainerbattle_single TRAINER_TAMER_JASON, ViridianCity_Gym_Text_JasonIntro, ViridianCity_Gym_Text_JasonDefeat + msgbox ViridianCity_Gym_Text_JasonPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Cole:: + trainerbattle_single TRAINER_TAMER_COLE, ViridianCity_Gym_Text_ColeIntro, ViridianCity_Gym_Text_ColeDefeat + msgbox ViridianCity_Gym_Text_ColePostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Atsushi:: + trainerbattle_single TRAINER_BLACK_BELT_ATSUSHI, ViridianCity_Gym_Text_AtsushiIntro, ViridianCity_Gym_Text_AtsushiDefeat + msgbox ViridianCity_Gym_Text_AtsushiPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Kiyo:: + trainerbattle_single TRAINER_BLACK_BELT_KIYO, ViridianCity_Gym_Text_KiyoIntro, ViridianCity_Gym_Text_KiyoDefeat + msgbox ViridianCity_Gym_Text_KiyoPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Takashi:: + trainerbattle_single TRAINER_BLACK_BELT_TAKASHI, ViridianCity_Gym_Text_TakashiIntro, ViridianCity_Gym_Text_TakashiDefeat + msgbox ViridianCity_Gym_Text_TakashiPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Samuel:: + trainerbattle_single TRAINER_COOLTRAINER_SAMUEL, ViridianCity_Gym_Text_SamuelIntro, ViridianCity_Gym_Text_SamuelDefeat + msgbox ViridianCity_Gym_Text_SamuelPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Yuji:: + trainerbattle_single TRAINER_COOLTRAINER_YUJI, ViridianCity_Gym_Text_YujiIntro, ViridianCity_Gym_Text_YujiDefeat + msgbox ViridianCity_Gym_Text_YujiPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_Warren:: + trainerbattle_single TRAINER_COOLTRAINER_WARREN, ViridianCity_Gym_Text_WarrenIntro, ViridianCity_Gym_Text_WarrenDefeat + msgbox ViridianCity_Gym_Text_WarrenPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianCity_Gym_EventScript_GymGuy:: + lock + faceplayer + goto_if_set FLAG_DEFEATED_LEADER_GIOVANNI, ViridianCity_Gym_EventScript_GymGuyPostVictory + msgbox ViridianCity_Gym_Text_GymGuyAdvice + release + end + +ViridianCity_Gym_EventScript_GymGuyPostVictory:: + famechecker FAMECHECKER_GIOVANNI, 4 + msgbox ViridianCity_Gym_Text_GymGuyPostVictory + release + end + +ViridianCity_Gym_EventScript_GymStatue:: + lockall + goto_if_set FLAG_BADGE08_GET, ViridianCity_Gym_EventScript_GymStatuePostVictory + msgbox ViridianCity_Gym_Text_GymStatue + releaseall + end + +ViridianCity_Gym_EventScript_GymStatuePostVictory:: + msgbox ViridianCity_Gym_Text_GymStatuePlayerWon + releaseall + end + +ViridianCity_Gym_Text_GiovanniIntro:: + .string "Fwahahaha!\n" + .string "Welcome to my hideout!\p" + .string "It shall be so until I can restore\n" + .string "TEAM ROCKET to its former glory.\p" + .string "But, you have found me again.\n" + .string "So be it.\l" + .string "This time, I'm not holding back!\p" + .string "Once more, you shall face\n" + .string "GIOVANNI, the greatest TRAINER!{PLAY_BGM}{MUS_RG_ENCOUNTER_ROCKET}$" + +ViridianCity_Gym_Text_GiovanniDefeat:: + .string "Ha!\n" + .string "That was a truly intense fight.\l" + .string "You have won!\p" + .string "As proof, here is the EARTHBADGE!\n" + .string "{PAUSE_MUSIC}{PLAY_BGM}{MUS_OBTAIN_BADGE}{PAUSE 0xFE}{PAUSE 0x56}{RESUME_MUSIC}$" + +ViridianCity_Gym_Text_GiovanniPostBattle:: + .string "Having lost in this fashion, \n" + .string "I can't face my followers.\l" + .string "I have betrayed their trust.\p" + .string "As of today, TEAM ROCKET is\n" + .string "finished forever!\p" + .string "As for myself, I shall dedicate\n" + .string "my life to training again.\p" + .string "Let us meet again someday!\n" + .string "Farewell!$" + +ViridianCity_Gym_Text_ExplainEarthBadgeTakeThis:: + .string "The EARTHBADGE makes POKéMON of\n" + .string "any level obey without question.\p" + .string "It is evidence of your mastery as\n" + .string "a POKéMON TRAINER.\p" + .string "With it, you can challenge the\n" + .string "POKéMON LEAGUE.\p" + .string "Also, take this TM.\p" + .string "Consider it a gift for your POKéMON\n" + .string "LEAGUE challenge.$" + +ViridianCity_Gym_Text_ReceivedTM26FromGiovanni:: + .string "{PLAYER} received TM26\n" + .string "from GIOVANNI.$" + +ViridianCity_Gym_Text_ExplainTM26:: + .string "TM26 contains EARTHQUAKE.\p" + .string "It is a powerful attack that causes\n" + .string "a massive tremor.\p" + .string "I made it when I ran the GYM here,\n" + .string "far too long ago… $" + +ViridianCity_Gym_Text_YouDoNotHaveSpace:: + .string "You do not have space for this!$" + +ViridianCity_Gym_Text_YujiIntro:: + .string "Heh!\n" + .string "You must be running out of steam\l" + .string "by now!$" + +ViridianCity_Gym_Text_YujiDefeat:: + .string "I ran out of gas!$" + +ViridianCity_Gym_Text_YujiPostBattle:: + .string "You'll need power to keep up with\n" + .string "our GYM LEADER.$" + +ViridianCity_Gym_Text_AtsushiIntro:: + .string "Rrrroar!\n" + .string "I'm working myself into a rage!$" + +ViridianCity_Gym_Text_AtsushiDefeat:: + .string "Wargh!$" + +ViridianCity_Gym_Text_AtsushiPostBattle:: + .string "I'm still not worthy!$" + +ViridianCity_Gym_Text_JasonIntro:: + .string "POKéMON and I, we make wonderful\n" + .string "music together!$" + +ViridianCity_Gym_Text_JasonDefeat:: + .string "You are in perfect harmony!$" + +ViridianCity_Gym_Text_JasonPostBattle:: + .string "Do you know the identity of our\n" + .string "GYM LEADER?$" + +ViridianCity_Gym_Text_KiyoIntro:: + .string "Karate is the ultimate form of\n" + .string "martial arts!$" + +ViridianCity_Gym_Text_KiyoDefeat:: + .string "Aiyah!$" + +ViridianCity_Gym_Text_KiyoPostBattle:: + .string "If my POKéMON were as good at\n" + .string "karate as I…$" + +ViridianCity_Gym_Text_WarrenIntro:: + .string "The truly talented win with style.$" + +ViridianCity_Gym_Text_WarrenDefeat:: + .string "I lost my grip!$" + +ViridianCity_Gym_Text_WarrenPostBattle:: + .string "The LEADER will scold me for\n" + .string "losing this way…$" + +ViridianCity_Gym_Text_TakashiIntro:: + .string "I'm the KARATE KING!\n" + .string "Your fate rests with me!$" + +ViridianCity_Gym_Text_TakashiDefeat:: + .string "Ayah!$" + +ViridianCity_Gym_Text_TakashiPostBattle:: + .string "The POKéMON LEAGUE?\n" + .string "You? Don't get cocky!$" + +ViridianCity_Gym_Text_ColeIntro:: + .string "Your POKéMON will cower at the\n" + .string "crack of my whip!$" + +ViridianCity_Gym_Text_ColeDefeat:: + .string "Yowch!\n" + .string "Whiplash!$" + +ViridianCity_Gym_Text_ColePostBattle:: + .string "Wait!\n" + .string "I was just careless!$" + +ViridianCity_Gym_Text_SamuelIntro:: + .string "VIRIDIAN GYM was closed for a\n" + .string "long time.\p" + .string "But now, our LEADER is back!$" + +ViridianCity_Gym_Text_SamuelDefeat:: + .string "I was beaten?$" + +ViridianCity_Gym_Text_SamuelPostBattle:: + .string "You can go on to the POKéMON\n" + .string "LEAGUE only by defeating our GYM\l" + .string "LEADER!$" + +ViridianCity_Gym_Text_GymGuyAdvice:: + .string "Yo!\n" + .string "Champ in the making!\p" + .string "Even I don't know the VIRIDIAN\n" + .string "LEADER's identity.\p" + .string "But one thing's certain.\n" + .string "This will be the toughest of all\l" + .string "the GYM LEADERS.\p" + .string "Also, I heard that the TRAINERS\n" + .string "here like GROUND-type POKéMON.$" + +ViridianCity_Gym_Text_GymGuyPostVictory:: + .string "Blow me away! GIOVANNI was the\n" + .string "GYM LEADER of VIRIDIAN?$" + +ViridianCity_Gym_Text_GymStatue:: + .string "VIRIDIAN POKéMON GYM\n" + .string "LEADER: ?\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}$" + +ViridianCity_Gym_Text_GymStatuePlayerWon:: + .string "VIRIDIAN POKéMON GYM\n" + .string "LEADER: GIOVANNI\p" + .string "WINNING TRAINERS:\n" + .string "{RIVAL}, {PLAYER}$" + diff --git a/data/maps/ViridianCity_House_Frlg/map.json b/data/maps/ViridianCity_House_Frlg/map.json new file mode 100644 index 000000000000..102544fdc2a6 --- /dev/null +++ b/data/maps/ViridianCity_House_Frlg/map.json @@ -0,0 +1,96 @@ +{ + "id": "MAP_VIRIDIAN_CITY_HOUSE", + "name": "ViridianCity_House_Frlg", + "layout": "LAYOUT_VIRIDIAN_CITY_HOUSE", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", + "x": 7, + "y": 4, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_House_EventScript_BaldingMan", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL_FRLG", + "x": 2, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 2, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_House_EventScript_LittleGirl", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_SPEAROW", + "x": 6, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT", + "movement_range_x": 4, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_House_EventScript_Speary", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "1" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "1" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "1" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 7, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_House_EventScript_NicknameSign" + } + ] +} diff --git a/data/maps/ViridianCity_House_Frlg/scripts.inc b/data/maps/ViridianCity_House_Frlg/scripts.inc new file mode 100644 index 000000000000..17041c37d73d --- /dev/null +++ b/data/maps/ViridianCity_House_Frlg/scripts.inc @@ -0,0 +1,41 @@ +ViridianCity_House_Frlg_MapScripts:: + .byte 0 + +ViridianCity_House_EventScript_BaldingMan:: + msgbox ViridianCity_House_Text_NicknamingIsFun, MSGBOX_NPC + end + +ViridianCity_House_EventScript_LittleGirl:: + msgbox ViridianCity_House_Text_MyDaddyLovesMonsToo, MSGBOX_NPC + end + +ViridianCity_House_EventScript_Speary:: + lock + faceplayer + waitse + playmoncry SPECIES_SPEAROW, CRY_MODE_NORMAL + msgbox ViridianCity_House_Text_Speary + waitmoncry + release + end + +ViridianCity_House_EventScript_NicknameSign:: + msgbox ViridianCity_House_Text_SpearowNameSpeary, MSGBOX_SIGN + end + +ViridianCity_House_Text_NicknamingIsFun:: + .string "Coming up with nicknames is fun,\n" + .string "but it's not so easy to do.\p" + .string "Clever names are nice, but simple\n" + .string "names are easier to remember.$" + +ViridianCity_House_Text_MyDaddyLovesMonsToo:: + .string "My daddy loves POKéMON, too.$" + +ViridianCity_House_Text_Speary:: + .string "SPEARY: Tetweet!$" + +ViridianCity_House_Text_SpearowNameSpeary:: + .string "SPEAROW\n" + .string "Name: SPEARY$" + diff --git a/data/maps/ViridianCity_Mart_Frlg/map.json b/data/maps/ViridianCity_Mart_Frlg/map.json new file mode 100644 index 000000000000..387a1e14bfd0 --- /dev/null +++ b/data/maps/ViridianCity_Mart_Frlg/map.json @@ -0,0 +1,88 @@ +{ + "id": "MAP_VIRIDIAN_CITY_MART", + "name": "ViridianCity_Mart_Frlg", + "layout": "LAYOUT_MART_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_VIRIDIAN_MART_CLERK", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CLERK", + "x": 2, + "y": 3, + "elevation": 0, + "movement_type": "MOVEMENT_TYPE_FACE_RIGHT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_Mart_EventScript_Clerk", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_Mart_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_1_FRLG", + "x": 9, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_UP_AND_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_Mart_EventScript_Woman", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "4" + }, + { + "x": 4, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "4" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "4" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ViridianCity_Mart_Frlg/scripts.inc b/data/maps/ViridianCity_Mart_Frlg/scripts.inc new file mode 100644 index 000000000000..b29ca6fd7daa --- /dev/null +++ b/data/maps/ViridianCity_Mart_Frlg/scripts.inc @@ -0,0 +1,111 @@ +ViridianCity_Mart_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_LOAD, ViridianCity_Mart_OnLoad + map_script MAP_SCRIPT_ON_FRAME_TABLE, ViridianCity_Mart_OnFrame + .byte 0 + +ViridianCity_Mart_OnLoad:: + goto_if_unset FLAG_SYS_POKEDEX_GET, ViridianCity_Mart_EventScript_HideQuestionnaire + end + +ViridianCity_Mart_EventScript_HideQuestionnaire:: + setmetatile 1, 3, METATILE_Mart_CounterMid_Top, 1 + setmetatile 1, 4, METATILE_Mart_CounterMid_Bottom, 1 + end + +ViridianCity_Mart_OnFrame:: + map_script_2 VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 0, ViridianCity_Mart_EventScript_ParcelScene + .2byte 0 + +ViridianCity_Mart_EventScript_ParcelScene:: + lockall + textcolor NPC_TEXT_COLOR_MALE + applymovement LOCALID_VIRIDIAN_MART_CLERK, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + msgbox ViridianCity_Mart_Text_YouCameFromPallet + closemessage + applymovement LOCALID_VIRIDIAN_MART_CLERK, ViridianCity_Mart_Movement_FacePlayer + applymovement LOCALID_PLAYER, ViridianCity_Mart_Movement_ApproachCounter + waitmovement 0 + msgbox ViridianCity_Mart_Text_TakeThisToProfOak + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1 + giveitem_msg ViridianCity_Mart_Text_ReceivedOaksParcelFromClerk, ITEM_OAKS_PARCEL, 1, MUS_RG_OBTAIN_KEY_ITEM + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 5 + releaseall + end + +ViridianCity_Mart_Movement_ApproachCounter:: + walk_up + walk_up + walk_up + walk_up + walk_in_place_faster_left + step_end + +ViridianCity_Mart_Movement_FacePlayer:: + delay_16 + delay_16 + delay_16 + delay_16 + walk_in_place_faster_right + step_end + +ViridianCity_Mart_EventScript_Clerk:: + lock + faceplayer + goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1, ViridianCity_Mart_EventScript_SayHiToOak + message gText_HowMayIServeYou + waitmessage + pokemart ViridianCity_Mart_Items + msgbox gText_PleaseComeAgain + release + end + + .align 2 +ViridianCity_Mart_Items:: + .2byte ITEM_POKE_BALL + .2byte ITEM_POTION + .2byte ITEM_ANTIDOTE + .2byte ITEM_PARALYZE_HEAL + .2byte ITEM_NONE + release + end + +ViridianCity_Mart_EventScript_SayHiToOak:: + msgbox ViridianCity_Mart_Text_SayHiToOakForMe + release + end + +ViridianCity_Mart_EventScript_Woman:: + msgbox ViridianCity_Mart_Text_ShopDoesGoodBusinessInAntidotes, MSGBOX_NPC + end + +ViridianCity_Mart_EventScript_Youngster:: + msgbox ViridianCity_Mart_Text_GotToBuySomePotions, MSGBOX_NPC + end + +ViridianCity_Mart_Text_YouCameFromPallet:: + .string "Hey!\n" + .string "You came from PALLET TOWN?$" + +ViridianCity_Mart_Text_TakeThisToProfOak:: + .string "You know PROF. OAK, right?\p" + .string "His order came in.\n" + .string "Can I get you to take it to him?$" + +ViridianCity_Mart_Text_ReceivedOaksParcelFromClerk:: + .string "{PLAYER} received OAK'S PARCEL\n" + .string "from the POKéMON MART clerk.$" + +ViridianCity_Mart_Text_SayHiToOakForMe:: + .string "Okay, thanks! Please say hi to\n" + .string "PROF. OAK for me, too.$" + +ViridianCity_Mart_Text_ShopDoesGoodBusinessInAntidotes:: + .string "This shop does good business in\n" + .string "ANTIDOTES, I've heard.$" + +ViridianCity_Mart_Text_GotToBuySomePotions:: + .string "I've got to buy some POTIONS.\p" + .string "You never know when your POKéMON\n" + .string "will need quick healing.$" + diff --git a/data/maps/ViridianCity_PokemonCenter_1F_Frlg/map.json b/data/maps/ViridianCity_PokemonCenter_1F_Frlg/map.json new file mode 100644 index 000000000000..4a7d67f2a8e6 --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_1F_Frlg/map.json @@ -0,0 +1,109 @@ +{ + "id": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", + "name": "ViridianCity_PokemonCenter_1F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_1F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_VIRIDIAN_NURSE", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_NURSE_FRLG", + "x": 7, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_PokemonCenter_1F_EventScript_Nurse", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN_FRLG", + "x": 12, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_PokemonCenter_1F_EventScript_Gentleman", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 4, + "y": 7, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_LOOK_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_PokemonCenter_1F_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 2, + "y": 3, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_WANDER_AROUND", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_PokemonCenter_1F_EventScript_Youngster", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 6, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "0" + }, + { + "x": 7, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "0" + }, + { + "x": 8, + "y": 8, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "0" + }, + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ViridianCity_PokemonCenter_1F_Frlg/scripts.inc b/data/maps/ViridianCity_PokemonCenter_1F_Frlg/scripts.inc new file mode 100644 index 000000000000..eb57a4cc12ab --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_1F_Frlg/scripts.inc @@ -0,0 +1,46 @@ +ViridianCity_PokemonCenter_1F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ViridianCity_PokemonCenter_1F_OnTransition + map_script MAP_SCRIPT_ON_RESUME, CableClub_OnResume + .byte 0 + +ViridianCity_PokemonCenter_1F_OnTransition:: + setrespawn HEAL_LOCATION_VIRIDIAN_CITY + end + +ViridianCity_PokemonCenter_1F_EventScript_Nurse:: + lock + faceplayer + call EventScript_PkmnCenterNurse_Frlg + release + end + +ViridianCity_PokemonCenter_1F_EventScript_Boy:: + msgbox ViridianCity_PokemonCenter_1F_Text_PokeCenterInEveryTown, MSGBOX_NPC + end + +ViridianCity_PokemonCenter_1F_EventScript_Gentleman:: + msgbox ViridianCity_PokemonCenter_1F_Text_FeelFreeToUsePC, MSGBOX_NPC + end + +ViridianCity_PokemonCenter_1F_EventScript_Youngster:: + msgbox ViridianCity_PokemonCenter_1F_Text_PokeCentersHealMons, MSGBOX_NPC + end + +ViridianCity_PokemonCenter_1F_Text_FeelFreeToUsePC:: + .string "Please feel free to use that PC in\n" + .string "the corner.\p" + .string "The receptionist told me so.\n" + .string "It's so kind of her!$" + +ViridianCity_PokemonCenter_1F_Text_PokeCenterInEveryTown:: + .string "There's a POKéMON CENTER in every\n" + .string "town ahead.\p" + .string "They charge no money, so don't\n" + .string "be shy about healing POKéMON.$" + +ViridianCity_PokemonCenter_1F_Text_PokeCentersHealMons:: + .string "POKéMON CENTERS heal your tired,\n" + .string "hurt, or fainted POKéMON.\p" + .string "They make all POKéMON completely\n" + .string "healthy.$" + diff --git a/data/maps/ViridianCity_PokemonCenter_2F_Frlg/map.json b/data/maps/ViridianCity_PokemonCenter_2F_Frlg/map.json new file mode 100644 index 000000000000..5601653c6a18 --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_2F_Frlg/map.json @@ -0,0 +1,101 @@ +{ + "id": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F", + "name": "ViridianCity_PokemonCenter_2F_Frlg", + "layout": "LAYOUT_POKEMON_CENTER_2F_FRLG", + "music": "MUS_POKE_CENTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_UnionRoomAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 2, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_WirelessClubAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", + "x": 10, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 0, + "movement_range_y": 0, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "Common_EventScript_DirectCornerAttendant", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", + "x": 1, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "CableClub_EventScript_MysteryGiftMan_Frlg", + "flag": "FLAG_HIDE_MG_DELIVERYMEN" + } + ], + "warp_events": [ + { + "x": 1, + "y": 6, + "elevation": 4, + "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 1, + "elevation": 0, + "dest_map": "MAP_UNION_ROOM_FRLG", + "dest_warp_id": "0" + }, + { + "x": 9, + "y": 1, + "elevation": 0, + "dest_map": "MAP_TRADE_CENTER_FRLG", + "dest_warp_id": "0" + } + ], + "coord_events": [], + "bg_events": [] +} diff --git a/data/maps/ViridianCity_PokemonCenter_2F_Frlg/scripts.inc b/data/maps/ViridianCity_PokemonCenter_2F_Frlg/scripts.inc new file mode 100644 index 000000000000..7bf08cdf063c --- /dev/null +++ b/data/maps/ViridianCity_PokemonCenter_2F_Frlg/scripts.inc @@ -0,0 +1,19 @@ +ViridianCity_PokemonCenter_2F_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_FRAME_TABLE, CableClub_OnFrame_Frlg + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, CableClub_OnWarp_Frlg + map_script MAP_SCRIPT_ON_LOAD, CableClub_OnLoad_Frlg + map_script MAP_SCRIPT_ON_TRANSITION, CableClub_OnTransition_Frlg + .byte 0 + +@ The below 3 are unused and leftover from RS +ViridianCity_PokemonCenter_2F_EventScript_Colosseum:: + call CableClub_EventScript_Colosseum_Frlg + end + +ViridianCity_PokemonCenter_2F_EventScript_TradeCenter:: + call CableClub_EventScript_TradeCenter_Frlg + end + +ViridianCity_PokemonCenter_2F_EventScript_RecordCorner:: + call CableClub_EventScript_RecordCorner_Frlg + end diff --git a/data/maps/ViridianCity_School_Frlg/map.json b/data/maps/ViridianCity_School_Frlg/map.json new file mode 100644 index 000000000000..cc6e77a96f45 --- /dev/null +++ b/data/maps/ViridianCity_School_Frlg/map.json @@ -0,0 +1,116 @@ +{ + "id": "MAP_VIRIDIAN_CITY_SCHOOL", + "name": "ViridianCity_School_Frlg", + "layout": "LAYOUT_VIRIDIAN_CITY_SCHOOL", + "music": "MUS_RG_PEWTER", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_CITY", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "object_events": [ + { + "local_id": "LOCALID_SCHOOL_WOMAN", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_WOMAN_2_FRLG", + "x": 6, + "y": 2, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_School_EventScript_Woman", + "flag": "0" + }, + { + "local_id": "LOCALID_SCHOOL_LASS", + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_LASS_FRLG", + "x": 4, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianCity_School_EventScript_Lass", + "flag": "0" + } + ], + "warp_events": [ + { + "x": 3, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "3" + }, + { + "x": 4, + "y": 7, + "elevation": 0, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 7, + "elevation": 3, + "dest_map": "MAP_VIRIDIAN_CITY", + "dest_warp_id": "3" + } + ], + "coord_events": [], + "bg_events": [ + { + "type": "sign", + "x": 4, + "y": 4, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_School_EventScript_Notebook" + }, + { + "type": "sign", + "x": 5, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_School_EventScript_Blackboard" + }, + { + "type": "sign", + "x": 4, + "y": 1, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianCity_School_EventScript_Blackboard" + }, + { + "type": "sign", + "x": 9, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "ViridianCity_School_EventScript_PokemonJournal" + }, + { + "type": "sign", + "x": 8, + "y": 2, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", + "script": "ViridianCity_School_EventScript_PokemonJournal" + } + ] +} diff --git a/data/maps/ViridianCity_School_Frlg/scripts.inc b/data/maps/ViridianCity_School_Frlg/scripts.inc new file mode 100644 index 000000000000..2c8fe149775d --- /dev/null +++ b/data/maps/ViridianCity_School_Frlg/scripts.inc @@ -0,0 +1,188 @@ +ViridianCity_School_Frlg_MapScripts:: + .byte 0 + +ViridianCity_School_EventScript_Lass:: + lock + faceplayer + msgbox ViridianCity_School_Text_TryingToMemorizeNotes + closemessage + applymovement LOCALID_SCHOOL_LASS, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + release + end + +ViridianCity_School_EventScript_Woman:: + lock + faceplayer + msgbox ViridianCity_School_Text_ReadBlackboardCarefully + closemessage + applymovement LOCALID_SCHOOL_WOMAN, Common_Movement_FaceOriginalDirection + waitmovement 0 + release + end + +ViridianCity_School_EventScript_Notebook:: + lockall + msgbox ViridianCity_School_Text_NotebookFirstPage + msgbox ViridianCity_School_Text_TurnThePage, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, ViridianCity_School_EventScript_StopReadingNotebook + msgbox ViridianCity_School_Text_NotebookSecondPage + msgbox ViridianCity_School_Text_TurnThePage, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, ViridianCity_School_EventScript_StopReadingNotebook + msgbox ViridianCity_School_Text_NotebookThirdPage + msgbox ViridianCity_School_Text_TurnThePage, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, ViridianCity_School_EventScript_StopReadingNotebook + msgbox ViridianCity_School_Text_NotebookFourthPage + applymovement LOCALID_SCHOOL_LASS, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + textcolor NPC_TEXT_COLOR_FEMALE + msgbox ViridianCity_School_Text_HeyDontLookAtMyNotes + releaseall + end + +ViridianCity_School_EventScript_StopReadingNotebook:: + releaseall + end + +ViridianCity_School_EventScript_Blackboard:: + lockall + msgbox ViridianCity_School_Text_BlackboardListsStatusProblems + goto ViridianCity_School_EventScript_ChooseBlackboardTopic + end + +ViridianCity_School_EventScript_ChooseBlackboardTopic:: + message ViridianCity_School_Text_ReadWhichTopic + waitmessage + multichoicegrid 7, 1, MULTI_STATUS_INFO, 3, FALSE + switch VAR_RESULT + case 0, ViridianCity_School_EventScript_ReadSleep + case 1, ViridianCity_School_EventScript_ReadPoison + case 2, ViridianCity_School_EventScript_ReadParalysis + case 3, ViridianCity_School_EventScript_ReadBurn + case 4, ViridianCity_School_EventScript_ReadFreeze + case 5, ViridianCity_School_EventScript_ExitBlackboard + case 127, ViridianCity_School_EventScript_ExitBlackboard + end + +ViridianCity_School_EventScript_ReadSleep:: + msgbox ViridianCity_School_Text_ExplainSleep + goto ViridianCity_School_EventScript_ChooseBlackboardTopic + end + +ViridianCity_School_EventScript_ReadBurn:: + msgbox ViridianCity_School_Text_ExplainBurn + goto ViridianCity_School_EventScript_ChooseBlackboardTopic + end + +ViridianCity_School_EventScript_ReadPoison:: + msgbox ViridianCity_School_Text_ExplainPoison + goto ViridianCity_School_EventScript_ChooseBlackboardTopic + end + +ViridianCity_School_EventScript_ReadFreeze:: + msgbox ViridianCity_School_Text_ExplainFreeze + goto ViridianCity_School_EventScript_ChooseBlackboardTopic + end + +ViridianCity_School_EventScript_ReadParalysis:: + msgbox ViridianCity_School_Text_ExplainParalysis + goto ViridianCity_School_EventScript_ChooseBlackboardTopic + end + +ViridianCity_School_EventScript_ExitBlackboard:: + releaseall + end + +ViridianCity_School_Text_TryingToMemorizeNotes:: + .string "Whew! I'm trying to memorize all my\n" + .string "notes.$" + +ViridianCity_School_Text_ReadBlackboardCarefully:: + .string "Okay!\p" + .string "Be sure to read what's on the\n" + .string "blackboard carefully!$" + +ViridianCity_School_Text_NotebookFirstPage:: + .string "Let's check out the notebook.\p" + .string "First page…\p" + .string "POKé BALLS are used to catch\n" + .string "POKéMON.\p" + .string "Up to six POKéMON can be carried\n" + .string "in your party.\p" + .string "People who raise and battle\n" + .string "with POKéMON are called TRAINERS.$" + +ViridianCity_School_Text_NotebookSecondPage:: + .string "Second page…\p" + .string "A healthy POKéMON may be hard to\n" + .string "catch, so weaken it first.\p" + .string "Poison, burn, or cause another\n" + .string "status problem to weaken it.$" + +ViridianCity_School_Text_NotebookThirdPage:: + .string "Third page…\p" + .string "POKéMON TRAINERS seek others to\n" + .string "engage in POKéMON battles.\p" + .string "To TRAINERS, the taste of victory\n" + .string "is sweet, indeed.\p" + .string "Battles are constantly waged at\n" + .string "POKéMON GYMS everywhere.$" + +ViridianCity_School_Text_NotebookFourthPage:: + .string "Fourth page…\p" + .string "The ultimate goal for all POKéMON\n" + .string "TRAINERS is simple.\p" + .string "It is to defeat the top eight\n" + .string "POKéMON GYM LEADERS.\p" + .string "Do so to earn the right to face…\p" + .string "The ELITE FOUR of the POKéMON\n" + .string "LEAGUE!$" + +ViridianCity_School_Text_TurnThePage:: + .string "Turn the page?$" + +ViridianCity_School_Text_HeyDontLookAtMyNotes:: + .string "GIRL: Hey!\n" + .string "Don't look at my notes!$" + +ViridianCity_School_Text_BlackboardListsStatusProblems:: + .string "The blackboard lists POKéMON\n" + .string "STATUS problems during battles.$" + +ViridianCity_School_Text_ReadWhichTopic:: + .string "Which topic do you want to read?$" + +ViridianCity_School_Text_ExplainSleep:: + .string "A POKéMON can't attack if it's\n" + .string "asleep.\p" + .string "POKéMON will stay asleep even\n" + .string "after battles.\p" + .string "Use AWAKENING to awaken one\n" + .string "from sleep.$" + +ViridianCity_School_Text_ExplainBurn:: + .string "A burn reduces ATTACK power.\n" + .string "It also causes ongoing HP loss.\p" + .string "A burn remains after a battle.\n" + .string "Use BURN HEAL to cure a burn.$" + +ViridianCity_School_Text_ExplainPoison:: + .string "When poisoned, a POKéMON's health\n" + .string "steadily drops.\p" + .string "Poison lingers after battles.\n" + .string "Use an ANTIDOTE to cure poison!$" + +ViridianCity_School_Text_ExplainFreeze:: + .string "A frozen POKéMON becomes\n" + .string "helplessly immobile.\p" + .string "It stays frozen even after the\n" + .string "battle ends.\p" + .string "Use ICE HEAL to thaw out the\n" + .string "suffering POKéMON.$" + +ViridianCity_School_Text_ExplainParalysis:: + .string "Paralysis reduces SPEED and may\n" + .string "prevent the POKéMON from moving.\p" + .string "Paralysis remains after battles.\n" + .string "Use PARLYZ HEAL for treatment.$" + diff --git a/data/maps/ViridianForest_Frlg/map.json b/data/maps/ViridianForest_Frlg/map.json new file mode 100644 index 000000000000..dc06c2a86e3c --- /dev/null +++ b/data/maps/ViridianForest_Frlg/map.json @@ -0,0 +1,291 @@ +{ + "id": "MAP_VIRIDIAN_FOREST", + "name": "ViridianForest_Frlg", + "layout": "LAYOUT_VIRIDIAN_FOREST", + "music": "MUS_RG_VIRIDIAN_FOREST", + "region": "REGION_KANTO", + "region_map_section": "MAPSEC_VIRIDIAN_FOREST", + "requires_flash": false, + "weather": "WEATHER_SHADE", + "map_type": "MAP_TYPE_ROUTE", + "allow_cycling": true, + "allow_escaping": true, + "allow_running": true, + "show_map_name": true, + "floor_number": 0, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": 0, + "object_events": [ + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER_FRLG", + "x": 29, + "y": 58, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianForest_EventScript_Youngster", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BOY", + "x": 45, + "y": 58, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianForest_EventScript_Boy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 47, + "y": 45, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "5", + "script": "ViridianForest_EventScript_Rick", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 47, + "y": 29, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "ViridianForest_EventScript_Doug", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 7, + "y": 22, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_LEFT", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "4", + "script": "ViridianForest_EventScript_Sammy", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 5, + "y": 41, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianForest_EventScript_ItemPokeBall", + "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POKE_BALL" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 40, + "y": 21, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianForest_EventScript_ItemAntidote", + "flag": "FLAG_HIDE_VIRIDIAN_FOREST_ANTIDOTE" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 21, + "y": 34, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianForest_EventScript_ItemPotion", + "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POTION" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 43, + "y": 6, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN_AND_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ViridianForest_EventScript_Anthony", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER_FRLG", + "x": 16, + "y": 5, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_UP", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NORMAL", + "trainer_sight_or_berry_tree_id": "1", + "script": "ViridianForest_EventScript_Charlie", + "flag": "0" + }, + { + "type": "object", + "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", + "x": 49, + "y": 60, + "elevation": 3, + "movement_type": "MOVEMENT_TYPE_FACE_DOWN", + "movement_range_x": 1, + "movement_range_y": 1, + "trainer_type": "TRAINER_TYPE_NONE", + "trainer_sight_or_berry_tree_id": "0", + "script": "ViridianForest_EventScript_ItemPotion2", + "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POTION_2" + } + ], + "warp_events": [ + { + "x": 29, + "y": 62, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 28, + "y": 62, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 5, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 6, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": "1" + }, + { + "x": 30, + "y": 62, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", + "dest_warp_id": "3" + }, + { + "x": 4, + "y": 9, + "elevation": 3, + "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", + "dest_warp_id": "1" + } + ], + "coord_events": [ + + ], + "bg_events": [ + { + "type": "sign", + "x": 39, + "y": 59, + "elevation": 3, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianForest_EventScript_TrainerTips1" + }, + { + "type": "sign", + "x": 43, + "y": 26, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianForest_EventScript_TrainerTips3" + }, + { + "type": "sign", + "x": 9, + "y": 29, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianForest_EventScript_TrainerTips4" + }, + { + "type": "sign", + "x": 6, + "y": 12, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianForest_EventScript_ExitSign" + }, + { + "type": "sign", + "x": 28, + "y": 44, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianForest_EventScript_TrainerTips2" + }, + { + "type": "sign", + "x": 31, + "y": 60, + "elevation": 0, + "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", + "script": "ViridianForest_EventScript_TrainerTips5" + }, + { + "type": "hidden_item", + "x": 3, + "y": 22, + "elevation": 3, + "item": "ITEM_POTION", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION", + "quantity": 1, + "underfoot": false + }, + { + "type": "hidden_item", + "x": 28, + "y": 57, + "elevation": 0, + "item": "ITEM_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE", + "quantity": 1, + "underfoot": false + } + ] +} diff --git a/data/maps/ViridianForest_Frlg/scripts.inc b/data/maps/ViridianForest_Frlg/scripts.inc new file mode 100644 index 000000000000..a8f69bac9981 --- /dev/null +++ b/data/maps/ViridianForest_Frlg/scripts.inc @@ -0,0 +1,170 @@ +ViridianForest_Frlg_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, ViridianForest_OnTransition + .byte 0 + +ViridianForest_OnTransition:: + setworldmapflag FLAG_WORLD_MAP_VIRIDIAN_FOREST + end + +ViridianForest_EventScript_Youngster:: + msgbox ViridianForest_Text_FriendsItchingToBattle, MSGBOX_NPC + end + +ViridianForest_EventScript_Boy:: + msgbox ViridianForest_Text_RanOutOfPokeBalls, MSGBOX_NPC + end + +ViridianForest_EventScript_TrainerTips1:: + msgbox ViridianForest_Text_AvoidGrassyAreasWhenWeak, MSGBOX_SIGN + end + +ViridianForest_EventScript_TrainerTips2:: + msgbox ViridianForest_Text_UseAntidoteForPoison, MSGBOX_SIGN + end + +ViridianForest_EventScript_TrainerTips3:: + msgbox ViridianForest_Text_ContactOakViaPCToRatePokedex, MSGBOX_SIGN + end + +ViridianForest_EventScript_TrainerTips4:: + msgbox ViridianForest_Text_CantCatchOwnedMons, MSGBOX_SIGN + end + +ViridianForest_EventScript_TrainerTips5:: + msgbox ViridianForest_Text_WeakenMonsBeforeCapture, MSGBOX_SIGN + end + +ViridianForest_EventScript_ExitSign:: + msgbox ViridianForest_Text_LeavingViridianForest, MSGBOX_SIGN + end + +ViridianForest_EventScript_Rick:: + trainerbattle_single TRAINER_BUG_CATCHER_RICK, ViridianForest_Text_RickIntro, ViridianForest_Text_RickDefeat + msgbox ViridianForest_Text_RickPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianForest_EventScript_Doug:: + trainerbattle_single TRAINER_BUG_CATCHER_DOUG, ViridianForest_Text_DougIntro, ViridianForest_Text_DougDefeat + msgbox ViridianForest_Text_DougPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianForest_EventScript_Sammy:: + trainerbattle_single TRAINER_BUG_CATCHER_SAMMY, ViridianForest_Text_SammyIntro, ViridianForest_Text_SammyDefeat + msgbox ViridianForest_Text_SammyPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianForest_EventScript_Anthony:: + trainerbattle_single TRAINER_BUG_CATCHER_ANTHONY, ViridianForest_Text_AnthonyIntro, ViridianForest_Text_AnthonyDefeat + msgbox ViridianForest_Text_AnthonyPostBattle, MSGBOX_AUTOCLOSE + end + +ViridianForest_EventScript_Charlie:: + trainerbattle_single TRAINER_BUG_CATCHER_CHARLIE, ViridianForest_Text_CharlieIntro, ViridianForest_Text_CharlieDefeat + msgbox ViridianForest_Text_CharliePostBattle, MSGBOX_AUTOCLOSE + end + +ViridianForest_Text_FriendsItchingToBattle:: + .string "I came here with some friends to\n" + .string "catch us some BUG POKéMON!\p" + .string "They're all itching to get into\n" + .string "some POKéMON battles!$" + +ViridianForest_Text_RickIntro:: + .string "Hey! You have POKéMON!\n" + .string "Come on!\l" + .string "Let's battle 'em!$" + +ViridianForest_Text_RickDefeat:: + .string "No!\nCATERPIE can't hack it!$" + +ViridianForest_Text_RickPostBattle:: + .string "Ssh! You'll scare the bugs away.\n" + .string "Another time, okay?$" + +ViridianForest_Text_DougIntro:: + .string "Yo!\n" + .string "You can't jam out if you're a\l" + .string "POKéMON TRAINER!$" + +ViridianForest_Text_DougDefeat:: + .string "Huh?\n" + .string "I ran out of POKéMON!$" + +ViridianForest_Text_DougPostBattle:: + .string "That totally stinks! I'm going to\n" + .string "catch some stronger ones!$" + +ViridianForest_Text_SammyIntro:: + .string "Hey, wait up!\n" + .string "What's the hurry? Why the rush?$" + +ViridianForest_Text_SammyDefeat:: + .string "I give!\n" + .string "You're good at this!$" + +ViridianForest_Text_SammyPostBattle:: + .string "Sometimes, you can find stuff on\n" + .string "the ground.\p" + .string "I'm looking for the stuff I\n" + .string "dropped. Can you help me?$" + +ViridianForest_Text_AnthonyIntro:: + .string "I might be little, but I won't like\n" + .string "it if you go easy on me!$" + +ViridianForest_Text_AnthonyDefeat:: + .string "Oh, boo.\n" + .string "Nothing went right.$" + +ViridianForest_Text_AnthonyPostBattle:: + .string "I lost some of my allowance…$" + +ViridianForest_Text_CharlieIntro:: + .string "Did you know that POKéMON evolve?$" + +ViridianForest_Text_CharlieDefeat:: + .string "Oh!\n" + .string "I lost!$" + +ViridianForest_Text_CharliePostBattle:: + .string "BUG POKéMON evolve quickly.\n" + .string "They're a lot of fun!$" + +ViridianForest_Text_RanOutOfPokeBalls:: + .string "I was throwing POKé BALLS to\n" + .string "catch POKéMON, and I ran out.\p" + .string "That's why you can never have too\n" + .string "many POKé BALLS.$" + +ViridianForest_Text_AvoidGrassyAreasWhenWeak:: + .string "TRAINER TIPS\p" + .string "If your POKéMON are weak and you\n" + .string "want to avoid battles, stay away\l" + .string "from grassy areas!$" + +ViridianForest_Text_UseAntidoteForPoison:: + .string "For poison, use ANTIDOTE!\n" + .string "Get it at POKéMON MARTS!$" + +ViridianForest_Text_ContactOakViaPCToRatePokedex:: + .string "TRAINER TIPS\p" + .string "Contact PROF. OAK via a PC to\n" + .string "get your POKéDEX evaluated!$" + +ViridianForest_Text_CantCatchOwnedMons:: + .string "TRAINER TIPS\p" + .string "You can't catch a POKéMON that\n" + .string "belongs to someone else.\p" + .string "Throw POKé BALLS only at wild\n" + .string "POKéMON to catch them!$" + +ViridianForest_Text_WeakenMonsBeforeCapture:: + .string "TRAINER TIPS\p" + .string "Weaken POKéMON before attempting\n" + .string "capture!\p" + .string "When healthy, they may escape!$" + +ViridianForest_Text_LeavingViridianForest:: + .string "LEAVING VIRIDIAN FOREST\n" + .string "PEWTER CITY AHEAD$" + diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index 78e82055f6f2..d6320f485b9f 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -33,7 +33,48 @@ "gMapGroup_IndoorRoute113", "gMapGroup_IndoorRoute123", "gMapGroup_IndoorRoute119", - "gMapGroup_IndoorRoute124" + "gMapGroup_IndoorRoute124", + "gMapGroup_Link_Frlg", + "gMapGroup_Dungeons_Frlg", + "gMapGroup_SpecialArea_Frlg", + "gMapGroup_TownsAndRoutes_Frlg", + "gMapGroup_IndoorPallet_Frlg", + "gMapGroup_IndoorViridian_Frlg", + "gMapGroup_IndoorPewter_Frlg", + "gMapGroup_IndoorCerulean_Frlg", + "gMapGroup_IndoorLavender_Frlg", + "gMapGroup_IndoorVermilion_Frlg", + "gMapGroup_IndoorCeladon_Frlg", + "gMapGroup_IndoorFuchsia_Frlg", + "gMapGroup_IndoorCinnabar_Frlg", + "gMapGroup_IndoorIndigoPlateau_Frlg", + "gMapGroup_IndoorSaffron_Frlg", + "gMapGroup_IndoorRoute2_Frlg", + "gMapGroup_IndoorRoute4_Frlg", + "gMapGroup_IndoorRoute5_Frlg", + "gMapGroup_IndoorRoute6_Frlg", + "gMapGroup_IndoorRoute7_Frlg", + "gMapGroup_IndoorRoute8_Frlg", + "gMapGroup_IndoorRoute10_Frlg", + "gMapGroup_IndoorRoute11_Frlg", + "gMapGroup_IndoorRoute12_Frlg", + "gMapGroup_IndoorRoute15_Frlg", + "gMapGroup_IndoorRoute16_Frlg", + "gMapGroup_IndoorRoute18_Frlg", + "gMapGroup_IndoorRoute22_Frlg", + "gMapGroup_IndoorRoute25_Frlg", + "gMapGroup_IndoorSevenIsland_Frlg", + "gMapGroup_IndoorOneIsland_Frlg", + "gMapGroup_IndoorTwoIsland_Frlg", + "gMapGroup_IndoorThreeIsland_Frlg", + "gMapGroup_IndoorFourIsland_Frlg", + "gMapGroup_IndoorFiveIsland_Frlg", + "gMapGroup_IndoorSixIsland_Frlg", + "gMapGroup_IndoorThreeIslandRoute_Frlg", + "gMapGroup_IndoorFiveIslandRoute_Frlg", + "gMapGroup_IndoorTwoIslandRoute_Frlg", + "gMapGroup_IndoorSixIslandRoute_Frlg", + "gMapGroup_IndoorSevenIslandRoute_Frlg" ], "gMapGroup_TownsAndRoutes": [ "PetalburgCity", @@ -620,5 +661,504 @@ ], "gMapGroup_IndoorRoute124": [ "Route124_DivingTreasureHuntersHouse" + ], + "gMapGroup_Link_Frlg": [ + "BattleColosseum_2P_Frlg", + "TradeCenter_Frlg", + "RecordCorner_Frlg", + "BattleColosseum_4P_Frlg", + "UnionRoom_Frlg" + ], + "gMapGroup_Dungeons_Frlg": [ + "ViridianForest_Frlg", + "MtMoon_1F_Frlg", + "MtMoon_B1F_Frlg", + "MtMoon_B2F_Frlg", + "SSAnne_Exterior_Frlg", + "SSAnne_1F_Corridor_Frlg", + "SSAnne_2F_Corridor_Frlg", + "SSAnne_3F_Corridor_Frlg", + "SSAnne_B1F_Corridor_Frlg", + "SSAnne_Deck_Frlg", + "SSAnne_Kitchen_Frlg", + "SSAnne_CaptainsOffice_Frlg", + "SSAnne_1F_Room1_Frlg", + "SSAnne_1F_Room2_Frlg", + "SSAnne_1F_Room3_Frlg", + "SSAnne_1F_Room4_Frlg", + "SSAnne_1F_Room5_Frlg", + "SSAnne_1F_Room7_Frlg", + "SSAnne_2F_Room1_Frlg", + "SSAnne_2F_Room2_Frlg", + "SSAnne_2F_Room3_Frlg", + "SSAnne_2F_Room4_Frlg", + "SSAnne_2F_Room5_Frlg", + "SSAnne_2F_Room6_Frlg", + "SSAnne_B1F_Room1_Frlg", + "SSAnne_B1F_Room2_Frlg", + "SSAnne_B1F_Room3_Frlg", + "SSAnne_B1F_Room4_Frlg", + "SSAnne_B1F_Room5_Frlg", + "SSAnne_1F_Room6_Frlg", + "UndergroundPath_NorthEntrance_Frlg", + "UndergroundPath_NorthSouthTunnel_Frlg", + "UndergroundPath_SouthEntrance_Frlg", + "UndergroundPath_WestEntrance_Frlg", + "UndergroundPath_EastWestTunnel_Frlg", + "UndergroundPath_EastEntrance_Frlg", + "DiglettsCave_NorthEntrance_Frlg", + "DiglettsCave_B1F_Frlg", + "DiglettsCave_SouthEntrance_Frlg", + "VictoryRoad_1F_Frlg", + "VictoryRoad_2F_Frlg", + "VictoryRoad_3F_Frlg", + "RocketHideout_B1F_Frlg", + "RocketHideout_B2F_Frlg", + "RocketHideout_B3F_Frlg", + "RocketHideout_B4F_Frlg", + "RocketHideout_Elevator_Frlg", + "SilphCo_1F_Frlg", + "SilphCo_2F_Frlg", + "SilphCo_3F_Frlg", + "SilphCo_4F_Frlg", + "SilphCo_5F_Frlg", + "SilphCo_6F_Frlg", + "SilphCo_7F_Frlg", + "SilphCo_8F_Frlg", + "SilphCo_9F_Frlg", + "SilphCo_10F_Frlg", + "SilphCo_11F_Frlg", + "SilphCo_Elevator_Frlg", + "PokemonMansion_1F_Frlg", + "PokemonMansion_2F_Frlg", + "PokemonMansion_3F_Frlg", + "PokemonMansion_B1F_Frlg", + "SafariZone_Center_Frlg", + "SafariZone_East_Frlg", + "SafariZone_North_Frlg", + "SafariZone_West_Frlg", + "SafariZone_Center_RestHouse_Frlg", + "SafariZone_East_RestHouse_Frlg", + "SafariZone_North_RestHouse_Frlg", + "SafariZone_West_RestHouse_Frlg", + "SafariZone_SecretHouse_Frlg", + "CeruleanCave_1F_Frlg", + "CeruleanCave_2F_Frlg", + "CeruleanCave_B1F_Frlg", + "PokemonLeague_LoreleisRoom_Frlg", + "PokemonLeague_BrunosRoom_Frlg", + "PokemonLeague_AgathasRoom_Frlg", + "PokemonLeague_LancesRoom_Frlg", + "PokemonLeague_ChampionsRoom_Frlg", + "PokemonLeague_HallOfFame_Frlg", + "RockTunnel_1F_Frlg", + "RockTunnel_B1F_Frlg", + "SeafoamIslands_1F_Frlg", + "SeafoamIslands_B1F_Frlg", + "SeafoamIslands_B2F_Frlg", + "SeafoamIslands_B3F_Frlg", + "SeafoamIslands_B4F_Frlg", + "PokemonTower_1F_Frlg", + "PokemonTower_2F_Frlg", + "PokemonTower_3F_Frlg", + "PokemonTower_4F_Frlg", + "PokemonTower_5F_Frlg", + "PokemonTower_6F_Frlg", + "PokemonTower_7F_Frlg", + "PowerPlant_Frlg", + "MtEmber_RubyPath_B4F_Frlg", + "MtEmber_Exterior_Frlg", + "MtEmber_SummitPath_1F_Frlg", + "MtEmber_SummitPath_2F_Frlg", + "MtEmber_SummitPath_3F_Frlg", + "MtEmber_Summit_Frlg", + "MtEmber_RubyPath_B5F_Frlg", + "MtEmber_RubyPath_1F_Frlg", + "MtEmber_RubyPath_B1F_Frlg", + "MtEmber_RubyPath_B2F_Frlg", + "MtEmber_RubyPath_B3F_Frlg", + "MtEmber_RubyPath_B1F_Stairs_Frlg", + "MtEmber_RubyPath_B2F_Stairs_Frlg", + "ThreeIsland_BerryForest_Frlg", + "FourIsland_IcefallCave_Entrance_Frlg", + "FourIsland_IcefallCave_1F_Frlg", + "FourIsland_IcefallCave_B1F_Frlg", + "FourIsland_IcefallCave_Back_Frlg", + "FiveIsland_RocketWarehouse_Frlg", + "SixIsland_DottedHole_1F_Frlg", + "SixIsland_DottedHole_B1F_Frlg", + "SixIsland_DottedHole_B2F_Frlg", + "SixIsland_DottedHole_B3F_Frlg", + "SixIsland_DottedHole_B4F_Frlg", + "SixIsland_DottedHole_SapphireRoom_Frlg", + "SixIsland_PatternBush_Frlg", + "SixIsland_AlteringCave_Frlg" + ], + "gMapGroup_SpecialArea_Frlg": [ + "NavelRock_Exterior_Frlg", + "TrainerTower_1F_Frlg", + "TrainerTower_2F_Frlg", + "TrainerTower_3F_Frlg", + "TrainerTower_4F_Frlg", + "TrainerTower_5F_Frlg", + "TrainerTower_6F_Frlg", + "TrainerTower_7F_Frlg", + "TrainerTower_8F_Frlg", + "TrainerTower_Roof_Frlg", + "TrainerTower_Lobby_Frlg", + "TrainerTower_Elevator_Frlg", + "FiveIsland_LostCave_Entrance_Frlg", + "FiveIsland_LostCave_Room1_Frlg", + "FiveIsland_LostCave_Room2_Frlg", + "FiveIsland_LostCave_Room3_Frlg", + "FiveIsland_LostCave_Room4_Frlg", + "FiveIsland_LostCave_Room5_Frlg", + "FiveIsland_LostCave_Room6_Frlg", + "FiveIsland_LostCave_Room7_Frlg", + "FiveIsland_LostCave_Room8_Frlg", + "FiveIsland_LostCave_Room9_Frlg", + "FiveIsland_LostCave_Room10_Frlg", + "FiveIsland_LostCave_Room11_Frlg", + "FiveIsland_LostCave_Room12_Frlg", + "FiveIsland_LostCave_Room13_Frlg", + "FiveIsland_LostCave_Room14_Frlg", + "SevenIsland_TanobyRuins_MoneanChamber_Frlg", + "SevenIsland_TanobyRuins_LiptooChamber_Frlg", + "SevenIsland_TanobyRuins_WeepthChamber_Frlg", + "SevenIsland_TanobyRuins_DilfordChamber_Frlg", + "SevenIsland_TanobyRuins_ScufibChamber_Frlg", + "SevenIsland_TanobyRuins_RixyChamber_Frlg", + "SevenIsland_TanobyRuins_ViapoisChamber_Frlg", + "ThreeIsland_DunsparceTunnel_Frlg", + "SevenIsland_SevaultCanyon_TanobyKey_Frlg", + "NavelRock_1F_Frlg", + "NavelRock_Summit_Frlg", + "NavelRock_Base_Frlg", + "NavelRock_SummitPath_2F_Frlg", + "NavelRock_SummitPath_3F_Frlg", + "NavelRock_SummitPath_4F_Frlg", + "NavelRock_SummitPath_5F_Frlg", + "NavelRock_BasePath_B1F_Frlg", + "NavelRock_BasePath_B2F_Frlg", + "NavelRock_BasePath_B3F_Frlg", + "NavelRock_BasePath_B4F_Frlg", + "NavelRock_BasePath_B5F_Frlg", + "NavelRock_BasePath_B6F_Frlg", + "NavelRock_BasePath_B7F_Frlg", + "NavelRock_BasePath_B8F_Frlg", + "NavelRock_BasePath_B9F_Frlg", + "NavelRock_BasePath_B10F_Frlg", + "NavelRock_BasePath_B11F_Frlg", + "NavelRock_B1F_Frlg", + "NavelRock_Fork_Frlg", + "BirthIsland_Exterior_Frlg", + "OneIsland_KindleRoad_EmberSpa_Frlg", + "BirthIsland_Harbor_Frlg", + "NavelRock_Harbor_Frlg" + ], + "gMapGroup_TownsAndRoutes_Frlg": [ + "PalletTown_Frlg", + "ViridianCity_Frlg", + "PewterCity_Frlg", + "CeruleanCity_Frlg", + "LavenderTown_Frlg", + "VermilionCity_Frlg", + "CeladonCity_Frlg", + "FuchsiaCity_Frlg", + "CinnabarIsland_Frlg", + "IndigoPlateau_Exterior_Frlg", + "SaffronCity_Frlg", + "SaffronCity_Connection_Frlg", + "OneIsland_Frlg", + "TwoIsland_Frlg", + "ThreeIsland_Frlg", + "FourIsland_Frlg", + "FiveIsland_Frlg", + "SevenIsland_Frlg", + "SixIsland_Frlg", + "Route1_Frlg", + "Route2_Frlg", + "Route3_Frlg", + "Route4_Frlg", + "Route5_Frlg", + "Route6_Frlg", + "Route7_Frlg", + "Route8_Frlg", + "Route9_Frlg", + "Route10_Frlg", + "Route11_Frlg", + "Route12_Frlg", + "Route13_Frlg", + "Route14_Frlg", + "Route15_Frlg", + "Route16_Frlg", + "Route17_Frlg", + "Route18_Frlg", + "Route19_Frlg", + "Route20_Frlg", + "Route21_North_Frlg", + "Route21_South_Frlg", + "Route22_Frlg", + "Route23_Frlg", + "Route24_Frlg", + "Route25_Frlg", + "OneIsland_KindleRoad_Frlg", + "OneIsland_TreasureBeach_Frlg", + "TwoIsland_CapeBrink_Frlg", + "ThreeIsland_BondBridge_Frlg", + "ThreeIsland_Port_Frlg", + "FiveIsland_ResortGorgeous_Frlg", + "FiveIsland_WaterLabyrinth_Frlg", + "FiveIsland_Meadow_Frlg", + "FiveIsland_MemorialPillar_Frlg", + "SixIsland_OutcastIsland_Frlg", + "SixIsland_GreenPath_Frlg", + "SixIsland_WaterPath_Frlg", + "SixIsland_RuinValley_Frlg", + "SevenIsland_TrainerTower_Frlg", + "SevenIsland_SevaultCanyon_Entrance_Frlg", + "SevenIsland_SevaultCanyon_Frlg", + "SevenIsland_TanobyRuins_Frlg" + ], + "gMapGroup_IndoorPallet_Frlg": [ + "PalletTown_PlayersHouse_1F_Frlg", + "PalletTown_PlayersHouse_2F_Frlg", + "PalletTown_RivalsHouse_Frlg", + "PalletTown_ProfessorOaksLab_Frlg" + ], + "gMapGroup_IndoorViridian_Frlg": [ + "ViridianCity_House_Frlg", + "ViridianCity_Gym_Frlg", + "ViridianCity_School_Frlg", + "ViridianCity_Mart_Frlg", + "ViridianCity_PokemonCenter_1F_Frlg", + "ViridianCity_PokemonCenter_2F_Frlg" + ], + "gMapGroup_IndoorPewter_Frlg": [ + "PewterCity_Museum_1F_Frlg", + "PewterCity_Museum_2F_Frlg", + "PewterCity_Gym_Frlg", + "PewterCity_Mart_Frlg", + "PewterCity_House1_Frlg", + "PewterCity_PokemonCenter_1F_Frlg", + "PewterCity_PokemonCenter_2F_Frlg", + "PewterCity_House2_Frlg" + ], + "gMapGroup_IndoorCerulean_Frlg": [ + "CeruleanCity_House1_Frlg", + "CeruleanCity_House2_Frlg", + "CeruleanCity_House3_Frlg", + "CeruleanCity_PokemonCenter_1F_Frlg", + "CeruleanCity_PokemonCenter_2F_Frlg", + "CeruleanCity_Gym_Frlg", + "CeruleanCity_BikeShop_Frlg", + "CeruleanCity_Mart_Frlg", + "CeruleanCity_House4_Frlg", + "CeruleanCity_House5_Frlg" + ], + "gMapGroup_IndoorLavender_Frlg": [ + "LavenderTown_PokemonCenter_1F_Frlg", + "LavenderTown_PokemonCenter_2F_Frlg", + "LavenderTown_VolunteerPokemonHouse_Frlg", + "LavenderTown_House1_Frlg", + "LavenderTown_House2_Frlg", + "LavenderTown_Mart_Frlg" + ], + "gMapGroup_IndoorVermilion_Frlg": [ + "VermilionCity_House1_Frlg", + "VermilionCity_PokemonCenter_1F_Frlg", + "VermilionCity_PokemonCenter_2F_Frlg", + "VermilionCity_PokemonFanClub_Frlg", + "VermilionCity_House2_Frlg", + "VermilionCity_Mart_Frlg", + "VermilionCity_Gym_Frlg", + "VermilionCity_House3_Frlg" + ], + "gMapGroup_IndoorCeladon_Frlg": [ + "CeladonCity_DepartmentStore_1F_Frlg", + "CeladonCity_DepartmentStore_2F_Frlg", + "CeladonCity_DepartmentStore_3F_Frlg", + "CeladonCity_DepartmentStore_4F_Frlg", + "CeladonCity_DepartmentStore_5F_Frlg", + "CeladonCity_DepartmentStore_Roof_Frlg", + "CeladonCity_DepartmentStore_Elevator_Frlg", + "CeladonCity_Condominiums_1F_Frlg", + "CeladonCity_Condominiums_2F_Frlg", + "CeladonCity_Condominiums_3F_Frlg", + "CeladonCity_Condominiums_Roof_Frlg", + "CeladonCity_Condominiums_RoofRoom_Frlg", + "CeladonCity_PokemonCenter_1F_Frlg", + "CeladonCity_PokemonCenter_2F_Frlg", + "CeladonCity_GameCorner_Frlg", + "CeladonCity_GameCorner_PrizeRoom_Frlg", + "CeladonCity_Gym_Frlg", + "CeladonCity_Restaurant_Frlg", + "CeladonCity_House1_Frlg", + "CeladonCity_Hotel_Frlg" + ], + "gMapGroup_IndoorFuchsia_Frlg": [ + "FuchsiaCity_SafariZone_Entrance_Frlg", + "FuchsiaCity_Mart_Frlg", + "FuchsiaCity_SafariZone_Office_Frlg", + "FuchsiaCity_Gym_Frlg", + "FuchsiaCity_House1_Frlg", + "FuchsiaCity_PokemonCenter_1F_Frlg", + "FuchsiaCity_PokemonCenter_2F_Frlg", + "FuchsiaCity_WardensHouse_Frlg", + "FuchsiaCity_House2_Frlg", + "FuchsiaCity_House3_Frlg" + ], + "gMapGroup_IndoorCinnabar_Frlg": [ + "CinnabarIsland_Gym_Frlg", + "CinnabarIsland_PokemonLab_Entrance_Frlg", + "CinnabarIsland_PokemonLab_Lounge_Frlg", + "CinnabarIsland_PokemonLab_ResearchRoom_Frlg", + "CinnabarIsland_PokemonLab_ExperimentRoom_Frlg", + "CinnabarIsland_PokemonCenter_1F_Frlg", + "CinnabarIsland_PokemonCenter_2F_Frlg", + "CinnabarIsland_Mart_Frlg" + ], + "gMapGroup_IndoorIndigoPlateau_Frlg": [ + "IndigoPlateau_PokemonCenter_1F_Frlg", + "IndigoPlateau_PokemonCenter_2F_Frlg" + ], + "gMapGroup_IndoorSaffron_Frlg": [ + "SaffronCity_CopycatsHouse_1F_Frlg", + "SaffronCity_CopycatsHouse_2F_Frlg", + "SaffronCity_Dojo_Frlg", + "SaffronCity_Gym_Frlg", + "SaffronCity_House_Frlg", + "SaffronCity_Mart_Frlg", + "SaffronCity_PokemonCenter_1F_Frlg", + "SaffronCity_PokemonCenter_2F_Frlg", + "SaffronCity_MrPsychicsHouse_Frlg", + "SaffronCity_PokemonTrainerFanClub_Frlg" + ], + "gMapGroup_IndoorRoute2_Frlg": [ + "Route2_ViridianForest_SouthEntrance_Frlg", + "Route2_House_Frlg", + "Route2_EastBuilding_Frlg", + "Route2_ViridianForest_NorthEntrance_Frlg" + ], + "gMapGroup_IndoorRoute4_Frlg": [ + "Route4_PokemonCenter_1F_Frlg", + "Route4_PokemonCenter_2F_Frlg" + ], + "gMapGroup_IndoorRoute5_Frlg": [ + "Route5_PokemonDayCare_Frlg", + "Route5_SouthEntrance_Frlg" + ], + "gMapGroup_IndoorRoute6_Frlg": [ + "Route6_NorthEntrance_Frlg" + ], + "gMapGroup_IndoorRoute7_Frlg": [ + "Route7_EastEntrance_Frlg" + ], + "gMapGroup_IndoorRoute8_Frlg": [ + "Route8_WestEntrance_Frlg" + ], + "gMapGroup_IndoorRoute10_Frlg": [ + "Route10_PokemonCenter_1F_Frlg", + "Route10_PokemonCenter_2F_Frlg" + ], + "gMapGroup_IndoorRoute11_Frlg": [ + "Route11_EastEntrance_1F_Frlg", + "Route11_EastEntrance_2F_Frlg" + ], + "gMapGroup_IndoorRoute12_Frlg": [ + "Route12_NorthEntrance_1F_Frlg", + "Route12_NorthEntrance_2F_Frlg", + "Route12_FishingHouse_Frlg" + ], + "gMapGroup_IndoorRoute15_Frlg": [ + "Route15_WestEntrance_1F_Frlg", + "Route15_WestEntrance_2F_Frlg" + ], + "gMapGroup_IndoorRoute16_Frlg": [ + "Route16_House_Frlg", + "Route16_NorthEntrance_1F_Frlg", + "Route16_NorthEntrance_2F_Frlg" + ], + "gMapGroup_IndoorRoute18_Frlg": [ + "Route18_EastEntrance_1F_Frlg", + "Route18_EastEntrance_2F_Frlg" + ], + "gMapGroup_IndoorRoute22_Frlg": [ + "Route22_NorthEntrance_Frlg" + ], + "gMapGroup_IndoorRoute25_Frlg": [ + "Route25_SeaCottage_Frlg" + ], + "gMapGroup_IndoorSevenIsland_Frlg": [ + "SevenIsland_House_Room1_Frlg", + "SevenIsland_House_Room2_Frlg", + "SevenIsland_Mart_Frlg", + "SevenIsland_PokemonCenter_1F_Frlg", + "SevenIsland_PokemonCenter_2F_Frlg", + "SevenIsland_Harbor_Frlg" + ], + "gMapGroup_IndoorOneIsland_Frlg": [ + "OneIsland_PokemonCenter_1F_Frlg", + "OneIsland_PokemonCenter_2F_Frlg", + "OneIsland_House1_Frlg", + "OneIsland_House2_Frlg", + "OneIsland_Harbor_Frlg" + ], + "gMapGroup_IndoorTwoIsland_Frlg": [ + "TwoIsland_JoyfulGameCorner_Frlg", + "TwoIsland_House_Frlg", + "TwoIsland_PokemonCenter_1F_Frlg", + "TwoIsland_PokemonCenter_2F_Frlg", + "TwoIsland_Harbor_Frlg" + ], + "gMapGroup_IndoorThreeIsland_Frlg": [ + "ThreeIsland_House1_Frlg", + "ThreeIsland_PokemonCenter_1F_Frlg", + "ThreeIsland_PokemonCenter_2F_Frlg", + "ThreeIsland_Mart_Frlg", + "ThreeIsland_House2_Frlg", + "ThreeIsland_House3_Frlg", + "ThreeIsland_House4_Frlg", + "ThreeIsland_House5_Frlg" + ], + "gMapGroup_IndoorFourIsland_Frlg": [ + "FourIsland_PokemonDayCare_Frlg", + "FourIsland_PokemonCenter_1F_Frlg", + "FourIsland_PokemonCenter_2F_Frlg", + "FourIsland_House1_Frlg", + "FourIsland_LoreleisHouse_Frlg", + "FourIsland_Harbor_Frlg", + "FourIsland_House2_Frlg", + "FourIsland_Mart_Frlg" + ], + "gMapGroup_IndoorFiveIsland_Frlg": [ + "FiveIsland_PokemonCenter_1F_Frlg", + "FiveIsland_PokemonCenter_2F_Frlg", + "FiveIsland_Harbor_Frlg", + "FiveIsland_House1_Frlg", + "FiveIsland_House2_Frlg" + ], + "gMapGroup_IndoorSixIsland_Frlg": [ + "SixIsland_PokemonCenter_1F_Frlg", + "SixIsland_PokemonCenter_2F_Frlg", + "SixIsland_Harbor_Frlg", + "SixIsland_House_Frlg", + "SixIsland_Mart_Frlg" + ], + "gMapGroup_IndoorThreeIslandRoute_Frlg": [ + "ThreeIsland_Harbor_Frlg" + ], + "gMapGroup_IndoorFiveIslandRoute_Frlg": [ + "FiveIsland_ResortGorgeous_House_Frlg" + ], + "gMapGroup_IndoorTwoIslandRoute_Frlg": [ + "TwoIsland_CapeBrink_House_Frlg" + ], + "gMapGroup_IndoorSixIslandRoute_Frlg": [ + "SixIsland_WaterPath_House1_Frlg", + "SixIsland_WaterPath_House2_Frlg" + ], + "gMapGroup_IndoorSevenIslandRoute_Frlg": [ + "SevenIsland_SevaultCanyon_House_Frlg" ] } diff --git a/data/pinball/flipper_normal_angles.bin b/data/pinball/flipper_normal_angles.bin new file mode 100644 index 000000000000..273454d82fa3 Binary files /dev/null and b/data/pinball/flipper_normal_angles.bin differ diff --git a/data/pinball/flipper_radii.bin b/data/pinball/flipper_radii.bin new file mode 100644 index 000000000000..9b1322cf6e39 Binary files /dev/null and b/data/pinball/flipper_radii.bin differ diff --git a/data/pinball/gastly_normal_angles.bin b/data/pinball/gastly_normal_angles.bin new file mode 100644 index 000000000000..7783c2fe84bb --- /dev/null +++ b/data/pinball/gastly_normal_angles.bin @@ -0,0 +1,8 @@ +xz{|}~tvwxyz|}~ stuvwyz{}~ + qrsuvwxz{|~ pqrstuvxy{|~ + nopqrstvwyz|~ + mmnopqrsuvxz|} + llmnopqrtuwy{} + jkklmnopqstvx{} iijkllmopqsuwz} + ghhiijklmnprtvy| ffgghiijkmnprux| + eeeffghhiklnpsv{ cdddeeffghikmpty bbccccddeefhilpv aaaaaabbbbcdefip```_``````````_`1^^^^^^]]]]\[ZYVO?/(%$#""!!!!! ]]\\\\[[ZZYWVSOI?6/+(&%$$##"""""\[[[ZZYYXWVTROKF?93/,*('&%%$$###ZZZYYXWWVTSQOLID?:62/-+)('&&%%$$YYXXWVVTTRQOMJGC?;741/-+*)(''&&&WWVVUTSRQOMKIFC?<9631/-,+*)(''VVUTTSRPONLJHEB?<:7520/-,++))(TTSRQPONLKIGDB?=:86420/.-,+*SSRQPONMKJHFDB?=;975310/.-,+RQPONMLJIGECB?=;9764310/.-PONMLKJHFECA?><:8653210/NMLKJIGFDCA?><:9764321LLKIHGFDCA?><;986543KJIHFEDBA?><;:8764GFECBA?>=;:9 \ No newline at end of file diff --git a/data/pinball/gengar_normal_angles.bin b/data/pinball/gengar_normal_angles.bin new file mode 100644 index 000000000000..1e622b09d9fa --- /dev/null +++ b/data/pinball/gengar_normal_angles.bin @@ -0,0 +1,19 @@ +xyz{|}~vwxyz{|}~tuvwxyz{|}~ rrstuvwyz{|}~ + pqrstuvwxz{|}~ + nopqrtuvwxy{|}~ + mnopqrstuwxyz|}~ + klmnopqstuvxyz{}~ + jklmnopqrsuvwyz{}~ + jjklmnoprstvwxz{}~ + ijjkklmopqrtuvxy{|~ + jiijjklmnoqrsuvxy{|~ + hiiijjklmopqstvwyz|~ fhhiiijjkmnoqrtuwxz|~ + ghhhiiijklmnpqsuvxz|~ + gghhhiiijklnoqrtvxz|} gggghhhiiijkmnprsuwy{} + fgggghhhiijklmoqsuwy{} + fffggghhhiijklnprtvx{} fffffgggghhiijkmoqsuxz} + eeeffffggghhiijlnpruwz} + eeeeefffggghhiikloqtvy| dddeeeefffgghhijkmpsvy| cddddeeeefffgghhijlnqux| +cccdddddeeeffgghhijmpsw{ ccccccddddeeeffghhiknrv{ bbccccccddddeeffgghilpuz +bbbbbbcccccdddeeffghjmsy aabbbbbbbcccccddeefghjpwaaaaaaaabbbbbcccddefghlu +`aaaaaaaaaaaabbbbccdefhp`````````````aaaaaabbceh__```_```_`__``````__`__)______________^^^^^]]\ZW?($#"!!! _^^^^^^^^^^^^]]]]\\[ZYWO?.(&$##"""!!!!!!! ^^^^^^^^]]]]]\\\[[ZYXWSJ?3*(&%$$##""""!!!!!!!!!!^^]]]]]]]]\\\\[[ZZYXWUOH?6.)('&%$$###""""""!!!!!]]]]]]]\\\\[[[ZZYYXWURLF?81+)('&%%$$####"""""""!]]\\\\\\[[[[ZZYYXXWVSOJE?93.*)('&&%%$$$####"""""\\\\\[[[[[ZZZYYXWWVTQMID?:50,*)('&&%%%$$$######"\\\[[[[[ZZZYYXXWWVUROLHD?;62.+)((''&&%%$$$$$####[[[[[ZZZYYYXXWWVUSQNJGC?;730,*)((''&&%%%$$$$$#[[[ZZZZYYYXXWWVUTROLIFC?<851.+*)((''&&&%%%$$$$ZZZZZYYYXXXWWVVTSPNKIFC?<952/-+))((''&&&%%%%$$ZZZYYYYXXXWWVVUSQOMJHEB?<9631.,*))(('''&&&%%%%ZYYYXXXWWWVVUTRPNLJGEB?=:742/-+*))(('''&&&%%YYYXXXWWWVVUTSQOMKIGDB?=:8530.,+*))(('''&&&&YYXXXWWWVVUTSRPNLJHFDB?=:8631/-+*))((('''&&&XXXWWWVVVUTRQONLJHFDB?=;96420.,+*))(((''''XXWWWVVVUTSQPNMKIGEDB?=;97531/-,+*))((('''YWWWVVVUTSRQONLJIGECA?=;975320.,+**))((((&WWVVVUTTSQPOMKJHGECA?=<:86421/-,+*)))(((UVVVUUTSRQONLKIHFECA?><:865310.-++*)))(*VVVUTSRQPOMLJIGFDCA?><:875320/-,+**))(UUTTSRPONMKJIGFDCA?><:976421/.-,+*))UTTSRQPOMLKJHGEDBA?><;9764320/-,+**)TSRQPONMLJIHGEDBA?><;9865321/.-,+*SRQPONLKJIHFEDBA?>=;:8754310/.,+QPONMLKJIGFECBA?>=;:8764321/.-PONMLJIHGFECBA?>=;:97653210/NMLKJIHGFDCBA?>=;:98654310LKJIHFEDCBA?>=<:987543IHGFEDCBA?>=<;9876GFEDCBA?>=<;98 \ No newline at end of file diff --git a/data/pinball/haunter_normal_angles.bin b/data/pinball/haunter_normal_angles.bin new file mode 100644 index 000000000000..5f9835543f2e --- /dev/null +++ b/data/pinball/haunter_normal_angles.bin @@ -0,0 +1,7 @@ +qknsy~ k rksxyz|}~  +mruvwyz{}~ ?rstvwxz{|~ ?jqrstuvxy{|~ + kopqrstvwyz|~ lmnopqrsuvxz|~ + jlmnopqrtuwy{} + jkklmnopqstvx{} jjjkklmopqsuwz} + ghiijjklmnprtvy| ighhhijjkmnprux| + ?gggghhijklnpsv{ ?iffffggghijkmpty feeeeefffgghjlpv ddddddddeeeffgjpcccccccccccccccc(cbbbaaaaaa``_^\W?'# eaaa````__^]\ZWO?.'$"!! f``___^^]]\[YWSJ?3*'%$#"!! i__^^^]]\[ZYWUOH?6.)'%$##"!! @^^]]\\[[ZYWVRLF?81+)'&%$##"!!!?g]]\\[[ZYXWVSOJE?93.*('&%$$##""b\\[[ZZYXWVTQMID?:50,)('&%%$###^[[ZYYXWVUROLHD?;62.+)('&%%$$!fZZYYXWVUSQNJGC?;730,*)('&&%$jZYYXWVVTROLIFC?<851.+))('&&%_YXXWWVTSPNKIFC?<952/-+)(('&&!`XWWVUSQOMJHEB?<9631.,*)(('iWWVUTRPNLJGEB?=:742/-+*)((ZYVUTSQOMKIGDB?=:8530.,+))#&@VTSRPNLJHFDB?=:8631/-+*)PXTRQONLJHFDB?=;96420.,+'.ASQPNMKIGEDB?=;97531/-,>EQONLJIGECB?=;975320.:NJOMLJHGECA?=<:8642151LHLKIHFECA?><:865373MCJIGFDCA?><:875<2AFGFDCA?><:9:>D?BAA?>>?< \ No newline at end of file diff --git a/data/pinball/meowth_jewel_normal_angles.bin b/data/pinball/meowth_jewel_normal_angles.bin new file mode 100644 index 000000000000..fb8de1ed3db7 --- /dev/null +++ b/data/pinball/meowth_jewel_normal_angles.bin @@ -0,0 +1,5 @@ +{|~vwyz|~suvxz|} +qrtuwy{} + opqstvx{} lmopqsuwz} + jklmnprtvy| hijkmnprux| + ghhiklnpsv{ eeffghikmpty ccddeefhilpv aabbbccdefip``````_````_1^^]]]]\[ZYVO?/(%$#""!!!!\\[[ZZYWVSOI?6/+(&%$$##"ZYYXWVTROKF?93/,*('&%%XWWVTSQOLID?:62/-+)('&WVTTRQOMJGC?;741/-+*)(TSRQOMKIFC?<9631/-,+RQONLJHEB?<:7420/.ONLKIGDB?=:86420MKJHFDB?=;9753JIGECB?=;976ECA?>< \ No newline at end of file diff --git a/data/pinball/meowth_normal_angles.bin b/data/pinball/meowth_normal_angles.bin new file mode 100644 index 000000000000..5b9cd82a2a9f Binary files /dev/null and b/data/pinball/meowth_normal_angles.bin differ diff --git a/data/pinball/seel_normal_angles.bin b/data/pinball/seel_normal_angles.bin new file mode 100644 index 000000000000..7783c2fe84bb --- /dev/null +++ b/data/pinball/seel_normal_angles.bin @@ -0,0 +1,8 @@ +xz{|}~tvwxyz|}~ stuvwyz{}~ + qrsuvwxz{|~ pqrstuvxy{|~ + nopqrstvwyz|~ + mmnopqrsuvxz|} + llmnopqrtuwy{} + jkklmnopqstvx{} iijkllmopqsuwz} + ghhiijklmnprtvy| ffgghiijkmnprux| + eeeffghhiklnpsv{ cdddeeffghikmpty bbccccddeefhilpv aaaaaabbbbcdefip```_``````````_`1^^^^^^]]]]\[ZYVO?/(%$#""!!!!! ]]\\\\[[ZZYWVSOI?6/+(&%$$##"""""\[[[ZZYYXWVTROKF?93/,*('&%%$$###ZZZYYXWWVTSQOLID?:62/-+)('&&%%$$YYXXWVVTTRQOMJGC?;741/-+*)(''&&&WWVVUTSRQOMKIFC?<9631/-,+*)(''VVUTTSRPONLJHEB?<:7520/-,++))(TTSRQPONLKIGDB?=:86420/.-,+*SSRQPONMKJHFDB?=;975310/.-,+RQPONMLJIGECB?=;9764310/.-PONMLKJHFECA?><:8653210/NMLKJIGFDCA?><:9764321LLKIHGFDCA?><;986543KJIHFEDBA?><;:8764GFECBA?>=;:9 \ No newline at end of file diff --git a/data/pinball/tilt_down_deltas.bin b/data/pinball/tilt_down_deltas.bin new file mode 100644 index 000000000000..beb2d4eebf31 Binary files /dev/null and b/data/pinball/tilt_down_deltas.bin differ diff --git a/data/pinball/tilt_down_left_deltas.bin b/data/pinball/tilt_down_left_deltas.bin new file mode 100644 index 000000000000..70ebbcc6f7b2 Binary files /dev/null and b/data/pinball/tilt_down_left_deltas.bin differ diff --git a/data/pinball/tilt_down_right_deltas.bin b/data/pinball/tilt_down_right_deltas.bin new file mode 100644 index 000000000000..75987a55c135 Binary files /dev/null and b/data/pinball/tilt_down_right_deltas.bin differ diff --git a/data/pinball/tilt_left_deltas.bin b/data/pinball/tilt_left_deltas.bin new file mode 100644 index 000000000000..d68143e1bc73 Binary files /dev/null and b/data/pinball/tilt_left_deltas.bin differ diff --git a/data/pinball/tilt_right_deltas.bin b/data/pinball/tilt_right_deltas.bin new file mode 100644 index 000000000000..af9472d05b42 Binary files /dev/null and b/data/pinball/tilt_right_deltas.bin differ diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index a3defef83ef1..0fe74f83b030 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -221,7 +221,7 @@ gScriptCmdTable:: script_cmd_table_entry SCR_OP_SETESCAPEWARP ScrCmd_setescapewarp, requests_effects=1 @ 0xc4 script_cmd_table_entry SCR_OP_WAITMONCRY ScrCmd_waitmoncry, requests_effects=1 @ 0xc5 script_cmd_table_entry SCR_OP_BUFFERBOXNAME ScrCmd_bufferboxname, requests_effects=1 @ 0xc6 - script_cmd_table_entry SCR_OP_TEXTCOLOR ScrCmd_nop1, requests_effects=1 @ 0xc7 + script_cmd_table_entry SCR_OP_TEXTCOLOR ScrCmd_textcolor, requests_effects=1 @ 0xc7 script_cmd_table_entry SCR_OP_LOADHELP ScrCmd_nop1, requests_effects=1 @ 0xc8 script_cmd_table_entry SCR_OP_UNLOADHELP ScrCmd_nop1, requests_effects=1 @ 0xc9 script_cmd_table_entry SCR_OP_SIGNMSG ScrCmd_nop1, requests_effects=1 @ 0xca @@ -230,7 +230,7 @@ gScriptCmdTable:: script_cmd_table_entry SCR_OP_SETMODERNFATEFULENCOUNTER ScrCmd_setmodernfatefulencounter, requests_effects=1 @ 0xcd script_cmd_table_entry SCR_OP_CHECKMODERNFATEFULENCOUNTER ScrCmd_checkmodernfatefulencounter, requests_effects=1 @ 0xce script_cmd_table_entry SCR_OP_TRYWONDERCARDSCRIPT ScrCmd_trywondercardscript, requests_effects=1 @ 0xcf - script_cmd_table_entry SCR_OP_SETWORLDMAPFLAG ScrCmd_nop1, requests_effects=1 @ 0xd0 + script_cmd_table_entry SCR_OP_SETWORLDMAPFLAG ScrCmd_setworldmapflag, requests_effects=1 @ 0xd0 script_cmd_table_entry SCR_OP_WARPSPINENTER ScrCmd_warpspinenter, requests_effects=1 @ 0xd1 script_cmd_table_entry SCR_OP_SETMONMETLOCATION ScrCmd_setmonmetlocation, requests_effects=1 @ 0xd2 script_cmd_table_entry SCR_OP_MOVEROTATINGTILEOBJECTS ScrCmd_moverotatingtileobjects, requests_effects=1 @ 0xd3 @@ -252,6 +252,7 @@ gScriptCmdTable:: script_cmd_table_entry SCR_OP_DYNMULTICHOICE ScrCmd_dynmultichoice, requests_effects=1 @ 0xe3 script_cmd_table_entry SCR_OP_DYNMULTIPUSH ScrCmd_dynmultipush, requests_effects=1 @ 0xe4 script_cmd_table_entry SCR_OP_HIDEFOLLOWER ScrCmd_hidefollower, requests_effects=1 @ 0xe5 + script_cmd_table_entry SCR_OP_GETBRAILLESTRINGWIDTH ScrCmd_getbraillestringwidth, requests_effects=1 @ 0xe6 .if ALLOCATE_SCRIPT_CMD_TABLE gScriptCmdTableEnd:: diff --git a/data/scripts/aide.inc b/data/scripts/aide.inc new file mode 100644 index 000000000000..113a0a001a65 --- /dev/null +++ b/data/scripts/aide.inc @@ -0,0 +1,30 @@ +Aide_EventScript_HaventCaughtEnough:: + msgbox Aide_Text_HaventCaughtEnoughMonsForItem + release + end + +Aide_EventScript_NoRoomForItem:: + msgbox Aide_Text_DontHaveAnyRoomForItem + release + end + +Aide_EventScript_DeclineCheckMons:: + msgbox Aide_Text_GetEnoughMonsComeBackForItem + release + end + +Aide_Text_HaventCaughtEnoughMonsForItem:: + .string "Let's see…\n" + .string "Uh-oh! You have caught only\l" + .string "{STR_VAR_3} kinds of POKéMON!\p" + .string "You need {STR_VAR_1} kinds\n" + .string "if you want the {STR_VAR_2}.$" + +Aide_Text_GetEnoughMonsComeBackForItem:: + .string "…Oh. I see.\p" + .string "When you get {STR_VAR_1} kinds of POKéMON,\n" + .string "come back for the {STR_VAR_2}.$" + +Aide_Text_DontHaveAnyRoomForItem:: + .string "Oh! I see you don't have any\n" + .string "room for the {STR_VAR_2}.$" diff --git a/data/scripts/cable_club_frlg.inc b/data/scripts/cable_club_frlg.inc new file mode 100644 index 000000000000..90b97a6ab2fa --- /dev/null +++ b/data/scripts/cable_club_frlg.inc @@ -0,0 +1,1719 @@ +CableClub_OnTransition_Frlg:: + call CableClub_EventScript_HideOrShowMysteryGiftMan_Frlg + end + +CableClub_EventScript_HideOrShowMysteryGiftMan_Frlg:: + specialvar VAR_RESULT, ValidateSavedWonderCard + goto_if_eq VAR_RESULT, FALSE, EventScript_HideMysteryGiftMan_Frlg + clearflag FLAG_HIDE_MG_DELIVERYMEN + return + +EventScript_HideMysteryGiftMan_Frlg:: + setflag FLAG_HIDE_MG_DELIVERYMEN + return + +CableClub_EventScript_MysteryGiftMan_Frlg:: + trywondercardscript + +@ Unused +EventScript_MysteryGiftThankYou_Frlg:: + msgbox gText_ThankYouForAccessingMysteryGift, MSGBOX_NPC + end + +CableClub_OnWarp_Frlg:: + map_script_2 VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE, EventScript_CheckTurnAttendant_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE, EventScript_CheckTurnAttendant_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_MULTI_BATTLE, EventScript_CheckTurnAttendant_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_TRADE_CENTER, EventScript_CheckTurnAttendant_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_UNION_ROOM, EventScript_CheckTurnAttendant_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_BERRY_CRUSH, EventScript_CheckTurnAttendant_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, EventScript_CheckTurnAttendant_Frlg + .2byte 0 + +EventScript_CheckTurnAttendant_Frlg:: + goto_if_eq VAR_0x8007, 0, EventScript_CheckTurnAttendantEnd + turnobject VAR_0x8007, DIR_WEST +EventScript_CheckTurnAttendantEnd: + end + +CableClub_OnLoad_Frlg:: + goto_if_eq VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE, EventScript_OnLoadFromColosseum_Frlg + goto_if_eq VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE, EventScript_OnLoadFromColosseum_Frlg + goto_if_eq VAR_CABLE_CLUB_STATE, USING_MULTI_BATTLE, EventScript_OnLoadFromColosseum_Frlg + goto_if_eq VAR_CABLE_CLUB_STATE, USING_TRADE_CENTER, EventScript_OnLoadFromTradeCenter_Frlg + goto_if_eq VAR_CABLE_CLUB_STATE, USING_UNION_ROOM, EventScript_OnLoadFromUnionRoom_Frlg + goto_if_eq VAR_CABLE_CLUB_STATE, USING_BERRY_CRUSH, EventScript_OnLoadFromBerryCrush_Frlg + goto_if_eq VAR_CABLE_CLUB_STATE, USING_MINIGAME, EventScript_OnLoadFromGameCorner_Frlg + end + +EventScript_OnLoadFromColosseum_Frlg:: + call CableClub_EventScript_OpenDirectCornerBarrier_Frlg + end + +EventScript_OnLoadFromTradeCenter_Frlg:: + call CableClub_EventScript_OpenDirectCornerBarrier_Frlg + end + +EventScript_OnLoadFromUnionRoom_Frlg:: + call CableClub_EventScript_OpenUnionRoomBarrier_Frlg + end + +EventScript_OnLoadFromBerryCrush_Frlg:: + call CableClub_EventScript_OpenDirectCornerBarrier_Frlg + end + +EventScript_OnLoadFromGameCorner_Frlg:: + call CableClub_EventScript_OpenGameCornerBarrier_Frlg + end + +CableClub_OnFrame_Frlg:: + map_script_2 VAR_MAP_SCENE_POKEMON_CENTER_TEALA, 1, CableClub_EventScript_Tutorial_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_SINGLE_BATTLE, CableClub_EventScript_ExitLinkRoom_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_DOUBLE_BATTLE, CableClub_EventScript_ExitLinkRoom_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_MULTI_BATTLE, CableClub_EventScript_ExitLinkRoom_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_TRADE_CENTER, CableClub_EventScript_ExitTradeCenter_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_UNION_ROOM, CableClub_EventScript_ExitUnionRoom_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_BERRY_CRUSH, CableClub_EventScript_ExitLinkRoom_Frlg + map_script_2 VAR_CABLE_CLUB_STATE, USING_MINIGAME, CableClub_EventScript_ExitMinigameRoom_Frlg + .2byte 0 + +CableClub_EventScript_ExitLinkRoom_Frlg:: + lockall + call CableClub_EventScript_CloseLinkAndExitLinkRoom_Frlg + call CableClub_EventScript_CloseDirectCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + erasebox 0, 0, 29, 19 + releaseall + end + +CableClub_EventScript_ExitMinigameRoom_Frlg:: + lockall + call CableClub_EventScript_CloseLinkAndExitLinkRoom_Frlg + call CableClub_EventScript_CloseGameCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + erasebox 0, 0, 29, 19 + releaseall + end + +CableClub_EventScript_CloseLinkAndExitLinkRoom_Frlg:: + setvar VAR_CABLE_CLUB_STATE, 0 + textcolor NPC_TEXT_COLOR_FEMALE + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_PlayerExitLinkRoom_Frlg + applymovement VAR_0x8007, Movement_AttendantFaceLeft + waitmovement 0 + applymovement LOCALID_PLAYER, Movement_PlayerExitLinkRoom + waitmovement 0 + applymovement VAR_0x8007, Movement_AttendantFaceDown + waitmovement 0 + return + +CableClub_EventScript_ExitTradeCenter_Frlg:: + lockall + call CableClub_EventScript_PlayerExitTradeCenter_Frlg + call CableClub_EventScript_CloseDirectCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + erasebox 0, 0, 29, 19 + releaseall + end + +CableClub_EventScript_PlayerExitTradeCenter_Frlg:: + special CloseLink + setvar VAR_CABLE_CLUB_STATE, 0 + textcolor NPC_TEXT_COLOR_FEMALE + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_PlayerExitLinkRoom_Frlg + applymovement LOCALID_PLAYER, Movement_PlayerFaceAttendantRight + waitmovement 0 + applymovement VAR_0x8007, Movement_AttendantFaceLeft + waitmovement 0 + call CableClub_EventScript_TrainerCardDataOverwritten_Frlg + return + +CableClub_EventScript_ExitUnionRoom_Frlg:: + lockall + call CableClub_EventScript_PlayerExitUnionRoom_Frlg + call CableClub_EventScript_CloseUnionRoomBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + erasebox 0, 0, 29, 19 + releaseall + end + +CableClub_EventScript_PlayerExitUnionRoom_Frlg:: + setvar VAR_CABLE_CLUB_STATE, 0 + textcolor NPC_TEXT_COLOR_FEMALE + goto_if_eq VAR_0x8007, 0, CableClub_EventScript_PlayerExitLinkRoom_Frlg + applymovement LOCALID_PLAYER, Movement_PlayerFaceAttendantRight + waitmovement 0 + applymovement VAR_0x8007, Movement_AttendantFaceLeft + waitmovement 0 + call CableClub_EventScript_TrainerCardDataOverwritten_Frlg + return + +CableClub_EventScript_TrainerCardDataOverwritten_Frlg:: + message CableClub_Text_TrainerCardDataOverwritten_Frlg + waitmessage + playse SE_PIN + message CableClub_Text_HopeToSeeYouAgain_Frlg + waitmessage + applymovement LOCALID_PLAYER, Movement_PlayerExitLinkRoom + waitmovement 0 + applymovement VAR_0x8007, Movement_AttendantFaceDown + waitmovement 0 + return + +CableClub_EventScript_PlayerExitLinkRoom_Frlg:: + applymovement LOCALID_PLAYER, Movement_PlayerExitLinkRoom + waitmovement 0 + return + +CableClub_EventScript_Tutorial_Frlg:: + lockall + textcolor NPC_TEXT_COLOR_FEMALE + applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFasterUp + waitmovement 0 + msgbox CableClub_Text_FirstTimeRightThisWay_Frlg + closemessage + applymovement LOCALID_PLAYER, Movement_PlayerApproachCounter + waitmovement 0 + delay 30 + msgbox CableClub_Text_ExplainWirelessClubFirstTime_Frlg + setvar VAR_MAP_SCENE_POKEMON_CENTER_TEALA, 2 + releaseall + end + +Movement_PlayerApproachCounter: + walk_up + walk_up + step_end + +CableClub_EventScript_WelcomeToCableClub_Frlg:: + message CableClub_Text_WelcomeWhichCableClubService_Frlg + waitmessage + delay 15 + goto CableClub_EventScript_SelectCableClubRoom_Frlg + end + +CableClub_EventScript_UnusedWelcomeToCableClub_Frlg:: + msgbox CableClub_Text_WhichService_Frlg + goto CableClub_EventScript_SelectCableClubRoom_Frlg + end + +CableClub_EventScript_SelectCableClubRoom_Frlg:: + setvar VAR_0x8004, 0 + multichoice 0, 0, MULTI_CABLE_CLUB_NO_RECORD_MIX, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_TradeCenter_Frlg + case 1, CableClub_EventScript_Colosseum_Frlg + case 2, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_Colosseum_Frlg:: + copyvar VAR_0x8007, VAR_LAST_TALKED + goto CableClub_EventScript_SelectBattleMode_Frlg + end + +CableClub_EventScript_SelectBattleMode_Frlg:: + message CableClub_Text_PlayWhichBattleMode_Frlg + waitmessage + multichoice 0, 0, MULTI_BATTLE_MODE, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_SingleBattleMode_Frlg + case 1, CableClub_EventScript_DoubleBattleMode_Frlg + case 2, CableClub_EventScript_MultiBattleMode_Frlg + case 3, CableClub_EventScript_BattleModeInfo_Frlg + case 4, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_BattleModeInfo_Frlg:: + msgbox CableClub_Text_ExplainBattleModes_Frlg + goto CableClub_EventScript_SelectBattleMode_Frlg + end + +CableClub_EventScript_SingleBattleMode_Frlg:: + setvar VAR_0x8004, USING_SINGLE_BATTLE + goto CableClub_EventScript_TryEnterColosseum_Frlg + end + +CableClub_EventScript_DoubleBattleMode_Frlg:: + special HasEnoughMonsForDoubleBattle + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, CableClub_EventScript_NeedTwoMonsForDoubleBattle_Frlg + setvar VAR_0x8004, USING_DOUBLE_BATTLE + goto CableClub_EventScript_TryEnterColosseum_Frlg + end + +CableClub_EventScript_NeedTwoMonsForDoubleBattle_Frlg:: + msgbox CableClub_Text_NeedTwoMonsForDoubleBattle_Frlg + goto CableClub_EventScript_SelectBattleMode_Frlg + end + +CableClub_EventScript_MultiBattleMode_Frlg:: + setvar VAR_0x8004, USING_MULTI_BATTLE + goto CableClub_EventScript_TryEnterColosseum_Frlg + end + +CableClub_EventScript_TryEnterColosseum_Frlg:: + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink_Frlg + message CableClub_Text_PleaseWaitBCancel_Frlg + waitmessage + textcolor NPC_TEXT_COLOR_NEUTRAL + special TryBattleLinkup + waitstate + call EventScript_RestorePrevTextColor + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterColosseum_Frlg + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady_Frlg + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections_Frlg + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink_Frlg + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError_Frlg + end + +CableClub_EventScript_EnterColosseum_Frlg:: + special HealPlayerParty + special SavePlayerParty + special LoadPlayerBag + copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 + messageautoscroll CableClub_Text_PleaseEnter_Frlg + waitmessage + call CableClub_EventScript_OpenDirectCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + delay 60 + applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft + waitmovement 0 + closemessage + applymovement LOCALID_PLAYER, Movement_PlayerApproachLinkRoomLeft + waitmovement 0 + opendoor 9, 1 + waitdooranim + applymovement LOCALID_PLAYER, Movement_PlayerEnterLinkRoom + waitmovement 0 + hideplayer + closedoor 9, 1 + waitdooranim + release + goto_if_eq VAR_0x8004, USING_MULTI_BATTLE, CableClub_EventScript_WarpTo4PColosseum_Frlg + special SetCableClubWarp + warp MAP_BATTLE_COLOSSEUM_2P, 6, 8 + special DoCableClubWarp + waitstate + end + +@ Unused +CableClub_EventScript_PlayerApproachLinkRoomRight_Frlg:: + applymovement LOCALID_PLAYER, Movement_PlayerApproachLinkRoomRight + waitmovement 0 + return + +CableClub_EventScript_WarpTo4PColosseum_Frlg:: + special SetCableClubWarp + warp MAP_BATTLE_COLOSSEUM_4P, 5, 8 + special DoCableClubWarp + waitstate + end + +CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers_Frlg:: + switch VAR_0x8004 + case USING_SINGLE_BATTLE, CableClub_EventScript_AbortLinkWrongNumberForSingleBattle_Frlg + case USING_DOUBLE_BATTLE, CableClub_EventScript_AbortLinkWrongNumberForDoubleBattle_Frlg + case USING_MULTI_BATTLE, CableClub_EventScript_AbortLinkNeedFourPlayers_Frlg + goto CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants_Frlg + end + +CableClub_EventScript_AbortLinkNeedFourPlayers_Frlg:: + special CloseLink + msgbox CableClub_Text_NeedFourPlayers_Frlg + goto CableClub_EventScript_ConfirmNumberAndRestart_Frlg + end + +CableClub_EventScript_AbortLinkWrongNumberForDoubleBattle_Frlg:: + special CloseLink + msgbox CableClub_Text_CantDoubleBattleWithXPlayers_Frlg + goto CableClub_EventScript_ConfirmNumberAndRestart_Frlg + end + +CableClub_EventScript_AbortLinkWrongNumberForSingleBattle_Frlg:: + special CloseLink + msgbox CableClub_Text_CantSingleBattleWithXPlayers_Frlg + goto CableClub_EventScript_ConfirmNumberAndRestart_Frlg + end + +CableClub_EventScript_ConfirmNumberAndRestart_Frlg:: + special CloseLink @ Redundant + msgbox CableClub_Text_PleaseConfirmNumberAndRestart_Frlg + release + end + +CableClub_EventScript_TradeCenter_Frlg:: + copyvar VAR_0x8007, VAR_LAST_TALKED + call CableClub_EventScript_CheckPartyTradeRequirements_Frlg + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink_Frlg + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink_Frlg + message CableClub_Text_PleaseWaitBCancel_Frlg + waitmessage + textcolor NPC_TEXT_COLOR_NEUTRAL + special TryTradeLinkup + waitstate + call EventScript_RestorePrevTextColor + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterTradeCenter_Frlg + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady_Frlg + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections_Frlg + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink_Frlg + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError_Frlg + goto_if_eq VAR_RESULT, LINKUP_PLAYER_NOT_READY, CableClub_EventScript_AbortLinkPlayerNotReady_Frlg + goto_if_eq VAR_RESULT, LINKUP_PARTNER_NOT_READY, CableClub_EventScript_AbortLinkOtherTrainerNotReady_Frlg + end + +CableClub_EventScript_EnterTradeCenter_Frlg:: + setvar VAR_0x8004, USING_TRADE_CENTER + copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 + messageautoscroll CableClub_Text_PleaseEnter_Frlg + waitmessage + call CableClub_EventScript_OpenDirectCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + delay 60 + applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft + waitmovement 0 + closemessage + applymovement LOCALID_PLAYER, Movement_PlayerApproachLinkRoomLeft + waitmovement 0 + opendoor 9, 1 + waitdooranim + applymovement LOCALID_PLAYER, Movement_PlayerEnterLinkRoom + waitmovement 0 + hideplayer + closedoor 9, 1 + waitdooranim + release + special SetCableClubWarp + setwarp MAP_TRADE_CENTER_FRLG, 5, 8 + special DoCableClubWarp + waitstate + end + +CableClub_EventScript_CheckPartyTradeRequirements_Frlg:: + specialvar VAR_RESULT, CalculatePlayerPartyCount + goto_if_lt VAR_RESULT, 2, CableClub_EventScript_NeedTwoMonsToTrade_Frlg + specialvar VAR_RESULT, DoesPartyHaveEnigmaBerry + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_CantTradeEnigmaBerry_Frlg + setvar VAR_RESULT, TRUE + return + +CableClub_EventScript_NeedTwoMonsToTrade_Frlg:: + msgbox CableClub_Text_NeedTwoMonsToTrade_Frlg + setvar VAR_RESULT, FALSE + return + +CableClub_EventScript_CantTradeEnigmaBerry_Frlg:: + msgbox CableClub_Text_CantTradeEnigmaBerry_Frlg + setvar VAR_RESULT, FALSE + return + +@ Record Corner is nopped in FRLG +CableClub_EventScript_RecordCorner_Frlg:: + end + +CableClub_EventScript_AbortLinkPlayerNotReady_Frlg:: + special CloseLink + msgbox CableClub_Text_NotSetUpForFarAwayRegion_Frlg + release + end + +CableClub_EventScript_AbortLinkOtherTrainerNotReady_Frlg:: + special CloseLink + msgbox CableClub_Text_OtherTrainerNotReady_Frlg + release + end + +CableClub_EventScript_AbortLinkConnectionError_Frlg:: + special CloseLink + msgbox CableClub_Text_LinkErrorPleaseReset_Frlg + release + end + +CableClub_EventScript_AbortLinkSomeoneNotReady_Frlg:: + special CloseLink + msgbox CableClub_Text_SomeoneIsNotReadyToLink_Frlg + release + end + +CableClub_EventScript_AbortLinkDifferentSelections_Frlg:: + special CloseLink + msgbox CableClub_Text_PlayersMadeDifferentSelections_Frlg + release + end + +CableClub_EventScript_AbortLink_Frlg:: + special CloseLink + msgbox CableClub_Text_PleaseVisitAgain_Frlg + release + end + +CableClub_EventScript_AbortMinigame_Frlg:: + special CloseLink + msgbox CableClub_Text_ComeAgain_Frlg + release + end + +@ Unused +CableClub_EventScript_CableClubWarp_Frlg:: + special SetCableClubWarp + special DoCableClubWarp + waitstate + end + +CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants_Frlg:: + special CloseLink + msgbox CableClub_Text_IncorrectNumberOfParticipants_Frlg + release + end + +CableClub_EventScript_AbortLinkPlayerHasBadEgg_Frlg:: + special CloseLink + msgbox CableClub_Text_YouHaveAMonThatCantBeTaken_Frlg + release + end + +CableClub_EventScript_WirelessClubAdjustements_Frlg:: + msgbox Text_WirelessClubUndergoingAdjustments + release + end + +CableClub_EventScript_NotReadyYet_Frlg:: + msgbox Text_AppearsToBeUndergoingAdjustments + releaseall + end + +Movement_AttendantFaceDown_Frlg:: + face_down + step_end + +@ Unused +Movement_AttendantFaceRight_Frlg:: + face_right + step_end + +Movement_AttendantFaceLeft_Frlg:: + face_left + step_end + +Movement_PlayerExitLinkRoom_Frlg:: + walk_down + walk_down + step_end + +Movement_PlayerApproachLinkRoomRight_Frlg:: + walk_right + walk_up + walk_up + step_end + +Movement_PlayerApproachLinkRoomLeft_Frlg:: + walk_left + walk_up + walk_up + step_end + +Movement_PlayerEnterLinkRoom_Frlg:: + walk_up + step_end + +@ Unused +Movement_PlayerFaceAttendantLeft_Frlg:: + face_left + step_end + +Movement_PlayerFaceAttendantRight_Frlg:: + face_right + step_end + +Movement_PlayerEnterMinigameRoom_Frlg:: + walk_left + walk_up + walk_up + walk_up + step_end + +CableClub_EventScript_ShowBattleRecords_Frlg:: + lockall + fadescreen FADE_TO_BLACK + setvar VAR_0x8004, 0 + special ShowTrainerHillRecords + waitstate + releaseall + end + +BattleColosseum_2P_EventScript_PlayerSpot0:: + setvar VAR_0x8005, 0 + textcolor NPC_TEXT_COLOR_NEUTRAL + special ColosseumPlayerSpotTriggered + waitstate + end + +BattleColosseum_2P_EventScript_PlayerSpot1:: + setvar VAR_0x8005, 1 + textcolor NPC_TEXT_COLOR_NEUTRAL + special ColosseumPlayerSpotTriggered + waitstate + end + +BattleColosseum_4P_EventScript_PlayerSpot0:: + fadescreen FADE_TO_BLACK + special ChooseHalfPartyForBattle + waitstate + goto_if_eq VAR_RESULT, 0, BattleColosseum_4P_EventScript_CancelSpotTrigger_Frlg + setvar VAR_0x8005, 0 + textcolor NPC_TEXT_COLOR_NEUTRAL + special ColosseumPlayerSpotTriggered + waitstate + end + +BattleColosseum_4P_EventScript_PlayerSpot1:: + fadescreen FADE_TO_BLACK + special ChooseHalfPartyForBattle + waitstate + goto_if_eq VAR_RESULT, 0, BattleColosseum_4P_EventScript_CancelSpotTrigger_Frlg + setvar VAR_0x8005, 1 + textcolor NPC_TEXT_COLOR_NEUTRAL + special ColosseumPlayerSpotTriggered + waitstate + end + +BattleColosseum_4P_EventScript_PlayerSpot2:: + fadescreen FADE_TO_BLACK + special ChooseHalfPartyForBattle + waitstate + goto_if_eq VAR_RESULT, 0, BattleColosseum_4P_EventScript_CancelSpotTrigger_Frlg + setvar VAR_0x8005, 2 + textcolor NPC_TEXT_COLOR_NEUTRAL + special ColosseumPlayerSpotTriggered + waitstate + end + +BattleColosseum_4P_EventScript_PlayerSpot3:: + fadescreen FADE_TO_BLACK + special ChooseHalfPartyForBattle + waitstate + goto_if_eq VAR_RESULT, 0, BattleColosseum_4P_EventScript_CancelSpotTrigger_Frlg + setvar VAR_0x8005, 3 + textcolor NPC_TEXT_COLOR_NEUTRAL + special ColosseumPlayerSpotTriggered + waitstate + end + +BattleColosseum_4P_EventScript_CancelSpotTrigger_Frlg:: + end + +TradeCenter_EventScript_Chair0:: + setvar VAR_0x8005, 0 + textcolor NPC_TEXT_COLOR_NEUTRAL + special PlayerEnteredTradeSeat + waitstate + end + +TradeCenter_EventScript_Chair1:: + setvar VAR_0x8005, 1 + textcolor NPC_TEXT_COLOR_NEUTRAL + special PlayerEnteredTradeSeat + waitstate + end + +@ Unused +TradeCenter_EventScript_Chair2_Frlg:: + setvar VAR_0x8005, 2 + textcolor NPC_TEXT_COLOR_NEUTRAL + special PlayerEnteredTradeSeat + waitstate + end + +@ Unused +TradeCenter_EventScript_Chair3_Frlg:: + setvar VAR_0x8005, 3 + textcolor NPC_TEXT_COLOR_NEUTRAL + special PlayerEnteredTradeSeat + waitstate + end + +@ Nop in FRLG +@ Separate labels to match GetDirectionForEventScript +RecordCorner_EventScript_Spot0:: +RecordCorner_EventScript_Spot1:: +RecordCorner_EventScript_Spot2:: +RecordCorner_EventScript_Spot3:: + end + +CableClub_EventScript_ReadTrainerCard_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox Text_LookedAtPlayersTrainerCard_Frlg + fadescreen FADE_TO_BLACK + special Script_ShowLinkTrainerCard + waitstate + end + +CableClub_EventScript_ReadTrainerCardColored_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox Text_LookedAtPlayersTrainerCardColored_Frlg + fadescreen FADE_TO_BLACK + special Script_ShowLinkTrainerCard + waitstate + end + +CableClub_EventScript_TooBusyToNotice_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox Text_TrainerTooBusyToNotice_Frlg + closemessage + end + +BattleColosseum_2P_EventScript_Attendant_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + special Script_FacePlayer + msgbox Text_TakeSeatStartBattle_Frlg + special Script_ClearHeldMovement + closemessage + end + +TradeCenter_EventScript_Attendant_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + special Script_FacePlayer + msgbox Text_TakeSeatStartTrade_Frlg + special Script_ClearHeldMovement + closemessage + end + +@ Nop in FRLG +RecordCorner_EventScript_Attendant_Frlg:: + end + +TradeCenter_ConfirmLeaveRoom_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox Text_TerminateLinkIfYouLeaveRoom_Frlg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, TradeCenter_TerminateLink_Frlg + erasebox 0, 0, 29, 19 + releaseall + end + +TradeCenter_TerminateLink_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + messageautoscroll Text_TerminateLinkConfirmation + waitmessage + special ExitLinkRoom + end + +CableClub_EventScript_DoLinkRoomExit_Frlg:: + special CleanupLinkRoomState + special ReturnFromLinkRoom + waitstate + end + +CableClub_EventScript_UnionRoomAttendant_Frlg:: + lock + faceplayer + goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements_Frlg + specialvar VAR_RESULT, IsBadEggInParty + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_AbortLinkPlayerHasBadEgg_Frlg + copyvar VAR_0x8007, VAR_LAST_TALKED + specialvar VAR_RESULT, IsWirelessAdapterConnected + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_UnionRoomAdapterNotConnected_Frlg + message CableClub_Text_WelcomeUnionRoomEnter_Frlg + waitmessage + goto CableClub_EventScript_AskEnterUnionRoom_Frlg + end + +CableClub_EventScript_AskEnterUnionRoom_Frlg:: + multichoice 18, 6, MULTI_YESNOINFO, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_EnterUnionRoom_Frlg + case 1, CableClub_EventScript_AbortLink_Frlg + case 2, CableClub_EventScript_UnionRoomInfo_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_UnionRoomInfo_Frlg:: + message CableClub_Text_UnionRoomInfo_Frlg + waitmessage + goto CableClub_EventScript_AskEnterUnionRoom_Frlg + end + +CableClub_EventScript_EnterUnionRoom_Frlg:: + call CableClub_EventScript_CheckPartyUnionRoomRequirements_Frlg + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_AbortLink_Frlg + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink_Frlg + msgbox CableClub_Text_EnjoyUnionRoom_Frlg + closemessage + special HealPlayerParty + setvar VAR_0x8004, USING_UNION_ROOM + copyvar VAR_CABLE_CLUB_STATE, VAR_0x8004 + call CableClub_EventScript_OpenUnionRoomBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + delay 60 + applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft + waitmovement 0 + applymovement LOCALID_PLAYER, Movement_PlayerApproachLinkRoomLeft + waitmovement 0 + opendoor 5, 1 + waitdooranim + applymovement LOCALID_PLAYER, Movement_PlayerEnterLinkRoom + waitmovement 0 + hideplayer + closedoor 5, 1 + waitdooranim + special Script_ResetUnionRoomTrade + special SetCableClubWarp + warpspinenter MAP_UNION_ROOM_FRLG, 7, 11 + waitstate + special RunUnionRoom + waitstate + end + +CableClub_EventScript_CheckPartyUnionRoomRequirements_Frlg:: + specialvar VAR_RESULT, CountPartyNonEggMons + goto_if_lt VAR_RESULT, 2, CableClub_EventScript_NeedTwoMonsForUnionRoom_Frlg + specialvar VAR_RESULT, DoesPartyHaveEnigmaBerry + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_NoEnigmaBerryInUnionRoom_Frlg + setvar VAR_RESULT, TRUE + return + +CableClub_EventScript_NeedTwoMonsForUnionRoom_Frlg:: + msgbox CableClub_Text_NeedTwoMonsForUnionRoom_Frlg + goto EventScript_SetResultFalse + end + +CableClub_EventScript_NoEnigmaBerryInUnionRoom_Frlg:: + msgbox CableClub_Text_NoEnigmaBerryInUnionRoom_Frlg + goto EventScript_SetResultFalse + end + +CableClub_EventScript_UnionRoomAdapterNotConnected_Frlg:: + msgbox CableClub_Text_UnionRoomAdapterNotConnected_Frlg + release + return + +CableClub_EventScript_WirelessClubAttendant_Frlg:: + lock + faceplayer + goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements_Frlg + msgbox CableClub_Text_AskAboutLinking_Frlg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_DontAskAboutLinking_Frlg + msgbox CableClub_Text_ExplainWirelessClub_Frlg + release + return + +CableClub_EventScript_DontAskAboutLinking_Frlg:: + msgbox CableClub_Text_HopeYouEnjoyWirelessSystem_Frlg + release + return + +CableClub_EventScript_DirectCornerAttendant_Frlg:: + lock + faceplayer + goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements_Frlg + specialvar VAR_RESULT, IsBadEggInParty + goto_if_eq VAR_RESULT, TRUE, CableClub_EventScript_AbortLinkPlayerHasBadEgg_Frlg + specialvar VAR_RESULT, IsWirelessAdapterConnected + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_WelcomeToCableClub_Frlg + message CableClub_Text_WelcomeWhichDirectCornerRoom_Frlg + waitmessage + delay 15 + goto CableClub_EventScript_DirectCornerSelectService_Frlg + end + +CableClub_EventScript_DirectCornerSelectService_Frlg:: + goto_if_unset FLAG_GOT_POWDER_JAR, CableClub_EventScript_DirectCornerNoBerry_Frlg + multichoice 0, 0, MULTI_WIRELESS_NO_RECORD, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_WirelessTrade_Frlg + case 1, CableClub_EventScript_WirelessBattleSelect_Frlg + case 2, CableClub_EventScript_WirelessBerryCrush_Frlg + case 3, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_DirectCornerNoBerry_Frlg:: + multichoice 0, 0, MULTI_WIRELESS_NO_RECORD_BERRY, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_WirelessTrade_Frlg + case 1, CableClub_EventScript_WirelessBattleSelect_Frlg + case 2, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_WirelessTrade_Frlg:: + msgbox CableClub_Text_TradePokemon_Frlg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_AbortLink_Frlg + call CableClub_EventScript_CheckPartyTradeRequirements_Frlg + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_AbortLink_Frlg + setvar VAR_0x8004, LINK_GROUP_TRADE + goto CableClub_EventScript_SaveAndChooseLinkLeader_Frlg + end + +CableClub_EventScript_WirelessBattleSelect_Frlg:: + message CableClub_Text_PlayWhichBattleMode_Frlg + waitmessage + multichoice 0, 0, MULTI_BATTLE_MODE, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_WirelessSingleBattle_Frlg + case 1, CableClub_EventScript_WirelessDoubleBattle_Frlg + case 2, CableClub_EventScript_WirelessMultiBattle_Frlg + case 3, CableClub_EventScript_WirelessBattleInfo_Frlg + case 4, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_WirelessSingleBattle_Frlg:: + setvar VAR_0x8004, LINK_GROUP_SINGLE_BATTLE + goto CableClub_EventScript_SaveAndChooseLinkLeader_Frlg + end + +CableClub_EventScript_WirelessDoubleBattle_Frlg:: + special HasEnoughMonsForDoubleBattle + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle_Frlg + setvar VAR_0x8004, LINK_GROUP_DOUBLE_BATTLE + goto CableClub_EventScript_SaveAndChooseLinkLeader_Frlg + end + +CableClub_EventScript_TwoMonsNeededForWirelessDoubleBattle_Frlg:: + msgbox CableClub_Text_NeedTwoMonsForDoubleBattle_Frlg + goto CableClub_EventScript_WirelessBattleSelect_Frlg + end + +CableClub_EventScript_WirelessMultiBattle_Frlg:: + setvar VAR_0x8004, LINK_GROUP_MULTI_BATTLE + goto CableClub_EventScript_SaveAndChooseLinkLeader_Frlg + end + +CableClub_EventScript_WirelessBattleInfo_Frlg:: + msgbox CableClub_Text_ExplainBattleModes_Frlg + goto CableClub_EventScript_WirelessBattleSelect_Frlg + end + +CableClub_EventScript_WirelessBerryCrush_Frlg:: + msgbox CableClub_Text_UseBerryCrush_Frlg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_AbortLink_Frlg + special HasAtLeastOneBerry + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_NeedBerryForBerryCrush_Frlg + setvar VAR_0x8004, LINK_GROUP_BERRY_CRUSH + goto CableClub_EventScript_SaveAndChooseLinkLeader_Frlg + end + +CableClub_EventScript_NeedBerryForBerryCrush_Frlg:: + msgbox CableClub_Text_NeedBerryForBerryCrush_Frlg + goto CableClub_EventScript_DirectCornerSelectService_Frlg + end + +CableClub_EventScript_SaveAndChooseLinkLeader_Frlg:: + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortLink_Frlg + switch VAR_0x8004 + case LINK_GROUP_TRADE, CableClub_EventScript_ChooseLinkLeaderFrom2_Frlg + case LINK_GROUP_SINGLE_BATTLE, CableClub_EventScript_ChooseLinkLeaderFrom2_Frlg + case LINK_GROUP_DOUBLE_BATTLE, CableClub_EventScript_ChooseLinkLeaderFrom2_Frlg + case LINK_GROUP_MULTI_BATTLE, CableClub_EventScript_ChooseLinkLeaderFrom4_Frlg + case LINK_GROUP_BERRY_CRUSH, CableClub_EventScript_ChooseLinkLeader_Frlg + end + +CableClub_EventScript_ChooseLinkLeaderFrom2_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + message CableClub_Text_ChooseGroupLeaderOfTwo_Frlg + waitmessage + call EventScript_RestorePrevTextColor + multichoice 13, 6, MULTI_LINK_LEADER, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_TryJoinGroup2Players_Frlg + case 1, CableClub_EventScript_TryLeadGroup2Players_Frlg + case 2, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_TryLeadGroup2Players_Frlg:: + call CableClub_EventScript_TryBecomeLinkLeader_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup2Players_Frlg + release + return + +CableClub_EventScript_TryJoinGroup2Players_Frlg:: + call CableClub_EventScript_TryJoinLinkGroup_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup2Players_Frlg + release + return + +CableClub_EventScript_ChooseLinkLeaderFrom4_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + message CableClub_Text_ChooseGroupLeaderOfFour_Frlg + waitmessage + call EventScript_RestorePrevTextColor + multichoice 13, 6, MULTI_LINK_LEADER, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_TryJoinGroup4Players_Frlg + case 1, CableClub_EventScript_TryLeadGroup4Players_Frlg + case 2, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_TryLeadGroup4Players_Frlg:: + call CableClub_EventScript_TryBecomeLinkLeader_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup4Players_Frlg + release + return + +CableClub_EventScript_TryJoinGroup4Players_Frlg:: + call CableClub_EventScript_TryJoinLinkGroup_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup4Players_Frlg + release + return + +CableClub_EventScript_ChooseLinkLeader_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + message CableClub_Text_ChooseGroupLeader_Frlg + waitmessage + call EventScript_RestorePrevTextColor + multichoice 13, 6, MULTI_LINK_LEADER, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_TryJoinGroupXPlayers_Frlg + case 1, CableClub_EventScript_TryLeadGroupXPlayers_Frlg + case 2, CableClub_EventScript_AbortLink_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortLink_Frlg + end + +CableClub_EventScript_TryLeadGroupXPlayers_Frlg:: + call CableClub_EventScript_TryBecomeLinkLeader_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroupXPlayers_Frlg + release + return + +CableClub_EventScript_TryJoinGroupXPlayers_Frlg:: + call CableClub_EventScript_TryJoinLinkGroup_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroupXPlayers_Frlg + release + return + +CableClub_EventScript_TryBecomeLinkLeader_Frlg:: + special TryBecomeLinkLeader + waitstate + return + +CableClub_EventScript_TryJoinLinkGroup_Frlg:: + special TryJoinLinkGroup + waitstate + return + +CableClub_EventScript_EnterWirelessLinkRoom_Frlg:: + messageautoscroll CableClub_Text_DirectYouToYourRoom_Frlg + waitmessage + delay 60 + closemessage + copyvar VAR_0x8007, VAR_LAST_TALKED + call CableClub_EventScript_OpenDirectCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + delay 60 + applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft + waitmovement 0 + closemessage + applymovement LOCALID_PLAYER, Movement_PlayerApproachLinkRoomLeft + waitmovement 0 + opendoor 9, 1 + waitdooranim + applymovement LOCALID_PLAYER, Movement_PlayerEnterLinkRoom + waitmovement 0 + hideplayer + closedoor 9, 1 + waitdooranim + release + waitstate + end + +CableClub_EventScript_ShowWirelessCommunicationScreen_Frlg:: + lockall + goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_NotReadyYet_Frlg + specialvar VAR_RESULT, IsWirelessAdapterConnected + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_AdapterNotConnected_Frlg + fadescreen FADE_TO_BLACK + special ShowWirelessCommunicationScreen + waitstate + msgbox CableClub_Text_ParticipantsStepUpToCounter_Frlg + releaseall + end + +CableClub_EventScript_AdapterNotConnected_Frlg:: + msgbox CableClub_Text_AdapterNotConnected_Frlg + releaseall + end + +CableClub_EventScript_OpenUnionRoomBarrier_Frlg:: + setmetatile 5, 3, METATILE_PokemonCenterFrlg_Floor_ShadeLeft, 0 + return + +CableClub_EventScript_CloseUnionRoomBarrier_Frlg:: + setmetatile 5, 3, METATILE_PokemonCenterFrlg_CounterBarrier, 1 + return + +CableClub_EventScript_OpenDirectCornerBarrier_Frlg:: + setmetatile 9, 3, METATILE_PokemonCenterFrlg_Floor_ShadeLeft, 0 + return + +CableClub_EventScript_CloseDirectCornerBarrier_Frlg:: + setmetatile 9, 3, METATILE_PokemonCenterFrlg_CounterBarrier, 1 + return + +CableClub_EventScript_OpenGameCornerBarrier_Frlg:: + setmetatile 5, 3, METATILE_GameCorner_CheckeredFloor_ShadeLeft, 0 + return + +CableClub_EventScript_CloseGameCornerBarrier_Frlg:: + setmetatile 5, 3, METATILE_GameCorner_CounterBarrier, 1 + return + +CableClub_OnResume_Frlg:: + special InitUnionRoom + end + +JoyfulGameCorner_EventScript_InfoMan2_Frlg:: + lock + faceplayer + message Text_DescribeWhichGame_Frlg + waitmessage + multichoice 0, 0, MULTI_WIRELESS_MINIGAME, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_PokemonJumpInfo_Frlg + case 1, CableClub_EventScript_DodrioBerryPickingInfo_Frlg + case 2, CableClub_EventScript_MinigameInfoExit_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_MinigameInfoExit_Frlg + end + +CableClub_EventScript_PokemonJumpInfo_Frlg:: + msgbox Text_PokemonJumpInfo_Frlg + release + end + +CableClub_EventScript_DodrioBerryPickingInfo_Frlg:: + msgbox Text_DodrioBerryPickingInfo_Frlg + release + end + +CableClub_EventScript_MinigameInfoExit_Frlg:: + msgbox Text_TalkToManToPlay_Frlg + release + end + +JoyfulGameCorner_EventScript_MinigameAttendant_Frlg:: + lock + faceplayer + message Text_WelcomeCanYouWait_Frlg + waitmessage + specialvar VAR_RESULT, IsWirelessAdapterConnected + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_AdapterNotConnectedMinigame_Frlg + delay 60 + message Text_PlayWhichGame_Frlg + waitmessage + multichoice 0, 0, MULTI_WIRELESS_MINIGAME, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_PlayPokemonJump_Frlg + case 1, CableClub_EventScript_PlayDodrioBerryPicking_Frlg + case 2, CableClub_EventScript_AbortMinigame_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortMinigame_Frlg + end + +CableClub_EventScript_PlayPokemonJump_Frlg:: + setvar VAR_0x8005, 0 + special IsPokemonJumpSpeciesInParty + goto_if_eq VAR_RESULT, FALSE, CableClub_EventScript_NoEligiblePkmn_Frlg + msgbox Text_EnterWhichPokemon_Frlg + setvar VAR_0x8005, 0 + special ChooseMonForWirelessMinigame + waitstate + goto_if_ge VAR_0x8004, PARTY_SIZE, CableClub_EventScript_AbortMinigame_Frlg + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortMinigame_Frlg + setvar VAR_0x8004, LINK_GROUP_POKEMON_JUMP + goto CableClub_EventScript_ChooseLinkLeaderMinigame_Frlg + end + +CableClub_EventScript_PlayDodrioBerryPicking_Frlg:: + setvar VAR_0x8005, 1 + special IsDodrioInParty + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_NoEligiblePkmn_Frlg + msgbox Text_EnterWhichPokemon_Frlg + setvar VAR_0x8005, 1 + special ChooseMonForWirelessMinigame + waitstate + goto_if_ge VAR_0x8004, PARTY_SIZE, CableClub_EventScript_AbortMinigame_Frlg + call Common_EventScript_SaveGame + goto_if_eq VAR_RESULT, 0, CableClub_EventScript_AbortMinigame_Frlg + setvar VAR_0x8004, LINK_GROUP_BERRY_PICKING + goto CableClub_EventScript_ChooseLinkLeaderMinigame_Frlg + end + +CableClub_EventScript_ChooseLinkLeaderMinigame_Frlg:: + textcolor NPC_TEXT_COLOR_NEUTRAL + message CableClub_Text_ChooseGroupLeader_Frlg + waitmessage + call EventScript_RestorePrevTextColor + multichoice 13, 6, MULTI_LINK_LEADER, FALSE + switch VAR_RESULT + case 0, CableClub_EventScript_TryJoinMinigameLinkGroup_Frlg + case 1, CableClub_EventScript_TryBecomeMinigameLinkLeader_Frlg + case 2, CableClub_EventScript_AbortMinigame_Frlg + case MULTI_B_PRESSED, CableClub_EventScript_AbortMinigame_Frlg + end + +CableClub_EventScript_TryBecomeMinigameLinkLeader_Frlg:: + call CableClub_EventScript_TryBecomeLinkLeader_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterMinigame_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderMinigame_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryBecomeMinigameLinkLeader_Frlg + release + return + +CableClub_EventScript_TryJoinMinigameLinkGroup_Frlg:: + call CableClub_EventScript_TryJoinLinkGroup_Frlg + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterMinigame_Frlg + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderMinigame_Frlg + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinMinigameLinkGroup_Frlg + release + return + +CableClub_EventScript_EnterMinigame_Frlg:: + messageautoscroll Text_AllGoodToGo_Frlg + waitmessage + delay 120 + closemessage + copyvar VAR_0x8007, VAR_LAST_TALKED + call CableClub_EventScript_OpenGameCornerBarrier_Frlg + special DrawWholeMapView + playse SE_CLICK + delay 60 + applymovement VAR_LAST_TALKED, Movement_AttendantFaceLeft + waitmovement 0 + closemessage + applymovement LOCALID_PLAYER, Movement_PlayerEnterMinigameRoom + waitmovement 0 + hideplayer + release + waitstate + end + +CableClub_EventScript_AdapterNotConnectedMinigame_Frlg:: + msgbox Text_AdapterNotConnectedMinigame_Frlg + release + end + +CableClub_EventScript_NoEligiblePkmn_Frlg:: + msgbox EventScript_ExplainPokemonJumpRequirements_Frlg, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CableClub_EventScript_AbortMinigame_Frlg + call_if_eq VAR_0x8005, 0, CableClub_EventScript_ExplainPokemonJumpRequirements_Frlg + call_if_eq VAR_0x8005, 1, CableClub_EventScript_ExplainDodrioBerryPickingRequirements_Frlg + goto CableClub_EventScript_AbortMinigame_Frlg + end + +CableClub_EventScript_ExplainPokemonJumpRequirements_Frlg:: + msgbox Text_ShortJumpingPokemonAllowed_Frlg + return + +CableClub_EventScript_ExplainDodrioBerryPickingRequirements_Frlg:: + msgbox Text_OnlyDodrioAllowed_Frlg + return + +TwoIsland_JoyfulGameCorner_EventScript_ShowPokemonJumpRecords:: + lockall + special ShowPokemonJumpRecords + waitstate + releaseall + end + +TwoIsland_JoyfulGameCorner_EventScript_ShowDodrioBerryPickingRecords:: + lockall + special ShowDodrioBerryPickingRecords + waitstate + releaseall + end + +CableClub_Text_WelcomeWhichCableClubService_Frlg:: + .string "Welcome to the POKéMON CABLE\n" + .string "CLUB.\p" + .string "Which of our services do you wish\n" + .string "to use?$" + +CableClub_Text_WhichService_Frlg:: + .string "Which of our services do you wish\n" + .string "to use?$" + +CableClub_Text_TradeMonsUsingLinkCable_Frlg:: + .string "Trade POKéMON with another player\n" + .string "using a GBA Game Link cable.$" + +CableClub_Text_BattleUsingLinkCable_Frlg:: + .string "You may battle another TRAINER\n" + .string "using a GBA Game Link cable.$" + +@ Unused, translated in Emerald +CableClub_Text_CloseThisMenu_Frlg:: + .string "おわります$" + +CableClub_Text_NeedTwoMonsForDoubleBattle_Frlg:: + .string "For a DOUBLE BATTLE, you must\n" + .string "have at least two POKéMON.$" + +CableClub_Text_NeedTwoMonsToTrade_Frlg:: + .string "For trading, you must have at\n" + .string "least two POKéMON with you.$" + +CableClub_Text_CantTradeEnigmaBerry_Frlg:: + .string "A POKéMON holding the {STR_VAR_1}\n" + .string "BERRY can't be traded.$" + +CableClub_Text_PleaseWaitBCancel_Frlg:: + .string "Please wait.\n" + .string "… … B Button: Cancel$" + +CableClub_Text_WhenAllPlayersReadyAConfirmBCancel_Frlg:: + .string "When all players are ready…\n" + .string "A Button: Confirm\l" + .string "B Button: Cancel$" + +CableClub_Text_StartLinkWithXPlayersAConfirmBCancel_Frlg:: + .string "Start link with {STR_VAR_1} players.\n" + .string "A Button: Confirm\l" + .string "B Button: Cancel$" + +CableClub_Text_AwaitingLinkupBCancel_Frlg:: + .string "Awaiting linkup…\n" + .string "… … B Button: Cancel$" + +@ Unused, translated in Emerald +CableClub_Text_OkayToSaveProgress_Frlg:: + .string "はじめる まえに レポートを\n" + .string "かきますが よろしいですか?$" + +CableClub_Text_PleaseEnter_Frlg:: + .string "Please enter.$" + +CableClub_Text_DirectYouToYourRoom_Frlg:: + .string "I'll direct you to your room now.$" + +CableClub_Text_SomeoneIsNotReadyToLink_Frlg:: + .string "Someone is not ready to link.\p" + .string "Please come back after everyone\n" + .string "has made preparations.$" + +CableClub_Text_LinkErrorPleaseReset_Frlg:: + .string "Sorry, we have a link error…\n" + .string "Please reset and try again.$" + +CableClub_Text_PlayersMadeDifferentSelections_Frlg:: + .string "The link partners appear to have\n" + .string "made different selections.$" + +CableClub_Text_PleaseVisitAgain_Frlg:: + .string "Please do visit again.$" + +CableClub_Text_IncorrectNumberOfParticipants_Frlg:: + .string "The number of participants is\n" + .string "incorrect.$" + +CableClub_Text_CantSingleBattleWithXPlayers_Frlg:: + .string "The SINGLE BATTLE Mode can't be\n" + .string "played by {STR_VAR_1} players.$" + +CableClub_Text_CantDoubleBattleWithXPlayers_Frlg:: + .string "The DOUBLE BATTLE Mode can't be\n" + .string "played by {STR_VAR_1} players.$" + +CableClub_Text_NeedFourPlayers_Frlg:: + .string "There must be four players to play\n" + .string "this Battle Mode.$" + +CableClub_Text_PleaseConfirmNumberAndRestart_Frlg:: + .string "Please confirm the number of\n" + .string "players and start again.$" + +Text_TerminateLinkIfYouLeaveRoom_Frlg:: + .string "The link will be terminated if you\n" + .string "leave the room. Is that okay?$" + +Text_TerminateLinkConfirmation_Frlg:: + .string "Terminating link…\n" + .string "You will be escorted out of\l" + .string "the room. Please wait.$" + +Text_TrainerTooBusyToNotice_Frlg:: + .string "This TRAINER is too busy to\n" + .string "notice…$" + +Text_LookedAtPlayersTrainerCard_Frlg:: + .string "Score! Got to look at {STR_VAR_1}'s\n" + .string "TRAINER CARD!$" + +Text_LookedAtPlayersTrainerCardColored_Frlg:: + .string "Score! Got to look at {STR_VAR_1}'s\n" + .string "TRAINER CARD!\p" + .string "It's a {STR_VAR_2} card!$" + +Text_TakeSeatStartBattle_Frlg:: + .string "Please take your seat and start\n" + .string "your battle.$" + +Text_TakeSeatStartTrade_Frlg:: + .string "Please take your seat and start\n" + .string "your trade.$" + +@ Unused, leftover from RS +RecordCorner_Text_ThanksForComing_Frlg:: + .string "ごりよう ありがとう ございました$" + +CableClub_Text_TrainerCardDataOverwritten_Frlg:: + .string "The TRAINER CARD data will\n" + .string "be overwritten.$" + +CableClub_Text_HopeToSeeYouAgain_Frlg:: + .string "I hope to see you again!$" + +CableClub_Text_NotSetUpForFarAwayRegion_Frlg:: + .string "I'm awfully sorry.\p" + .string "We're not set up to conduct trades\n" + .string "with TRAINERS far away in another\l" + .string "region yet…$" + +CableClub_Text_OtherTrainerNotReady_Frlg:: + .string "The other TRAINER is not ready.$" + +CableClub_Text_YouHaveAMonThatCantBeTaken_Frlg:: + .string "You have at least one POKéMON\n" + .string "that can't be taken.$" + +CableClub_Text_AdapterNotConnected_Frlg:: + .string "The Wireless Adapter is not\n" + .string "connected properly.$" + +CableClub_Text_ParticipantsStepUpToCounter_Frlg:: + .string "Participants are asked to step up\n" + .string "to the reception counter.$" + +@ Unused, translated in Emerald +CableClub_Text_Hello_Frlg:: + .string "こんにちは!$" + +@ Unused, translated in Emerald +CableClub_Text_PleaseWait_Frlg:: + .string "しょうしょう おまちください$" + +CableClub_Text_YouMayTradeHere_Frlg:: + .string "You may trade your POKéMON here\n" + .string "with another TRAINER.$" + +CableClub_Text_YouMayBattleHere_Frlg:: + .string "You may battle with your friends\n" + .string "here.$" + +CableClub_Text_CanMakeBerryPowder_Frlg:: + .string "Two to five TRAINERS can make\n" + .string "BERRY POWDER together.$" + +@ Unused, Record Mix nopped +CableClub_Text_CanMixRecords_Frlg:: + .string "ワイヤレス クラブでの\n" + .string "あそびかたを せつめいします$" + +CableClub_Text_CancelSelectedItem_Frlg:: + .string "Cancels the selected MENU item.$" + +@ Unused, translated in Emerald +CableClub_Text_WhichBattleMode_Frlg:: + .string "どちらの しょうぶに しますか?$" + +@ Unused, translated in Emerald +CableClub_Text_ReturnsToPreviousStep_Frlg:: + .string "ひとつ まえに もどります$" + +CableClub_Text_NeedBerryForBerryCrush_Frlg:: + .string "To use the BERRY CRUSH service,\n" + .string "you must have at least one BERRY.$" + +CableClub_Text_NeedTwoMonsForUnionRoom_Frlg:: + .string "To enter the UNION ROOM, you must\n" + .string "have at least two POKéMON.$" + +CableClub_Text_NoEnigmaBerryInUnionRoom_Frlg:: + .string "No POKéMON holding the {STR_VAR_1}\n" + .string "BERRY may enter the UNION ROOM.$" + +CableClub_Text_UnionRoomAdapterNotConnected_Frlg:: + .string "This is the POKéMON WIRELESS CLUB\n" + .string "UNION ROOM.\p" + .string "Unfortunately, your Wireless\n" + .string "Adapter is not connected properly.\p" + .string "Please do come again.$" + +Text_PlayerIsPlayingRightNowGoForIt_Frlg:: + .string "It appears as if {STR_VAR_1} is playing\n" + .string "right now.\l" + .string "Go for it!$" + +Text_DescribeWhichGame_Frlg:: + .string "I can explain game rules to you,\n" + .string "if you'd like.\p" + .string "Which game should I describe?$" + +Text_PokemonJumpInfo_Frlg:: + .string "“POKéMON JUMP”\p" + .string "Make your POKéMON skip the\n" + .string "VINE WHIP rope with the A Button.\p" + .string "Only mini POKéMON around 28 inches\n" + .string "or less may participate.\p" + .string "POKéMON that only swim, burrow, or\n" + .string "fly are not good at jumping.\p" + .string "As a result, those POKéMON may not\n" + .string "participate.\p" + .string "Good things happen if everyone\n" + .string "jumps in time.$" + +Text_DodrioBerryPickingInfo_Frlg:: + .string "“DODRIO BERRY-PICKING”\p" + .string "Command DODRIO's three heads to\n" + .string "catch falling BERRIES.\p" + .string "Press right, up, or left on the\n" + .string "{PLUS} Control Pad to move the heads.\p" + .string "To play this game, you must have\n" + .string "a DODRIO.$" + +Text_TalkToManToPlay_Frlg:: + .string "If you want to play a game,\n" + .string "please tell the man beside me.$" + +Text_WelcomeCanYouWait_Frlg:: + .string "Hi, welcome!\n" + .string "You can play games over the\l" + .string "Wireless Communication System.\p" + .string "Can you wait just a little bit?$" + +CableClub_Text_ComeAgain_Frlg:: + .string "All right, come again!$" + +Text_AdapterNotConnectedMinigame_Frlg:: + .string "The Wireless Adapter isn't\n" + .string "connected.\p" + .string "Come back when it's hooked up!$" + +Text_PlayWhichGame_Frlg:: + .string "All right, which game did you want\n" + .string "to play?$" + +Text_EnterWhichPokemon_Frlg:: + .string "Which POKéMON would you like to\n" + .string "enter?$" + +Text_AllGoodToGo_Frlg:: + .string "Okay, you're all good to go.\n" + .string "Don't let the others beat you!$" + +@ Unused, translated in Emerald +Text_LeavingDoComeAgain_Frlg:: + .string "きょうは けえるのか?\n" + .string "またこいよ!$" + +EventScript_ExplainPokemonJumpRequirements_Frlg:: + .string "It doesn't look like you have any\n" + .string "POKéMON that you can enter…\p" + .string "Would you like me to explain what\n" + .string "kinds of POKéMON can enter?$" + +Text_ShortJumpingPokemonAllowed_Frlg:: + .string "“POKéMON JUMP” is open to POKéMON\n" + .string "around 28 inches or less.\p" + .string "What you can't enter are those\n" + .string "POKéMON that can't jump.\p" + .string "You know, like POKéMON that only\n" + .string "swim, burrow, or fly.\p" + .string "That's all you need to know.$" + +Text_OnlyDodrioAllowed_Frlg:: + .string "“DODRIO BERRY-PICKING”…\n" + .string "Well, the name says it all.\p" + .string "You have to have a DODRIO to play\n" + .string "this game.$" + +@ Unused, translated in Emerald +Text_RetryFromStartPlease_Frlg:: + .string "もういちど はじめから\n" + .string "やりなおして みて くれ$" + +CableClub_Text_WelcomeWhichDirectCornerRoom_Frlg:: + .string "Welcome to the POKéMON WIRELESS\n" + .string "CLUB DIRECT CORNER.\p" + .string "You may interact directly with\n" + .string "your friends here.\p" + .string "Which room would you like to\n" + .string "enter?$" + +CableClub_Text_TradePokemon_Frlg:: + .string "Would you like to trade POKéMON?$" + +CableClub_Text_PlayWhichBattleMode_Frlg:: + .string "Which Battle Mode would you like\n" + .string "to play?$" + +CableClub_Text_UseBerryCrush_Frlg:: + .string "Would you like to use the\n" + .string "BERRY CRUSH System?$" + +CableClub_Text_ExplainBattleModes_Frlg:: + .string "There are three Battle Modes.\p" + .string "SINGLE BATTLE is for two TRAINERS\n" + .string "with one or more POKéMON each.\p" + .string "Each TRAINER can have one POKéMON\n" + .string "in battle at a time.\p" + .string "DOUBLE BATTLE is for two TRAINERS\n" + .string "with two or more POKéMON each.\p" + .string "Each TRAINER will send out two\n" + .string "POKéMON in battle at a time.\p" + .string "MULTI BATTLE is for four TRAINERS\n" + .string "with one or more POKéMON each.\p" + .string "Each TRAINER can have one POKéMON\n" + .string "in battle at a time.$" + +CableClub_Text_ChooseGroupLeaderOfTwo_Frlg:: + .string "Please decide which of you two\n" + .string "will become the LEADER.\p" + .string "The other player must then choose\n" + .string "“JOIN GROUP.”$" + +CableClub_Text_ChooseGroupLeaderOfFour_Frlg:: + .string "Please decide which of you four\n" + .string "will become the GROUP LEADER.\p" + .string "The other players must then choose\n" + .string "“JOIN GROUP.”$" + +CableClub_Text_ChooseGroupLeader_Frlg:: + .string "Please decide which of you will\n" + .string "become the GROUP LEADER.\p" + .string "The other players must then choose\n" + .string "“JOIN GROUP.”$" + +CableClub_Text_WelcomeUnionRoomEnter_Frlg:: + .string "Welcome to the POKéMON WIRELESS\n" + .string "CLUB UNION ROOM.\p" + .string "You may interact directly with\n" + .string "other TRAINERS here, some of\l" + .string "whom you may not even know.\p" + .string "Would you like to enter the ROOM?$" + +CableClub_Text_UnionRoomInfo_Frlg:: + .string "The TRAINERS in the UNION ROOM\n" + .string "will be those players around you\l" + .string "who have also entered the ROOM.\p" + .string "You may do all sorts of things\n" + .string "here, such as exchanging greetings.\p" + .string "You may enter two POKéMON up to\n" + .string "Lv. 30 for a one-on-one battle.\p" + .string "You may take part in a chat with\n" + .string "two to five people.\p" + .string "Or, you may register a POKéMON for\n" + .string "trade.\p" + .string "Would you like to enter the ROOM?$" + +CableClub_Text_EnjoyUnionRoom_Frlg:: + .string "I hope you enjoy your time in\n" + .string "the UNION ROOM.$" + +CableClub_Text_FirstTimeRightThisWay_Frlg:: + .string "Hello!\n" + .string "My name is TEALA.\p" + .string "This must be your first time\n" + .string "up here.\p" + .string "I'll show you how the Wireless\n" + .string "Communication System works.\p" + .string "First, I need to show you this\n" + .string "floor of our POKéMON CENTER.\p" + .string "Right this way, please.$" + +CableClub_Text_ExplainWirelessClubFirstTime_Frlg:: + .string "On the top floor, there are two\n" + .string "rooms.\p" + .string "First, the room on the left.\n" + .string "It's the UNION ROOM.\p" + .string "You may link up with TRAINERS\n" + .string "around you who have also entered\l" + .string "the UNION ROOM.\p" + .string "With them, you may do things like\n" + .string "chat, battle, and trade.\p" + .string "Second, the room on the right is\n" + .string "the DIRECT CORNER.\p" + .string "You may trade or battle POKéMON\n" + .string "with your friends in this room.\p" + .string "If the Wireless Adapter isn't\n" + .string "connected, you may still link up\l" + .string "using a GBA Game Link cable.\p" + .string "If that is the case, you must go\n" + .string "to the DIRECT CORNER.\p" + .string "I hope you enjoy the Wireless \n" + .string "Communication System.$" + +CableClub_Text_AskAboutLinking_Frlg:: + .string "Hello, {PLAYER}!\p" + .string "It's me, TEALA, the POKéMON\n" + .string "CENTER 2F attendant.\p" + .string "Is there something you needed to\n" + .string "ask me about linking?$" + +CableClub_Text_ExplainWirelessClub_Frlg:: + .string "Let me explain how the POKéMON\n" + .string "WIRELESS CLUB works.\p" + .string "On this, the top floor, there are\n" + .string "two rooms.\p" + .string "First, the room on the left.\n" + .string "It's the UNION ROOM.\p" + .string "You may link up with TRAINERS\n" + .string "around you who have also entered\l" + .string "the UNION ROOM.\p" + .string "With them, you may do things like\n" + .string "chat, battle, and trade.\p" + .string "Second, the room on the right is\n" + .string "the DIRECT CORNER.\p" + .string "You may trade or battle POKéMON\n" + .string "with your friends in this room.\p" + .string "Sometimes, you may not be able to\n" + .string "find your friends in the UNION ROOM\l" + .string "or the DIRECT CORNER.\p" + .string "In that case, please move closer\n" + .string "to your friends.\p" + .string "If the Wireless Adapter isn't\n" + .string "connected, you may still link up\l" + .string "using a GBA Game Link cable.\p" + .string "If that is the case, you must go\n" + .string "to the DIRECT CORNER.\p" + .string "I hope you enjoy the Wireless \n" + .string "Communication System.$" + +CableClub_Text_HopeYouEnjoyWirelessSystem_Frlg:: + .string "I hope you enjoy the Wireless\n" + .string "Communication System.$" + +Text_WirelessClubUndergoingAdjustments:: + .string "I'm terribly sorry.\n" + .string "The POKéMON WIRELESS CLUB is\l" + .string "undergoing adjustments now.$" + +Text_AppearsToBeUndergoingAdjustments:: + .string "It appears to be undergoing\n" + .string "adjustments…$" diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index f183b7363337..6d5e2046328e 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -89,8 +89,7 @@ Route117_PokemonDayCare_EventScript_GiveMonToRaise:: specialvar VAR_RESULT, CountPartyAliveNonEggMons goto_if_eq VAR_RESULT, 2, Route117_PokemonDayCare_EventScript_OnlyTwoAliveMons msgbox Route117_PokemonDayCare_Text_WhichMonShouldWeRaise, MSGBOX_DEFAULT - fadescreen FADE_TO_BLACK - special ChooseSendDaycareMon + chooseboxmon SELECT_PC_MON_DAYCARE waitstate goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, Route117_PokemonDayCare_EventScript_ComeAgain specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot diff --git a/data/scripts/day_care_frlg.inc b/data/scripts/day_care_frlg.inc new file mode 100644 index 000000000000..ef8d8df7c012 --- /dev/null +++ b/data/scripts/day_care_frlg.inc @@ -0,0 +1,108 @@ +Route5_PokemonDayCare_EventScript_DaycareMan:: + lock + faceplayer + showmoneybox 0, 0 + specialvar VAR_RESULT, IsThereMonInRoute5Daycare + goto_if_eq VAR_RESULT, TRUE, Route5_PokemonDayCare_EventScript_CheckOnMon + msgbox Route5_PokemonDayCare_Text_WantMeToRaiseMon, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, Route5_PokemonDayCare_EventScript_TryGiveMon + msgbox Route5_PokemonDayCare_Text_ComeAgain + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_TryGiveMon:: + specialvar VAR_RESULT, CountPartyNonEggMons + goto_if_eq VAR_RESULT, 1, Route5_PokemonDayCare_EventScript_OnlyOneMonInParty + msgbox Route5_PokemonDayCare_Text_WhichMonShouldIRaise + fadescreen FADE_TO_BLACK + hidemoneybox + special ChooseSendDaycareMon + waitstate + showmoneybox 0, 0 + goto_if_ge VAR_0x8004, PARTY_SIZE, Route5_PokemonDayCare_EventScript_ComeAgain + specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot + goto_if_eq VAR_RESULT, 0, Route5_PokemonDayCare_EventScript_OnlyOneAliveMonInParty + specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies + msgbox Route5_PokemonDayCare_Text_LookAfterMonForAWhile + waitse + playmoncry VAR_0x8005, CRY_MODE_NORMAL + msgbox Route5_PokemonDayCare_Text_ComeSeeMeInAWhile + waitmoncry + special PutMonInRoute5Daycare + callnative UpdateFollowingPokemon + incrementgamestat GAME_STAT_USED_DAYCARE + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_ComeAgain:: + msgbox Route5_PokemonDayCare_Text_ComeAnytimeYouLike + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_OnlyOneMonInParty:: + msgbox Route5_PokemonDayCare_Text_OnlyHaveOneMonWithYou + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_OnlyOneAliveMonInParty:: + msgbox Route5_PokemonDayCare_Text_WhatWillYouBattleWith + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_CheckOnMon:: + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, GetNumLevelsGainedForRoute5DaycareMon + call_if_ne VAR_RESULT, 0, Route5_PokemonDayCare_EventScript_MonHasGrownByXLevels + call_if_eq VAR_RESULT, 0, Route5_PokemonDayCare_EventScript_NotEnoughTime + special GetCostToWithdrawRoute5DaycareMon + msgbox Route5_PokemonDayCare_Text_OweMeXForMonsReturn, MSGBOX_YESNO + goto_if_eq VAR_RESULT, YES, Route5_PokemonDayCare_EventScript_TryRetrieveMon + goto Route5_PokemonDayCare_EventScript_ComeAgain + end + +Route5_PokemonDayCare_EventScript_MonHasGrownByXLevels:: + msgbox Route5_PokemonDayCare_Text_MonHasGrownByXLevels + return + +Route5_PokemonDayCare_EventScript_NotEnoughTime:: + msgbox Route5_PokemonDayCare_Text_MonNeedsToSpendMoreTime + return + +Route5_PokemonDayCare_EventScript_TryRetrieveMon:: + specialvar VAR_RESULT, CalculatePlayerPartyCount + goto_if_eq VAR_RESULT, PARTY_SIZE, Route5_PokemonDayCare_EventScript_NoRoomInParty + specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 + goto_if_eq VAR_RESULT, TRUE, Route5_PokemonDayCare_EventScript_RetrieveMon + msgbox Route5_PokemonDayCare_Text_DontHaveEnoughMoney + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_RetrieveMon:: + setvar VAR_0x8004, 0 + specialvar VAR_RESULT, TakePokemonFromRoute5Daycare + special SubtractMoneyFromVar0x8005 + updatemoneybox + copyvar VAR_0x8008, VAR_RESULT + getpartysize + subvar VAR_RESULT, 1 + bufferpartymonnick STR_VAR_1, VAR_RESULT + copyvar VAR_RESULT, VAR_0x8008 + msgbox Route5_PokemonDayCare_Text_ThankYouHeresMon + textcolor NPC_TEXT_COLOR_NEUTRAL + waitse + playmoncry VAR_RESULT, CRY_MODE_NORMAL + msgbox Route5_PokemonDayCare_Text_PlayerGotMonBack + call EventScript_RestorePrevTextColor + waitmoncry + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_NoRoomInParty:: + msgbox Route5_PokemonDayCare_Text_YouveGotNoRoomForIt + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox + end + +Route5_PokemonDayCare_EventScript_CloseMoneyBox:: + hidemoneybox + release + end diff --git a/data/scripts/debug.inc b/data/scripts/debug.inc index 921a3247e4e4..2539eb188b88 100644 --- a/data/scripts/debug.inc +++ b/data/scripts/debug.inc @@ -69,6 +69,63 @@ Debug_CheatStart:: release end +Debug_CheatStartFrlg:: + setflag FLAG_SYS_POKEMON_GET + setflag FLAG_PALLET_LADY_NOT_BLOCKING_SIGN + setflag FLAG_OPENED_START_MENU + setflag FLAG_VISITED_OAKS_LAB + setflag FLAG_BEAT_RIVAL_IN_OAKS_LAB + givemon SPECIES_BULBASAUR, 20, ITEM_NONE + givemon SPECIES_CHARMANDER, 20, ITEM_NONE + givemon SPECIES_SQUIRTLE, 20, ITEM_NONE + clearflag FLAG_HIDE_OAK_IN_HIS_LAB + setflag FLAG_HIDE_RIVAL_IN_LAB + setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 1 @ prevents Oak scene when trying to enter Route 1 + setflag FLAG_SYS_POKEDEX_GET + special SetUnlockedPokedexFlags + setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6 @ state after handing in parcel and getting pokedex + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 2 + setvar VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1 + setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 1 + setvar VAR_MAP_SCENE_ROUTE22, 1 + setvar VAR_MAP_SCENE_POKEMON_CENTER_TEALA, 1 @ end + setflag FLAG_SYS_NATIONAL_DEX + special EnableNationalPokedex + setflag FLAG_SYS_B_DASH + setflag FLAG_BADGE01_GET + setflag FLAG_BADGE02_GET + setflag FLAG_BADGE03_GET + setflag FLAG_BADGE04_GET + setflag FLAG_BADGE05_GET + setflag FLAG_BADGE06_GET + setflag FLAG_BADGE07_GET + setflag FLAG_BADGE08_GET + setflag FLAG_GOT_BIKE_VOUCHER + setflag FLAG_GOT_BICYCLE + additem ITEM_BICYCLE + setflag FLAG_WORLD_MAP_PALLET_TOWN + setflag FLAG_WORLD_MAP_VIRIDIAN_CITY + setflag FLAG_WORLD_MAP_PEWTER_CITY + setflag FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F + setflag FLAG_WORLD_MAP_CERULEAN_CITY + setflag FLAG_WORLD_MAP_VERMILION_CITY + setflag FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F + setflag FLAG_WORLD_MAP_LAVENDER_TOWN + setflag FLAG_WORLD_MAP_CELADON_CITY + setflag FLAG_WORLD_MAP_FUCHSIA_CITY + setflag FLAG_WORLD_MAP_SAFFRON_CITY + setflag FLAG_WORLD_MAP_CINNABAR_ISLAND + setflag FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR + setflag FLAG_WORLD_MAP_ONE_ISLAND + setflag FLAG_WORLD_MAP_TWO_ISLAND + setflag FLAG_WORLD_MAP_THREE_ISLAND + setflag FLAG_WORLD_MAP_FOUR_ISLAND + setflag FLAG_WORLD_MAP_FIVE_ISLAND + setflag FLAG_WORLD_MAP_SIX_ISLAND + setflag FLAG_WORLD_MAP_SEVEN_ISLAND + release + end + Debug_FlagsNotSetOverworldConfigMessage:: message Debug_FlagsNotSetOverworldConfigMessage_Text goto Debug_MessageEnd @@ -302,6 +359,15 @@ Debug_EventScript_Steven_Multi:: release end +Debug_EventScript_WallyTutorial:: + special SavePlayerParty + special LoadWallyZigzagoon + special StartWallyTutorialBattle + waitstate + special LoadPlayerParty + release + end + Debug_BerryPestsDisabled:: msgbox DebugText_BerryPestsDisabled, MSGBOX_DEFAULT release @@ -362,6 +428,16 @@ Debug_EventScript_InflictStatus1_Single: releaseall end +Debug_EventScript_KoPokemon:: + special ChoosePartyMon + waitstate + goto_if_ge VAR_0x8004, PARTY_SIZE, Debug_EventScript_InflictStatus1_Close + specialvar VAR_RESULT, ScriptGetPartyMonSpecies + goto_if_eq VAR_RESULT, SPECIES_EGG, Debug_EventScript_InflictStatus1_Close + setko VAR_0x8004 + releaseall + end + Debug_EventScript_SetHiddenNature:: special ChoosePartyMon waitstate @@ -422,6 +498,13 @@ Debug_EventScript_SetFriendship:: releaseall end +Debug_EventScript_GivePokerus:: + special ChoosePartyMon + waitstate + callnative DebugNative_Party_SetPokerus + releaseall + end + Debug_EventScript_InflictStatus1_Single_Poison: setstatus1 STATUS1_POISON, VAR_0x8004 releaseall @@ -530,6 +613,9 @@ Debug_EventScript_InflictStatus1_Text_Freeze: Debug_EventScript_InflictStatus1_Text_Frostbite: .string "Frostbite$" +Debug_EventScript_InflictStatus1_Text_KO: + .string "KO$" + Debug_EventScript_ChangeNature_Text_Hardy: .string "Hardy$" Debug_EventScript_ChangeNature_Text_Lonely: diff --git a/data/scripts/fame_checker_frlg.inc b/data/scripts/fame_checker_frlg.inc new file mode 100644 index 000000000000..c15a88101869 --- /dev/null +++ b/data/scripts/fame_checker_frlg.inc @@ -0,0 +1,286 @@ +ViridianCity_School_EventScript_PokemonJournal:: + lock + faceplayer + famechecker FAMECHECKER_OAK, 3 + famechecker FAMECHECKER_DAISY, 3 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureProfOak + release + end + +EventScript_PokemonJournalUnused1:: + lock + faceplayer + famechecker FAMECHECKER_DAISY, 1 + famechecker FAMECHECKER_OAK, 4 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureProfOak + release + end + +EventScript_PokemonJournalUnused2:: + lock + faceplayer + famechecker FAMECHECKER_DAISY, 4 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureProfOak + release + end + +FourIsland_PokemonCenter_1F_EventScript_PokemonJournal:: + lockall + famechecker FAMECHECKER_DAISY, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureDaisyOak + releaseall + end + +Route4_EventScript_Boy:: + lock + faceplayer + famechecker FAMECHECKER_BROCK, 3 + msgbox Route4_Text_PeopleLikeAndRespectBrock + release + end + +MtMoon_1F_EventScript_BaldingMan:: + lock + faceplayer + famechecker FAMECHECKER_BROCK, 4 + msgbox MtMoon_1F_Text_BrockHelpsExcavateFossils + release + end + +PewterCity_Museum_1F_EventScript_PokemonJournalBrock:: + lockall + famechecker FAMECHECKER_BROCK, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureBrock + releaseall + end + +Route20_EventScript_Camper:: + lock + faceplayer + famechecker FAMECHECKER_MISTY, 3 + msgbox Route20_Text_MistyTrainsHere + release + end + +Route25_EventScript_Beauty:: + lock + faceplayer + famechecker FAMECHECKER_MISTY, 4 + msgbox Route25_Text_MistyHighHopesAboutThisPlace + release + end + +CeruleanCity_PokemonCenter_1F_EventScript_PokemonJournalMisty:: + lock + faceplayer + famechecker FAMECHECKER_MISTY, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureMisty + release + end + +VermilionCity_PokemonCenter_1F_EventScript_PokemonJournalLtSurge:: + lockall + famechecker FAMECHECKER_LTSURGE, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureLtSurge + releaseall + end + +CeladonCity_Condominiums_2F_EventScript_PokemonJournalErika:: + lock + faceplayer + famechecker FAMECHECKER_ERIKA, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureErika + release + end + +FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga:: + lock + faceplayer + famechecker FAMECHECKER_KOGA, 4 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureKoga + release + end + +SafariZone_North_RestHouse_EventScript_BaldingMan:: + lock + faceplayer + famechecker FAMECHECKER_KOGA, 5 + msgbox SafariZone_West_Text_KogaPatrolsSafariEverySoOften + release + end + +SaffronCity_PokemonCenter_1F_EventScript_PokemonJournalSabrina:: + lock + faceplayer + famechecker FAMECHECKER_SABRINA, 4 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureSabrina + release + end + +CinnabarIsland_Gym_EventScript_BlaineFujiPhoto:: + lockall + famechecker FAMECHECKER_BLAINE, 4 + famechecker FAMECHECKER_MRFUJI, 4 + msgbox CinnabarIsland_Gym_Text_PhotoOfBlaineAndFuji + releaseall + end + +FiveIsland_ResortGorgeous_House_EventScript_PokemonJournal:: + lockall + famechecker FAMECHECKER_BLAINE, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureBlaine + releaseall + end + +FourIsland_Mart_EventScript_OldMan:: + lock + faceplayer + famechecker FAMECHECKER_LORELEI, 2 + msgbox FourIsland_Mart_Text_LoreleiGrewUpOnThisIsland + release + end + +FiveIsland_PokemonCenter_1F_EventScript_PokemonJournal:: + lock + faceplayer + famechecker FAMECHECKER_LORELEI, 3 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureLorelei + release + end + +SaffronCity_PokemonTrainerFanClub_EventScript_PokemonJournalBruno:: + lock + faceplayer + famechecker FAMECHECKER_BRUNO, 2 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureBruno + release + end + +SevenIsland_SevaultCanyon_EventScript_BlackBelt:: + lock + faceplayer + famechecker FAMECHECKER_BRUNO, 5 + msgbox SevenIsland_SevaultCanyon_Text_BrunoTrainedWithBrawly + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_BlackBelt:: + lock + faceplayer + famechecker FAMECHECKER_AGATHA, 1 + famechecker FAMECHECKER_AGATHA, 2 + msgbox IndigoPlateau_PokemonCenter_1F_Text_AgathaWhuppedUs + release + end + +SevenIsland_PokemonCenter_1F_EventScript_PokemonJournal:: + lock + faceplayer + famechecker FAMECHECKER_AGATHA, 3 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureAgatha + release + end + +SixIsland_Mart_EventScript_OldWoman:: + lock + faceplayer + famechecker FAMECHECKER_AGATHA, 5 + msgbox SixIsland_Mart_Text_AgathaOldestEverEliteFourMember + release + end + +EventScript_LanceUnused:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, 0 + msgbox gFameCheckerFlavorText_Lance0 + release + end + +SaffronCity_EventScript_BattleGirlUnused:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, 1 + msgbox SaffronCity_Text_HowCanClubNotRecognizeLance + release + end + +SaffronCity_EventScript_BattleGirl:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, 2 + msgbox SaffronCity_Text_HowCanClubNotRecognizeLance + release + end + +CeladonCity_DepartmentStore_2F_EventScript_Woman:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, 3 + msgbox CeladonCity_DepartmentStore_2F_Text_LanceComesToBuyCapes + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_PokemonJournal:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, 4 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureLance + release + end + +IndigoPlateau_PokemonCenter_1F_EventScript_CooltrainerM:: + lock + faceplayer + famechecker FAMECHECKER_LANCE, 5 + msgbox IndigoPlateau_PokemonCenter_1F_Text_LancesCousinGymLeaderFarAway + release + end + +LavenderTown_PokemonCenter_1F_EventScript_BaldingMan:: + lock + faceplayer + famechecker FAMECHECKER_MRFUJI, 3 + msgbox LavenderTown_PokemonCenter_1F_Text_HearMrFujiNotFromAroundHere + release + end + +CinnabarIsland_PokemonCenter_1F_EventScript_PokemonJournalMrFuji:: + lock + faceplayer + famechecker FAMECHECKER_MRFUJI, 5 + textcolor NPC_TEXT_COLOR_NEUTRAL + msgbox PokemonJournal_Text_SpecialFeatureMrFuji + release + end + +SilphCo_5F_EventScript_Scientist:: + lock + faceplayer + famechecker FAMECHECKER_GIOVANNI, 1 + msgbox SilphCo_5F_Text_RocketBossLookingForStrongMons + release + end + +SilphCo_8F_EventScript_Scientist:: + lock + faceplayer + famechecker FAMECHECKER_GIOVANNI, 2 + msgbox SilphCo_8F_Text_ToRocketBossMonsAreTools + release + end diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index 84d45c962ac1..0aeaa23af64a 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -465,12 +465,12 @@ EventScript_EndRockClimb:: end Text_WantToRockClimb: - .string "The cliff is steep.\n" - .string "Would you like to use Rock Climb?$" + .string "The cliff is steep.\n" + .string "Would you like to use Rock Climb?$" Text_MonUsedRockClimb: - .string "{STR_VAR_1} used Rock Climb!$" + .string "{STR_VAR_1} used Rock Climb!$" Text_CantRockClimb: - .string "The cliff is steep.\n" - .string "A Pokémon may be able to climb it.$" + .string "The cliff is steep.\n" + .string "A Pokémon may be able to climb it.$" diff --git a/data/scripts/flavor_text.inc b/data/scripts/flavor_text.inc new file mode 100644 index 000000000000..07d888c716b9 --- /dev/null +++ b/data/scripts/flavor_text.inc @@ -0,0 +1,236 @@ +@ Flavor text for interacting with various background objects + +EventScript_Bookshelf:: + msgbox Text_Bookshelf, MSGBOX_SIGN + end + +EventScript_PokeMartShelf:: + msgbox Text_PokeMartShelf, MSGBOX_SIGN + end + +EventScript_Food:: + msgbox Text_Food, MSGBOX_SIGN + end + +EventScript_VideoGame:: + msgbox Text_VideoGame, MSGBOX_SIGN + end + +EventScript_Computer:: + msgbox Text_Computer, MSGBOX_SIGN + end + +EventScript_ImpressiveMachine:: + msgbox Text_ImpressiveMachine, MSGBOX_SIGN + end + +EventScript_Blueprints:: + msgbox Text_Blueprints, MSGBOX_SIGN + end + +EventScript_Burglary:: + msgbox Text_Burglary, MSGBOX_SIGN + end + +EventScript_PlayerFacingTVScreen:: + msgbox Text_PlayerFacingTVScreen, MSGBOX_SIGN + end + +EventScript_Cabinet:: + msgbox Text_DishesPlatesNeatlyLinedUp, MSGBOX_SIGN + end + +EventScript_Kitchen:: + msgbox Text_Kitchen, MSGBOX_SIGN + end + +EventScript_Dresser:: + msgbox Text_Dresser, MSGBOX_SIGN + end + +EventScript_Snacks:: + msgbox Text_Snacks, MSGBOX_SIGN + end + +EventScript_Painting:: + msgbox Text_Painting, MSGBOX_SIGN + end + +EventScript_PowerPlantMachine:: + msgbox Text_PowerPlantMachine, MSGBOX_SIGN + end + +EventScript_Telephone:: + msgbox Text_Telephone, MSGBOX_SIGN + end + +EventScript_AdvertisingPoster:: + msgbox Text_AdvertisingPoster, MSGBOX_SIGN + end + +EventScript_TastyFood:: + msgbox Text_TastyFood, MSGBOX_SIGN + end + +EventScript_TrashBin:: + msgbox Text_TrashBin, MSGBOX_SIGN + end + +EventScript_Cup:: + msgbox Text_Cup, MSGBOX_SIGN + end + +EventScript_PolishedWindow:: + msgbox Text_PolishedWindow, MSGBOX_SIGN + end + +EventScript_BeautifulSkyWindow:: + msgbox Text_BeautifulSkyWindow, MSGBOX_SIGN + end + +EventScript_BlinkingLights:: + msgbox Text_BlinkingLights, MSGBOX_SIGN + end + +EventScript_NeatlyLinedUpTools:: + msgbox Text_NeatlyLinedUpTools, MSGBOX_SIGN + end + +EventScript_PokemartSign:: + msgbox Text_PokemartSign, MSGBOX_SIGN + end + +EventScript_PokecenterSign:: + msgbox Text_PokecenterSign, MSGBOX_SIGN + end + +EventScript_Indigo_UltimateGoal:: + msgbox Text_Indigo_UltimateGoal, MSGBOX_SIGN + end + +EventScript_Indigo_HighestAuthority:: + msgbox Text_Indigo_HighestAuthority, MSGBOX_SIGN + end + +@ Flavor text for interacting with various background objects + +Text_Bookshelf:: + .string "It's crammed full of POKéMON\n" + .string "books.$" + +Text_NothingButPokemonBooks:: + .string "ほんだなに ならんでいるのは\n" + .string "ポケモンの ほん ばかりだ$" + +Text_ATownMap:: + .string "A TOWN MAP.$" + +Text_PokeMartShelf:: + .string "Wow!\n" + .string "Tons of POKéMON stuff!$" + +Text_DishesPlatesNeatlyLinedUp:: + .string "Dishes and plates are neatly\n" + .string "lined up.$" + +Text_Kitchen:: + .string "It smells delicious!\n" + .string "Somebody's been cooking here.$" + +Text_Dresser:: + .string "It's a nicely made dresser.\n" + .string "It will hold a lot of stuff.$" + +Text_Snacks:: + .string "There's a pile of snacks here.$" + +Text_PokemartSign:: + .string "All your item needs fulfilled!\n" + .string "POKéMON MART$" + +Text_PokecenterSign:: + .string "Heal Your POKéMON!\n" + .string "POKéMON CENTER$" + +Text_Indigo_UltimateGoal:: + .string "INDIGO PLATEAU\p" + .string "The ultimate goal of TRAINERS!\n" + .string "POKéMON LEAGUE HQ$" + +Text_Indigo_HighestAuthority:: + .string "INDIGO PLATEAU\p" + .string "The highest POKéMON authority!\n" + .string "POKéMON LEAGUE HQ$" + +Text_Food:: + .string "It should be packed with all kinds\n" + .string "of delicious things to eat.$" + +Text_Blueprints:: + .string "It's a blueprint of some sort.\n" + .string "It's filled with diagrams and text.$" + +Text_Painting:: + .string "It's a pretty picture of a POKéMON.\n" + .string "It looks like it's feeling good.$" + +Text_PowerPlantMachine:: + .string "What could this machine be?\n" + .string "Better not mess around with it!$" + +Text_Telephone:: + .string "It's a telephone.\n" + .string "Better not use it.$" + +Text_Computer:: + .string "It's all complicated words and\n" + .string "numbers that make no sense…$" + +Text_AdvertisingPoster:: + .string "It's an advertising poster about\n" + .string "all kinds of products.$" + +Text_TastyFood:: + .string "Oh, that smells tasty!\n" + .string "It might get the stomach growling!$" + +Text_TrashBin:: + .string "Inside this…\n" + .string "……\p" + .string "There's nothing here!$" + +Text_Cup:: + .string "It's a cup with a POKéMON mark\n" + .string "on it.$" + +Text_PolishedWindow:: + .string "The window is very well polished.$" + +Text_BeautifulSkyWindow:: + .string "Outside the window…\p" + .string "The sky looks fantastically\n" + .string "beautiful.$" + +Text_BlinkingLights:: + .string "Lights in different colors are\n" + .string "flashing on and off.$" + +Text_NeatlyLinedUpTools:: + .string "All sorts of tools are lined up\n" + .string "neatly.$" + +Text_ImpressiveMachine:: + .string "It's a machine of some sort.\n" + .string "It sure is impressive.$" + +Text_VideoGame:: + .string "It's the latest video game!\n" + .string "It sure looks fun!$" + +Text_Burglary:: + .string "There are obvious signs of burglary\n" + .string "here…$" + +Text_PlayerFacingTVScreen:: + .string "There's a POKéMON on TV!\n" + .string "It looks like it's having fun.$" diff --git a/data/scripts/hall_of_fame_frlg.inc b/data/scripts/hall_of_fame_frlg.inc new file mode 100644 index 000000000000..7fede6987415 --- /dev/null +++ b/data/scripts/hall_of_fame_frlg.inc @@ -0,0 +1,37 @@ +EventScript_SetDefeatedEliteFourFlagsVars:: + clearflag FLAG_HIDE_POSTGAME_GOSSIPERS + call EventScript_ResetEliteFour + special Script_UpdateTrainerFanClubGameClear + specialvar VAR_RESULT, IsNationalPokedexEnabled + call_if_eq VAR_RESULT, FALSE, EventScript_SetReadyTryGiveNationalDexScene + call EventScript_ResetLegendaries + return + +EventScript_SetReadyTryGiveNationalDexScene:: + setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 2 + return + +EventScript_ResetLegendaries:: + clearflag FLAG_LUGIA_FLEW_AWAY + clearflag FLAG_HO_OH_FLEW_AWAY + clearflag FLAG_DEOXYS_FLEW_AWAY + return + +EventScript_ResetEliteFourEnd:: + call EventScript_ResetEliteFour + end + +EventScript_ResetEliteFour:: + clearflag FLAG_DEFEATED_LORELEI + clearflag FLAG_DEFEATED_BRUNO + clearflag FLAG_DEFEATED_AGATHA + clearflag FLAG_DEFEATED_LANCE + clearflag FLAG_DEFEATED_CHAMP + cleartrainerflag TRAINER_CHAMPION_FIRST_SQUIRTLE + cleartrainerflag TRAINER_CHAMPION_FIRST_BULBASAUR + cleartrainerflag TRAINER_CHAMPION_FIRST_CHARMANDER + cleartrainerflag TRAINER_CHAMPION_REMATCH_SQUIRTLE + cleartrainerflag TRAINER_CHAMPION_REMATCH_BULBASAUR + cleartrainerflag TRAINER_CHAMPION_REMATCH_CHARMANDER + setvar VAR_MAP_SCENE_POKEMON_LEAGUE, 0 + return diff --git a/data/scripts/item_ball_scripts_frlg.inc b/data/scripts/item_ball_scripts_frlg.inc new file mode 100644 index 000000000000..25233baa0794 --- /dev/null +++ b/data/scripts/item_ball_scripts_frlg.inc @@ -0,0 +1,671 @@ +Route2_EventScript_ItemEther:: + finditem ITEM_ETHER + end + +Route2_EventScript_ItemParalyzeHeal:: + finditem ITEM_PARALYZE_HEAL + end + +ViridianForest_EventScript_ItemPokeBall:: + finditem ITEM_POKE_BALL + end + +ViridianForest_EventScript_ItemAntidote:: + finditem ITEM_ANTIDOTE + end + +ViridianForest_EventScript_ItemPotion:: + finditem ITEM_POTION + end + +MtMoon_1F_EventScript_ItemParalyzeHeal:: + finditem ITEM_PARALYZE_HEAL + end + +MtMoon_1F_EventScript_ItemTM09:: + finditem ITEM_TM09 + end + +MtMoon_1F_EventScript_ItemPotion:: + finditem ITEM_POTION + end + +MtMoon_1F_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +MtMoon_1F_EventScript_ItemEscapeRope:: + finditem ITEM_ESCAPE_ROPE + end + +MtMoon_1F_EventScript_ItemMoonStone:: + finditem ITEM_MOON_STONE + end + +MtMoon_B2F_EventScript_ItemStarPiece:: + finditem ITEM_STAR_PIECE + end + +MtMoon_B2F_EventScript_ItemTM46:: + finditem ITEM_TM46 + end + +Route4_EventScript_ItemTM05:: + finditem ITEM_TM05 + end + +Route24_EventScript_ItemTM45:: + finditem ITEM_TM45 + end + +Route25_EventScript_ItemTM43:: + finditem ITEM_TM43 + end + +SSAnne_1F_Room2_EventScript_ItemTM31:: + finditem ITEM_TM31 + end + +SSAnne_2F_Room2_EventScript_ItemStardust:: + finditem ITEM_STARDUST + end + +SSAnne_2F_Room4_EventScript_ItemXAttack:: + finditem ITEM_X_ATTACK + end + +SSAnne_B1F_Room2_EventScript_ItemTM44:: + finditem ITEM_TM44 + end + +SSAnne_B1F_Room3_EventScript_ItemEther:: + finditem ITEM_ETHER + end + +SSAnne_B1F_Room5_EventScript_ItemSuperPotion:: + finditem ITEM_SUPER_POTION + end + +SSAnne_Kitchen_EventScript_ItemGreatBall:: + finditem ITEM_GREAT_BALL + end + +Route9_EventScript_ItemTM40:: + finditem ITEM_TM40 + end + +RocketHideout_B1F_EventScript_ItemEscapeRope:: + finditem ITEM_ESCAPE_ROPE + end + +RocketHideout_B1F_EventScript_ItemHyperPotion:: + finditem ITEM_HYPER_POTION + end + +RocketHideout_B2F_EventScript_ItemXSpeed:: + finditem ITEM_X_SPEED + end + +RocketHideout_B2F_EventScript_ItemMoonStone:: + finditem ITEM_MOON_STONE + end + +RocketHideout_B2F_EventScript_ItemTM12:: + finditem ITEM_TM12 + end + +RocketHideout_B2F_EventScript_ItemSuperPotion:: + finditem ITEM_SUPER_POTION + end + +RocketHideout_B3F_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +RocketHideout_B3F_EventScript_ItemTM21:: + finditem ITEM_TM21 + end + +RocketHideout_B4F_EventScript_ItemTM49:: + finditem ITEM_TM49 + end + +RocketHideout_B4F_EventScript_ItemMaxEther:: + finditem ITEM_MAX_ETHER + end + +RocketHideout_B4F_EventScript_ItemCalcium:: + finditem ITEM_CALCIUM + end + +PokemonTower_3F_EventScript_ItemEscapeRope:: + finditem ITEM_ESCAPE_ROPE + end + +PokemonTower_4F_EventScript_ItemElixir:: + finditem ITEM_ELIXIR + end + +PokemonTower_4F_EventScript_ItemAwakening:: + finditem ITEM_AWAKENING + end + +PokemonTower_4F_EventScript_ItemGreatBall:: + finditem ITEM_GREAT_BALL + end + +PokemonTower_5F_EventScript_ItemNugget:: + finditem ITEM_NUGGET + end + +PokemonTower_6F_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +PokemonTower_6F_EventScript_ItemXAccuracy:: + finditem ITEM_X_ACCURACY + end + +Route12_EventScript_ItemTM48:: + finditem ITEM_TM48 + end + +Route12_EventScript_ItemIron:: + finditem ITEM_IRON + end + +Route15_EventScript_ItemTM18:: + finditem ITEM_TM18 + end + +SafariZone_Center_EventScript_ItemNugget:: + finditem ITEM_NUGGET + end + +SafariZone_East_EventScript_ItemMaxPotion:: + finditem ITEM_MAX_POTION + end + +SafariZone_East_EventScript_ItemFullRestore:: + finditem ITEM_FULL_RESTORE + end + +SafariZone_East_EventScript_ItemTM11:: + finditem ITEM_TM11 + end + +SafariZone_East_EventScript_ItemLeafStone:: + finditem ITEM_LEAF_STONE + end + +SafariZone_North_EventScript_ItemProtein:: + finditem ITEM_PROTEIN + end + +SafariZone_North_EventScript_ItemTM47:: + finditem ITEM_TM47 + end + +SafariZone_West_EventScript_ItemTM32:: + finditem ITEM_TM32 + end + +SafariZone_West_EventScript_ItemGoldTeeth:: + finditem ITEM_GOLD_TEETH + end + +SafariZone_West_EventScript_ItemMaxPotion:: + finditem ITEM_MAX_POTION + end + +SafariZone_West_EventScript_ItemMaxRevive:: + finditem ITEM_MAX_REVIVE + end + +SilphCo_3F_EventScript_ItemHyperPotion:: + finditem ITEM_HYPER_POTION + end + +SilphCo_4F_EventScript_ItemMaxRevive:: + finditem ITEM_MAX_REVIVE + end + +SilphCo_4F_EventScript_ItemEscapeRope:: + finditem ITEM_ESCAPE_ROPE + end + +SilphCo_4F_EventScript_ItemFullHeal:: + finditem ITEM_FULL_HEAL + end + +SilphCo_5F_EventScript_ItemProtein:: + finditem ITEM_PROTEIN + end + +SilphCo_5F_EventScript_ItemTM01:: + finditem ITEM_TM01 + end + +SilphCo_5F_EventScript_ItemCardKey:: + finditem ITEM_CARD_KEY + end + +SilphCo_6F_EventScript_ItemHPUp:: + finditem ITEM_HP_UP + end + +SilphCo_6F_EventScript_ItemXSpecial:: + finditem ITEM_X_SPECIAL + end + +SilphCo_7F_EventScript_ItemCalcium:: + finditem ITEM_CALCIUM + end + +SilphCo_7F_EventScript_ItemTM08:: + finditem ITEM_TM08 + end + +SilphCo_10F_EventScript_ItemCarbos:: + finditem ITEM_CARBOS + end + +SilphCo_10F_EventScript_ItemUltraBall:: + finditem ITEM_ULTRA_BALL + end + +SilphCo_10F_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +PowerPlant_EventScript_ItemMaxPotion:: + finditem ITEM_MAX_POTION + end + +PowerPlant_EventScript_ItemTM17:: + finditem ITEM_TM17 + end + +PowerPlant_EventScript_ItemTM25:: + finditem ITEM_TM25 + end + +PowerPlant_EventScript_ItemThunderStone:: + finditem ITEM_THUNDER_STONE + end + +PowerPlant_EventScript_ItemElixir:: + finditem ITEM_ELIXIR + end + +PokemonMansion_1F_EventScript_ItemCarbos:: + finditem ITEM_CARBOS + end + +PokemonMansion_1F_EventScript_ItemEscapeRope:: + finditem ITEM_ESCAPE_ROPE + end + +PokemonMansion_2F_EventScript_ItemCalcium:: + finditem ITEM_CALCIUM + end + +PokemonMansion_3F_EventScript_ItemMaxPotion:: + finditem ITEM_MAX_POTION + end + +PokemonMansion_3F_EventScript_ItemIron:: + finditem ITEM_IRON + end + +PokemonMansion_B1F_EventScript_ItemTM14:: + finditem ITEM_TM14 + end + +PokemonMansion_B1F_EventScript_ItemFullRestore:: + finditem ITEM_FULL_RESTORE + end + +PokemonMansion_B1F_EventScript_ItemTM22:: + finditem ITEM_TM22 + end + +PokemonMansion_B1F_EventScript_ItemSecretKey:: + finditem ITEM_SECRET_KEY + end + +VictoryRoad_1F_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +VictoryRoad_1F_EventScript_ItemTM02:: + finditem ITEM_TM02 + end + +VictoryRoad_2F_EventScript_ItemGuardSpec:: + finditem ITEM_GUARD_SPEC + end + +VictoryRoad_2F_EventScript_ItemTM07:: + finditem ITEM_TM07 + end + +VictoryRoad_2F_EventScript_ItemFullHeal:: + finditem ITEM_FULL_HEAL + end + +VictoryRoad_2F_EventScript_ItemTM37:: + finditem ITEM_TM37 + end + +VictoryRoad_3F_EventScript_ItemMaxRevive:: + finditem ITEM_MAX_REVIVE + end + +VictoryRoad_3F_EventScript_ItemTM50:: + finditem ITEM_TM50 + end + +CeruleanCave_1F_EventScript_ItemMaxElixir:: + finditem ITEM_MAX_ELIXIR + end + +CeruleanCave_1F_EventScript_ItemNugget:: + finditem ITEM_NUGGET + end + +CeruleanCave_1F_EventScript_ItemFullRestore:: + finditem ITEM_FULL_RESTORE + end + +CeruleanCave_2F_EventScript_ItemFullRestore:: + finditem ITEM_FULL_RESTORE + end + +CeruleanCave_2F_EventScript_ItemPPUp:: + finditem ITEM_PP_UP + end + +CeruleanCave_2F_EventScript_ItemUltraBall:: + finditem ITEM_ULTRA_BALL + end + +CeruleanCave_B1F_EventScript_ItemMaxRevive:: + finditem ITEM_MAX_REVIVE + end + +CeruleanCave_B1F_EventScript_ItemUltraBall:: + finditem ITEM_ULTRA_BALL + end + +FuchsiaCity_WardensHouse_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +TwoIsland_EventScript_ItemRevive:: + finditem ITEM_REVIVE + end + +ThreeIsland_EventScript_ItemZinc:: + finditem ITEM_ZINC + end + +ViridianForest_EventScript_ItemPotion2:: + finditem ITEM_POTION + end + +MtMoon_B2F_EventScript_ItemRevive:: + finditem ITEM_REVIVE + end + +MtMoon_B2F_EventScript_ItemAntidote:: + finditem ITEM_ANTIDOTE + end + +Route11_EventScript_ItemXDefend:: + finditem ITEM_X_DEFEND + end + +Route9_EventScript_ItemBurnHeal:: + finditem ITEM_BURN_HEAL + end + +RockTunnel_1F_EventScript_ItemRepel:: + finditem ITEM_REPEL + end + +RockTunnel_1F_EventScript_ItemPearl:: + finditem ITEM_PEARL + end + +RockTunnel_1F_EventScript_ItemEscapeRope:: + finditem ITEM_ESCAPE_ROPE + end + +RockTunnel_B1F_EventScript_ItemRevive:: + finditem ITEM_REVIVE + end + +RockTunnel_B1F_EventScript_ItemMaxEther:: + finditem ITEM_MAX_ETHER + end + +SilphCo_8F_EventScript_ItemIron:: + finditem ITEM_IRON + end + +SilphCo_11F_EventScript_ItemZinc:: + finditem ITEM_ZINC + end + +PokemonMansion_1F_EventScript_ItemProtein:: + finditem ITEM_PROTEIN + end + +PokemonMansion_2F_EventScript_ItemZinc:: + finditem ITEM_ZINC + end + +PokemonMansion_2F_EventScript_ItemHPUp:: + finditem ITEM_HP_UP + end + +ViridianCity_EventScript_ItemPotion:: + finditem ITEM_POTION + end + +Route11_EventScript_ItemGreatBall:: + finditem ITEM_GREAT_BALL + end + +Route11_EventScript_ItemAwakening:: + finditem ITEM_AWAKENING + end + +PokemonTower_5F_EventScript_ItemCleanseTag:: + finditem ITEM_CLEANSE_TAG + end + +CeladonCity_EventScript_ItemEther:: + finditem ITEM_ETHER + end + +RocketHideout_B3F_EventScript_ItemBlackGlasses:: + finditem ITEM_BLACK_GLASSES + end + +SafariZone_North_EventScript_ItemQuickClaw:: + finditem ITEM_QUICK_CLAW + end + +SeafoamIslands_1F_EventScript_ItemIceHeal:: + finditem ITEM_ICE_HEAL + end + +SeafoamIslands_B1F_EventScript_ItemWaterStone:: + finditem ITEM_WATER_STONE + end + +SeafoamIslands_B1F_EventScript_ItemRevive:: + finditem ITEM_REVIVE + end + +SeafoamIslands_B2F_EventScript_ItemBigPearl:: + finditem ITEM_BIG_PEARL + end + +SeafoamIslands_B4F_EventScript_ItemUltraBall:: + finditem ITEM_ULTRA_BALL + end + +FourIsland_EventScript_ItemStarPiece:: + finditem ITEM_STAR_PIECE + end + +FourIsland_EventScript_ItemStardust:: + finditem ITEM_STARDUST + end + +OneIsland_KindleRoad_EventScript_ItemEther:: + finditem ITEM_ETHER + end + +OneIsland_KindleRoad_EventScript_ItemMaxRepel:: + finditem ITEM_MAX_REPEL + end + +OneIsland_KindleRoad_EventScript_ItemCarbos:: + finditem ITEM_CARBOS + end + +FiveIsland_Meadow_EventScript_ItemMaxPotion:: + finditem ITEM_MAX_POTION + end + +FiveIsland_Meadow_EventScript_ItemPPUp:: + finditem ITEM_PP_UP + end + +FiveIsland_MemorialPillar_EventScript_ItemMetalCoat:: + finditem ITEM_METAL_COAT + end + +SixIsland_OutcastIsland_EventScript_ItemPPUp:: + finditem ITEM_PP_UP + end + +SixIsland_WaterPath_EventScript_ItemElixir:: + finditem ITEM_ELIXIR + end + +SixIsland_WaterPath_EventScript_ItemDragonScale:: + finditem ITEM_DRAGON_SCALE + end + +SixIsland_RuinValley_EventScript_ItemFullRestore:: + finditem ITEM_FULL_RESTORE + end + +SixIsland_RuinValley_EventScript_ItemHPUp:: + finditem ITEM_HP_UP + end + +SixIsland_RuinValley_EventScript_ItemSunStone:: + finditem ITEM_SUN_STONE + end + +SevenIsland_SevaultCanyon_EventScript_ItemKingsRock:: + finditem ITEM_KINGS_ROCK + end + +SevenIsland_SevaultCanyon_EventScript_ItemMaxElixir:: + finditem ITEM_MAX_ELIXIR + end + +SevenIsland_SevaultCanyon_EventScript_ItemNugget:: + finditem ITEM_NUGGET + end + +ThreeIsland_BerryForest_EventScript_ItemMaxEther:: + finditem ITEM_MAX_ETHER + end + +ThreeIsland_BerryForest_EventScript_ItemFullHeal:: + finditem ITEM_FULL_HEAL + end + +ThreeIsland_BerryForest_EventScript_ItemMaxElixir:: + finditem ITEM_MAX_ELIXIR + end + +MtEmber_Exterior_EventScript_ItemUltraBall:: + finditem ITEM_ULTRA_BALL + end + +MtEmber_Exterior_EventScript_ItemFireStone:: + finditem ITEM_FIRE_STONE + end + +MtEmber_Exterior_EventScript_ItemDireHit:: + finditem ITEM_DIRE_HIT + end + +FourIsland_IcefallCave_1F_EventScript_ItemUltraBall:: + finditem ITEM_ULTRA_BALL + end + +FourIsland_IcefallCave_1F_EventScript_ItemHM07:: + finditem ITEM_HM07 + end + +FourIsland_IcefallCave_B1F_EventScript_ItemFullRestore:: + finditem ITEM_FULL_RESTORE + end + +FourIsland_IcefallCave_B1F_EventScript_ItemNeverMeltIce:: + finditem ITEM_NEVER_MELT_ICE + end + +FiveIsland_RocketWarehouse_EventScript_ItemBigPearl:: + finditem ITEM_BIG_PEARL + end + +FiveIsland_RocketWarehouse_EventScript_ItemTM36:: + finditem ITEM_TM36 + end + +FiveIsland_RocketWarehouse_EventScript_ItemPearl:: + finditem ITEM_PEARL + end + +FiveIsland_RocketWarehouse_EventScript_ItemUpGrade:: + finditem ITEM_UP_GRADE + end + +FiveIsland_LostCave_Room10_EventScript_ItemSilkScarf:: + finditem ITEM_SILK_SCARF + end + +FiveIsland_LostCave_Room11_EventScript_ItemLaxIncense:: + finditem ITEM_LAX_INCENSE + end + +FiveIsland_LostCave_Room12_EventScript_ItemSeaIncense:: + finditem ITEM_SEA_INCENSE + end + +FiveIsland_LostCave_Room13_EventScript_ItemMaxRevive:: + finditem ITEM_MAX_REVIVE + end + +FiveIsland_LostCave_Room14_EventScript_ItemRareCandy:: + finditem ITEM_RARE_CANDY + end + +SevenIsland_SevaultCanyon_House_EventScript_ItemLuckyPunch:: + finditem ITEM_LUCKY_PUNCH + end + +SilphCo_4F_EventScript_ItemTM41:: + finditem ITEM_TM41 + end diff --git a/data/scripts/move_relearner.inc b/data/scripts/move_relearner.inc index 15c80733df06..8a4ae86cbf38 100644 --- a/data/scripts/move_relearner.inc +++ b/data/scripts/move_relearner.inc @@ -71,12 +71,13 @@ MoveRelearner_EventScript_TeachMove:: getpartysize goto_if_eq VAR_RESULT, 0, MoveRelearner_EventScript_NoPkmn msgbox MoveRelearner_Text_ChoosePkmn, MSGBOX_DEFAULT - special ChooseMonForMoveRelearner + chooseboxmon SELECT_PC_MON_MOVE_RELEARNER waitstate call_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, MoveRelearner_EventScript_AnythingElse special IsSelectedMonEgg - call_if_eq VAR_RESULT, YES, MoveRelearner_EventScript_CantTeachMoveToEgg - call_if_eq VAR_0x8005, NO, MoveRelearner_EventScript_CantTeachMoveToPkmn + call_if_eq VAR_RESULT, TRUE, MoveRelearner_EventScript_CantTeachMoveToEgg + special HasMovesToRelearn + call_if_eq VAR_RESULT, FALSE, MoveRelearner_EventScript_CantTeachMoveToPkmn msgbox MoveRelearner_Text_WhichXmoveShouldTeach, MSGBOX_DEFAULT special TeachMoveRelearnerMove waitstate diff --git a/data/scripts/move_tutors.inc b/data/scripts/move_tutors.inc index afb772bb1016..1748d1417b31 100644 --- a/data/scripts/move_tutors.inc +++ b/data/scripts/move_tutors.inc @@ -1,17 +1,8 @@ SlateportCity_PokemonFanClub_EventScript_SwaggerTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SWAGGER, MoveTutor_EventScript_SwaggerTaught - msgbox MoveTutor_Text_SwaggerTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SwaggerDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SwaggerDeclined - msgbox MoveTutor_Text_SwaggerWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_SWAGGER - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SwaggerDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_SWAGGER - goto MoveTutor_EventScript_SwaggerTaught + move_tutor MOVE_SWAGGER, MoveTutor_Text_SwaggerTeach, MoveTutor_Text_SwaggerWhichMon, MoveTutor_EventScript_SwaggerDeclined, MoveTutor_EventScript_SwaggerTaught, FLAG_MOVE_TUTOR_TAUGHT_SWAGGER + release end MoveTutor_EventScript_SwaggerDeclined:: @@ -27,17 +18,8 @@ MoveTutor_EventScript_SwaggerTaught:: MauvilleCity_EventScript_RolloutTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT, MoveTutor_EventScript_RolloutTaught - msgbox MoveTutor_Text_RolloutTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_RolloutDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_RolloutDeclined - msgbox MoveTutor_Text_RolloutWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_ROLLOUT - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_RolloutDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT - goto MoveTutor_EventScript_RolloutTaught + move_tutor MOVE_ROLLOUT, MoveTutor_Text_RolloutTeach, MoveTutor_Text_RolloutWhichMon, MoveTutor_EventScript_RolloutDeclined, MoveTutor_EventScript_RolloutTaught, FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT + release end MoveTutor_EventScript_RolloutDeclined:: @@ -53,17 +35,7 @@ MoveTutor_EventScript_RolloutTaught:: VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER, MoveTutor_EventScript_FuryCutterTaught - msgbox MoveTutor_Text_FuryCutterTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_FuryCutterDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_FuryCutterDeclined - msgbox MoveTutor_Text_FuryCutterWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_FURY_CUTTER - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_FuryCutterDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER - goto MoveTutor_EventScript_FuryCutterTaught + move_tutor MOVE_FURY_CUTTER, MoveTutor_Text_FuryCutterTeach, MoveTutor_Text_FuryCutterWhichMon, MoveTutor_EventScript_FuryCutterDeclined, MoveTutor_EventScript_FuryCutterTaught, FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER end MoveTutor_EventScript_FuryCutterDeclined:: @@ -79,17 +51,7 @@ MoveTutor_EventScript_FuryCutterTaught:: LavaridgeTown_House_EventScript_MimicTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_MIMIC, MoveTutor_EventScript_MimicTaught - msgbox MoveTutor_MimicTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MimicDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MimicDeclined - msgbox MoveTutor_Text_MimicWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_MIMIC - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MimicDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_MIMIC - goto MoveTutor_EventScript_MimicTaught + move_tutor MOVE_MIMIC, MoveTutor_MimicTeach, MoveTutor_Text_MimicWhichMon, MoveTutor_EventScript_MimicDeclined, MoveTutor_EventScript_MimicTaught, FLAG_MOVE_TUTOR_TAUGHT_MIMIC end MoveTutor_EventScript_MimicDeclined:: @@ -105,17 +67,7 @@ MoveTutor_EventScript_MimicTaught:: FallarborTown_Mart_EventScript_MetronomeTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_METRONOME, MoveTutor_EventScript_MetronomeTaught - msgbox MoveTutor_Text_MetronomeTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MetronomeDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MetronomeDeclined - msgbox MoveTutor_Text_MetronomeWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_METRONOME - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MetronomeDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_METRONOME - goto MoveTutor_EventScript_MetronomeTaught + move_tutor MOVE_METRONOME, MoveTutor_Text_MetronomeTeach, MoveTutor_Text_MetronomeWhichMon, MoveTutor_EventScript_MetronomeDeclined, MoveTutor_EventScript_MetronomeTaught, FLAG_MOVE_TUTOR_TAUGHT_METRONOME end MoveTutor_EventScript_MetronomeDeclined:: @@ -131,17 +83,7 @@ MoveTutor_EventScript_MetronomeTaught:: FortreeCity_House2_EventScript_SleepTalkTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK, MoveTutor_EventScript_SleepTalkTaught - msgbox MoveTutor_Text_SleepTalkTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SleepTalkDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SleepTalkDeclined - msgbox MoveTutor_Text_SleepTalkWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_SLEEP_TALK - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SleepTalkDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK - goto MoveTutor_EventScript_SleepTalkTaught + move_tutor MOVE_SLEEP_TALK, MoveTutor_Text_SleepTalkTeach, MoveTutor_Text_SleepTalkWhichMon, MoveTutor_EventScript_SleepTalkDeclined, MoveTutor_EventScript_SleepTalkTaught, FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK end MoveTutor_EventScript_SleepTalkDeclined:: @@ -157,17 +99,7 @@ MoveTutor_EventScript_SleepTalkTaught:: LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE, MoveTutor_EventScript_SubstituteTaught - msgbox MoveTutor_Text_SubstituteTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SubstituteDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SubstituteDeclined - msgbox MoveTutor_Text_SubstituteWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_SUBSTITUTE - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SubstituteDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE - goto MoveTutor_EventScript_SubstituteTaught + move_tutor MOVE_SUBSTITUTE, MoveTutor_Text_SubstituteTeach, MoveTutor_Text_SubstituteWhichMon, MoveTutor_EventScript_SubstituteDeclined, MoveTutor_EventScript_SubstituteTaught, FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE end MoveTutor_EventScript_SubstituteDeclined:: @@ -183,17 +115,7 @@ MoveTutor_EventScript_SubstituteTaught:: MossdeepCity_EventScript_DynamicPunchTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH, MoveTutor_EventScript_DynamicPunchTaught - msgbox MoveTutor_Text_DynamicPunchTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DynamicPunchDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DynamicPunchDeclined - msgbox MoveTutor_Text_DynamicPunchWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_DYNAMIC_PUNCH - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DynamicPunchDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH - goto MoveTutor_EventScript_DynamicPunchTaught + move_tutor MOVE_DYNAMIC_PUNCH, MoveTutor_Text_DynamicPunchTeach, MoveTutor_Text_DynamicPunchWhichMon, MoveTutor_EventScript_DynamicPunchDeclined, MoveTutor_EventScript_DynamicPunchTaught, FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH end MoveTutor_EventScript_DynamicPunchDeclined:: @@ -209,17 +131,7 @@ MoveTutor_EventScript_DynamicPunchTaught:: SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE, MoveTutor_EventScript_DoubleEdgeTaught - msgbox MoveTutor_Text_DoubleEdgeTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DoubleEdgeDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DoubleEdgeDeclined - msgbox MoveTutor_Text_DoubleEdgeWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_DOUBLE_EDGE - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DoubleEdgeDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE - goto MoveTutor_EventScript_DoubleEdgeTaught + move_tutor MOVE_DOUBLE_EDGE, MoveTutor_Text_DoubleEdgeTeach, MoveTutor_Text_DoubleEdgeWhichMon, MoveTutor_EventScript_DoubleEdgeDeclined, MoveTutor_EventScript_DoubleEdgeTaught, FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE end MoveTutor_EventScript_DoubleEdgeDeclined:: @@ -235,17 +147,7 @@ MoveTutor_EventScript_DoubleEdgeTaught:: PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor:: lock faceplayer - goto_if_set FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION, MoveTutor_EventScript_ExplosionTaught - msgbox MoveTutor_Text_ExplosionTeach, MSGBOX_YESNO - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_ExplosionDeclined - call MoveTutor_EventScript_CanOnlyBeLearnedOnce - goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_ExplosionDeclined - msgbox MoveTutor_Text_ExplosionWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, MOVE_EXPLOSION - call MoveTutor_EventScript_OpenPartyMenu - goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_ExplosionDeclined - setflag FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION - goto MoveTutor_EventScript_ExplosionTaught + move_tutor MOVE_EXPLOSION, MoveTutor_Text_ExplosionTeach, MoveTutor_Text_ExplosionWhichMon, MoveTutor_EventScript_ExplosionDeclined, MoveTutor_EventScript_ExplosionTaught, FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION end MoveTutor_EventScript_ExplosionDeclined:: @@ -265,6 +167,19 @@ MoveTutor_EventScript_OpenPartyMenu:: faceplayer return +MoveTutor_EventScript_OpenBox:: + chooseboxmon SELECT_PC_MON_MOVE_TUTOR + waitstate + lock + faceplayer + return + MoveTutor_EventScript_CanOnlyBeLearnedOnce:: msgbox MoveTutor_Text_ThisMoveCanOnlyBeLearnedOnce, MSGBOX_YESNO return + +MoveTutor_AfterChooseBoxMon:: + waitstate + special CanTeachMoveBoxMon + waitstate + return diff --git a/data/scripts/move_tutors_frlg.inc b/data/scripts/move_tutors_frlg.inc new file mode 100644 index 000000000000..2ed7902d1904 --- /dev/null +++ b/data/scripts/move_tutors_frlg.inc @@ -0,0 +1,580 @@ +VictoryRoad_2F_EventScript_DoubleEdgeTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_DOUBLE_EDGE, EventScript_DoubleEdgeTaught +.endif + msgbox Text_DoubleEdgeTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_DoubleEdgeDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_DoubleEdgeDeclined + msgbox Text_DoubleEdgeWhichMon + setvar VAR_0x8005, MOVE_DOUBLE_EDGE + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_DoubleEdgeDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_DOUBLE_EDGE +.endif + goto EventScript_DoubleEdgeTaught + end + +EventScript_DoubleEdgeDeclined:: + msgbox Text_DoubleEdgeDeclined + release + end + +EventScript_DoubleEdgeTaught:: + msgbox Text_DoubleEdgeTaught + release + end + +EventScript_ThunderWaveTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_THUNDER_WAVE, EventScript_ThunderWaveTaught +.endif + msgbox Text_ThunderWaveTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_ThunderWaveDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_ThunderWaveDeclined + msgbox Text_ThunderWaveWhichMon + setvar VAR_0x8005, MOVE_THUNDER_WAVE + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_ThunderWaveDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_THUNDER_WAVE +.endif + goto EventScript_ThunderWaveTaught + end + +EventScript_ThunderWaveDeclined:: + msgbox Text_ThunderWaveDeclined + release + end + +EventScript_ThunderWaveTaught:: + msgbox Text_ThunderWaveTaught + release + end + +RockTunnel_B1F_EventScript_RockSlideTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_ROCK_SLIDE, EventScript_RockSlideTaught +.endif + msgbox Text_RockSlideTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_RockSlideDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_RockSlideDeclined + msgbox Text_RockSlideWhichMon + setvar VAR_0x8005, MOVE_ROCK_SLIDE + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_RockSlideDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_ROCK_SLIDE +.endif + goto EventScript_RockSlideTaught + end + +EventScript_RockSlideDeclined:: + msgbox Text_RockSlideDeclined + release + end + +EventScript_RockSlideTaught:: + msgbox Text_RockSlideTaught + release + end + +MtEmber_Exterior_EventScript_ExplosionTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_EXPLOSION, EventScript_ExplosionTaught +.endif + msgbox Text_ExplosionTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_ExplosionDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_ExplosionDeclined + msgbox Text_ExplosionWhichMon + setvar VAR_0x8005, MOVE_EXPLOSION + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_ExplosionDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_EXPLOSION +.endif + goto EventScript_ExplosionTaught + end + +EventScript_ExplosionDeclined:: + msgbox Text_ExplosionDeclined + release + end + +EventScript_ExplosionTaught:: + msgbox Text_ExplosionTaught + release + end + +Route4_EventScript_MegaPunchTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_MEGA_PUNCH, EventScript_MegaPunchTaught +.endif + msgbox Text_MegaPunchTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_MegaPunchDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_MegaPunchDeclined + msgbox Text_MegaPunchWhichMon + setvar VAR_0x8005, MOVE_MEGA_PUNCH + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_MegaPunchDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_MEGA_PUNCH +.endif + goto EventScript_MegaPunchTaught + end + +EventScript_MegaPunchDeclined:: + msgbox Text_MegaPunchDeclined + release + end + +EventScript_MegaPunchTaught:: + msgbox Text_MegaPunchTaught + release + end + +Route4_EventScript_MegaKickTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_MEGA_KICK, EventScript_MegaKickTaught +.endif + msgbox Text_MegaKickTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_MegaKickDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_MegaKickDeclined + msgbox Text_MegaKickWhichMon + setvar VAR_0x8005, MOVE_MEGA_KICK + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_MegaKickDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_MEGA_KICK +.endif + goto EventScript_MegaKickTaught + end + +EventScript_MegaKickDeclined:: + msgbox Text_MegaKickDeclined + release + end + +EventScript_MegaKickTaught:: + msgbox Text_MegaKickTaught + release + end + +EventScript_DreamEaterTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_DREAM_EATER, EventScript_DreamEaterTaught +.endif + msgbox Text_DreamEaterTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_DreamEaterDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_DreamEaterDeclined + msgbox Text_DreamEaterWhichMon + setvar VAR_0x8005, MOVE_DREAM_EATER + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_DreamEaterDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_DREAM_EATER +.endif + goto EventScript_DreamEaterTaught + end + +EventScript_DreamEaterDeclined:: + msgbox Text_DreamEaterDeclined + release + end + +EventScript_DreamEaterTaught:: + msgbox Text_DreamEaterTaught + release + end + +EventScript_SoftboiledTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_SOFT_BOILED, EventScript_SoftboiledTaught +.endif + msgbox Text_SoftboiledTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_SoftboiledDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_SoftboiledDeclined + msgbox Text_SoftboiledWhichMon + setvar VAR_0x8005, MOVE_SOFT_BOILED + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_SoftboiledDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_SOFT_BOILED +.endif + goto EventScript_SoftboiledTaught + end + +EventScript_SoftboiledDeclined:: + msgbox Text_SoftboiledDeclined + release + end + +EventScript_SoftboiledTaught:: + msgbox Text_SoftboiledTaught + release + end + +FuchsiaCity_EventScript_SubstituteTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_SUBSTITUTE, EventScript_SubstituteTaught +.endif + msgbox Text_SubstituteTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_SubstituteDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_SubstituteDeclined + msgbox Text_SubstituteWhichMon + setvar VAR_0x8005, MOVE_SUBSTITUTE + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_SubstituteDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_SUBSTITUTE +.endif + goto EventScript_SubstituteTaught + end + +EventScript_SubstituteDeclined:: + msgbox Text_SubstituteDeclined + release + end + +EventScript_SubstituteTaught:: + msgbox Text_SubstituteTaught + release + end + +SevenIsland_EventScript_SwordsDanceTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_SWORDS_DANCE, EventScript_SwordsDanceTaught +.endif + msgbox Text_SwordsDanceTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_SwordsDanceDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_SwordsDanceDeclined + msgbox Text_SwordsDanceWhichMon + setvar VAR_0x8005, MOVE_SWORDS_DANCE + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_SwordsDanceDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_SWORDS_DANCE +.endif + goto EventScript_SwordsDanceTaught + end + +EventScript_SwordsDanceDeclined:: + msgbox Text_SwordsDanceDeclined + release + end + +EventScript_SwordsDanceTaught:: + msgbox Text_SwordsDanceTaught + release + end + +PewterCity_Museum_1F_EventScript_SeismicTossTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_SEISMIC_TOSS, EventScript_SeismicTossTaught +.endif + msgbox Text_SeismicTossTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_SeismicTossDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_SeismicTossDeclined + msgbox Text_SeismicTossWhichMon + setvar VAR_0x8005, MOVE_SEISMIC_TOSS + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_SeismicTossDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_SEISMIC_TOSS +.endif + goto EventScript_SeismicTossTaught + end + +EventScript_SeismicTossDeclined:: + msgbox Text_SeismicTossDeclined + release + end + +EventScript_SeismicTossTaught:: + msgbox Text_SeismicTossTaught + release + end + +EventScript_CounterTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_COUNTER, EventScript_CounterTaught +.endif + msgbox Text_CounterTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_CounterDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_CounterDeclined + msgbox Text_CounterWhichMon + setvar VAR_0x8005, MOVE_COUNTER + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_CounterDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_COUNTER +.endif + goto EventScript_CounterTaught + end + +EventScript_CounterDeclined:: + msgbox Text_CounterDeclined + release + end + +EventScript_CounterTaught:: + msgbox Text_CounterTaught + release + end + +EventScript_MetronomeTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_METRONOME, EventScript_MetronomeTaught +.endif + msgbox Text_MetronomeTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_MetronomeDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_MetronomeDeclined + msgbox Text_MetronomeWhichMon + setvar VAR_0x8005, MOVE_METRONOME + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_MetronomeDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_METRONOME +.endif + goto EventScript_MetronomeTaught + end + +EventScript_MetronomeDeclined:: + msgbox Text_MetronomeDeclined + release + end + +EventScript_MetronomeTaught:: + msgbox Text_MetronomeTaught + release + end + +EventScript_MimicTutor:: +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_MIMIC, EventScript_MimicTaught +.endif + msgbox Text_MimicTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_MimicDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_MimicDeclined + msgbox Text_MimicWhichMon + setvar VAR_0x8005, MOVE_MIMIC + call EventScript_ChooseMoveTutorMon + lock + faceplayer + goto_if_eq VAR_RESULT, 0, EventScript_MimicDeclined + removeitem ITEM_POKE_DOLL +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_MIMIC +.endif + goto EventScript_MimicTaught + end + +EventScript_MimicDeclined:: + msgbox Text_MimicDeclined + release + end + +EventScript_MimicTaught:: + checkplayergender + call_if_eq VAR_RESULT, MALE, EventScript_MimicTaughtMale + call_if_eq VAR_RESULT, FEMALE, EventScript_MimicTaughtFemale + release + end + +EventScript_MimicTaughtMale:: + msgbox Text_MimicTaughtMale + return + +EventScript_MimicTaughtFemale:: + msgbox Text_MimicTaughtFemale + return + +FourIsland_House1_EventScript_BodySlamTutor:: + lock + faceplayer +.if I_REUSABLE_TMS == FALSE + goto_if_set FLAG_TUTOR_BODY_SLAM, EventScript_BodySlamTaught +.endif + msgbox Text_BodySlamTeach, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, EventScript_BodySlamDeclined + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, EventScript_BodySlamDeclined + msgbox Text_BodySlamWhichMon + setvar VAR_0x8005, MOVE_BODY_SLAM + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, EventScript_BodySlamDeclined +.if I_REUSABLE_TMS == FALSE + setflag FLAG_TUTOR_BODY_SLAM +.endif + goto EventScript_BodySlamTaught + end + +EventScript_BodySlamDeclined:: + msgbox Text_BodySlamDeclined + release + end + +EventScript_BodySlamTaught:: + msgbox Text_BodySlamTaught + release + end + +TwoIsland_CapeBrink_House_EventScript_StarterTutor:: + lock + faceplayer + goto_if_set FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK, CapeBrinkTutor_EventScript_TaughtAllMoves + goto_if_set FLAG_TEMP_2, CapeBrinkTutor_EventScript_MoveJustTaught + bufferleadmonspeciesname STR_VAR_1 + msgbox Text_UltimateMoveThatMon + specialvar VAR_RESULT, CapeBrinkGetMoveToTeachLeadPokemon + goto_if_eq VAR_RESULT, FALSE, CapeBrinkTutor_EventScript_NoLeadStarter + copyvar VAR_0x8009, VAR_0x8005 + call_if_eq VAR_FACING, DIR_NORTH, CapeBrinkTutor_EventScript_JumpInPlaceDown + call_if_eq VAR_FACING, DIR_SOUTH, CapeBrinkTutor_EventScript_JumpInPlaceUp + call_if_eq VAR_FACING, DIR_EAST, CapeBrinkTutor_EventScript_JumpInPlaceLeft + call_if_eq VAR_FACING, DIR_WEST, CapeBrinkTutor_EventScript_JumpInPlaceRight + msgbox Text_AllowMeToTeachMonUltimateMove, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CapeBrinkTutor_EventScript_DeclineMove + call EventScript_CanOnlyBeLearnedOnce + goto_if_eq VAR_RESULT, NO, CapeBrinkTutor_EventScript_DeclineMove + msgbox Text_LetMeConferUltimateMove + closemessage + fadescreen FADE_TO_BLACK + goto CapeBrinkTutor_EventScript_ChooseMon + +CapeBrinkTutor_EventScript_MoveJustTaught:: + msgbox Text_MakeBestUseOfMove + release + end + +CapeBrinkTutor_EventScript_TaughtAllMoves:: + msgbox Text_FeelRejuvenated + release + end + +CapeBrinkTutor_EventScript_TaughtMove:: + copyvar VAR_0x8005, VAR_0x8009 + specialvar VAR_RESULT, HasLearnedAllMovesFromCapeBrinkTutor + goto_if_eq VAR_RESULT, TRUE, CapeBrinkTutor_EventScript_LearnedAllMoves + msgbox Text_TaughtMove + setflag FLAG_TEMP_2 + release + end + +CapeBrinkTutor_EventScript_LearnedAllMoves:: + msgbox Text_PassedOnEverythingIKnow + setflag FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK + release + end + +CapeBrinkTutor_EventScript_ChooseMon:: + call EventScript_ChooseMoveTutorMon + goto_if_eq VAR_RESULT, FALSE, CapeBrinkTutor_EventScript_DeclineMove + goto CapeBrinkTutor_EventScript_TaughtMove + end + +CapeBrinkTutor_EventScript_JumpInPlaceDown:: + applymovement LOCALID_CAPE_BRINK_TUTOR, Movement_JumpInPlaceDown + waitmovement 0 + return + +CapeBrinkTutor_EventScript_JumpInPlaceUp:: + applymovement LOCALID_CAPE_BRINK_TUTOR, Movement_JumpInPlaceUp + waitmovement 0 + return + +CapeBrinkTutor_EventScript_JumpInPlaceLeft:: + applymovement LOCALID_CAPE_BRINK_TUTOR, Movement_JumpInPlaceLeft + waitmovement 0 + return + +CapeBrinkTutor_EventScript_JumpInPlaceRight:: + applymovement LOCALID_CAPE_BRINK_TUTOR, Movement_JumpInPlaceRight + waitmovement 0 + return + +CapeBrinkTutor_EventScript_DeclineMove:: + msgbox Text_YouRejectIt + release + end + +CapeBrinkTutor_EventScript_NoLeadStarter:: + msgbox Text_JustMistaken + release + end + +EventScript_ChooseMoveTutorMon:: + special ChooseMonForMoveTutor + waitstate + lock + faceplayer + return + +EventScript_CanOnlyBeLearnedOnce:: + textcolor NPC_TEXT_COLOR_NEUTRAL + special DisableMsgBoxWalkaway + signmsg + msgbox Text_MoveCanOnlyBeLearnedOnce, MSGBOX_YESNO + normalmsg + call EventScript_RestorePrevTextColor + return + +Movement_JumpInPlaceDown: + jump_in_place_down + step_end + +Movement_JumpInPlaceUp: + jump_in_place_up + step_end + +Movement_JumpInPlaceLeft: + jump_in_place_left + step_end + +Movement_JumpInPlaceRight: + jump_in_place_right + step_end + +Text_MoveCanOnlyBeLearnedOnce:: + .string "This move can be learned only\n" + .string "once. Is that okay?$" diff --git a/data/scripts/movement.inc b/data/scripts/movement.inc index cf6ce3e9b282..786eb1723386 100644 --- a/data/scripts/movement.inc +++ b/data/scripts/movement.inc @@ -74,6 +74,14 @@ Common_Movement_WalkInPlaceRight: @ End of follower-safe movements Common_Movement_FollowerSafeEnd:: step_end + +Common_Movement_WalkUp5:: + walk_up + walk_up + walk_up + walk_up + walk_up + step_end Common_Movement_WalkUp6: walk_up @@ -108,61 +116,61 @@ Common_Movement_WalkUp2:: @ Follower NPC Common_Movement_WalkUpSlow:: - walk_slow_up - step_end + walk_slow_up + step_end Common_Movement_WalkDownSlow:: - walk_slow_down - step_end + walk_slow_down + step_end Common_Movement_WalkRightSlow:: - walk_slow_right - step_end + walk_slow_right + step_end Common_Movement_WalkLeftSlow:: - walk_slow_left - step_end + walk_slow_left + step_end Common_Movement_WalkDown:: - walk_down - step_end + walk_down + step_end Common_Movement_WalkRight:: - walk_right - step_end + walk_right + step_end Common_Movement_WalkLeft:: - walk_left - step_end + walk_left + step_end Common_Movement_WalkUpFast:: - walk_fast_up - step_end + walk_fast_up + step_end Common_Movement_WalkDownFast:: - walk_fast_down - step_end + walk_fast_down + step_end Common_Movement_WalkRightFast:: - walk_fast_right - step_end + walk_fast_right + step_end Common_Movement_WalkLeftFast:: - walk_fast_left - step_end + walk_fast_left + step_end Common_Movement_WalkUpFaster:: - walk_faster_up - step_end + walk_faster_up + step_end Common_Movement_WalkDownFaster:: - walk_faster_down - step_end + walk_faster_down + step_end Common_Movement_WalkRightFaster:: - walk_faster_right - step_end + walk_faster_right + step_end Common_Movement_WalkLeftFaster:: - walk_faster_left - step_end + walk_faster_left + step_end diff --git a/data/scripts/mystery_event_club.inc b/data/scripts/mystery_event_club.inc new file mode 100644 index 000000000000..ea9743ac95c0 --- /dev/null +++ b/data/scripts/mystery_event_club.inc @@ -0,0 +1,177 @@ +.equ GAVE_PROFILE, VAR_TEMP_1 + +MysteryEventClub_EventScript_Woman:: + lock + faceplayer + goto_if_eq GAVE_PROFILE, TRUE, EventScript_AlreadyGaveProfile + goto_if_set FLAG_SYS_SET_TRAINER_CARD_PROFILE, EventScript_GivenProfileBefore + msgbox Text_IdLoveToHearYourProfile + goto EventScript_AskForProfile + end + +EventScript_AlreadyGaveProfile: + msgbox Text_TellMoreNextTime + release + end + +EventScript_AskForProfile: + message Text_TellMeWhatsYourProfile + waitmessage + multichoice 18, 6, MULTI_YESNOINFO_2, FALSE + switch VAR_RESULT + case 0, EventScript_AcceptGiveProfile + case 1, EventScript_DeclineGiveProfile + case 2, EventScript_ProfileInfo + case MULTI_B_PRESSED, EventScript_DeclineGiveProfile + end + +EventScript_ProfileInfo: + msgbox Text_ExplainProfile + goto EventScript_AskForProfile + end + +EventScript_AcceptGiveProfile: + msgbox Text_WhatsYourProfile + closemessage + goto EventScript_GiveProfile + end + +EventScript_CancelGiveProfile: + msgbox Text_DecidedNotTo + release + end + +EventScript_GaveProfile: + setvar GAVE_PROFILE, TRUE + setvar VAR_0x8004, 0 + special ShowEasyChatProfile + waitmessage + delay 80 + msgbox Text_ProfileSaysSomethingAboutYou + release + end + +EventScript_DeclineGiveProfile: + msgbox Text_DontBeLikeThat + release + end + +EventScript_GivenProfileBefore: + msgbox Text_HiWeMeetAgain + goto EventScript_AskForNewProfile + end + +EventScript_AskForNewProfile: + message Text_ChangeYourProfile + waitmessage + multichoice 18, 6, MULTI_YESNOINFO_2, FALSE + switch VAR_RESULT + case 0, EventScript_AcceptGiveNewProfile + case 1, EventScript_DeclineGiveNewProfile + case 2, EventScript_ProfileInfo2 + @case MULTI_B_PRESSED, EventScript_DeclineGiveNewProfile + end + +EventScript_ProfileInfo2: + msgbox Text_ExplainProfile + goto EventScript_AskForNewProfile + end + +EventScript_AcceptGiveNewProfile: + msgbox Text_WhatAreYouLikeNow + closemessage + goto EventScript_GiveProfile + end + +EventScript_DeclineGiveNewProfile: + msgbox Text_LikeProfileWayItIs + release + end + +EventScript_GaveSpecialProfile: + setvar GAVE_PROFILE, TRUE + setvar VAR_0x8004, 0 + special ShowEasyChatProfile + waitmessage + delay 80 + msgbox Text_HeardThatBefore + release + end + +EventScript_GiveProfile: + setvar VAR_0x8004, EASY_CHAT_TYPE_PROFILE + call Common_ShowEasyChatScreen + lock + faceplayer + goto_if_eq VAR_0x8004, 0, EventScript_GaveSpecialProfile + goto_if_eq VAR_RESULT, FALSE, EventScript_CancelGiveProfile + goto_if_eq VAR_RESULT, TRUE, EventScript_GaveProfile + end + +Text_IdLoveToHearYourProfile: + .string "Hi, glad to meet you!\p" + .string "…That's unfriendly of you.\n" + .string "How about saying hi back?\p" + .string "So, come on, tell me about\n" + .string "yourself.\p" + .string "I'd love to hear your profile!$" + +Text_TellMeWhatsYourProfile: + .string "Tell me something good about\n" + .string "yourself. What's your profile?$" + +Text_ExplainProfile: + .string "A profile is written using four\n" + .string "words or phrases.\p" + .string "There're plenty of words to choose\n" + .string "from for your profile.\p" + .string "The words and phrases are placed\n" + .string "in several convenient groups.\p" + .string "First, choose a group, then choose\n" + .string "a word or phrase.\p" + .string "…It's easier than it sounds.\n" + .string "Why don't you try it?$" + +Text_WhatsYourProfile: + .string "What's your profile?$" + +Text_DontBeLikeThat: + .string "Aww… Don't be like that.\n" + .string "You can tell me your profile.$" + +Text_DecidedNotTo: + .string "Oh, you've decided not to?\n" + .string "You're fickle, aren't you?$" + +Text_HiWeMeetAgain: + .string "Hi!\n" + .string "We meet again!$" + +Text_ChangeYourProfile: + .string "Would you like to change your\n" + .string "profile?$" + +Text_WhatAreYouLikeNow: + .string "What are you like now?\n" + .string "I'd really like to know.$" + +Text_LikeProfileWayItIs: + .string "Okay, you like your profile the\n" + .string "way it is.\p" + .string "I think so, too.$" + +Text_ProfileSaysSomethingAboutYou: + .string "Hmhm…\p" + .string "Your profile really says something\n" + .string "about who you are.\p" + .string "Now that I know you better, it \n" + .string "makes us better friends than ever!$" + +Text_HeardThatBefore: + .string "Oh, I've heard that before…\p" + .string "My cousin, who lives far away,\n" + .string "always used to say that, I think.$" + +Text_TellMoreNextTime: + .string "Please tell me more about\n" + .string "yourself next time!$" diff --git a/data/scripts/new_game.inc b/data/scripts/new_game.inc index 1803199e4285..bf0b8cd03d28 100644 --- a/data/scripts/new_game.inc +++ b/data/scripts/new_game.inc @@ -274,3 +274,56 @@ EventScript_ResetAllMapFlags:: setflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL call EventScript_ResetAllBerries end + +EventScript_ResetAllMapFlagsFrlg:: + setflag FLAG_HIDE_OAK_IN_HIS_LAB + setflag FLAG_HIDE_OAK_IN_PALLET_TOWN + setflag FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE + setflag FLAG_HIDE_PEWTER_CITY_RUNNING_SHOES_GUY + setflag FLAG_HIDE_POKEHOUSE_FUJI + setflag FLAG_HIDE_LIFT_KEY + setflag FLAG_HIDE_SILPH_SCOPE + setflag FLAG_HIDE_CERULEAN_RIVAL + setflag FLAG_HIDE_SS_ANNE_RIVAL + setflag FLAG_HIDE_VERMILION_CITY_OAKS_AIDE + setflag FLAG_HIDE_SAFFRON_CIVILIANS + setflag FLAG_HIDE_ROUTE_22_RIVAL + setflag FLAG_HIDE_OAK_IN_CHAMP_ROOM + setflag FLAG_HIDE_CREDITS_RIVAL + setflag FLAG_HIDE_CREDITS_OAK + setflag FLAG_HIDE_CINNABAR_BILL + setflag FLAG_HIDE_CINNABAR_SEAGALLOP + setflag FLAG_HIDE_CINNABAR_POKECENTER_BILL + setflag FLAG_HIDE_LORELEI_IN_HER_HOUSE + setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT + setflag FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER + setflag FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN + setflag FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY + setflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE + setflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER + setflag FLAG_HIDE_TWO_ISLAND_WOMAN + setflag FLAG_HIDE_TWO_ISLAND_BEAUTY + setflag FLAG_HIDE_TWO_ISLAND_SUPER_NERD + setflag FLAG_HIDE_LOSTELLE_IN_HER_HOME + setflag FLAG_HIDE_THREE_ISLAND_LONE_BIKER + setflag FLAG_HIDE_FOUR_ISLAND_RIVAL + setflag FLAG_HIDE_DOTTED_HOLE_SCIENTIST + setflag FLAG_HIDE_RESORT_GORGEOUS_SELPHY + setflag FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY + setflag FLAG_HIDE_SELPHYS_BUTLER + setflag FLAG_HIDE_DEOXYS + setflag FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL + setflag FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL + setflag FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL + setflag FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL + setflag FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL + setflag FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL + setflag FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL + setflag FLAG_HIDE_LORELEIS_HOUSE_LAPRAS_DOLL + setflag FLAG_HIDE_POSTGAME_GOSSIPERS + setflag FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS + setflag FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL + setflag FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL + setflag FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS + setvar VAR_MASSAGE_COOLDOWN_STEP_COUNTER, 500 + end diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 3eb7f4f0d4ed..8fc4105fee08 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -175,8 +175,9 @@ EventScript_NoRoomToPickUpItem:: EventScript_HiddenItemScript:: lockall waitse + goto_if_eq VAR_0x8005, 0, EventScript_TryPickUpHiddenCoins copyvar VAR_0x8006, VAR_0x8005 - additem VAR_0x8005 + additem VAR_0x8005, VAR_0x8009 copyvar VAR_0x8007, VAR_RESULT bufferitemnameplural STR_VAR_2, VAR_0x8005, 1 checkitemtype VAR_0x8005 @@ -200,10 +201,20 @@ EventScript_FoundHiddenTMHM:: end EventScript_FoundHiddenItem:: - message gText_PlayerFoundOneItem + call_if_eq VAR_0x8009, 1, EventScript_FoundSingleItem + call_if_ne VAR_0x8009, 1, EventScript_FoundMultipleItems goto EventScript_PutHiddenItemInPocket end +EventScript_FoundSingleItem:: + message gText_PlayerFoundOneItem + return + +EventScript_FoundMultipleItems:: + buffernumberstring STR_VAR_1, VAR_0x8009 + message gText_FoundXItems + return + EventScript_PutHiddenItemInPocket:: callnative Script_ClearDowsingColor delay 10 @@ -226,3 +237,82 @@ EventScript_NoRoomForHiddenItem:: setvar VAR_RESULT, 0 releaseall end + +EventScript_RestorePrevTextColor:: + copyvar VAR_TEXT_COLOR, VAR_PREV_TEXT_COLOR + return + +Std_PutItemAway:: + bufferitemnameplural STR_VAR_2, VAR_0x8000, VAR_0x8001 + checkitemtype VAR_0x8000 + call EventScript_BufferPutAwayPocketName + msgbox gText_PutItemInPocket + return + +EventScript_BufferPutAwayPocketName:: + switch VAR_RESULT + case POCKET_ITEMS, EventScript_BufferPutAwayPocketItems + case POCKET_KEY_ITEMS, EventScript_BufferPutAwayPocketKeyItems + case POCKET_POKE_BALLS, EventScript_BufferPutAwayPocketPokeBalls + case POCKET_TM_HM, EventScript_BufferPutAwayPocketTMCase + case POCKET_BERRIES, EventScript_BufferPutAwayPocketBerryPouch + end + +EventScript_BufferPutAwayPocketItems:: + bufferstdstring STR_VAR_3, STDSTRING_ITEMS + return + +EventScript_BufferPutAwayPocketKeyItems:: + bufferstdstring STR_VAR_3, STDSTRING_KEYITEMS + return + +EventScript_BufferPutAwayPocketPokeBalls:: + bufferstdstring STR_VAR_3, STDSTRING_POKEBALLS + return + +EventScript_BufferPutAwayPocketTMCase:: + bufferstdstring STR_VAR_3, STDSTRING_TMHMS + return + +EventScript_BufferPutAwayPocketBerryPouch:: + bufferstdstring STR_VAR_3, STDSTRING_BERRIES + return + +EventScript_TryPickUpHiddenCoins:: + goto_if_unset FLAG_GOT_COIN_CASE, EventScript_NoCaseForHiddenCoins + checkcoins VAR_RESULT + specialvar VAR_RESULT, CheckAddCoins + goto_if_eq VAR_RESULT, FALSE, EventScript_HiddenCoinsButCaseIsFull + addcoins VAR_0x8009 + bufferstdstring STR_VAR_2, STDSTRING_COINS + call EventScript_PlayFanfareObtainedItem + call EventScript_FoundCoins + waitfanfare + waitmessage + msgbox gText_PutCoinsAwayInCoinCase + special SetHiddenItemFlag + releaseall + end + +EventScript_FoundCoins:: + buffernumberstring STR_VAR_1, VAR_0x8009 + message gText_FoundXCoins + return + +EventScript_HiddenCoinsButCaseIsFull:: + buffernumberstring STR_VAR_1, VAR_0x8009 + bufferstdstring STR_VAR_2, STDSTRING_COINS + msgbox gText_FoundXCoins + msgbox gText_CoinCaseIsFull + setvar VAR_RESULT, 0 + releaseall + end + +EventScript_NoCaseForHiddenCoins:: + buffernumberstring STR_VAR_1, VAR_0x8009 + bufferstdstring STR_VAR_2, STDSTRING_COINS + msgbox gText_FoundXCoins + msgbox gText_NothingToPutThemIn + setvar VAR_RESULT, 0 + releaseall + end diff --git a/data/scripts/pc.inc b/data/scripts/pc.inc index e4e37f5b4309..1261251c0cbe 100644 --- a/data/scripts/pc.inc +++ b/data/scripts/pc.inc @@ -47,7 +47,11 @@ EventScript_AccessSomeonesPC:: return EventScript_AccessLanettesPC:: +#if IS_FRLG + msgbox gText_AccessedBillsPC, MSGBOX_DEFAULT +#else msgbox gText_AccessedLanettesPC, MSGBOX_DEFAULT +#endif return EventScript_TurnOffPC:: diff --git a/data/scripts/pc_transfer.inc b/data/scripts/pc_transfer.inc index f279740caa3c..a1321140fa43 100644 --- a/data/scripts/pc_transfer.inc +++ b/data/scripts/pc_transfer.inc @@ -7,7 +7,8 @@ Common_EventScript_GetGiftMonPartySlot:: Common_EventScript_NameReceivedBoxMon:: fadescreen FADE_TO_BLACK - special ChangeBoxPokemonNickname + setvar VAR_0x8004, PC_MON_CHOSEN + special ChangePokemonNickname waitstate lock faceplayer diff --git a/data/scripts/pkmn_center_nurse_frlg.inc b/data/scripts/pkmn_center_nurse_frlg.inc new file mode 100644 index 000000000000..18570d301633 --- /dev/null +++ b/data/scripts/pkmn_center_nurse_frlg.inc @@ -0,0 +1,81 @@ +EventScript_PkmnCenterNurse_Frlg:: + message Text_WelcomeWantToHealPkmn_Frlg + waitmessage + multichoice 19, 8, MULTI_YESNO, FALSE | (TRUE << 1) + switch VAR_RESULT + case 0, EventScript_PkmnCenterNurse_HealPkmn_Frlg + case 1 EventScript_PkmnCenterNurse_Goodbye_Frlg + case MULTI_B_PRESSED, EventScript_PkmnCenterNurse_Goodbye_Frlg + end + +EventScript_PkmnCenterNurse_HealPkmn_Frlg:: + incrementgamestat GAME_STAT_USED_POKECENTER + message Text_TakeYourPkmnForFewSeconds_Frlg + waitmessage + call EventScript_PkmnCenterNurse_TakeAndHealPkmn_Frlg + goto EventScript_PkmnCenterNurse_CheckTrainerTowerAndUnionRoom_Frlg + end + +EventScript_PkmnCenterNurse_TakeAndHealPkmn_Frlg:: + applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + dofieldeffect FLDEFF_POKECENTER_HEAL + waitfieldeffect FLDEFF_POKECENTER_HEAL + applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + special HealPlayerParty + return + +EventScript_PkmnCenterNurse_CheckTrainerTowerAndUnionRoom_Frlg:: + specialvar VAR_RESULT, IsPlayerNotInTrainerTowerLobby + goto_if_eq VAR_RESULT, FALSE, EventScript_PkmnCenterNurse_ReturnPkmn_Frlg + specialvar VAR_RESULT, BufferUnionRoomPlayerName + copyvar VAR_0x8008, VAR_RESULT + goto_if_eq VAR_0x8008, 0, EventScript_PkmnCenterNurse_ReturnPkmn_Frlg + goto_if_eq VAR_0x8008, 1, EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom_Frlg + end + +EventScript_PkmnCenterNurse_ReturnPkmn_Frlg:: + message Text_RestoredPkmnToFullHealth_Frlg + waitmessage + applymovement VAR_LAST_TALKED, Movement_Bow + waitmovement 0 + msgbox Text_WeHopeToSeeYouAgain_Frlg + return + +EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom_Frlg:: + goto_if_set FLAG_NURSE_UNION_ROOM_REMINDER, EventScript_PkmnCenterNurse_ReturnPkmn_Frlg + msgbox Text_RestoredPkmnToFullHealth_Frlg + setflag FLAG_NURSE_UNION_ROOM_REMINDER + message Text_PlayerIsPlayingRightNowGoForIt_Frlg + waitmessage + applymovement VAR_LAST_TALKED, Movement_Bow + waitmovement 0 + msgbox Text_WeHopeToSeeYouAgain_Frlg + return + +EventScript_PkmnCenterNurse_Goodbye_Frlg:: + msgbox Text_WeHopeToSeeYouAgain_Frlg + return + +Movement_Bow:: + nurse_joy_bow + delay_4 + step_end + +Text_WelcomeWantToHealPkmn_Frlg:: + .string "Welcome to our POKéMON CENTER!\p" + .string "Would you like me to heal your\n" + .string "POKéMON back to perfect health?$" + +Text_TakeYourPkmnForFewSeconds_Frlg:: + .string "Okay, I'll take your POKéMON for a\n" + .string "few seconds.$" + +Text_WeHopeToSeeYouAgain_Frlg:: + .string "We hope to see you again!$" + +Text_RestoredPkmnToFullHealth_Frlg:: + .string "Thank you for waiting.\n" + .string "We've restored your POKéMON to\l" + .string "full health.$" diff --git a/data/scripts/pokedex_rating.inc b/data/scripts/pokedex_rating.inc new file mode 100644 index 000000000000..7fd777cf37c0 --- /dev/null +++ b/data/scripts/pokedex_rating.inc @@ -0,0 +1,72 @@ +PokedexRating_EventScript_RateInPerson:: + call_if_set FLAG_OAK_SAW_DEX_COMPLETION, PokedexRating_EventScript_DexCompleteIntro + call_if_unset FLAG_OAK_SAW_DEX_COMPLETION, PokedexRating_EventScript_NormalIntro + call PokedexRating_EventScript_Rate + return + +PokedexRating_EventScript_DexCompleteIntro:: + msgbox PokedexRating_Text_LoveSeeingYourPokedex + return + +PokedexRating_EventScript_NormalIntro:: + msgbox PokedexRating_Text_HowIsPokedexComingAlong + return + +PokedexRating_EventScript_ShowRatingMsg:: + copyvar VAR_0x8004, VAR_0x8009 + special GetProfOaksRatingMessage + waitmessage + call_if_eq VAR_RESULT, FALSE, PokedexRating_EventScript_NormalFanfare + call_if_eq VAR_RESULT, TRUE, PokedexRating_EventScript_DexCompleteFanfare + waitfanfare + waitbuttonpress + return + +PokedexRating_EventScript_NormalFanfare:: + playfanfare MUS_RG_DEX_RATING + return + +PokedexRating_EventScript_DexCompleteFanfare:: + playfanfare MUS_EVOLVED + return + +PokedexRating_EventScript_Rate:: + specialvar VAR_RESULT, GetFrlgPokedexCount + copyvar VAR_0x8008, VAR_0x8005 + copyvar VAR_0x8009, VAR_0x8006 + copyvar VAR_0x800A, VAR_RESULT + buffernumberstring STR_VAR_1, VAR_0x8008 @ Num Kanto Seen + buffernumberstring STR_VAR_2, VAR_0x8009 @ Num Kanto Caught + msgbox PokedexRating_Text_SeenXOwnedY + call_if_unset FLAG_OAKS_RATING_IS_VIA_PC, PokedexRating_EventScript_SetTextColor + call PokedexRating_EventScript_ShowRatingMsg + goto_if_eq VAR_0x800A, FALSE, PokedexRating_EventScript_EndRating @ National Dex not enabled + setvar VAR_0x8004, 1 + specialvar VAR_RESULT, GetFrlgPokedexCount + copyvar VAR_0x8008, VAR_0x8005 + copyvar VAR_0x8009, VAR_0x8006 + buffernumberstring STR_VAR_1, VAR_0x8008 @ Num National Seen + buffernumberstring STR_VAR_2, VAR_0x8009 @ Num National Caught + msgbox PokedexRating_Text_NationalDexSeenXOwnedY + specialvar VAR_RESULT, HasAllMons + goto_if_eq VAR_RESULT, FALSE, PokedexRating_EventScript_DexIncomplete + goto_if_eq VAR_RESULT, TRUE, PokedexRating_EventScript_DexComplete + end + +PokedexRating_EventScript_SetTextColor:: + textcolor NPC_TEXT_COLOR_MALE + return + +PokedexRating_EventScript_DexIncomplete:: + msgbox PokedexRating_Text_LookForwardToFilledNationalDex + goto PokedexRating_EventScript_EndRating + end + +PokedexRating_EventScript_DexComplete:: + setflag FLAG_OAK_SAW_DEX_COMPLETION + msgbox PokedexRating_Text_YouveCompletedDex + goto PokedexRating_EventScript_EndRating + end + +PokedexRating_EventScript_EndRating:: + return diff --git a/data/scripts/pokemon_league.inc b/data/scripts/pokemon_league.inc new file mode 100644 index 000000000000..8bcb145ba80b --- /dev/null +++ b/data/scripts/pokemon_league.inc @@ -0,0 +1,68 @@ +PokemonLeague_EventScript_OpenDoor:: + applymovement LOCALID_PLAYER, Common_Movement_Delay32 + waitmovement 0 + playse SE_DOOR + call PokemonLeague_EventScript_SetDoorOpen + special DrawWholeMapView + setflag FLAG_TEMP_4 + return + +PokemonLeague_EventScript_EnterRoom:: + applymovement LOCALID_PLAYER, Common_Movement_WalkUp5 + waitmovement 0 + setflag FLAG_TEMP_2 + playse SE_UNLOCK + call PokemonLeague_EventScript_CloseEntry + special DrawWholeMapView + return + +PokemonLeague_EventScript_SetDoorOpen:: + setmetatile 6, 1, METATILE_PokemonLeague_Door_Top_Open, 1 + setmetatile 6, 2, METATILE_PokemonLeague_Door_Mid_Open, 0 + return + +PokemonLeague_EventScript_PreventExit:: + lockall + textcolor NPC_TEXT_COLOR_MALE + msgbox Text_VoiceRangOutDontRunAway + closemessage + applymovement LOCALID_PLAYER, PokemonLeague_Movement_ForcePlayerIn + waitmovement 0 + releaseall + end + +PokemonLeague_EventScript_OpenDoorLance:: + applymovement LOCALID_PLAYER, Common_Movement_Delay32 + waitmovement 0 + playse SE_DOOR + setmetatile 6, 4, METATILE_PokemonLeague_Door_Top_Open, 1 + setmetatile 6, 5, METATILE_PokemonLeague_Door_Mid_Open, 0 + special DrawWholeMapView + setflag FLAG_TEMP_4 + return + +PokemonLeague_EventScript_SetDoorOpenLance:: + setmetatile 6, 4, METATILE_PokemonLeague_Door_Top_Open, 1 + setmetatile 6, 5, METATILE_PokemonLeague_Door_Mid_Open, 0 + return + +PokemonLeague_EventScript_CloseEntry:: + setmetatile 5, 11, METATILE_PokemonLeague_Entry_TopLeft_Closed, 1 + setmetatile 6, 11, METATILE_PokemonLeague_Entry_TopMid_Closed, 1 + setmetatile 7, 11, METATILE_PokemonLeague_Entry_TopRight_Closed, 1 + setmetatile 5, 12, METATILE_PokemonLeague_Entry_BottomLeft_Closed, 1 + setmetatile 6, 12, METATILE_PokemonLeague_Entry_BottomMid_Closed, 1 + setmetatile 7, 12, METATILE_PokemonLeague_Entry_BottomRight_Closed, 1 + return + +PokemonLeague_Movement_ForcePlayerIn:: + walk_up + step_end + +PokemonLeague_EventScript_DoLightingEffect:: + special DoPokemonLeagueLightingEffect + return + +Text_VoiceRangOutDontRunAway:: + .string "Someone's voice rang out,\n" + .string "“Don't run away!”$" diff --git a/data/scripts/pokemon_mansion.inc b/data/scripts/pokemon_mansion.inc new file mode 100644 index 000000000000..3c648dbfdf5d --- /dev/null +++ b/data/scripts/pokemon_mansion.inc @@ -0,0 +1,206 @@ +PokemonMansion_EventScript_SecretSwitch:: + msgbox PokemonMansion_Text_PressSecretSwitch, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, PokemonMansion_EventScript_DontPressSwitch + msgbox PokemonMansion_Text_WhoWouldnt + goto_if_set FLAG_POKEMON_MANSION_SWITCH_STATE, PokemonMansion_EventScript_ResetSwitch + setflag FLAG_POKEMON_MANSION_SWITCH_STATE + switch VAR_0x8004 + case 0, PokemonMansion_EventScript_PressSwitch_1F + case 1, PokemonMansion_EventScript_PressSwitch_2F + case 2, PokemonMansion_EventScript_PressSwitch_3F + case 3, PokemonMansion_EventScript_PressSwitch_B1F + end + +PokemonMansion_EventScript_ResetSwitch:: + clearflag FLAG_POKEMON_MANSION_SWITCH_STATE + switch VAR_0x8004 + case 0, PokemonMansion_EventScript_ResetSwitch_1F + case 1, PokemonMansion_EventScript_ResetSwitch_2F + case 2, PokemonMansion_EventScript_ResetSwitch_3F + case 3, PokemonMansion_EventScript_ResetSwitch_B1F + end + +PokemonMansion_EventScript_DontPressSwitch:: + msgbox PokemonMansion_Text_NotQuiteYet + releaseall + end + +PokemonMansion_EventScript_PressSwitch_1F:: + setmetatile 22, 10, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 23, 10, METATILE_PokemonMansion_Floor, 0 + setmetatile 24, 10, METATILE_PokemonMansion_Floor, 0 + setmetatile 22, 11, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 23, 11, METATILE_PokemonMansion_Floor, 0 + setmetatile 24, 11, METATILE_PokemonMansion_Floor, 0 + setmetatile 27, 25, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 28, 25, METATILE_PokemonMansion_Floor, 0 + setmetatile 29, 25, METATILE_PokemonMansion_Floor, 0 + setmetatile 27, 26, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 28, 26, METATILE_PokemonMansion_Floor, 0 + setmetatile 29, 26, METATILE_PokemonMansion_Floor, 0 + setmetatile 32, 25, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 33, 25, METATILE_PokemonMansion_Floor, 0 + setmetatile 34, 25, METATILE_PokemonMansion_Floor, 0 + setmetatile 32, 26, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 33, 26, METATILE_PokemonMansion_Floor, 0 + setmetatile 34, 26, METATILE_PokemonMansion_Floor, 0 + setmetatile 31, 18, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 32, 18, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 33, 18, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 31, 19, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft, 1 + setmetatile 32, 19, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid, 1 + setmetatile 33, 19, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight, 1 + setmetatile 5, 4, METATILE_PokemonMansion_Statue_RedEyes, 0 + return + +PokemonMansion_EventScript_ResetSwitch_1F:: + setmetatile 22, 10, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 23, 10, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 24, 10, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 22, 11, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft, 1 + setmetatile 23, 11, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid, 1 + setmetatile 24, 11, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight, 1 + setmetatile 27, 25, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 28, 25, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 29, 25, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 27, 26, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft, 1 + setmetatile 28, 26, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid, 1 + setmetatile 29, 26, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight, 1 + setmetatile 32, 25, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 33, 25, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 34, 25, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 32, 26, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft, 1 + setmetatile 33, 26, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid, 1 + setmetatile 34, 26, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight, 1 + setmetatile 31, 18, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 32, 18, METATILE_PokemonMansion_Floor, 0 + setmetatile 33, 18, METATILE_PokemonMansion_Floor, 0 + setmetatile 31, 19, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 32, 19, METATILE_PokemonMansion_Floor, 0 + setmetatile 33, 19, METATILE_PokemonMansion_Floor, 0 + setmetatile 5, 4, METATILE_PokemonMansion_Statue_BlackEyes, 0 + return + +PokemonMansion_EventScript_PressSwitch_2F:: + setmetatile 24, 14, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 25, 14, METATILE_PokemonMansion_Floor, 0 + setmetatile 26, 14, METATILE_PokemonMansion_Floor, 0 + setmetatile 24, 15, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 25, 15, METATILE_PokemonMansion_Floor, 0 + setmetatile 26, 15, METATILE_PokemonMansion_Floor, 0 + setmetatile 10, 28, METATILE_PokemonMansion_Wall_EndPost_Mid, 1 + setmetatile 10, 29, METATILE_PokemonMansion_Wall_EndPost_Bottom, 1 + setmetatile 10, 30, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 10, 31, METATILE_PokemonMansion_Floor, 0 + setmetatile 10, 32, METATILE_PokemonMansion_Wall_EndCap, 0 + setmetatile 12, 4, METATILE_PokemonMansion_Barrier_Vertical_TopWall, 1 + setmetatile 12, 5, METATILE_PokemonMansion_Barrier_Vertical_TopBase, 1 + setmetatile 12, 6, METATILE_PokemonMansion_Barrier_Vertical_MidShadow, 1 + setmetatile 12, 7, METATILE_PokemonMansion_Barrier_Vertical_Mid, 1 + setmetatile 12, 8, METATILE_PokemonMansion_Barrier_Vertical_Bottom, 1 + setmetatile 2, 15, METATILE_PokemonMansion_Statue_RedEyes, 0 + return + +PokemonMansion_EventScript_ResetSwitch_2F:: + setmetatile 24, 14, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 25, 14, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 26, 14, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 24, 15, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft, 1 + setmetatile 25, 15, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid, 1 + setmetatile 26, 15, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight, 1 + setmetatile 10, 28, METATILE_PokemonMansion_Barrier_Vertical_TopWall, 1 + setmetatile 10, 29, METATILE_PokemonMansion_Barrier_Vertical_TopBase, 1 + setmetatile 10, 30, METATILE_PokemonMansion_Barrier_Vertical_MidShadow, 1 + setmetatile 10, 31, METATILE_PokemonMansion_Barrier_Vertical_Mid, 1 + setmetatile 10, 32, METATILE_PokemonMansion_Barrier_Vertical_Bottom, 1 + setmetatile 12, 4, METATILE_PokemonMansion_Wall_EndPost_Mid, 1 + setmetatile 12, 5, METATILE_PokemonMansion_Wall_EndPost_Bottom, 1 + setmetatile 12, 6, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 12, 7, METATILE_PokemonMansion_Floor, 0 + setmetatile 12, 8, METATILE_PokemonMansion_Wall_EndCap, 0 + setmetatile 2, 15, METATILE_PokemonMansion_Statue_BlackEyes, 0 + return + +PokemonMansion_EventScript_PressSwitch_3F:: + setmetatile 17, 11, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 18, 11, METATILE_PokemonMansion_Floor, 0 + setmetatile 19, 11, METATILE_PokemonMansion_Floor, 0 + setmetatile 17, 12, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 18, 12, METATILE_PokemonMansion_Floor, 0 + setmetatile 19, 12, METATILE_PokemonMansion_Floor, 0 + setmetatile 21, 4, METATILE_PokemonMansion_Barrier_Vertical_TopWall, 1 + setmetatile 21, 5, METATILE_PokemonMansion_Barrier_Vertical_TopBase, 1 + setmetatile 21, 6, METATILE_PokemonMansion_Barrier_Vertical_MidShadow, 1 + setmetatile 21, 7, METATILE_PokemonMansion_Barrier_Vertical_Mid, 1 + setmetatile 21, 8, METATILE_PokemonMansion_Barrier_Vertical_Bottom, 1 + setmetatile 12, 4, METATILE_PokemonMansion_Statue_RedEyes, 0 + return + +PokemonMansion_EventScript_ResetSwitch_3F:: + setmetatile 17, 11, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 18, 11, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 19, 11, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 17, 12, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft, 1 + setmetatile 18, 12, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid, 1 + setmetatile 19, 12, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight, 1 + setmetatile 21, 4, METATILE_PokemonMansion_Wall_EndPost_Mid, 1 + setmetatile 21, 5, METATILE_PokemonMansion_Wall_EndPost_Bottom, 1 + setmetatile 21, 6, METATILE_PokemonMansion_Floor_ShadeFull, 0 + setmetatile 21, 7, METATILE_PokemonMansion_Floor, 0 + setmetatile 21, 8, METATILE_PokemonMansion_Wall_EndCap, 0 + setmetatile 12, 4, METATILE_PokemonMansion_Statue_BlackEyes, 0 + return + +PokemonMansion_EventScript_PressSwitch_B1F:: + setmetatile 33, 20, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 34, 20, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 35, 20, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 33, 21, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft_Basement, 1 + setmetatile 34, 21, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid_Basement, 1 + setmetatile 35, 21, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight_Basement, 1 + setmetatile 16, 26, METATILE_PokemonMansion_Barrier_Vertical_TopWall, 1 + setmetatile 16, 27, METATILE_PokemonMansion_Barrier_Vertical_TopBase, 1 + setmetatile 16, 28, METATILE_PokemonMansion_Barrier_Vertical_MidShadow_Basement, 1 + setmetatile 16, 29, METATILE_PokemonMansion_Barrier_Vertical_Mid_Basement, 1 + setmetatile 16, 30, METATILE_PokemonMansion_Barrier_Vertical_Bottom_Basement, 1 + setmetatile 12, 8, METATILE_PokemonMansion_Wall_EndPost_Mid, 1 + setmetatile 12, 9, METATILE_PokemonMansion_Wall_EndPost_Bottom, 1 + setmetatile 12, 10, METATILE_PokemonMansion_BasementFloor_ShadeFull, 0 + setmetatile 12, 11, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 12, 12, METATILE_PokemonMansion_Wall_EndCap_Basement, 0 + setmetatile 20, 22, METATILE_PokemonMansion_BasementFloor_ShadeFull, 0 + setmetatile 21, 22, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 22, 22, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 20, 23, METATILE_PokemonMansion_BasementFloor_ShadeFull, 0 + setmetatile 21, 23, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 22, 23, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 24, 28, METATILE_PokemonMansion_Statue_RedEyes_Basement, 0 + setmetatile 27, 4, METATILE_PokemonMansion_Statue_RedEyes_Basement, 0 + return + +PokemonMansion_EventScript_ResetSwitch_B1F:: + setmetatile 33, 20, METATILE_PokemonMansion_BasementFloor_ShadeFull, 0 + setmetatile 34, 20, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 35, 20, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 33, 21, METATILE_PokemonMansion_BasementFloor_ShadeFull, 0 + setmetatile 34, 21, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 35, 21, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 16, 26, METATILE_PokemonMansion_Wall_EndPost_Mid, 1 + setmetatile 16, 27, METATILE_PokemonMansion_Wall_EndPost_Bottom, 1 + setmetatile 16, 28, METATILE_PokemonMansion_BasementFloor_ShadeFull, 0 + setmetatile 16, 29, METATILE_PokemonMansion_BasementFloor, 0 + setmetatile 16, 30, METATILE_PokemonMansion_Wall_EndCap_Basement, 0 + setmetatile 12, 8, METATILE_PokemonMansion_Barrier_Vertical_TopWall, 1 + setmetatile 12, 9, METATILE_PokemonMansion_Barrier_Vertical_TopBase, 1 + setmetatile 12, 10, METATILE_PokemonMansion_Barrier_Vertical_MidShadow_Basement, 1 + setmetatile 12, 11, METATILE_PokemonMansion_Barrier_Vertical_Mid_Basement, 1 + setmetatile 12, 12, METATILE_PokemonMansion_Barrier_Vertical_Bottom_Basement, 1 + setmetatile 20, 22, METATILE_PokemonMansion_Barrier_Horizontal_TopLeft, 1 + setmetatile 21, 22, METATILE_PokemonMansion_Barrier_Horizontal_TopMid, 1 + setmetatile 22, 22, METATILE_PokemonMansion_Barrier_Horizontal_TopRight, 1 + setmetatile 20, 23, METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft_Basement, 1 + setmetatile 21, 23, METATILE_PokemonMansion_Barrier_Horizontal_BottomMid_Basement, 1 + setmetatile 22, 23, METATILE_PokemonMansion_Barrier_Horizontal_BottomRight_Basement, 1 + setmetatile 24, 28, METATILE_PokemonMansion_Statue_BlackEyes_Basement, 0 + setmetatile 27, 4, METATILE_PokemonMansion_Statue_BlackEyes_Basement, 0 + return diff --git a/data/scripts/roulette.inc b/data/scripts/roulette.inc index fcb09bef2789..694fa445b629 100644 --- a/data/scripts/roulette.inc +++ b/data/scripts/roulette.inc @@ -22,46 +22,3 @@ Roulette_EventScript_Play:: special PlayRoulette waitstate end - -Roulette_Text_PlayMinimumWagerIsX:: - .string "The minimum wager at this table\n" - .string "is {STR_VAR_1}. Do you want to play?$" - -Roulette_Text_NotEnoughCoins:: - .string "You don't have enough COINS.$" - -Roulette_Text_SpecialRateTable:: - .string "Special rate table right now!$" - -Roulette_Text_ControlsInstruction:: - .string "Place your wager with the + Control\n" - .string "Pad, then press the A Button.$" - -Roulette_Text_ItsAHit:: - .string "It's a hit!$" - -Roulette_Text_Jackpot:: - .string "Jackpot!$" - -Roulette_Text_NothingDoing:: - .string "Nothing doing!$" - -Roulette_Text_YouveWonXCoins:: - .string "You've won {STR_VAR_1} COINS!$" - -Roulette_Text_NoCoinsLeft:: - .string "No COINS left…$" - -Roulette_Text_KeepPlaying:: - .string "Keep playing?$" - -Roulette_Text_BoardWillBeCleared:: - .string "The ROULETTE board will be cleared.$" - -@ Unused -Roulette_Text_YouDontHaveACoinCase:: - .string "You don't have a COIN CASE.$" - -Roulette_Text_CoinCaseIsFull:: - .string "Your COIN CASE is full!\n" - .string "Coins can be exchanged for prizes.$" diff --git a/data/scripts/route23.inc b/data/scripts/route23.inc new file mode 100644 index 000000000000..16d58856d97b --- /dev/null +++ b/data/scripts/route23.inc @@ -0,0 +1,242 @@ +Route23_EventScript_MissingBoulderBadge:: + msgbox Text_OnlySkilledTrainersAllowedThrough + playse SE_BOO + msgbox Text_CantLetYouPass + release + end + +Route23_EventScript_MissingBadge:: + message Text_OnlyPassWithBadgeDontHaveYet + waitmessage + playse SE_BOO + waitbuttonpress + closemessage + waitse + release + end + +Route23_EventScript_AlreadyRecognizedBoulderBadge:: + message Text_OhThatsBadgeGoRightAhead + waitmessage + playfanfare MUS_LEVEL_UP + waitfanfare + waitbuttonpress + release + end + +Route23_EventScript_AlreadyRecognizedBadge:: + msgbox Text_OnlyPassWithBadgeOhGoAhead + release + end + +@ Duplicate of the below, only used for Boulder Badge +Route22_NorthEntrance_EventScript_BadgeGuard:: + goto_if_ge VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1, Route23_EventScript_AlreadyRecognizedBoulderBadge + switch VAR_TEMP_1 + case 1, Route23_EventScript_CheckBoulderBadge + case 2, Route23_EventScript_CheckCascadeBadge + case 3, Route23_EventScript_CheckThunderBadge + case 4, Route23_EventScript_CheckRainbowBadge + case 5, Route23_EventScript_CheckSoulBadge + case 6, Route23_EventScript_CheckMarshBadge + case 7, Route23_EventScript_CheckVolcanoBadge + case 8, Route23_EventScript_CheckEarthBadge + end + +Route23_EventScript_BadgeGuard:: + goto_if_ge VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1, Route23_EventScript_AlreadyRecognizedBadge + switch VAR_TEMP_1 + case 1, Route23_EventScript_CheckBoulderBadge + case 2, Route23_EventScript_CheckCascadeBadge + case 3, Route23_EventScript_CheckThunderBadge + case 4, Route23_EventScript_CheckRainbowBadge + case 5, Route23_EventScript_CheckSoulBadge + case 6, Route23_EventScript_CheckMarshBadge + case 7, Route23_EventScript_CheckVolcanoBadge + case 8, Route23_EventScript_CheckEarthBadge + end + +Route23_EventScript_CheckBoulderBadge:: + goto_if_set FLAG_BADGE01_GET, Route23_EventScript_RecognizeBoulderBadge + goto Route23_EventScript_MissingBoulderBadge + end + +Route23_EventScript_CheckCascadeBadge:: + goto_if_set FLAG_BADGE02_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_CheckThunderBadge:: + goto_if_set FLAG_BADGE03_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_CheckRainbowBadge:: + goto_if_set FLAG_BADGE04_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_CheckSoulBadge:: + goto_if_set FLAG_BADGE05_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_CheckMarshBadge:: + goto_if_set FLAG_BADGE06_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_CheckVolcanoBadge:: + goto_if_set FLAG_BADGE07_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_CheckEarthBadge:: + goto_if_set FLAG_BADGE08_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge + end + +Route23_EventScript_RecognizeBoulderBadge:: + message Text_OhThatsBadgeGoRightAhead + waitmessage + playfanfare MUS_LEVEL_UP + waitfanfare + waitbuttonpress + copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 + release + end + +Route23_EventScript_RecognizeBadge:: + msgbox Text_OnlyPassWithBadgeOhGoAhead + copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 + release + end + +Route23_EventScript_BadgeGuardTrigger:: + textcolor NPC_TEXT_COLOR_MALE + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterLeft + waitmovement 0 + switch VAR_TEMP_1 + case 1, Route23_EventScript_CheckBoulderBadgeTrigger + case 2, Route23_EventScript_CheckCascadeBadgeTrigger + case 3, Route23_EventScript_CheckThunderBadgeTrigger + case 4, Route23_EventScript_CheckRainbowBadgeTrigger + case 5, Route23_EventScript_CheckSoulBadgeTrigger + case 6, Route23_EventScript_CheckMarshBadgeTrigger + case 7, Route23_EventScript_CheckVolcanoBadgeTrigger + case 8, Route23_EventScript_CheckEarthBadgeTrigger + end + +Route23_EventScript_CheckBoulderBadgeTrigger:: + goto_if_set FLAG_BADGE01_GET, Route23_EventScript_RecognizeBoulderBadgeTrigger + goto Route23_EventScript_MissingBoulderBadgeTrigger + end + +Route23_EventScript_CheckCascadeBadgeTrigger:: + goto_if_set FLAG_BADGE02_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_CheckThunderBadgeTrigger:: + goto_if_set FLAG_BADGE03_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_CheckRainbowBadgeTrigger:: + goto_if_set FLAG_BADGE04_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_CheckSoulBadgeTrigger:: + goto_if_set FLAG_BADGE05_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_CheckMarshBadgeTrigger:: + goto_if_set FLAG_BADGE06_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_CheckVolcanoBadgeTrigger:: + goto_if_set FLAG_BADGE07_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_CheckEarthBadgeTrigger:: + goto_if_set FLAG_BADGE08_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger + end + +Route23_EventScript_MissingBoulderBadgeTrigger:: + msgbox Text_OnlySkilledTrainersAllowedThrough + playse SE_BOO + msgbox Text_CantLetYouPass + closemessage + applymovement LOCALID_PLAYER, Route23_Movement_WalkDown + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + releaseall + end + +Route23_EventScript_MissingBadgeTrigger:: + message Text_OnlyPassWithBadgeDontHaveYet + waitmessage + playse SE_BOO + waitbuttonpress + closemessage + waitse + applymovement LOCALID_PLAYER, Route23_Movement_WalkDown + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterDown + waitmovement 0 + releaseall + end + +Route23_EventScript_RecognizeBoulderBadgeTrigger:: + message Text_OhThatsBadgeGoRightAhead + waitmessage + playfanfare MUS_LEVEL_UP + waitfanfare + waitbuttonpress + copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 + releaseall + end + +Route23_EventScript_RecognizeBadgeTrigger:: + msgbox Text_OnlyPassWithBadgeOhGoAhead + copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 + releaseall + end + +Route23_Movement_WalkDown:: + walk_down + step_end + +Text_OnlySkilledTrainersAllowedThrough:: + .string "Only truly skilled TRAINERS are\n" + .string "allowed through.\p" + .string "You don't have the {STR_VAR_1}\n" + .string "yet!$" + +Text_CantLetYouPass:: + .string "Rules are rules.\n" + .string "I can't let you pass.$" + +Text_OhThatsBadgeGoRightAhead:: + .string "Oh! That is the {STR_VAR_1}!\n" + .string "Go right ahead.$" + +Text_OnlyPassWithBadgeDontHaveYet:: + .string "You can pass here only if you have\n" + .string "the {STR_VAR_1}.\p" + .string "You don't have the {STR_VAR_1}\n" + .string "yet.\p" + .string "You have to have it to get to\n" + .string "the POKéMON LEAGUE.$" + +Text_OnlyPassWithBadgeOhGoAhead:: + .string "You can pass here only if you have\n" + .string "the {STR_VAR_1}.\p" + .string "Oh! That is the {STR_VAR_1}!{PAUSE_MUSIC}{PLAY_BGM}{MUS_LEVEL_UP}{PAUSE 0x60}{RESUME_MUSIC}\p" + .string "Okay, then.\n" + .string "Please, go right ahead.$" + diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index 77e795a0eb99..3f528019a207 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -1,13 +1,29 @@ SafariZone_EventScript_OutOfBallsMidBattle:: +#ifdef IS_FRLG + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3 +#else setvar VAR_SAFARI_ZONE_STATE, 1 +#endif special ExitSafariMode +#ifdef IS_FRLG + setwarp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 4, 1 +#else setwarp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 2, 5 +#endif end SafariZone_EventScript_Exit:: +#ifdef IS_FRLG + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1 +#else setvar VAR_SAFARI_ZONE_STATE, 1 +#endif special ExitSafariMode +#ifdef IS_FRLG + warp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 4, 1 +#else warp MAP_ROUTE121_SAFARI_ZONE_ENTRANCE, 2, 5 +#endif waitstate end diff --git a/data/scripts/seagallop.inc b/data/scripts/seagallop.inc new file mode 100644 index 000000000000..0d60c0f23595 --- /dev/null +++ b/data/scripts/seagallop.inc @@ -0,0 +1,199 @@ +@ Separate selection menus for before the Rainbow Pass is obtained +EventScript_ChooseDestFromOneIsland:: + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, EventScript_SeviiDestinationsPage1 + goto_if_ge VAR_MAP_SCENE_CINNABAR_ISLAND, 4, EventScript_ChooseDestFromOneIslandVermilionAllowed + multichoice 19, 6, MULTI_ISLAND_23, FALSE + switch VAR_RESULT + case 0, EventScript_SailToTwoIsland2 + case 1, EventScript_SailToThreeIsland2 + case 2, EventScript_CancelSail + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_ChooseDestFromOneIslandVermilionAllowed:: + multichoice 19, 5, MULTI_SEAGALLOP_V23, FALSE + switch VAR_RESULT + case 0, EventScript_SailToVermilion2 + case 1, EventScript_SailToTwoIsland2 + case 2, EventScript_SailToThreeIsland2 + case 3, EventScript_CancelSail + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_ChooseDestFromTwoIsland:: + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, EventScript_SeviiDestinationsPage1 + goto_if_ge VAR_MAP_SCENE_CINNABAR_ISLAND, 4, EventScript_ChooseDestFromTwoIslandVermilionAllowed + multichoice 19, 6, MULTI_ISLAND_13, FALSE + switch VAR_RESULT + case 0, EventScript_SailToOneIsland2 + case 1, EventScript_SailToThreeIsland2 + case 2, EventScript_CancelSail + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_ChooseDestFromTwoIslandVermilionAllowed:: + multichoice 19, 5, MULTI_SEAGALLOP_V13, FALSE + switch VAR_RESULT + case 0, EventScript_SailToVermilion2 + case 1, EventScript_SailToOneIsland2 + case 2, EventScript_SailToThreeIsland2 + case 3, EventScript_CancelSail + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_SailToVermilion2:: + setvar VAR_0x8006, SEAGALLOP_VERMILION_CITY + goto EventScript_SailToDest + end + +EventScript_SailToOneIsland2:: + setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToTwoIsland2:: + setvar VAR_0x8006, SEAGALLOP_TWO_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToThreeIsland2:: + setvar VAR_0x8006, SEAGALLOP_THREE_ISLAND + goto EventScript_SailToDest + end + +EventScript_ChooseDestFromIsland:: + goto_if_ge VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 5, EventScript_SeviiDestinationsPage1 + goto_if_ge VAR_MAP_SCENE_CINNABAR_ISLAND, 4, EventScript_ChooseDestFromIslandVermilionAllowed + multichoice 19, 6, MULTI_ISLAND_12, FALSE + switch VAR_RESULT + case 0, EventScript_SailToOneIsland2 + case 1, EventScript_SailToTwoIsland2 + case 2, EventScript_CancelSail + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_ChooseDestFromIslandVermilionAllowed:: + multichoice 19, 5, MULTI_SEAGALLOP_V12, FALSE + switch VAR_RESULT + case 0, EventScript_SailToVermilion2 + case 1, EventScript_SailToOneIsland2 + case 2, EventScript_SailToTwoIsland2 + case 3, EventScript_CancelSail + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_SailToDest:: + specialvar VAR_RESULT, GetSeagallopNumber + buffernumberstring STR_VAR_1, VAR_RESULT + goto_if_eq VAR_0x8004, SEAGALLOP_VERMILION_CITY, EventScript_DepartingVermilion + goto_if_ne VAR_0x8004, SEAGALLOP_VERMILION_CITY, EventScript_DepartingNotVermilion + end + +EventScript_DepartingVermilion:: + msgbox VermilionCity_Text_Seagallop7Departing + goto EventScript_SetSail + end + +EventScript_DepartingNotVermilion:: + msgbox Text_AllAboardSeagallopNum + goto EventScript_SetSail + end + +EventScript_SetSail:: + closemessage + delay 20 + fadescreen FADE_TO_BLACK + special DoSeagallopFerryScene + waitstate + end + +EventScript_CancelSail:: + specialvar VAR_RESULT, IsPlayerLeftOfVermilionSailor + goto_if_eq VAR_RESULT, TRUE, VermilionCity_EventScript_WalkUpPier + release + end + +VermilionCity_EventScript_WalkUpPier:: + closemessage + applymovement LOCALID_VERMILION_FERRY_SAILOR, Common_Movement_FaceOriginalDirection + applymovement LOCALID_PLAYER, VermilionCity_Movement_WalkUp + waitmovement 0 + releaseall + end + +VermilionCity_Movement_WalkUp:: + walk_up + step_end + +EventScript_SeviiDestinationsPage1:: + setvar VAR_0x8005, 0 + special DrawSeagallopDestinationMenu + waitstate + specialvar VAR_0x8006, GetSelectedSeagallopDestination + switch VAR_0x8006 + case SEAGALLOP_VERMILION_CITY, EventScript_SailToVermilionCity + case SEAGALLOP_ONE_ISLAND, EventScript_SailToOneIsland + case SEAGALLOP_TWO_ISLAND, EventScript_SailToTwoIsland + case SEAGALLOP_THREE_ISLAND, EventScript_SailToThreeIsland + case SEAGALLOP_FOUR_ISLAND, EventScript_SailToFourIsland + case SEAGALLOP_MORE, EventScript_SeviiDestinationsPage2 + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_SeviiDestinationsPage2:: + setvar VAR_0x8005, 1 + special DrawSeagallopDestinationMenu + waitstate + specialvar VAR_0x8006, GetSelectedSeagallopDestination + switch VAR_0x8006 + case SEAGALLOP_FOUR_ISLAND, EventScript_SailToFourIsland + case SEAGALLOP_FIVE_ISLAND, EventScript_SailToFiveIsland + case SEAGALLOP_SIX_ISLAND, EventScript_SailToSixIsland + case SEAGALLOP_SEVEN_ISLAND, EventScript_SailToSevenIsland + case SEAGALLOP_MORE, EventScript_SeviiDestinationsPage1 + case MULTI_B_PRESSED, EventScript_CancelSail + end + +EventScript_SailToVermilionCity:: + setvar VAR_0x8006, SEAGALLOP_VERMILION_CITY + goto EventScript_SailToDest + end + +EventScript_SailToOneIsland:: + setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToTwoIsland:: + setvar VAR_0x8006, SEAGALLOP_TWO_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToThreeIsland:: + setvar VAR_0x8006, SEAGALLOP_THREE_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToFourIsland:: + setvar VAR_0x8006, SEAGALLOP_FOUR_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToFiveIsland:: + setvar VAR_0x8006, SEAGALLOP_FIVE_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToSixIsland:: + setvar VAR_0x8006, SEAGALLOP_SIX_ISLAND + goto EventScript_SailToDest + end + +EventScript_SailToSevenIsland:: + setvar VAR_0x8006, SEAGALLOP_SEVEN_ISLAND + goto EventScript_SailToDest + end + +Text_AllAboardSeagallopNum:: + .string "All right!\n" + .string "All aboard SEAGALLOP HI-SPEED {STR_VAR_1}!$" diff --git a/data/scripts/set_gym_trainers.inc b/data/scripts/set_gym_trainers.inc index 1faa9f7d5bca..d9cc41485b52 100644 --- a/data/scripts/set_gym_trainers.inc +++ b/data/scripts/set_gym_trainers.inc @@ -9,6 +9,18 @@ Common_EventScript_SetGymTrainers:: case 7, MossdeepCity_Gym_SetGymTrainers case 8, SootopolisCity_Gym_SetGymTrainers end + +Common_EventScript_SetGymTrainers_Frlg:: + switch VAR_0x8008 + case 1, EventScript_SetPewterGymTrainers + case 2, EventScript_SetCeruleanGymTrainers + case 3, EventScript_SetVermilionGymTrainers + case 4, EventScript_SetCeladonGymTrainers + case 5, EventScript_SetFuchsiaGymTrainers + case 6, EventScript_SetSaffronGymTrainers + case 7, EventScript_SetCinnabarGymTrainers + case 8, EventScript_SetViridianGymTrainers + end RustboroCity_Gym_SetGymTrainers:: settrainerflag TRAINER_JOSH @@ -90,3 +102,68 @@ SootopolisCity_Gym_SetGymTrainers:: settrainerflag TRAINER_ANNIKA settrainerflag TRAINER_DAPHNE return + +EventScript_SetPewterGymTrainers:: + settrainerflag TRAINER_CAMPER_LIAM + return + +EventScript_SetCeruleanGymTrainers:: + settrainerflag TRAINER_PICNICKER_DIANA + settrainerflag TRAINER_SWIMMER_MALE_LUIS + return + +EventScript_SetVermilionGymTrainers:: + settrainerflag TRAINER_SAILOR_DWAYNE + settrainerflag TRAINER_ENGINEER_BAILY + settrainerflag TRAINER_GENTLEMAN_TUCKER + return + +EventScript_SetCeladonGymTrainers:: + settrainerflag TRAINER_LASS_KAY + settrainerflag TRAINER_LASS_LISA + settrainerflag TRAINER_PICNICKER_TINA + settrainerflag TRAINER_BEAUTY_BRIDGET + settrainerflag TRAINER_BEAUTY_TAMIA + settrainerflag TRAINER_BEAUTY_LORI + settrainerflag TRAINER_COOLTRAINER_MARY + return + +EventScript_SetFuchsiaGymTrainers:: + settrainerflag TRAINER_TAMER_PHIL + settrainerflag TRAINER_TAMER_EDGAR + settrainerflag TRAINER_JUGGLER_KIRK + settrainerflag TRAINER_JUGGLER_SHAWN + settrainerflag TRAINER_JUGGLER_KAYDEN + settrainerflag TRAINER_JUGGLER_NATE + return + +EventScript_SetSaffronGymTrainers:: + settrainerflag TRAINER_PSYCHIC_JOHAN + settrainerflag TRAINER_PSYCHIC_TYRON + settrainerflag TRAINER_PSYCHIC_CAMERON + settrainerflag TRAINER_PSYCHIC_PRESTON + settrainerflag TRAINER_CHANNELER_AMANDA + settrainerflag TRAINER_CHANNELER_STACY + settrainerflag TRAINER_CHANNELER_TASHA + return + +EventScript_SetCinnabarGymTrainers:: + settrainerflag TRAINER_SUPER_NERD_ERIK + settrainerflag TRAINER_SUPER_NERD_AVERY + settrainerflag TRAINER_SUPER_NERD_DEREK + settrainerflag TRAINER_SUPER_NERD_ZAC + settrainerflag TRAINER_BURGLAR_QUINN + settrainerflag TRAINER_BURGLAR_RAMON + settrainerflag TRAINER_BURGLAR_DUSTY + return + +EventScript_SetViridianGymTrainers:: + settrainerflag TRAINER_TAMER_JASON + settrainerflag TRAINER_TAMER_COLE + settrainerflag TRAINER_BLACK_BELT_ATSUSHI + settrainerflag TRAINER_BLACK_BELT_KIYO + settrainerflag TRAINER_BLACK_BELT_TAKASHI + settrainerflag TRAINER_COOLTRAINER_SAMUEL + settrainerflag TRAINER_COOLTRAINER_YUJI + settrainerflag TRAINER_COOLTRAINER_WARREN + return diff --git a/data/scripts/silphco_doors.inc b/data/scripts/silphco_doors.inc new file mode 100644 index 000000000000..89ffe10e51b3 --- /dev/null +++ b/data/scripts/silphco_doors.inc @@ -0,0 +1,555 @@ +EventScript_NeedCardKey:: + msgbox Text_ItNeedsCardKey + releaseall + end + +EventScript_DoorUnlocked:: + msgbox Text_TheDoorIsOpen + releaseall + end + +EventScript_Close2FDoor1:: + setmetatile 5, 8, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 6, 8, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 5, 9, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 6, 9, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 6, 10, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close2FDoor2:: + setmetatile 5, 15, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 6, 15, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 5, 16, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 6, 16, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 6, 17, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close3FDoor1:: + setmetatile 9, 11, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 10, 11, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 9, 12, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 10, 12, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 9, 13, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 10, 13, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close3FDoor2:: + setmetatile 20, 11, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 21, 11, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 20, 12, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 21, 12, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 20, 13, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 21, 13, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close4FDoor1:: + setmetatile 3, 16, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 4, 16, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 3, 17, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 4, 17, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 4, 18, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close4FDoor2:: + setmetatile 14, 11, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 15, 11, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 14, 12, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 15, 12, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 15, 13, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close5FDoor1:: @ 81AMETATILE_SilphCo_Floor_WallRightCornerF + setmetatile 7, 8, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 8, 8, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 7, 9, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 8, 9, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 7, 10, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 8, 10, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close5FDoor2:: + setmetatile 7, 17, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 8, 17, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 7, 18, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 8, 18, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 7, 19, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 8, 19, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close5FDoor3:: + setmetatile 18, 12, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 19, 12, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 18, 13, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 19, 13, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 18, 14, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 19, 14, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close6FDoor:: + setmetatile 5, 14, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 6, 14, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 5, 15, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 6, 15, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 5, 16, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 6, 16, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close7FDoor1:: + setmetatile 11, 8, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 12, 8, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 11, 9, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 12, 9, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 12, 10, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close7FDoor2:: + setmetatile 24, 7, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 25, 7, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 24, 8, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 25, 8, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 25, 9, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close7FDoor3:: + setmetatile 25, 13, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 26, 13, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 25, 14, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 26, 14, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 26, 15, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close8FDoor:: + setmetatile 5, 9, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 6, 9, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 5, 10, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 6, 10, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 5, 11, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 6, 11, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close9FDoor1:: + setmetatile 2, 9, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 3, 9, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 2, 10, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 3, 10, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 2, 11, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 3, 11, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close9FDoor2:: + setmetatile 12, 15, METATILE_SilphCo_VerticalBarrier_TopLeft, 1 + setmetatile 13, 15, METATILE_SilphCo_VerticalBarrier_TopRight, 1 + setmetatile 12, 16, METATILE_SilphCo_VerticalBarrier_MidLeft, 1 + setmetatile 13, 16, METATILE_SilphCo_VerticalBarrier_MidRight, 1 + setmetatile 12, 17, METATILE_SilphCo_VerticalBarrier_BottomLeft, 1 + setmetatile 13, 17, METATILE_SilphCo_VerticalBarrier_BottomRight, 1 + return + +EventScript_Close9FDoor3:: + setmetatile 21, 6, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 22, 6, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 21, 7, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 22, 7, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 22, 8, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close9FDoor4:: + setmetatile 21, 12, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 22, 12, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 21, 13, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 22, 13, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 22, 14, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close10FDoor:: + setmetatile 12, 11, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 13, 11, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 12, 12, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 13, 12, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 13, 13, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Close11FDoor:: + setmetatile 5, 16, METATILE_SilphCo_HorizontalBarrier_TopLeft, 1 + setmetatile 6, 16, METATILE_SilphCo_HorizontalBarrier_TopRight, 1 + setmetatile 5, 17, METATILE_SilphCo_HorizontalBarrier_BottomLeft, 1 + setmetatile 6, 17, METATILE_SilphCo_HorizontalBarrier_BottomRight, 1 + setmetatile 6, 18, METATILE_SilphCo_Floor_ShadeFull, 0 + return + +EventScript_Open2FDoor1:: + setmetatile 5, 8, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 8, METATILE_SilphCo_Floor, 0 + setmetatile 5, 9, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 9, METATILE_SilphCo_Floor, 0 + setmetatile 6, 10, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open2FDoor2:: + setmetatile 5, 15, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 15, METATILE_SilphCo_Floor, 0 + setmetatile 5, 16, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 16, METATILE_SilphCo_Floor, 0 + setmetatile 6, 17, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open3FDoor1:: + setmetatile 9, 11, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 10, 11, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 9, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 10, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 9, 13, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 10, 13, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open3FDoor2:: + setmetatile 20, 11, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 21, 11, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 20, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 21, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 20, 13, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 21, 13, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open4FDoor1:: + setmetatile 3, 16, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 4, 16, METATILE_SilphCo_Floor, 0 + setmetatile 3, 17, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 4, 17, METATILE_SilphCo_Floor, 0 + setmetatile 4, 18, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open4FDoor2:: + setmetatile 14, 11, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 15, 11, METATILE_SilphCo_Floor, 0 + setmetatile 14, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 15, 12, METATILE_SilphCo_Floor, 0 + setmetatile 15, 13, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open5FDoor1:: + setmetatile 7, 8, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 8, 8, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 7, 9, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 8, 9, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 7, 10, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 8, 10, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open5FDoor2:: + setmetatile 7, 17, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 8, 17, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 7, 18, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 8, 18, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 7, 19, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 8, 19, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open5FDoor3:: + setmetatile 18, 12, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 19, 12, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 18, 13, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 19, 13, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 18, 14, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 19, 14, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open6FDoor:: + setmetatile 5, 14, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 6, 14, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 5, 15, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 15, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 5, 16, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 6, 16, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open7FDoor1:: + setmetatile 11, 8, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 12, 8, METATILE_SilphCo_Floor, 0 + setmetatile 11, 9, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 12, 9, METATILE_SilphCo_Floor, 0 + setmetatile 12, 10, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open7FDoor2:: + setmetatile 24, 7, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 25, 7, METATILE_SilphCo_Floor, 0 + setmetatile 24, 8, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 25, 8, METATILE_SilphCo_Floor, 0 + setmetatile 25, 9, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open7FDoor3:: + setmetatile 25, 13, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 26, 13, METATILE_SilphCo_Floor, 0 + setmetatile 25, 14, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 26, 14, METATILE_SilphCo_Floor, 0 + setmetatile 26, 15, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open8FDoor:: + setmetatile 5, 9, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 6, 9, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 5, 10, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 10, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 5, 11, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 6, 11, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open9FDoor1:: + setmetatile 2, 9, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 3, 9, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 2, 10, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 3, 10, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 2, 11, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 3, 11, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open9FDoor2:: + setmetatile 12, 15, METATILE_SilphCo_Wall_LeftEdge, 1 + setmetatile 13, 15, METATILE_SilphCo_Wall_RightEdge, 1 + setmetatile 12, 16, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 13, 16, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 12, 17, METATILE_SilphCo_Floor_WallLeftCorner, 0 + setmetatile 13, 17, METATILE_SilphCo_Floor_WallRightCorner, 0 + return + +EventScript_Open9FDoor3:: + setmetatile 21, 6, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 22, 6, METATILE_SilphCo_Floor, 0 + setmetatile 21, 7, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 22, 7, METATILE_SilphCo_Floor, 0 + setmetatile 22, 8, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open9FDoor4:: + setmetatile 21, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 22, 12, METATILE_SilphCo_Floor, 0 + setmetatile 21, 13, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 22, 13, METATILE_SilphCo_Floor, 0 + setmetatile 22, 14, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open10FDoor:: + setmetatile 12, 11, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 13, 11, METATILE_SilphCo_Floor, 0 + setmetatile 12, 12, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 13, 12, METATILE_SilphCo_Floor, 0 + setmetatile 13, 13, METATILE_SilphCo_Floor, 0 + return + +EventScript_Open11FDoor:: + setmetatile 5, 16, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 16, METATILE_SilphCo_Floor, 0 + setmetatile 5, 17, METATILE_SilphCo_Floor_ShadeFull, 0 + setmetatile 6, 17, METATILE_SilphCo_Floor, 0 + setmetatile 6, 18, METATILE_SilphCo_Floor, 0 + return + +SilphCo_2F_EventScript_Door1:: + lockall + setvar VAR_TEMP_1, 1 + setvar VAR_0x8004, FLAG_SILPH_2F_DOOR_1 + goto_if_set FLAG_SILPH_2F_DOOR_1, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_2F_EventScript_Door2:: + lockall + setvar VAR_TEMP_1, 2 + setvar VAR_0x8004, FLAG_SILPH_2F_DOOR_2 + goto_if_set FLAG_SILPH_2F_DOOR_2, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_3F_EventScript_Door1:: + lockall + setvar VAR_TEMP_1, 3 + setvar VAR_0x8004, FLAG_SILPH_3F_DOOR_1 + goto_if_set FLAG_SILPH_3F_DOOR_1, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_3F_EventScript_Door2:: + lockall + setvar VAR_TEMP_1, 4 + setvar VAR_0x8004, FLAG_SILPH_3F_DOOR_2 + goto_if_set FLAG_SILPH_3F_DOOR_2, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_4F_EventScript_Door1:: + lockall + setvar VAR_TEMP_1, 5 + setvar VAR_0x8004, FLAG_SILPH_4F_DOOR_1 + goto_if_set FLAG_SILPH_4F_DOOR_1, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_4F_EventScript_Door2:: + lockall + setvar VAR_TEMP_1, 6 + setvar VAR_0x8004, FLAG_SILPH_4F_DOOR_2 + goto_if_set FLAG_SILPH_4F_DOOR_2, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_5F_EventScript_Door1:: + lockall + setvar VAR_TEMP_1, 7 + setvar VAR_0x8004, FLAG_SILPH_5F_DOOR_1 + goto_if_set FLAG_SILPH_5F_DOOR_1, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_5F_EventScript_Door2:: + lockall + setvar VAR_TEMP_1, 8 + setvar VAR_0x8004, FLAG_SILPH_5F_DOOR_2 + goto_if_set FLAG_SILPH_5F_DOOR_2, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_5F_EventScript_Door3:: + lockall + setvar VAR_TEMP_1, 9 + setvar VAR_0x8004, FLAG_SILPH_5F_DOOR_3 + goto_if_set FLAG_SILPH_5F_DOOR_3, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_6F_EventScript_Door:: + lockall + setvar VAR_TEMP_1, 10 + setvar VAR_0x8004, FLAG_SILPH_6F_DOOR + goto_if_set FLAG_SILPH_6F_DOOR, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_7F_EventScript_Door1:: + lockall + setvar VAR_TEMP_1, 11 + setvar VAR_0x8004, FLAG_SILPH_7F_DOOR_1 + goto_if_set FLAG_SILPH_7F_DOOR_1, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_7F_EventScript_Door2:: + lockall + setvar VAR_TEMP_1, 12 + setvar VAR_0x8004, FLAG_SILPH_7F_DOOR_2 + goto_if_set FLAG_SILPH_7F_DOOR_2, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_7F_EventScript_Door3:: + lockall + setvar VAR_TEMP_1, 13 + setvar VAR_0x8004, FLAG_SILPH_7F_DOOR_3 + goto_if_set FLAG_SILPH_7F_DOOR_3, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_8F_EventScript_Door:: + lockall + setvar VAR_TEMP_1, 14 + setvar VAR_0x8004, FLAG_SILPH_8F_DOOR + goto_if_set FLAG_SILPH_8F_DOOR, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_9F_EventScript_Door1:: + lockall + setvar VAR_TEMP_1, 15 + setvar VAR_0x8004, FLAG_SILPH_9F_DOOR_1 + goto_if_set FLAG_SILPH_9F_DOOR_1, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_9F_EventScript_Door2:: + lockall + setvar VAR_TEMP_1, 16 + setvar VAR_0x8004, FLAG_SILPH_9F_DOOR_2 + goto_if_set FLAG_SILPH_9F_DOOR_2, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_9F_EventScript_Door3:: + lockall + setvar VAR_TEMP_1, 17 + setvar VAR_0x8004, FLAG_SILPH_9F_DOOR_3 + goto_if_set FLAG_SILPH_9F_DOOR_3, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_9F_EventScript_Door4:: + lockall + setvar VAR_TEMP_1, 18 + setvar VAR_0x8004, FLAG_SILPH_9F_DOOR_4 + goto_if_set FLAG_SILPH_9F_DOOR_4, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_10F_EventScript_Door:: + lockall + setvar VAR_TEMP_1, 19 + setvar VAR_0x8004, FLAG_SILPH_10F_DOOR + goto_if_set FLAG_SILPH_10F_DOOR, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +SilphCo_11F_EventScript_Door:: + lockall + setvar VAR_TEMP_1, 20 + setvar VAR_0x8004, FLAG_SILPH_11F_DOOR + goto_if_set FLAG_SILPH_11F_DOOR, EventScript_DoorUnlocked + goto EventScript_TryUnlockDoor + end + +EventScript_TryUnlockDoor:: + goto_if_set FLAG_HIDE_SILPH_CO_5F_CARD_KEY, EventScript_OpenDoor + goto EventScript_NeedCardKey + end + +EventScript_OpenDoor:: + playfanfare MUS_LEVEL_UP + msgbox Text_CardKeyOpenedDoor + waitfanfare + call_if_eq VAR_TEMP_1, 1, EventScript_Open2FDoor1 + call_if_eq VAR_TEMP_1, 2, EventScript_Open2FDoor2 + call_if_eq VAR_TEMP_1, 3, EventScript_Open3FDoor1 + call_if_eq VAR_TEMP_1, 4, EventScript_Open3FDoor2 + call_if_eq VAR_TEMP_1, 5, EventScript_Open4FDoor1 + call_if_eq VAR_TEMP_1, 6, EventScript_Open4FDoor2 + call_if_eq VAR_TEMP_1, 7, EventScript_Open5FDoor1 + call_if_eq VAR_TEMP_1, 8, EventScript_Open5FDoor2 + call_if_eq VAR_TEMP_1, 9, EventScript_Open5FDoor3 + call_if_eq VAR_TEMP_1, 10, EventScript_Open6FDoor + call_if_eq VAR_TEMP_1, 11, EventScript_Open7FDoor1 + call_if_eq VAR_TEMP_1, 12, EventScript_Open7FDoor2 + call_if_eq VAR_TEMP_1, 13, EventScript_Open7FDoor3 + call_if_eq VAR_TEMP_1, 14, EventScript_Open8FDoor + call_if_eq VAR_TEMP_1, 15, EventScript_Open9FDoor1 + call_if_eq VAR_TEMP_1, 16, EventScript_Open9FDoor2 + call_if_eq VAR_TEMP_1, 17, EventScript_Open9FDoor3 + call_if_eq VAR_TEMP_1, 18, EventScript_Open9FDoor4 + call_if_eq VAR_TEMP_1, 19, EventScript_Open10FDoor + call_if_eq VAR_TEMP_1, 20, EventScript_Open11FDoor + waitse + playse SE_UNLOCK + special DrawWholeMapView + waitse + special SetHiddenItemFlag + releaseall + end + +Text_CardKeyOpenedDoor:: + .string "Bingo!\n" + .string "The CARD KEY opened the door!$" + +Text_ItNeedsCardKey:: + .string "No!\n" + .string "It needs a CARD KEY!$" + +Text_TheDoorIsOpen:: + .string "The door is open…$" diff --git a/data/scripts/static_pokemon.inc b/data/scripts/static_pokemon.inc new file mode 100644 index 000000000000..e77727c9f1c8 --- /dev/null +++ b/data/scripts/static_pokemon.inc @@ -0,0 +1,23 @@ +EventScript_RemoveStaticMon:: + fadescreenswapbuffers FADE_TO_BLACK + removeobject VAR_LAST_TALKED + fadescreenswapbuffers FADE_FROM_BLACK + release + end + +EventScript_MonFlewAway:: + fadescreenswapbuffers FADE_TO_BLACK + removeobject VAR_LAST_TALKED + fadescreenswapbuffers FADE_FROM_BLACK + bufferspeciesname STR_VAR_1, VAR_0x8004 + msgbox Text_MonFlewAway + release + end + +EventScript_AwakenSnorlax:: + message Text_PlayedPokeFlute + waitmessage + playfanfare MUS_RG_POKE_FLUTE + waitfanfare + msgbox Text_SnorlaxWokeUp + return diff --git a/data/scripts/std_msgbox.inc b/data/scripts/std_msgbox.inc index 8d5e4167cb31..3255edd6a47b 100644 --- a/data/scripts/std_msgbox.inc +++ b/data/scripts/std_msgbox.inc @@ -29,6 +29,30 @@ Std_MsgboxYesNo: yesnobox 20, 8 return +Std_ReceivedItem:: + textcolor NPC_TEXT_COLOR_NEUTRAL + call_if_eq VAR_0x8002, MUS_LEVEL_UP, EventScript_ReceivedItemFanfare1 + call_if_eq VAR_0x8002, MUS_RG_OBTAIN_KEY_ITEM, EventScript_ReceivedItemFanfare2 + message 0x0 + waitmessage + waitfanfare + call_if_eq VAR_0x8002, MUS_LEVEL_UP, EventScript_ReceivedItemWaitFanfare + putitemaway VAR_0x8000, VAR_0x8001 + call EventScript_RestorePrevTextColor + return + +EventScript_ReceivedItemFanfare1:: + playfanfare MUS_LEVEL_UP + return + +EventScript_ReceivedItemFanfare2:: + playfanfare MUS_RG_OBTAIN_KEY_ITEM + return + +EventScript_ReceivedItemWaitFanfare:: + delay 50 + return + Std_MsgboxGetPoints: message NULL playfanfare MUS_OBTAIN_B_POINTS diff --git a/data/scripts/surf.inc b/data/scripts/surf.inc index 630b3f9e6eca..9be019535cf9 100644 --- a/data/scripts/surf.inc +++ b/data/scripts/surf.inc @@ -12,3 +12,13 @@ EventScript_ReleaseUseSurf:: releaseall EventScript_EndUseSurf:: end + +EventScript_CurrentTooFast:: + lockall + checkfieldmove FIELD_MOVE_SURF + goto_if_eq VAR_RESULT, FALSE, EventScript_CurrentTooFastEndMsg + playse SE_SELECT + msgbox Text_CurrentTooFast +EventScript_CurrentTooFastEndMsg:: + releaseall + end diff --git a/data/scripts/trainer_card_frlg.inc b/data/scripts/trainer_card_frlg.inc new file mode 100644 index 000000000000..6b45d0747655 --- /dev/null +++ b/data/scripts/trainer_card_frlg.inc @@ -0,0 +1,346 @@ +CeladonCity_GameCorner_EventScript_PhotoPrinter:: + lockall + showmoneybox 0, 0 + msgbox CeladonCity_GameCorner_Text_TryPokemonPrinter, MSGBOX_YESNO + goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_EventScript_DeclinePhoto + checkmoney 50 + goto_if_eq VAR_RESULT, FALSE, CeladonCity_GameCorner_EventScript_NotEnoughMoneyForPhoto + playse SE_SHOP + removemoney 50 + updatemoneybox + waitse + message CeladonCity_GameCorner_Text_ChoosePrintType + waitmessage + multichoice 21, 0, MULTI_TRAINER_CARD_ICON_TINT, TRUE + switch VAR_RESULT + case 0, CeladonCity_GameCorner_EventScript_PrintTypeNormal + case 1, CeladonCity_GameCorner_EventScript_PrintTypeBlack + case 2, CeladonCity_GameCorner_EventScript_PrintTypePink + case 3, CeladonCity_GameCorner_EventScript_PrintTypeSepia + end + +CeladonCity_GameCorner_EventScript_PrintTypeNormal:: + setvar VAR_0x8004, MON_ICON_TINT_NORMAL + goto CeladonCity_GameCorner_EventScript_PrintPhoto + end + +CeladonCity_GameCorner_EventScript_PrintTypeBlack:: + setvar VAR_0x8004, MON_ICON_TINT_BLACK + goto CeladonCity_GameCorner_EventScript_PrintPhoto + end + +CeladonCity_GameCorner_EventScript_PrintTypePink:: + setvar VAR_0x8004, MON_ICON_TINT_PINK + goto CeladonCity_GameCorner_EventScript_PrintPhoto + end + +CeladonCity_GameCorner_EventScript_PrintTypeSepia:: + setvar VAR_0x8004, MON_ICON_TINT_SEPIA + goto CeladonCity_GameCorner_EventScript_PrintPhoto + end + +CeladonCity_GameCorner_EventScript_PrintPhoto:: + message CeladonCity_GameCorner_Text_BigSmileForPhoto + waitmessage + playse MUS_RG_PHOTO + dofieldeffect FLDEFF_PHOTO_FLASH + delay 60 + special UpdateTrainerCardPhotoIcons + msgbox CeladonCity_GameCorner_Text_PrintIsReadyCheckTrainerCard + hidemoneybox + releaseall + end + +CeladonCity_GameCorner_EventScript_DeclinePhoto:: + hidemoneybox + releaseall + end + +CeladonCity_GameCorner_EventScript_NotEnoughMoneyForPhoto:: + msgbox CeladonCity_GameCorner_Text_DontHaveEnoughMoney + hidemoneybox + releaseall + end + +FourIsland_House2_EventScript_StickerMan:: + lock + specialvar VAR_0x8008, StickerManGetBragFlags + goto_if_unset FLAG_MET_STICKER_MAN, FourIsland_House2_EventScript_MeetStickerMan + goto_if_set FLAG_MET_STICKER_MAN, FourIsland_House2_EventScript_StickerManAskForBrag + end + +FourIsland_House2_EventScript_MeetStickerMan:: + setflag FLAG_MET_STICKER_MAN + msgbox FourIsland_House2_Text_WishICouldShowOffStickers + applymovement LOCALID_STICKER_MAN, Common_Movement_FacePlayer + waitmovement 0 + playse SE_PIN + applymovement LOCALID_STICKER_MAN, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_STICKER_MAN, Common_Movement_Delay48 + waitmovement 0 + goto_if_eq VAR_0x8008, 0, FourIsland_House2_EventScript_StickerManNothingToBrag + message FourIsland_House2_Text_GiveYouStickerIfYouBrag + waitmessage + goto FourIsland_House2_EventScript_ChooseBrag + end + +FourIsland_House2_EventScript_StickerManAskForBrag:: + applymovement LOCALID_STICKER_MAN, Common_Movement_FacePlayer + waitmovement 0 + goto_if_eq VAR_0x8008, 0, FourIsland_House2_EventScript_NothingToBragAbout + message FourIsland_House2_Text_BragAboutWhatToday + waitmessage + goto FourIsland_House2_EventScript_ChooseBrag + end + +FourIsland_House2_EventScript_NothingToBragAbout:: + msgbox FourIsland_House2_Text_BragAboutSomethingForMe + release + end + +FourIsland_House2_EventScript_ChooseBrag:: + switch VAR_0x8008 + case 1, FourIsland_House2_EventScript_ChooseBragHoF + case 2, FourIsland_House2_EventScript_ChooseBragEggs + case 4, FourIsland_House2_EventScript_ChooseBragLinkWins + case 3, FourIsland_House2_EventScript_ChooseBragHoFEggs + case 5, FourIsland_House2_EventScript_ChooseBragHoFLinkWins + case 6, FourIsland_House2_EventScript_ChooseBragEggsLinkWins + case 7, FourIsland_House2_EventScript_ChooseBragHofEggsLinkWins + end + +FourIsland_House2_EventScript_ChooseBragHoF:: + multichoice 15, 8, MULTI_HOF_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragHoF + case 1, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_ChooseBragEggs:: + multichoice 16, 8, MULTI_EGGS_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragEggs + case 1, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_ChooseBragLinkWins:: + multichoice 15, 8, MULTI_VICTORIES_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragLinkWins + case 1, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_ChooseBragHoFEggs:: + multichoice 15, 6, MULTI_HOF_EGGS_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragHoF + case 1, FourIsland_House2_EventScript_BragEggs + case 2, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_ChooseBragHoFLinkWins:: + multichoice 15, 6, MULTI_HOF_VICTORIES_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragHoF + case 1, FourIsland_House2_EventScript_BragLinkWins + case 2, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_ChooseBragEggsLinkWins:: + multichoice 15, 6, MULTI_EGGS_VICTORIES_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragEggs + case 1, FourIsland_House2_EventScript_BragLinkWins + case 2, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_ChooseBragHofEggsLinkWins:: + multichoice 15, 5, MULTI_HOF_EGGS_VICTORIES_QUIT, FALSE + switch VAR_RESULT + case 0, FourIsland_House2_EventScript_BragHoF + case 1, FourIsland_House2_EventScript_BragEggs + case 2, FourIsland_House2_EventScript_BragLinkWins + case 3, FourIsland_House2_EventScript_QuitBrag + case MULTI_B_PRESSED, FourIsland_House2_EventScript_QuitBrag + end + +FourIsland_House2_EventScript_StickerManNothingToBrag:: + msgbox FourIsland_House2_Text_GiveYouStickerIfYouBrag + release + end + +FourIsland_House2_EventScript_BragHoF:: + goto_if_le VAR_0x8004, 39, FourIsland_House2_EventScript_BragHoFLowest + goto_if_le VAR_0x8004, 99, FourIsland_House2_EventScript_BragHoFLow + goto_if_le VAR_0x8004, 199, FourIsland_House2_EventScript_BragHoFHigh + goto_if_ge VAR_0x8004, 200, FourIsland_House2_EventScript_BragHoFHighest + end + +FourIsland_House2_EventScript_BragHoFLowest:: + goto_if_eq VAR_HOF_BRAG_STATE, 1, FourIsland_House2_EventScript_AlreadyBraggedHoF + setvar VAR_HOF_BRAG_STATE, 1 + msgbox FourIsland_House2_Text_WowHoFLowest + goto FourIsland_House2_EventScript_BraggedHoF + end + +FourIsland_House2_EventScript_BragHoFLow:: + goto_if_eq VAR_HOF_BRAG_STATE, 2, FourIsland_House2_EventScript_AlreadyBraggedHoF + setvar VAR_HOF_BRAG_STATE, 2 + msgbox FourIsland_House2_Text_WowHoFLow + goto FourIsland_House2_EventScript_BraggedHoF + end + +FourIsland_House2_EventScript_BragHoFHigh:: + goto_if_eq VAR_HOF_BRAG_STATE, 3, FourIsland_House2_EventScript_AlreadyBraggedHoF + setvar VAR_HOF_BRAG_STATE, 3 + msgbox FourIsland_House2_Text_WowHoFHigh + goto FourIsland_House2_EventScript_BraggedHoF + end + +FourIsland_House2_EventScript_BragHoFHighest:: + goto_if_eq VAR_HOF_BRAG_STATE, 4, FourIsland_House2_EventScript_AlreadyBraggedHoFMax + setvar VAR_HOF_BRAG_STATE, 4 + msgbox FourIsland_House2_Text_WowHoFHighest + goto FourIsland_House2_EventScript_BraggedHoF + end + +FourIsland_House2_EventScript_AlreadyBraggedHoF:: + msgbox FourIsland_House2_Text_ComeBackWithBetterStoryHoF + release + end + +FourIsland_House2_EventScript_AlreadyBraggedHoFMax:: + msgbox FourIsland_House2_Text_LivingLegendHoF + release + end + +FourIsland_House2_EventScript_BraggedHoF:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message FourIsland_House2_Text_HoFStickerApplied + waitmessage + waitfanfare + delay 90 + release + end + +FourIsland_House2_EventScript_BragEggs:: + goto_if_le VAR_0x8005, 99, FourIsland_House2_EventScript_BragEggsLowest + goto_if_le VAR_0x8005, 199, FourIsland_House2_EventScript_BragEggsLow + goto_if_le VAR_0x8005, 299, FourIsland_House2_EventScript_BragEggsHigh + goto_if_ge VAR_0x8005, 300, FourIsland_House2_EventScript_BragEggsHighest + end + +FourIsland_House2_EventScript_BragEggsLowest:: + goto_if_eq VAR_EGG_BRAG_STATE, 1, FourIsland_House2_EventScript_AlreadyBraggedEggs + setvar VAR_EGG_BRAG_STATE, 1 + msgbox FourIsland_House2_Text_WowEggsLowest + goto FourIsland_House2_EventScript_BraggedEggs + end + +FourIsland_House2_EventScript_BragEggsLow:: + goto_if_eq VAR_EGG_BRAG_STATE, 2, FourIsland_House2_EventScript_AlreadyBraggedEggs + setvar VAR_EGG_BRAG_STATE, 2 + msgbox FourIsland_House2_Text_WowEggsLow + goto FourIsland_House2_EventScript_BraggedEggs + end + +FourIsland_House2_EventScript_BragEggsHigh:: + goto_if_eq VAR_EGG_BRAG_STATE, 3, FourIsland_House2_EventScript_AlreadyBraggedEggs + setvar VAR_EGG_BRAG_STATE, 3 + msgbox FourIsland_House2_Text_WowEggsHigh + goto FourIsland_House2_EventScript_BraggedEggs + end + +FourIsland_House2_EventScript_BragEggsHighest:: + goto_if_eq VAR_EGG_BRAG_STATE, 4, FourIsland_House2_EventScript_AlreadyBraggedEggsMax + setvar VAR_EGG_BRAG_STATE, 4 + msgbox FourIsland_House2_Text_WowEggsHighest + goto FourIsland_House2_EventScript_BraggedEggs + end + +FourIsland_House2_EventScript_AlreadyBraggedEggs:: + msgbox FourIsland_House2_Text_ComeBackWithBetterStoryEggs + release + end + +FourIsland_House2_EventScript_AlreadyBraggedEggsMax:: + msgbox FourIsland_House2_Text_LivingLegendEggs + release + end + +FourIsland_House2_EventScript_BraggedEggs:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message FourIsland_House2_Text_EggStickerApplied + waitmessage + waitfanfare + delay 90 + release + end + +FourIsland_House2_EventScript_BragLinkWins:: + goto_if_le VAR_0x8006, 19, FourIsland_House2_EventScript_BragLinkWinsLowest + goto_if_le VAR_0x8006, 49, FourIsland_House2_EventScript_BragLinkWinsLow + goto_if_le VAR_0x8006, 99, FourIsland_House2_EventScript_BragLinkWinsHigh + goto_if_ge VAR_0x8006, 100, FourIsland_House2_EventScript_BragLinkWinsHighest + end + +FourIsland_House2_EventScript_BragLinkWinsLowest:: + goto_if_eq VAR_LINK_WIN_BRAG_STATE, 1, FourIsland_House2_EventScript_AlreadyBraggedLinkWins + setvar VAR_LINK_WIN_BRAG_STATE, 1 + msgbox FourIsland_House2_Text_WowLinkWinsLowest + goto FourIsland_House2_EventScript_BraggedLinkWins + end + +FourIsland_House2_EventScript_BragLinkWinsLow:: + goto_if_eq VAR_LINK_WIN_BRAG_STATE, 2, FourIsland_House2_EventScript_AlreadyBraggedLinkWins + setvar VAR_LINK_WIN_BRAG_STATE, 2 + msgbox FourIsland_House2_Text_WowLinkWinsLow + goto FourIsland_House2_EventScript_BraggedLinkWins + end + +FourIsland_House2_EventScript_BragLinkWinsHigh:: + goto_if_eq VAR_LINK_WIN_BRAG_STATE, 3, FourIsland_House2_EventScript_AlreadyBraggedLinkWins + setvar VAR_LINK_WIN_BRAG_STATE, 3 + msgbox FourIsland_House2_Text_WowLinkWinsHigh + goto FourIsland_House2_EventScript_BraggedLinkWins + end + +FourIsland_House2_EventScript_BragLinkWinsHighest:: + goto_if_eq VAR_LINK_WIN_BRAG_STATE, 4, FourIsland_House2_EventScript_AlreadyBraggedLinkWinsMax + setvar VAR_LINK_WIN_BRAG_STATE, 4 + msgbox FourIsland_House2_Text_WowLinkWinsHighest + goto FourIsland_House2_EventScript_BraggedLinkWins + end + +FourIsland_House2_EventScript_AlreadyBraggedLinkWins:: + msgbox FourIsland_House2_Text_ComeBackWithBetterStoryLinkWins + release + end + +FourIsland_House2_EventScript_AlreadyBraggedLinkWinsMax:: + msgbox FourIsland_House2_Text_LivingLegendLinkWins + release + end + +FourIsland_House2_EventScript_BraggedLinkWins:: + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message FourIsland_House2_Text_VictoryStickerApplied + waitmessage + waitfanfare + delay 90 + release + end + +FourIsland_House2_EventScript_QuitBrag:: + release + end diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index ece0b01ee22d..7ea5c6d774b6 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -60,7 +60,7 @@ TrainerHill_1F_Movement_SetInvisible:: @ TRAINER_PHILLIP is an actual Trainer on the SS Tidal, but is used as a placeholder here TrainerHill_EventScript_TrainerBattle:: - trainerbattle TRAINER_BATTLE_HILL, LOCALID_NONE, TRAINER_PHILLIP, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText, NULL, LOCALID_NONE, TRAINER_NONE, NULL, NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE, FALSE + facilitytrainerbattle FACILITY_BATTLE_TRAINER_HILL trainerhill_postbattletext waitmessage waitbuttonpress diff --git a/data/scripts/trainer_tower.inc b/data/scripts/trainer_tower.inc new file mode 100644 index 000000000000..ec6e73a07933 --- /dev/null +++ b/data/scripts/trainer_tower.inc @@ -0,0 +1,392 @@ +.equ HIDE_TRAINER_DOUBLES1, FLAG_TEMP_2 +.equ HIDE_TRAINER_SINGLES, FLAG_TEMP_3 +.equ HIDE_TRAINER_KNOCKOUT, FLAG_TEMP_4 +.equ HIDE_TRAINER_DOUBLES2, FLAG_TEMP_5 +.equ HIDE_OWNER, FLAG_TEMP_6 + +.equ DISABLE_SINGLES_TRIGGER, VAR_TEMP_E +.equ DISABLE_DOUBLES_TRIGGER, VAR_TEMP_F + + +@@ Map scripts + +TrainerTower_OnResume:: + setvar VAR_TEMP_2, 0 + ttower_resumetimer + end + +TrainerTower_OnTransition:: + ttower_initfloor + switch VAR_RESULT + case CHALLENGE_TYPE_SINGLE, TrainerTower_EventScript_SetObjectsSingles + case CHALLENGE_TYPE_DOUBLE, TrainerTower_EventScript_SetObjectsDoubles + case CHALLENGE_TYPE_KNOCKOUT, TrainerTower_EventScript_SetObjectsKnockout + setflag HIDE_TRAINER_DOUBLES1 + setflag HIDE_TRAINER_SINGLES + setflag HIDE_TRAINER_KNOCKOUT + setflag HIDE_TRAINER_DOUBLES2 + setvar DISABLE_SINGLES_TRIGGER, TRUE + setvar DISABLE_DOUBLES_TRIGGER, TRUE + end + +TrainerTower_EventScript_SetObjectsSingles:: + setflag HIDE_TRAINER_DOUBLES1 + setflag HIDE_TRAINER_KNOCKOUT + setflag HIDE_TRAINER_DOUBLES2 + setvar DISABLE_DOUBLES_TRIGGER, TRUE + setobjectxyperm LOCALID_TOWER_TRAINER_SINGLES, 15, 13 + setobjectmovementtype LOCALID_TOWER_TRAINER_SINGLES, MOVEMENT_TYPE_FACE_LEFT + goto TrainerTower_EventScript_HideOwner + +TrainerTower_EventScript_SetObjectsDoubles:: + setflag HIDE_TRAINER_SINGLES + setflag HIDE_TRAINER_KNOCKOUT + setvar DISABLE_SINGLES_TRIGGER, TRUE + ttower_isfloorcleared + goto_if_eq VAR_RESULT, TRUE, TrainerTower_EventScript_SetObjectsDoublesAlreadyBeaten + setobjectxyperm LOCALID_TOWER_TRAINER_DOUBLES1, 10, 12 + setobjectmovementtype LOCALID_TOWER_TRAINER_DOUBLES1, MOVEMENT_TYPE_FACE_LEFT + setobjectxyperm LOCALID_TOWER_TRAINER_DOUBLES2, 10, 13 + setobjectmovementtype LOCALID_TOWER_TRAINER_DOUBLES2, MOVEMENT_TYPE_FACE_LEFT + goto TrainerTower_EventScript_HideOwner + +TrainerTower_EventScript_SetObjectsDoublesAlreadyBeaten:: + setobjectxyperm LOCALID_TOWER_TRAINER_DOUBLES1, 10, 12 + setobjectmovementtype LOCALID_TOWER_TRAINER_DOUBLES1, MOVEMENT_TYPE_FACE_DOWN + setobjectxyperm LOCALID_TOWER_TRAINER_DOUBLES2, 11, 12 + setobjectmovementtype LOCALID_TOWER_TRAINER_DOUBLES2, MOVEMENT_TYPE_FACE_DOWN + goto TrainerTower_EventScript_HideOwner + +@ Knockout challenge re-uses trainer objects +TrainerTower_EventScript_SetObjectsKnockout:: + setflag HIDE_TRAINER_DOUBLES2 + setvar DISABLE_DOUBLES_TRIGGER, TRUE + setobjectxyperm LOCALID_TOWER_TRAINER_DOUBLES1, 10, 10 + setobjectmovementtype LOCALID_TOWER_TRAINER_DOUBLES1, MOVEMENT_TYPE_FACE_DOWN + setobjectxyperm LOCALID_TOWER_TRAINER_SINGLES, 14, 13 + setobjectmovementtype LOCALID_TOWER_TRAINER_SINGLES, MOVEMENT_TYPE_FACE_LEFT + setobjectxyperm LOCALID_TOWER_TRAINER_KNOCKOUT, 10, 16 + setobjectmovementtype LOCALID_TOWER_TRAINER_KNOCKOUT, MOVEMENT_TYPE_FACE_UP +TrainerTower_EventScript_HideOwner: + setflag HIDE_OWNER + end + +TrainerTower_OnFrame:: + map_script_2 VAR_TEMP_2, 0, TrainerTower_EventScript_EnterFloor + .2byte 0 + +TrainerTower_EventScript_EnterFloor:: + setvar VAR_TEMP_2, 1 + ttower_isfloorcleared + goto_if_eq VAR_RESULT, FALSE, TrainerTower_EventScript_EndEnterFloor + setvar DISABLE_SINGLES_TRIGGER, TRUE + setvar DISABLE_DOUBLES_TRIGGER, TRUE +TrainerTower_EventScript_EndEnterFloor: + ttower_shouldexit + goto_if_eq VAR_RESULT, TRUE, TrainerTower_EventScript_WarpToLobby + end + +@ Never reached +TrainerTower_EventScript_WarpToLobby:: + warp MAP_TRAINER_TOWER_LOBBY, 9, 7 + waitstate + + +@@ Battle scripts + +TrainerTower_EventScript_TriggerBattle:: + ttower_getchallengetype + switch VAR_RESULT + case CHALLENGE_TYPE_SINGLE, TrainerTower_EventScript_DoSingleBattle + case CHALLENGE_TYPE_DOUBLE, TrainerTower_EventScript_DoDoubleBattle + case CHALLENGE_TYPE_KNOCKOUT, TrainerTower_EventScript_DoKnockoutBattle + +TrainerTower_EventScript_DoSingleBattle: + ttower_encountermusic + applymovement LOCALID_TOWER_TRAINER_SINGLES, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_SINGLES, Common_Movement_Delay48 + waitmovement 0 + setvar DISABLE_SINGLES_TRIGGER, TRUE + applymovement LOCALID_TOWER_TRAINER_SINGLES, TrainerTower_Movement_SingleTrainerApproach + waitmovement 0 + ttower_getspeech TRAINER_TOWER_TEXT_INTRO, 0 + msgbox gStringVar4 + closemessage + goto TrainerTower_EventScript_DoBattle + +TrainerTower_EventScript_DoDoubleBattle:: + ttower_getspeech TRAINER_TOWER_TEXT_INTRO, VAR_TEMP_3 + msgbox gStringVar4 + setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_SPEECH + setvar VAR_0x8005, TRAINER_TOWER_TEXT_INTRO + addvar VAR_TEMP_3, 1 + goto_if_eq VAR_TEMP_3, 1, TrainerTower_EventScript_DoSecondTrainerIntro + setvar VAR_TEMP_3, 0 +TrainerTower_EventScript_DoSecondTrainerIntro: + copyvar VAR_0x8006, VAR_TEMP_3 + special CallTrainerTowerFunc + msgbox gStringVar4 + closemessage + goto TrainerTower_EventScript_DoBattle + +TrainerTower_EventScript_DoKnockoutBattle:: + switch VAR_TEMP_1 + case 0, TrainerTower_EventScript_DoKnockoutBattle1 + case 1, TrainerTower_EventScript_DoKnockoutBattle2 + case 2, TrainerTower_EventScript_DoKnockoutBattle3 + +TrainerTower_EventScript_DoKnockoutBattle1: + ttower_encountermusic + applymovement LOCALID_TOWER_TRAINER_KNOCKOUT, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_KNOCKOUT, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_KNOCKOUT, TrainerTower_Movement_BottomKnockoutTrainerApproach + waitmovement 0 + goto TrainerTower_EventScript_DoKnockoutBattleIntro + +TrainerTower_EventScript_DoKnockoutBattle2:: + ttower_encountermusic + applymovement LOCALID_TOWER_TRAINER_DOUBLES1, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_DOUBLES1, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_DOUBLES1, TrainerTower_Movement_TopKnockoutTrainerApproach + waitmovement 0 + goto TrainerTower_EventScript_DoKnockoutBattleIntro + +TrainerTower_EventScript_DoKnockoutBattle3:: + ttower_encountermusic + applymovement LOCALID_TOWER_TRAINER_SINGLES, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_SINGLES, Common_Movement_Delay48 + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_SINGLES, TrainerTower_Movement_RightKnockoutTrainerApproach + waitmovement 0 +TrainerTower_EventScript_DoKnockoutBattleIntro: + ttower_getspeech TRAINER_TOWER_TEXT_INTRO, VAR_TEMP_1 + msgbox gStringVar4 + closemessage +TrainerTower_EventScript_DoBattle: + ttower_dobattle + waitstate + switch VAR_RESULT + case B_OUTCOME_WON, TrainerTower_EventScript_WonBattle + case B_OUTCOME_LOST, TrainerTower_EventScript_WarpToLobbyLost + case B_OUTCOME_DREW, TrainerTower_EventScript_WarpToLobbyLost +TrainerTower_EventScript_WonBattle: + ttower_getchallengetype + switch VAR_RESULT + case CHALLENGE_TYPE_SINGLE, TrainerTower_EventScript_SetFloorCleared + case CHALLENGE_TYPE_DOUBLE, TrainerTower_EventScript_MoveDoublesTrainers + case CHALLENGE_TYPE_KNOCKOUT, TrainerTower_EventScript_CheckNextKnockoutBattle + +TrainerTower_EventScript_CheckNextKnockoutBattle: + switch VAR_TEMP_1 + case 0, TrainerTower_EventScript_DoSecondKnockoutBattle + case 1, TrainerTower_EventScript_DoThirdKnockoutBattle + case 2, TrainerTower_EventScript_MoveLastKnockoutTrainer + +TrainerTower_EventScript_DoSecondKnockoutBattle: + addvar VAR_TEMP_1, 1 + goto TrainerTower_EventScript_DoKnockoutBattle + +TrainerTower_EventScript_DoThirdKnockoutBattle:: + addvar VAR_TEMP_1, 1 + goto TrainerTower_EventScript_DoKnockoutBattle + +TrainerTower_EventScript_MoveDoublesTrainers:: + applymovement LOCALID_TOWER_TRAINER_DOUBLES2, TrainerTower_Movement_DoublesTrainer2OutOfWay + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_DOUBLES1, TrainerTower_Movement_DoublesTrainer1FaceDown + goto TrainerTower_EventScript_SetFloorCleared + +TrainerTower_EventScript_MoveLastKnockoutTrainer:: + applymovement LOCALID_TOWER_TRAINER_SINGLES, TrainerTower_Movement_LastKnockoutTrainerOutOfWay +TrainerTower_EventScript_SetFloorCleared: + ttower_clearedfloor + end + +TrainerTower_EventScript_WarpToLobbyLost:: + special HealPlayerParty + ttower_setlost + warp MAP_TRAINER_TOWER_LOBBY, 9, 7 + waitstate + + +@@ Speaking to trainers after battle + +TrainerTower_EventScript_SpeakToDoublesTrainer1:: + ttower_getchallengetype + switch VAR_RESULT + case CHALLENGE_TYPE_SINGLE, TrainerTower_EventScript_DoublesTrainer1PostBattle + case CHALLENGE_TYPE_DOUBLE, TrainerTower_EventScript_DoublesTrainer1PostBattle + case CHALLENGE_TYPE_KNOCKOUT, TrainerTower_EventScript_KnockoutTrainer2PostBattle +TrainerTower_EventScript_DoublesTrainer1PostBattle: + setvar VAR_0x8006, 0 + goto TrainerTower_EventScript_DoPostBattleText + +TrainerTower_EventScript_KnockoutTrainer2PostBattle:: + setvar VAR_0x8006, 1 + goto TrainerTower_EventScript_DoPostBattleText + +TrainerTower_EventScript_SpeakToSinglesTrainer:: + ttower_getchallengetype + switch VAR_RESULT + case CHALLENGE_TYPE_SINGLE, TrainerTower_EventScript_SinglesTrainerPostBattle + case CHALLENGE_TYPE_DOUBLE, TrainerTower_EventScript_SinglesTrainerPostBattle + case CHALLENGE_TYPE_KNOCKOUT, TrainerTower_EventScript_KnockoutTrainer3PostBattle +TrainerTower_EventScript_SinglesTrainerPostBattle: + setvar VAR_0x8006, 0 + goto TrainerTower_EventScript_DoPostBattleText + +TrainerTower_EventScript_KnockoutTrainer3PostBattle:: + setvar VAR_0x8006, 2 + goto TrainerTower_EventScript_DoPostBattleText + +TrainerTower_EventScript_SpeakToKnockoutTrainer:: + setvar VAR_0x8006, 0 + goto TrainerTower_EventScript_DoPostBattleText + +TrainerTower_EventScript_SpeakToDoublesTrainer2:: + setvar VAR_0x8006, 1 +TrainerTower_EventScript_DoPostBattleText: + ttower_getspeech TRAINER_TOWER_TEXT_AFTER + lock + faceplayer + msgbox gStringVar4 + release + return + + +@@ Speaking to owner + +TrainerTower_EventScript_SpeakToOwner:: + lock + faceplayer + ttower_getownerstate + switch VAR_RESULT + case 0, TrainerTower_Roof_EventScript_Arrived + case 1, TrainerTower_Roof_EventScript_GivePrize + case 2, TrainerTower_Roof_EventScript_OwnerEnd + +TrainerTower_Roof_EventScript_Arrived: + msgbox TrainerTower_Roof_Text_ImOwnerBattledPerfectly +TrainerTower_Roof_EventScript_GivePrize: + ttower_giveprize + switch VAR_RESULT + case 0, TrainerTower_Roof_EventScript_ReceivePrize + case 1, TrainerTower_Roof_EventScript_NoRoomForPrize + case 2, TrainerTower_Roof_EventScript_CheckFinalTime + +TrainerTower_Roof_EventScript_ReceivePrize: + msgbox TrainerTower_Roof_Text_ThisIsForYou + textcolor NPC_TEXT_COLOR_NEUTRAL + playfanfare MUS_LEVEL_UP + message gText_ObtainedTheItem + waitfanfare + waitmessage + bufferstdstring STR_VAR_3, STDSTRING_ITEMS + msgbox gText_PutItemInPocket + call EventScript_RestorePrevTextColor + goto TrainerTower_Roof_EventScript_CheckFinalTime + +TrainerTower_Roof_EventScript_NoRoomForPrize:: + msgbox TrainerTower_Roof_Text_ThisIsForYou + msgbox gText_TheBagIsFull + goto TrainerTower_Roof_EventScript_CheckFinalTime + +TrainerTower_Roof_EventScript_CheckFinalTime:: + ttower_checkfinaltime + switch VAR_RESULT + case 0, TrainerTower_Roof_EventScript_NewRecord + case 1, TrainerTower_Roof_EventScript_NoNewRecord + case 2, TrainerTower_Roof_EventScript_OwnerEnd + +TrainerTower_Roof_EventScript_NewRecord: + msgbox TrainerTower_Roof_Text_DoneItInRecordTime + goto TrainerTower_Roof_EventScript_OwnerEnd + +TrainerTower_Roof_EventScript_NoNewRecord:: + msgbox TrainerTower_Roof_Text_TookSweetTimeGettingHere +TrainerTower_Roof_EventScript_OwnerEnd: + msgbox TrainerTower_Roof_Text_IdLikeToSeeBetterTime + release + return + +TrainerTower_EventScript_ShowTime:: + lockall + ttower_gettime + msgbox TrainerTower_Text_XMinYZSec + releaseall + end + + +@@ Battle triggers + +TrainerTower_EventScript_SingleBattleTrigger:: + goto TrainerTower_EventScript_TriggerBattle + +TrainerTower_EventScript_DoubleBattleTriggerTop:: + setvar VAR_TEMP_3, 0 + ttower_checkdoubles + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, TrainerTower_EventScript_IneligibleForDoubleBattle + ttower_encountermusic + applymovement LOCALID_TOWER_TRAINER_DOUBLES1, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_DOUBLES1, Common_Movement_Delay48 + goto TrainerTower_EventScript_TriggerDoubleBattle + +TrainerTower_EventScript_DoubleBattleTriggerBottom:: + setvar VAR_TEMP_3, 1 + ttower_checkdoubles + goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, TrainerTower_EventScript_IneligibleForDoubleBattle + ttower_encountermusic + applymovement LOCALID_TOWER_TRAINER_DOUBLES2, Common_Movement_ExclamationMark + waitmovement 0 + applymovement LOCALID_TOWER_TRAINER_DOUBLES2, Common_Movement_Delay48 +TrainerTower_EventScript_TriggerDoubleBattle: + waitmovement 0 + setvar DISABLE_DOUBLES_TRIGGER, TRUE + goto TrainerTower_EventScript_TriggerBattle + +TrainerTower_EventScript_IneligibleForDoubleBattle:: + lockall + playse SE_DING_DONG + msgbox TrainerTower_Lobby_Text_NeedTwoMonsForDouble + closemessage + applymovement LOCALID_PLAYER, TrainerTower_Movement_PushPlayerBack + waitmovement 0 + releaseall + end + +TrainerTower_Movement_SingleTrainerApproach: + walk_left +TrainerTower_Movement_RightKnockoutTrainerApproach:: + walk_left + walk_left +TrainerTower_Movement_PushPlayerBack: + walk_left + step_end + +TrainerTower_Movement_BottomKnockoutTrainerApproach:: + walk_up + walk_up + step_end + +TrainerTower_Movement_TopKnockoutTrainerApproach:: + walk_down + walk_down + step_end + +TrainerTower_Movement_DoublesTrainer2OutOfWay:: + walk_right +TrainerTower_Movement_LastKnockoutTrainerOutOfWay: + walk_up + face_down + step_end + +TrainerTower_Movement_DoublesTrainer1FaceDown:: + face_down + step_end diff --git a/data/scripts/trainers_frlg.inc b/data/scripts/trainers_frlg.inc new file mode 100644 index 000000000000..5ec6ef8f4849 --- /dev/null +++ b/data/scripts/trainers_frlg.inc @@ -0,0 +1,2807 @@ +Route3_EventScript_Ben:: + trainerbattle_single TRAINER_YOUNGSTER_BEN, Route3_Text_BenIntro, Route3_Text_BenDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_BenRematch + msgbox Route3_Text_BenPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_BenRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_BEN, Route3_Text_BenRematchIntro, Route3_Text_BenDefeat + msgbox Route3_Text_BenPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_Calvin:: + trainerbattle_single TRAINER_YOUNGSTER_CALVIN, Route3_Text_CalvinIntro, Route3_Text_CalvinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_CalvinRematch + msgbox Route3_Text_CalvinPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_CalvinRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_CALVIN, Route3_Text_CalvinRematchIntro, Route3_Text_CalvinDefeat + msgbox Route3_Text_CalvinPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_Colton:: + trainerbattle_single TRAINER_BUG_CATCHER_COLTON, Route3_Text_ColtonIntro, Route3_Text_ColtonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_ColtonRematch + msgbox Route3_Text_ColtonPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_ColtonRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_COLTON, Route3_Text_ColtonRematchIntro, Route3_Text_ColtonDefeat + msgbox Route3_Text_ColtonPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_Greg:: + trainerbattle_single TRAINER_BUG_CATCHER_GREG, Route3_Text_GregIntro, Route3_Text_GregDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_GregRematch + msgbox Route3_Text_GregPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_GregRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_GREG, Route3_Text_GregRematchIntro, Route3_Text_GregDefeat + msgbox Route3_Text_GregPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_James:: + trainerbattle_single TRAINER_BUG_CATCHER_JAMES, Route3_Text_JamesIntro, Route3_Text_JamesDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_JamesRematch + msgbox Route3_Text_JamesPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_JamesRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_JAMES, Route3_Text_JamesRematchIntro, Route3_Text_JamesDefeat + msgbox Route3_Text_JamesPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_Janice:: + trainerbattle_single TRAINER_LASS_JANICE, Route3_Text_JaniceIntro, Route3_Text_JaniceDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_JaniceRematch + msgbox Route3_Text_JanicePostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_JaniceRematch:: + trainerbattle_rematch TRAINER_LASS_JANICE, Route3_Text_JaniceRematchIntro, Route3_Text_JaniceDefeat + msgbox Route3_Text_JanicePostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_Sally:: + trainerbattle_single TRAINER_LASS_SALLY, Route3_Text_SallyIntro, Route3_Text_SallyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_SallyRematch + msgbox Route3_Text_SallyPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_SallyRematch:: + trainerbattle_rematch TRAINER_LASS_SALLY, Route3_Text_SallyRematchIntro, Route3_Text_SallyDefeat + msgbox Route3_Text_SallyPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_Robin:: + trainerbattle_single TRAINER_LASS_ROBIN, Route3_Text_RobinIntro, Route3_Text_RobinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route3_EventScript_RobinRematch + msgbox Route3_Text_RobinPostBattle, MSGBOX_AUTOCLOSE + end + +Route3_EventScript_RobinRematch:: + trainerbattle_rematch TRAINER_LASS_ROBIN, Route3_Text_RobinRematchIntro, Route3_Text_RobinDefeat + msgbox Route3_Text_RobinPostBattle, MSGBOX_AUTOCLOSE + end + +Route4_EventScript_Crissy:: + trainerbattle_single TRAINER_LASS_CRISSY, Route4_Text_CrissyIntro, Route4_Text_CrissyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route4_EventScript_CrissyRematch + msgbox Route4_Text_CrissyPostBattle, MSGBOX_AUTOCLOSE + end + +Route4_EventScript_CrissyRematch:: + trainerbattle_rematch TRAINER_LASS_CRISSY, Route4_Text_CrissyRematchIntro, Route4_Text_CrissyDefeat + msgbox Route4_Text_CrissyPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_Timmy:: + trainerbattle_single TRAINER_YOUNGSTER_TIMMY, Route24_Text_TimmyIntro, Route24_Text_TimmyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route24_EventScript_TimmyRematch + msgbox Route24_Text_TimmyPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_TimmyRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_TIMMY, Route24_Text_TimmyRematchIntro, Route24_Text_TimmyDefeat + msgbox Route24_Text_TimmyPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_Cale:: + trainerbattle_single TRAINER_BUG_CATCHER_CALE, Route24_Text_CaleIntro, Route24_Text_CaleDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route24_EventScript_CaleRematch + msgbox Route24_Text_CalePostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_CaleRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_CALE, Route24_Text_CaleRematchIntro, Route24_Text_CaleDefeat + msgbox Route24_Text_CalePostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_Reli:: + trainerbattle_single TRAINER_LASS_RELI, Route24_Text_ReliIntro, Route24_Text_ReliDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route24_EventScript_ReliRematch + msgbox Route24_Text_ReliPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_ReliRematch:: + trainerbattle_rematch TRAINER_LASS_RELI, Route24_Text_ReliRematchIntro, Route24_Text_ReliDefeat + msgbox Route24_Text_ReliPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_Ali:: + trainerbattle_single TRAINER_LASS_ALI, Route24_Text_AliIntro, Route24_Text_AliDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route24_EventScript_AliRematch + msgbox Route24_Text_AliPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_AliRematch:: + trainerbattle_rematch TRAINER_LASS_ALI, Route24_Text_AliRematchIntro, Route24_Text_AliDefeat + msgbox Route24_Text_AliPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_Shane:: + trainerbattle_single TRAINER_CAMPER_SHANE, Route24_Text_ShaneIntro, Route24_Text_ShaneDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route24_EventScript_ShaneRematch + msgbox Route24_Text_ShanePostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_ShaneRematch:: + trainerbattle_rematch TRAINER_CAMPER_SHANE, Route24_Text_ShaneRematchIntro, Route24_Text_ShaneDefeat + msgbox Route24_Text_ShanePostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_Ethan:: + trainerbattle_single TRAINER_CAMPER_ETHAN, Route24_Text_EthanIntro, Route24_Text_EthanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route24_EventScript_EthanRematch + msgbox Route24_Text_EthanPostBattle, MSGBOX_AUTOCLOSE + end + +Route24_EventScript_EthanRematch:: + trainerbattle_rematch TRAINER_CAMPER_ETHAN, Route24_Text_EthanRematchIntro, Route24_Text_EthanDefeat + msgbox Route24_Text_EthanPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Joey:: + trainerbattle_single TRAINER_YOUNGSTER_JOEY, Route25_Text_JoeyIntro, Route25_Text_JoeyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_JoeyRematch + msgbox Route25_Text_JoeyPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_JoeyRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_JOEY, Route25_Text_JoeyRematchIntro, Route25_Text_JoeyDefeat + msgbox Route25_Text_JoeyPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Dan:: + trainerbattle_single TRAINER_YOUNGSTER_DAN, Route25_Text_DanIntro, Route25_Text_DanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_DanRematch + msgbox Route25_Text_DanPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_DanRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_DAN, Route25_Text_DanRematchIntro, Route25_Text_DanDefeat + msgbox Route25_Text_DanPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Chad:: + trainerbattle_single TRAINER_YOUNGSTER_CHAD, Route25_Text_ChadIntro, Route25_Text_ChadDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_ChadRematch + msgbox Route25_Text_ChadPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_ChadRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_CHAD, Route25_Text_ChadRematchIntro, Route25_Text_ChadDefeat + msgbox Route25_Text_ChadPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Kelsey:: + trainerbattle_single TRAINER_PICNICKER_KELSEY, Route25_Text_KelseyIntro, Route25_Text_KelseyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_KelseyRematch + msgbox Route25_Text_KelseyPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_KelseyRematch:: + trainerbattle_rematch TRAINER_PICNICKER_KELSEY, Route25_Text_KelseyRematchIntro, Route25_Text_KelseyDefeat + msgbox Route25_Text_KelseyPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Haley:: + trainerbattle_single TRAINER_LASS_HALEY, Route25_Text_HaleyIntro, Route25_Text_HaleyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_HaleyRematch + msgbox Route25_Text_HaleyPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_HaleyRematch:: + trainerbattle_rematch TRAINER_LASS_HALEY, Route25_Text_HaleyRematchIntro, Route25_Text_HaleyDefeat + msgbox Route25_Text_HaleyPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Franklin:: + trainerbattle_single TRAINER_HIKER_FRANKLIN, Route25_Text_FranklinIntro, Route25_Text_FranklinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_FranklinRematch + msgbox Route25_Text_FranklinPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_FranklinRematch:: + trainerbattle_rematch TRAINER_HIKER_FRANKLIN, Route25_Text_FranklinRematchIntro, Route25_Text_FranklinDefeat + msgbox Route25_Text_FranklinPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Nob:: + trainerbattle_single TRAINER_HIKER_NOB, Route25_Text_NobIntro, Route25_Text_NobDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_NobRematch + msgbox Route25_Text_NobPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_NobRematch:: + trainerbattle_rematch TRAINER_HIKER_NOB, Route25_Text_NobRematchIntro, Route25_Text_NobDefeat + msgbox Route25_Text_NobPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Wayne:: + trainerbattle_single TRAINER_HIKER_WAYNE, Route25_Text_WayneIntro, Route25_Text_WayneDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_WayneRematch + msgbox Route25_Text_WaynePostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_WayneRematch:: + trainerbattle_rematch TRAINER_HIKER_WAYNE, Route25_Text_WayneRematchIntro, Route25_Text_WayneDefeat + msgbox Route25_Text_WaynePostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_Flint:: + trainerbattle_single TRAINER_CAMPER_FLINT, Route25_Text_FlintIntro, Route25_Text_FlintDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route25_EventScript_FlintRematch + msgbox Route25_Text_FlintPostBattle, MSGBOX_AUTOCLOSE + end + +Route25_EventScript_FlintRematch:: + trainerbattle_rematch TRAINER_CAMPER_FLINT, Route25_Text_FlintRematchIntro, Route25_Text_FlintDefeat + msgbox Route25_Text_FlintPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_Keigo:: + trainerbattle_single TRAINER_BUG_CATCHER_KEIGO, Route6_Text_KeigoIntro, Route6_Text_KeigoDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route6_EventScript_KeigoRematch + msgbox Route6_Text_KeigoPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_KeigoRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_KEIGO, Route6_Text_KeigoRematchIntro, Route6_Text_KeigoDefeat + msgbox Route6_Text_KeigoPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_Elijah:: + trainerbattle_single TRAINER_BUG_CATCHER_ELIJAH, Route6_Text_ElijahIntro, Route6_Text_ElijahDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route6_EventScript_ElijahRematch + msgbox Route6_Text_ElijahPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_ElijahRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_ELIJAH, Route6_Text_ElijahRematchIntro, Route6_Text_ElijahDefeat + msgbox Route6_Text_ElijahPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_Ricky:: + trainerbattle_single TRAINER_CAMPER_RICKY, Route6_Text_RickyIntro, Route6_Text_RickyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route6_EventScript_RickyRematch + msgbox Route6_Text_RickyPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_RickyRematch:: + trainerbattle_rematch TRAINER_CAMPER_RICKY, Route6_Text_RickyRematchIntro, Route6_Text_RickyDefeat + msgbox Route6_Text_RickyPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_Jeff:: + trainerbattle_single TRAINER_CAMPER_JEFF, Route6_Text_JeffIntro, Route6_Text_JeffDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route6_EventScript_JeffRematch + msgbox Route6_Text_JeffPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_JeffRematch:: + trainerbattle_rematch TRAINER_CAMPER_JEFF, Route6_Text_JeffRematchIntro, Route6_Text_JeffDefeat + msgbox Route6_Text_JeffPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_Nancy:: + trainerbattle_single TRAINER_PICNICKER_NANCY, Route6_Text_NancyIntro, Route6_Text_NancyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route6_EventScript_NancyRematch + msgbox Route6_Text_NancyPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_NancyRematch:: + trainerbattle_rematch TRAINER_PICNICKER_NANCY, Route6_Text_NancyRematchIntro, Route6_Text_NancyDefeat + msgbox Route6_Text_NancyPostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_Isabelle:: + trainerbattle_single TRAINER_PICNICKER_ISABELLE, Route6_Text_IsabelleIntro, Route6_Text_IsabelleDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route6_EventScript_IsabelleRematch + msgbox Route6_Text_IsabellePostBattle, MSGBOX_AUTOCLOSE + end + +Route6_EventScript_IsabelleRematch:: + trainerbattle_rematch TRAINER_PICNICKER_ISABELLE, Route6_Text_IsabelleRematchIntro, Route6_Text_IsabelleDefeat + msgbox Route6_Text_IsabellePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Eddie:: + trainerbattle_single TRAINER_YOUNGSTER_EDDIE, Route11_Text_EddieIntro, Route11_Text_EddieDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_EddieRematch + msgbox Route11_Text_EddiePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_EddieRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_EDDIE, Route11_Text_EddieRematchIntro, Route11_Text_EddieDefeat + msgbox Route11_Text_EddiePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Dillon:: + trainerbattle_single TRAINER_YOUNGSTER_DILLON, Route11_Text_DillonIntro, Route11_Text_DillonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_DillonRematch + msgbox Route11_Text_DillonPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_DillonRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_DILLON, Route11_Text_DillonRematchIntro, Route11_Text_DillonDefeat + msgbox Route11_Text_DillonPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Yasu:: + trainerbattle_single TRAINER_YOUNGSTER_YASU, Route11_Text_YasuIntro, Route11_Text_YasuDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_YasuRematch + msgbox Route11_Text_YasuPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_YasuRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_YASU, Route11_Text_YasuRematchIntro, Route11_Text_YasuDefeat + msgbox Route11_Text_YasuPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Dave:: + trainerbattle_single TRAINER_YOUNGSTER_DAVE, Route11_Text_DaveIntro, Route11_Text_DaveDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_DaveRematch + msgbox Route11_Text_DavePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_DaveRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_DAVE, Route11_Text_DaveRematchIntro, Route11_Text_DaveDefeat + msgbox Route11_Text_DavePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Braxton:: + trainerbattle_single TRAINER_ENGINEER_BRAXTON, Route11_Text_BraxtonIntro, Route11_Text_BraxtonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_BraxtonRematch + msgbox Route11_Text_BraxtonPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_BraxtonRematch:: + trainerbattle_rematch TRAINER_ENGINEER_BRAXTON, Route11_Text_BraxtonRematchIntro, Route11_Text_BraxtonDefeat + msgbox Route11_Text_BraxtonPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Bernie:: + trainerbattle_single TRAINER_ENGINEER_BERNIE, Route11_Text_BernieIntro, Route11_Text_BernieDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_BernieRematch + msgbox Route11_Text_BerniePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_BernieRematch:: + trainerbattle_rematch TRAINER_ENGINEER_BERNIE, Route11_Text_BernieRematchIntro, Route11_Text_BernieDefeat + msgbox Route11_Text_BerniePostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Hugo:: + trainerbattle_single TRAINER_GAMER_HUGO, Route11_Text_HugoIntro, Route11_Text_HugoDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_HugoRematch + msgbox Route11_Text_HugoPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_HugoRematch:: + trainerbattle_rematch TRAINER_GAMER_HUGO, Route11_Text_HugoRematchIntro, Route11_Text_HugoDefeat + msgbox Route11_Text_HugoPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Jasper:: + trainerbattle_single TRAINER_GAMER_JASPER, Route11_Text_JasperIntro, Route11_Text_JasperDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_JasperRematch + msgbox Route11_Text_JasperPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_JasperRematch:: + trainerbattle_rematch TRAINER_GAMER_JASPER, Route11_Text_JasperRematchIntro, Route11_Text_JasperDefeat + msgbox Route11_Text_JasperPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Dirk:: + trainerbattle_single TRAINER_GAMER_DIRK, Route11_Text_DirkIntro, Route11_Text_DirkDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_DirkRematch + msgbox Route11_Text_DirkPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_DirkRematch:: + trainerbattle_rematch TRAINER_GAMER_DIRK, Route11_Text_DirkRematchIntro, Route11_Text_DirkDefeat + msgbox Route11_Text_DirkPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_Darian:: + trainerbattle_single TRAINER_GAMER_DARIAN, Route11_Text_DarianIntro, Route11_Text_DarianDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route11_EventScript_DarianRematch + msgbox Route11_Text_DarianPostBattle, MSGBOX_AUTOCLOSE + end + +Route11_EventScript_DarianRematch:: + trainerbattle_rematch TRAINER_GAMER_DARIAN, Route11_Text_DarianRematchIntro, Route11_Text_DarianDefeat + msgbox Route11_Text_DarianPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Brent:: + trainerbattle_single TRAINER_BUG_CATCHER_BRENT, Route9_Text_BrentIntro, Route9_Text_BrentDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_BrentRematch + msgbox Route9_Text_BrentPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_BrentRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_BRENT, Route9_Text_BrentRematchIntro, Route9_Text_BrentDefeat + msgbox Route9_Text_BrentPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Conner:: + trainerbattle_single TRAINER_BUG_CATCHER_CONNER, Route9_Text_ConnerIntro, Route9_Text_ConnerDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_ConnerRematch + msgbox Route9_Text_ConnerPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_ConnerRematch:: + trainerbattle_rematch TRAINER_BUG_CATCHER_CONNER, Route9_Text_ConnerRematchIntro, Route9_Text_ConnerDefeat + msgbox Route9_Text_ConnerPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Chris:: + trainerbattle_single TRAINER_CAMPER_CHRIS, Route9_Text_ChrisIntro, Route9_Text_ChrisDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_ChrisRematch + msgbox Route9_Text_ChrisPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_ChrisRematch:: + trainerbattle_rematch TRAINER_CAMPER_CHRIS, Route9_Text_ChrisRematchIntro, Route9_Text_ChrisDefeat + msgbox Route9_Text_ChrisPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Drew:: + trainerbattle_single TRAINER_CAMPER_DREW, Route9_Text_DrewIntro, Route9_Text_DrewDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_DrewRematch + msgbox Route9_Text_DrewPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_DrewRematch:: + trainerbattle_rematch TRAINER_CAMPER_DREW, Route9_Text_DrewRematchIntro, Route9_Text_DrewDefeat + msgbox Route9_Text_DrewPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Alicia:: + trainerbattle_single TRAINER_PICNICKER_ALICIA, Route9_Text_AliciaIntro, Route9_Text_AliciaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_AliciaRematch + msgbox Route9_Text_AliciaPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_AliciaRematch:: + trainerbattle_rematch TRAINER_PICNICKER_ALICIA, Route9_Text_AliciaRematchIntro, Route9_Text_AliciaDefeat + msgbox Route9_Text_AliciaPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Caitlin:: + trainerbattle_single TRAINER_PICNICKER_CAITLIN, Route9_Text_CaitlinIntro, Route9_Text_CaitlinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_CaitlinRematch + msgbox Route9_Text_CaitlinPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_CaitlinRematch:: + trainerbattle_rematch TRAINER_PICNICKER_CAITLIN, Route9_Text_CaitlinRematchIntro, Route9_Text_CaitlinDefeat + msgbox Route9_Text_CaitlinPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Alan:: + trainerbattle_single TRAINER_HIKER_ALAN, Route9_Text_AlanIntro, Route9_Text_AlanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_AlanRematch + msgbox Route9_Text_AlanPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_AlanRematch:: + trainerbattle_rematch TRAINER_HIKER_ALAN, Route9_Text_AlanRematchIntro, Route9_Text_AlanDefeat + msgbox Route9_Text_AlanPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Brice:: + trainerbattle_single TRAINER_HIKER_BRICE, Route9_Text_BriceIntro, Route9_Text_BriceDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_BriceRematch + msgbox Route9_Text_BricePostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_BriceRematch:: + trainerbattle_rematch TRAINER_HIKER_BRICE, Route9_Text_BriceRematchIntro, Route9_Text_BriceDefeat + msgbox Route9_Text_BricePostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_Jeremy:: + trainerbattle_single TRAINER_HIKER_JEREMY, Route9_Text_JeremyIntro, Route9_Text_JeremyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route9_EventScript_JeremyRematch + msgbox Route9_Text_JeremyPostBattle, MSGBOX_AUTOCLOSE + end + +Route9_EventScript_JeremyRematch:: + trainerbattle_rematch TRAINER_HIKER_JEREMY, Route9_Text_JeremyRematchIntro, Route9_Text_JeremyDefeat + msgbox Route9_Text_JeremyPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_Heidi:: + trainerbattle_single TRAINER_PICNICKER_HEIDI, Route10_Text_HeidiIntro, Route10_Text_HeidiDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route10_EventScript_HeidiRematch + msgbox Route10_Text_HeidiPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_HeidiRematch:: + trainerbattle_rematch TRAINER_PICNICKER_HEIDI, Route10_Text_HeidiRematchIntro, Route10_Text_HeidiDefeat + msgbox Route10_Text_HeidiPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_Carol:: + trainerbattle_single TRAINER_PICNICKER_CAROL, Route10_Text_CarolIntro, Route10_Text_CarolDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route10_EventScript_CarolRematch + msgbox Route10_Text_CarolPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_CarolRematch:: + trainerbattle_rematch TRAINER_PICNICKER_CAROL, Route10_Text_CarolRematchIntro, Route10_Text_CarolDefeat + msgbox Route10_Text_CarolPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_Mark:: + trainerbattle_single TRAINER_POKEMANIAC_MARK, Route10_Text_MarkIntro, Route10_Text_MarkDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route10_EventScript_MarkRematch + msgbox Route10_Text_MarkPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_MarkRematch:: + trainerbattle_rematch TRAINER_POKEMANIAC_MARK, Route10_Text_MarkRematchIntro, Route10_Text_MarkDefeat + msgbox Route10_Text_MarkPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_Herman:: + trainerbattle_single TRAINER_POKEMANIAC_HERMAN, Route10_Text_HermanIntro, Route10_Text_HermanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route10_EventScript_HermanRematch + msgbox Route10_Text_HermanPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_HermanRematch:: + trainerbattle_rematch TRAINER_POKEMANIAC_HERMAN, Route10_Text_HermanRematchIntro, Route10_Text_HermanDefeat + msgbox Route10_Text_HermanPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_Clark:: + trainerbattle_single TRAINER_HIKER_CLARK, Route10_Text_ClarkIntro, Route10_Text_ClarkDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route10_EventScript_ClarkRematch + msgbox Route10_Text_ClarkPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_ClarkRematch:: + trainerbattle_rematch TRAINER_HIKER_CLARK, Route10_Text_ClarkRematchIntro, Route10_Text_ClarkDefeat + msgbox Route10_Text_ClarkPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_Trent:: + trainerbattle_single TRAINER_HIKER_TRENT, Route10_Text_TrentIntro, Route10_Text_TrentDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route10_EventScript_TrentRematch + msgbox Route10_Text_TrentPostBattle, MSGBOX_AUTOCLOSE + end + +Route10_EventScript_TrentRematch:: + trainerbattle_rematch TRAINER_HIKER_TRENT, Route10_Text_TrentRematchIntro, Route10_Text_TrentDefeat + msgbox Route10_Text_TrentPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Paige:: + trainerbattle_single TRAINER_LASS_PAIGE, Route8_Text_PaigeIntro, Route8_Text_PaigeDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_PaigeRematch + msgbox Route8_Text_PaigePostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_PaigeRematch:: + trainerbattle_rematch TRAINER_LASS_PAIGE, Route8_Text_PaigeRematchIntro, Route8_Text_PaigeDefeat + msgbox Route8_Text_PaigePostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Andrea:: + trainerbattle_single TRAINER_LASS_ANDREA, Route8_Text_AndreaIntro, Route8_Text_AndreaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_AndreaRematch + msgbox Route8_Text_AndreaPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_AndreaRematch:: + trainerbattle_rematch TRAINER_LASS_ANDREA, Route8_Text_AndreaRematchIntro, Route8_Text_AndreaDefeat + msgbox Route8_Text_AndreaPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Megan:: + trainerbattle_single TRAINER_LASS_MEGAN, Route8_Text_MeganIntro, Route8_Text_MeganDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_MeganRematch + msgbox Route8_Text_MeganPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_MeganRematch:: + trainerbattle_rematch TRAINER_LASS_MEGAN, Route8_Text_MeganRematchIntro, Route8_Text_MeganDefeat + msgbox Route8_Text_MeganPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Julia:: + trainerbattle_single TRAINER_LASS_JULIA, Route8_Text_JuliaIntro, Route8_Text_JuliaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_JuliaRematch + msgbox Route8_Text_JuliaPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_JuliaRematch:: + trainerbattle_rematch TRAINER_LASS_JULIA, Route8_Text_JuliaRematchIntro, Route8_Text_JuliaDefeat + msgbox Route8_Text_JuliaPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Aidan:: + trainerbattle_single TRAINER_SUPER_NERD_AIDAN, Route8_Text_AidanIntro, Route8_Text_AidanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_AidanRematch + msgbox Route8_Text_AidanPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_AidanRematch:: + trainerbattle_rematch TRAINER_SUPER_NERD_AIDAN, Route8_Text_AidanRematchIntro, Route8_Text_AidanDefeat + msgbox Route8_Text_AidanPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Glenn:: + trainerbattle_single TRAINER_SUPER_NERD_GLENN, Route8_Text_GlennIntro, Route8_Text_GlennDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_GlennRematch + msgbox Route8_Text_GlennPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_GlennRematch:: + trainerbattle_rematch TRAINER_SUPER_NERD_GLENN, Route8_Text_GlennRematchIntro, Route8_Text_GlennDefeat + msgbox Route8_Text_GlennPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Leslie:: + trainerbattle_single TRAINER_SUPER_NERD_LESLIE, Route8_Text_LeslieIntro, Route8_Text_LeslieDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_LeslieRematch + msgbox Route8_Text_LesliePostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_LeslieRematch:: + trainerbattle_rematch TRAINER_SUPER_NERD_LESLIE, Route8_Text_LeslieRematchIntro, Route8_Text_LeslieDefeat + msgbox Route8_Text_LesliePostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Stan:: + trainerbattle_single TRAINER_GAMER_STAN, Route8_Text_StanIntro, Route8_Text_StanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_StanRematch + msgbox Route8_Text_StanPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_StanRematch:: + trainerbattle_rematch TRAINER_GAMER_STAN, Route8_Text_StanRematchIntro, Route8_Text_StanDefeat + msgbox Route8_Text_StanPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Rich:: + trainerbattle_single TRAINER_GAMER_RICH, Route8_Text_RichIntro, Route8_Text_RichDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_RichRematch + msgbox Route8_Text_RichPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_RichRematch:: + trainerbattle_rematch TRAINER_GAMER_RICH, Route8_Text_RichRematchIntro, Route8_Text_RichDefeat + msgbox Route8_Text_RichPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Eli:: + trainerbattle_double TRAINER_TWINS_ELI_ANNE, Route8_Text_EliIntro, Route8_Text_EliDefeat, Route8_Text_EliNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_EliRematch + msgbox Route8_Text_EliPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_EliRematch:: + trainerbattle_rematch_double TRAINER_TWINS_ELI_ANNE, Route8_Text_EliRematchIntro, Route8_Text_EliDefeat, Route8_Text_EliNotEnoughMons + msgbox Route8_Text_EliPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Anne:: + trainerbattle_double TRAINER_TWINS_ELI_ANNE, Route8_Text_AnneIntro, Route8_Text_AnneDefeat, Route8_Text_AnneNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_AnneRematch + msgbox Route8_Text_AnnePostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_AnneRematch:: + trainerbattle_rematch_double TRAINER_TWINS_ELI_ANNE, Route8_Text_AnneRematchIntro, Route8_Text_AnneDefeat, Route8_Text_AnneNotEnoughMons + msgbox Route8_Text_AnnePostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Ricardo:: + trainerbattle_single TRAINER_BIKER_RICARDO, Route8_Text_RicardoIntro, Route8_Text_RicardoDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_RicardoRematch + msgbox Route8_Text_RicardoPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_RicardoRematch:: + trainerbattle_rematch TRAINER_BIKER_RICARDO, Route8_Text_RicardoRematchIntro, Route8_Text_RicardoDefeat + msgbox Route8_Text_RicardoPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_Jaren:: + trainerbattle_single TRAINER_BIKER_JAREN, Route8_Text_JarenIntro, Route8_Text_JarenDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route8_EventScript_JarenRematch + msgbox Route8_Text_JarenPostBattle, MSGBOX_AUTOCLOSE + end + +Route8_EventScript_JarenRematch:: + trainerbattle_rematch TRAINER_BIKER_JAREN, Route8_Text_JarenRematchIntro, Route8_Text_JarenDefeat + msgbox Route8_Text_JarenPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Ned:: + trainerbattle_single TRAINER_FISHERMAN_NED, Route12_Text_NedIntro, Route12_Text_NedDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_NedRematch + msgbox Route12_Text_NedPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_NedRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_NED, Route12_Text_NedRematchIntro, Route12_Text_NedDefeat + msgbox Route12_Text_NedPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Chip:: + trainerbattle_single TRAINER_FISHERMAN_CHIP, Route12_Text_ChipIntro, Route12_Text_ChipDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_ChipRematch + msgbox Route12_Text_ChipPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_ChipRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_CHIP, Route12_Text_ChipRematchIntro, Route12_Text_ChipDefeat + msgbox Route12_Text_ChipPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Hank:: + trainerbattle_single TRAINER_FISHERMAN_HANK, Route12_Text_HankIntro, Route12_Text_HankDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_HankRematch + msgbox Route12_Text_HankPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_HankRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_HANK, Route12_Text_HankRematchIntro, Route12_Text_HankDefeat + msgbox Route12_Text_HankPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Elliot:: + trainerbattle_single TRAINER_FISHERMAN_ELLIOT, Route12_Text_ElliotIntro, Route12_Text_ElliotDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_ElliotRematch + msgbox Route12_Text_ElliotPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_ElliotRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_ELLIOT, Route12_Text_ElliotRematchIntro, Route12_Text_ElliotDefeat + msgbox Route12_Text_ElliotPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Andrew:: + trainerbattle_single TRAINER_FISHERMAN_ANDREW, Route12_Text_AndrewIntro, Route12_Text_AndrewDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_AndrewRematch + msgbox Route12_Text_AndrewPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_AndrewRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_ANDREW, Route12_Text_AndrewRematchIntro, Route12_Text_AndrewDefeat + msgbox Route12_Text_AndrewPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Luca:: + trainerbattle_single TRAINER_ROCKER_LUCA, Route12_Text_LucaIntro, Route12_Text_LucaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_LucaRematch + msgbox Route12_Text_LucaPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_LucaRematch:: + trainerbattle_rematch TRAINER_ROCKER_LUCA, Route12_Text_LucaRematchIntro, Route12_Text_LucaDefeat + msgbox Route12_Text_LucaPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Justin:: + trainerbattle_single TRAINER_CAMPER_JUSTIN, Route12_Text_JustinIntro, Route12_Text_JustinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_JustinRematch + msgbox Route12_Text_JustinPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_JustinRematch:: + trainerbattle_rematch TRAINER_CAMPER_JUSTIN, Route12_Text_JustinRematchIntro, Route12_Text_JustinDefeat + msgbox Route12_Text_JustinPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Jes:: + trainerbattle_double TRAINER_YOUNG_COUPLE_GIA_JES, Route12_Text_JesIntro, Route12_Text_JesDefeat, Route12_Text_JesNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_JesRematch + msgbox Route12_Text_JesPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_JesRematch:: + trainerbattle_rematch_double TRAINER_YOUNG_COUPLE_GIA_JES, Route12_Text_JesRematchIntro, Route12_Text_JesDefeat, Route12_Text_JesNotEnoughMons + msgbox Route12_Text_JesPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_Gia:: + trainerbattle_double TRAINER_YOUNG_COUPLE_GIA_JES, Route12_Text_GiaIntro, Route12_Text_GiaDefeat, Route12_Text_GiaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route12_EventScript_GiaRematch + msgbox Route12_Text_GiaPostBattle, MSGBOX_AUTOCLOSE + end + +Route12_EventScript_GiaRematch:: + trainerbattle_rematch_double TRAINER_YOUNG_COUPLE_GIA_JES, Route12_Text_GiaRematchIntro, Route12_Text_GiaDefeat, Route12_Text_GiaNotEnoughMons + msgbox Route12_Text_GiaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Jared:: + trainerbattle_single TRAINER_BIKER_JARED, Route13_Text_JaredIntro, Route13_Text_JaredDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_JaredRematch + msgbox Route13_Text_JaredPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_JaredRematch:: + trainerbattle_rematch TRAINER_BIKER_JARED, Route13_Text_JaredRematchIntro, Route13_Text_JaredDefeat + msgbox Route13_Text_JaredPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Lola:: + trainerbattle_single TRAINER_BEAUTY_LOLA, Route13_Text_LolaIntro, Route13_Text_LolaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_LolaRematch + msgbox Route13_Text_LolaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_LolaRematch:: + trainerbattle_rematch TRAINER_BEAUTY_LOLA, Route13_Text_LolaRematchIntro, Route13_Text_LolaDefeat + msgbox Route13_Text_LolaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Sheila:: + trainerbattle_single TRAINER_BEAUTY_SHEILA, Route13_Text_SheilaIntro, Route13_Text_SheilaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_SheilaRematch + msgbox Route13_Text_SheilaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_SheilaRematch:: + trainerbattle_rematch TRAINER_BEAUTY_SHEILA, Route13_Text_SheilaRematchIntro, Route13_Text_SheilaDefeat + msgbox Route13_Text_SheilaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Sebastian:: + trainerbattle_single TRAINER_BIRD_KEEPER_SEBASTIAN, Route13_Text_SebastianIntro, Route13_Text_SebastianDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_SebastianRematch + msgbox Route13_Text_SebastianPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_SebastianRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_SEBASTIAN, Route13_Text_SebastianRematchIntro, Route13_Text_SebastianDefeat + msgbox Route13_Text_SebastianPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Perry:: + trainerbattle_single TRAINER_BIRD_KEEPER_PERRY, Route13_Text_PerryIntro, Route13_Text_PerryDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_PerryRematch + msgbox Route13_Text_PerryPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_PerryRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_PERRY, Route13_Text_PerryRematchIntro, Route13_Text_PerryDefeat + msgbox Route13_Text_PerryPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Robert:: + trainerbattle_single TRAINER_BIRD_KEEPER_ROBERT, Route13_Text_RobertIntro, Route13_Text_RobertDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_RobertRematch + msgbox Route13_Text_RobertPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_RobertRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_ROBERT, Route13_Text_RobertRematchIntro, Route13_Text_RobertDefeat + msgbox Route13_Text_RobertPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Alma:: + trainerbattle_single TRAINER_PICNICKER_ALMA, Route13_Text_AlmaIntro, Route13_Text_AlmaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_AlmaRematch + msgbox Route13_Text_AlmaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_AlmaRematch:: + trainerbattle_rematch TRAINER_PICNICKER_ALMA, Route13_Text_AlmaRematchIntro, Route13_Text_AlmaDefeat + msgbox Route13_Text_AlmaPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Susie:: + trainerbattle_single TRAINER_PICNICKER_SUSIE, Route13_Text_SusieIntro, Route13_Text_SusieDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_SusieRematch + msgbox Route13_Text_SusiePostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_SusieRematch:: + trainerbattle_rematch TRAINER_PICNICKER_SUSIE, Route13_Text_SusieRematchIntro, Route13_Text_SusieDefeat + msgbox Route13_Text_SusiePostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Valerie:: + trainerbattle_single TRAINER_PICNICKER_VALERIE, Route13_Text_ValerieIntro, Route13_Text_ValerieDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_ValerieRematch + msgbox Route13_Text_ValeriePostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_ValerieRematch:: + trainerbattle_rematch TRAINER_PICNICKER_VALERIE, Route13_Text_ValerieRematchIntro, Route13_Text_ValerieDefeat + msgbox Route13_Text_ValeriePostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_Gwen:: + trainerbattle_single TRAINER_PICNICKER_GWEN, Route13_Text_GwenIntro, Route13_Text_GwenDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route13_EventScript_GwenRematch + msgbox Route13_Text_GwenPostBattle, MSGBOX_AUTOCLOSE + end + +Route13_EventScript_GwenRematch:: + trainerbattle_rematch TRAINER_PICNICKER_GWEN, Route13_Text_GwenRematchIntro, Route13_Text_GwenDefeat + msgbox Route13_Text_GwenPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Malik:: + trainerbattle_single TRAINER_BIKER_MALIK, Route14_Text_MalikIntro, Route14_Text_MalikDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_MalikRematch + msgbox Route14_Text_MalikPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_MalikRematch:: + trainerbattle_rematch TRAINER_BIKER_MALIK, Route14_Text_MalikRematchIntro, Route14_Text_MalikDefeat + msgbox Route14_Text_MalikPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Lukas:: + trainerbattle_single TRAINER_BIKER_LUKAS, Route14_Text_LukasIntro, Route14_Text_LukasDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_LukasRematch + msgbox Route14_Text_LukasPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_LukasRematch:: + trainerbattle_rematch TRAINER_BIKER_LUKAS, Route14_Text_LukasRematchIntro, Route14_Text_LukasDefeat + msgbox Route14_Text_LukasPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Isaac:: + trainerbattle_single TRAINER_BIKER_ISAAC, Route14_Text_IsaacIntro, Route14_Text_IsaacDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_IsaacRematch + msgbox Route14_Text_IsaacPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_IsaacRematch:: + trainerbattle_rematch TRAINER_BIKER_ISAAC, Route14_Text_IsaacRematchIntro, Route14_Text_IsaacDefeat + msgbox Route14_Text_IsaacPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Gerald:: + trainerbattle_single TRAINER_BIKER_GERALD, Route14_Text_GeraldIntro, Route14_Text_GeraldDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_GeraldRematch + msgbox Route14_Text_GeraldPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_GeraldRematch:: + trainerbattle_rematch TRAINER_BIKER_GERALD, Route14_Text_GeraldRematchIntro, Route14_Text_GeraldDefeat + msgbox Route14_Text_GeraldPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Donald:: + trainerbattle_single TRAINER_BIRD_KEEPER_DONALD, Route14_Text_DonaldIntro, Route14_Text_DonaldDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_DonaldRematch + msgbox Route14_Text_DonaldPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_DonaldRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_DONALD, Route14_Text_DonaldRematchIntro, Route14_Text_DonaldDefeat + msgbox Route14_Text_DonaldPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Benny:: + trainerbattle_single TRAINER_BIRD_KEEPER_BENNY, Route14_Text_BennyIntro, Route14_Text_BennyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_BennyRematch + msgbox Route14_Text_BennyPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_BennyRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_BENNY, Route14_Text_BennyRematchIntro, Route14_Text_BennyDefeat + msgbox Route14_Text_BennyPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Carter:: + trainerbattle_single TRAINER_BIRD_KEEPER_CARTER, Route14_Text_CarterIntro, Route14_Text_CarterDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_CarterRematch + msgbox Route14_Text_CarterPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_CarterRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_CARTER, Route14_Text_CarterRematchIntro, Route14_Text_CarterDefeat + msgbox Route14_Text_CarterPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Mitch:: + trainerbattle_single TRAINER_BIRD_KEEPER_MITCH, Route14_Text_MitchIntro, Route14_Text_MitchDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_MitchRematch + msgbox Route14_Text_MitchPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_MitchRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_MITCH, Route14_Text_MitchRematchIntro, Route14_Text_MitchDefeat + msgbox Route14_Text_MitchPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Beck:: + trainerbattle_single TRAINER_BIRD_KEEPER_BECK, Route14_Text_BeckIntro, Route14_Text_BeckDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_BeckRematch + msgbox Route14_Text_BeckPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_BeckRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_BECK, Route14_Text_BeckRematchIntro, Route14_Text_BeckDefeat + msgbox Route14_Text_BeckPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Marlon:: + trainerbattle_single TRAINER_BIRD_KEEPER_MARLON, Route14_Text_MarlonIntro, Route14_Text_MarlonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_MarlonRematch + msgbox Route14_Text_MarlonPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_MarlonRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_MARLON, Route14_Text_MarlonRematchIntro, Route14_Text_MarlonDefeat + msgbox Route14_Text_MarlonPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Kiri:: + trainerbattle_double TRAINER_TWINS_KIRI_JAN, Route14_Text_KiriIntro, Route14_Text_KiriDefeat, Route14_Text_KiriNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_KiriRematch + msgbox Route14_Text_KiriPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_KiriRematch:: + trainerbattle_rematch_double TRAINER_TWINS_KIRI_JAN, Route14_Text_KiriRematchIntro, Route14_Text_KiriDefeat, Route14_Text_KiriNotEnoughMons + msgbox Route14_Text_KiriPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_Jan:: + trainerbattle_double TRAINER_TWINS_KIRI_JAN, Route14_Text_JanIntro, Route14_Text_JanDefeat, Route14_Text_JanNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route14_EventScript_JanRematch + msgbox Route14_Text_JanPostBattle, MSGBOX_AUTOCLOSE + end + +Route14_EventScript_JanRematch:: + trainerbattle_rematch_double TRAINER_TWINS_KIRI_JAN, Route14_Text_JanRematchIntro, Route14_Text_JanDefeat, Route14_Text_JanNotEnoughMons + msgbox Route14_Text_JanPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Ernest:: + trainerbattle_single TRAINER_BIKER_ERNEST, Route15_Text_ErnestIntro, Route15_Text_ErnestDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_ErnestRematch + msgbox Route15_Text_ErnestPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_ErnestRematch:: + trainerbattle_rematch TRAINER_BIKER_ERNEST, Route15_Text_ErnestRematchIntro, Route15_Text_ErnestDefeat + msgbox Route15_Text_ErnestPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Alex:: + trainerbattle_single TRAINER_BIKER_ALEX, Route15_Text_AlexIntro, Route15_Text_AlexDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_AlexRematch + msgbox Route15_Text_AlexPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_AlexRematch:: + trainerbattle_rematch TRAINER_BIKER_ALEX, Route15_Text_AlexRematchIntro, Route15_Text_AlexDefeat + msgbox Route15_Text_AlexPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Grace:: + trainerbattle_single TRAINER_BEAUTY_GRACE, Route15_Text_GraceIntro, Route15_Text_GraceDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_GraceRematch + msgbox Route15_Text_GracePostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_GraceRematch:: + trainerbattle_rematch TRAINER_BEAUTY_GRACE, Route15_Text_GraceRematchIntro, Route15_Text_GraceDefeat + msgbox Route15_Text_GracePostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Olivia:: + trainerbattle_single TRAINER_BEAUTY_OLIVIA, Route15_Text_OliviaIntro, Route15_Text_OliviaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_OliviaRematch + msgbox Route15_Text_OliviaPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_OliviaRematch:: + trainerbattle_rematch TRAINER_BEAUTY_OLIVIA, Route15_Text_OliviaRematchIntro, Route15_Text_OliviaDefeat + msgbox Route15_Text_OliviaPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Edwin:: + trainerbattle_single TRAINER_BIRD_KEEPER_EDWIN, Route15_Text_EdwinIntro, Route15_Text_EdwinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_EdwinRematch + msgbox Route15_Text_EdwinPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_EdwinRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_EDWIN, Route15_Text_EdwinRematchIntro, Route15_Text_EdwinDefeat + msgbox Route15_Text_EdwinPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Chester:: + trainerbattle_single TRAINER_BIRD_KEEPER_CHESTER, Route15_Text_ChesterIntro, Route15_Text_ChesterDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_ChesterRematch + msgbox Route15_Text_ChesterPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_ChesterRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_CHESTER, Route15_Text_ChesterRematchIntro, Route15_Text_ChesterDefeat + msgbox Route15_Text_ChesterPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Yazmin:: + trainerbattle_single TRAINER_PICNICKER_YAZMIN, Route15_Text_YazminIntro, Route15_Text_YazminDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_YazminRematch + msgbox Route15_Text_YazminPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_YazminRematch:: + trainerbattle_rematch TRAINER_PICNICKER_YAZMIN, Route15_Text_YazminRematchIntro, Route15_Text_YazminDefeat + msgbox Route15_Text_YazminPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Kindra:: + trainerbattle_single TRAINER_PICNICKER_KINDRA, Route15_Text_KindraIntro, Route15_Text_KindraDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_KindraRematch + msgbox Route15_Text_KindraPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_KindraRematch:: + trainerbattle_rematch TRAINER_PICNICKER_KINDRA, Route15_Text_KindraRematchIntro, Route15_Text_KindraDefeat + msgbox Route15_Text_KindraPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Becky:: + trainerbattle_single TRAINER_PICNICKER_BECKY, Route15_Text_BeckyIntro, Route15_Text_BeckyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_BeckyRematch + msgbox Route15_Text_BeckyPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_BeckyRematch:: + trainerbattle_rematch TRAINER_PICNICKER_BECKY, Route15_Text_BeckyRematchIntro, Route15_Text_BeckyDefeat + msgbox Route15_Text_BeckyPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Celia:: + trainerbattle_single TRAINER_PICNICKER_CELIA, Route15_Text_CeliaIntro, Route15_Text_CeliaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_CeliaRematch + msgbox Route15_Text_CeliaPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_CeliaRematch:: + trainerbattle_rematch TRAINER_PICNICKER_CELIA, Route15_Text_CeliaRematchIntro, Route15_Text_CeliaDefeat + msgbox Route15_Text_CeliaPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Mya:: + trainerbattle_double TRAINER_CRUSH_KIN_RON_MYA, Route15_Text_MyaIntro, Route15_Text_MyaDefeat, Route15_Text_MyaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_MyaRematch + msgbox Route15_Text_MyaPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_MyaRematch:: + trainerbattle_rematch_double TRAINER_CRUSH_KIN_RON_MYA, Route15_Text_MyaRematchIntro, Route15_Text_MyaDefeat, Route15_Text_MyaNotEnoughMons + msgbox Route15_Text_MyaPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_Ron:: + trainerbattle_double TRAINER_CRUSH_KIN_RON_MYA, Route15_Text_RonIntro, Route15_Text_RonDefeat, Route15_Text_RonNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route15_EventScript_RonRematch + msgbox Route15_Text_RonPostBattle, MSGBOX_AUTOCLOSE + end + +Route15_EventScript_RonRematch:: + trainerbattle_rematch_double TRAINER_CRUSH_KIN_RON_MYA, Route15_Text_RonRematchIntro, Route15_Text_RonDefeat, Route15_Text_RonNotEnoughMons + msgbox Route15_Text_RonPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Lao:: + trainerbattle_single TRAINER_BIKER_LAO, Route16_Text_LaoIntro, Route16_Text_LaoDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_LaoRematch + msgbox Route16_Text_LaoPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_LaoRematch:: + trainerbattle_rematch TRAINER_BIKER_LAO, Route16_Text_LaoRematchIntro, Route16_Text_LaoDefeat + msgbox Route16_Text_LaoPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Hideo:: + trainerbattle_single TRAINER_BIKER_HIDEO, Route16_Text_HideoIntro, Route16_Text_HideoDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_HideoRematch + msgbox Route16_Text_HideoPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_HideoRematch:: + trainerbattle_rematch TRAINER_BIKER_HIDEO, Route16_Text_HideoRematchIntro, Route16_Text_HideoDefeat + msgbox Route16_Text_HideoPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Ruben:: + trainerbattle_single TRAINER_BIKER_RUBEN, Route16_Text_RubenIntro, Route16_Text_RubenDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_RubenRematch + msgbox Route16_Text_RubenPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_RubenRematch:: + trainerbattle_rematch TRAINER_BIKER_RUBEN, Route16_Text_RubenRematchIntro, Route16_Text_RubenDefeat + msgbox Route16_Text_RubenPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Koji:: + trainerbattle_single TRAINER_CUE_BALL_KOJI, Route16_Text_KojiIntro, Route16_Text_KojiDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_KojiRematch + msgbox Route16_Text_KojiPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_KojiRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_KOJI, Route16_Text_KojiRematchIntro, Route16_Text_KojiDefeat + msgbox Route16_Text_KojiPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Luke:: + trainerbattle_single TRAINER_CUE_BALL_LUKE, Route16_Text_LukeIntro, Route16_Text_LukeDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_LukeRematch + msgbox Route16_Text_LukePostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_LukeRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_LUKE, Route16_Text_LukeRematchIntro, Route16_Text_LukeDefeat + msgbox Route16_Text_LukePostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Camron:: + trainerbattle_single TRAINER_CUE_BALL_CAMRON, Route16_Text_CamronIntro, Route16_Text_CamronDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_CamronRematch + msgbox Route16_Text_CamronPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_CamronRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_CAMRON, Route16_Text_CamronRematchIntro, Route16_Text_CamronDefeat + msgbox Route16_Text_CamronPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Jed:: + trainerbattle_double TRAINER_YOUNG_COUPLE_LEA_JED, Route16_Text_JedIntro, Route16_Text_JedDefeat, Route16_Text_JedNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_JedRematch + msgbox Route16_Text_JedPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_JedRematch:: + trainerbattle_rematch_double TRAINER_YOUNG_COUPLE_LEA_JED, Route16_Text_JedRematchIntro, Route16_Text_JedDefeat, Route16_Text_JedNotEnoughMons + msgbox Route16_Text_JedPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_Lea:: + trainerbattle_double TRAINER_YOUNG_COUPLE_LEA_JED, Route16_Text_LeaIntro, Route16_Text_LeaDefeat, Route16_Text_LeaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route16_EventScript_LeaRematch + msgbox Route16_Text_LeaPostBattle, MSGBOX_AUTOCLOSE + end + +Route16_EventScript_LeaRematch:: + trainerbattle_rematch_double TRAINER_YOUNG_COUPLE_LEA_JED, Route16_Text_LeaRematchIntro, Route16_Text_LeaDefeat, Route16_Text_LeaNotEnoughMons + msgbox Route16_Text_LeaPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Billy:: + trainerbattle_single TRAINER_BIKER_BILLY, Route17_Text_BillyIntro, Route17_Text_BillyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_BillyRematch + msgbox Route17_Text_BillyPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_BillyRematch:: + trainerbattle_rematch TRAINER_BIKER_BILLY, Route17_Text_BillyRematchIntro, Route17_Text_BillyDefeat + msgbox Route17_Text_BillyPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Nikolas:: + trainerbattle_single TRAINER_BIKER_NIKOLAS, Route17_Text_NikolasIntro, Route17_Text_NikolasDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_NikolasRematch + msgbox Route17_Text_NikolasPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_NikolasRematch:: + trainerbattle_rematch TRAINER_BIKER_NIKOLAS, Route17_Text_NikolasRematchIntro, Route17_Text_NikolasDefeat + msgbox Route17_Text_NikolasPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Jaxon:: + trainerbattle_single TRAINER_BIKER_JAXON, Route17_Text_JaxonIntro, Route17_Text_JaxonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_JaxonRematch + msgbox Route17_Text_JaxonPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_JaxonRematch:: + trainerbattle_rematch TRAINER_BIKER_JAXON, Route17_Text_JaxonRematchIntro, Route17_Text_JaxonDefeat + msgbox Route17_Text_JaxonPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_William:: + trainerbattle_single TRAINER_BIKER_WILLIAM, Route17_Text_WilliamIntro, Route17_Text_WilliamDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_WilliamRematch + msgbox Route17_Text_WilliamPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_WilliamRematch:: + trainerbattle_rematch TRAINER_BIKER_WILLIAM, Route17_Text_WilliamRematchIntro, Route17_Text_WilliamDefeat + msgbox Route17_Text_WilliamPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Raul:: + trainerbattle_single TRAINER_CUE_BALL_RAUL, Route17_Text_RaulIntro, Route17_Text_RaulDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_RaulRematch + msgbox Route17_Text_RaulPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_RaulRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_RAUL, Route17_Text_RaulRematchIntro, Route17_Text_RaulDefeat + msgbox Route17_Text_RaulPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Isaiah:: + trainerbattle_single TRAINER_CUE_BALL_ISAIAH, Route17_Text_IsaiahIntro, Route17_Text_IsaiahDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_IsaiahRematch + msgbox Route17_Text_IsaiahPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_IsaiahRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_ISAIAH, Route17_Text_IsaiahRematchIntro, Route17_Text_IsaiahDefeat + msgbox Route17_Text_IsaiahPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Zeek:: + trainerbattle_single TRAINER_CUE_BALL_ZEEK, Route17_Text_ZeekIntro, Route17_Text_ZeekDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_ZeekRematch + msgbox Route17_Text_ZeekPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_ZeekRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_ZEEK, Route17_Text_ZeekRematchIntro, Route17_Text_ZeekDefeat + msgbox Route17_Text_ZeekPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Jamal:: + trainerbattle_single TRAINER_CUE_BALL_JAMAL, Route17_Text_JamalIntro, Route17_Text_JamalDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_JamalRematch + msgbox Route17_Text_JamalPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_JamalRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_JAMAL, Route17_Text_JamalRematchIntro, Route17_Text_JamalDefeat + msgbox Route17_Text_JamalPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Corey:: + trainerbattle_single TRAINER_CUE_BALL_COREY, Route17_Text_CoreyIntro, Route17_Text_CoreyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_CoreyRematch + msgbox Route17_Text_CoreyPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_CoreyRematch:: + trainerbattle_rematch TRAINER_CUE_BALL_COREY, Route17_Text_CoreyRematchIntro, Route17_Text_CoreyDefeat + msgbox Route17_Text_CoreyPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_Virgil:: + trainerbattle_single TRAINER_BIKER_VIRGIL, Route17_Text_VirgilIntro, Route17_Text_VirgilDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route17_EventScript_VirgilRematch + msgbox Route17_Text_VirgilPostBattle, MSGBOX_AUTOCLOSE + end + +Route17_EventScript_VirgilRematch:: + trainerbattle_rematch TRAINER_BIKER_VIRGIL, Route17_Text_VirgilRematchIntro, Route17_Text_VirgilDefeat + msgbox Route17_Text_VirgilPostBattle, MSGBOX_AUTOCLOSE + end + +Route18_EventScript_Wilton:: + trainerbattle_single TRAINER_BIRD_KEEPER_WILTON, Route18_Text_WiltonIntro, Route18_Text_WiltonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route18_EventScript_WiltonRematch + msgbox Route18_Text_WiltonPostBattle, MSGBOX_AUTOCLOSE + end + +Route18_EventScript_WiltonRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_WILTON, Route18_Text_WiltonRematchIntro, Route18_Text_WiltonDefeat + msgbox Route18_Text_WiltonPostBattle, MSGBOX_AUTOCLOSE + end + +Route18_EventScript_Ramiro:: + trainerbattle_single TRAINER_BIRD_KEEPER_RAMIRO, Route18_Text_RamiroIntro, Route18_Text_RamiroDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route18_EventScript_RamiroRematch + msgbox Route18_Text_RamiroPostBattle, MSGBOX_AUTOCLOSE + end + +Route18_EventScript_RamiroRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_RAMIRO, Route18_Text_RamiroRematchIntro, Route18_Text_RamiroDefeat + msgbox Route18_Text_RamiroPostBattle, MSGBOX_AUTOCLOSE + end + +Route18_EventScript_Jacob:: + trainerbattle_single TRAINER_BIRD_KEEPER_JACOB, Route18_Text_JacobIntro, Route18_Text_JacobDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route18_EventScript_JacobRematch + msgbox Route18_Text_JacobPostBattle, MSGBOX_AUTOCLOSE + end + +Route18_EventScript_JacobRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_JACOB, Route18_Text_JacobRematchIntro, Route18_Text_JacobDefeat + msgbox Route18_Text_JacobPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Richard:: + trainerbattle_single TRAINER_SWIMMER_MALE_RICHARD, Route19_Text_RichardIntro, Route19_Text_RichardDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_RichardRematch + msgbox Route19_Text_RichardPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_RichardRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_RICHARD, Route19_Text_RichardRematchIntro, Route19_Text_RichardDefeat + msgbox Route19_Text_RichardPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Reece:: + trainerbattle_single TRAINER_SWIMMER_MALE_REECE, Route19_Text_ReeceIntro, Route19_Text_ReeceDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_ReeceRematch + msgbox Route19_Text_ReecePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_ReeceRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_REECE, Route19_Text_ReeceRematchIntro, Route19_Text_ReeceDefeat + msgbox Route19_Text_ReecePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Matthew:: + trainerbattle_single TRAINER_SWIMMER_MALE_MATTHEW, Route19_Text_MatthewIntro, Route19_Text_MatthewDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_MatthewRematch + msgbox Route19_Text_MatthewPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_MatthewRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_MATTHEW, Route19_Text_MatthewRematchIntro, Route19_Text_MatthewDefeat + msgbox Route19_Text_MatthewPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Douglas:: + trainerbattle_single TRAINER_SWIMMER_MALE_DOUGLAS, Route19_Text_DouglasIntro, Route19_Text_DouglasDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_DouglasRematch + msgbox Route19_Text_DouglasPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_DouglasRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_DOUGLAS, Route19_Text_DouglasRematchIntro, Route19_Text_DouglasDefeat + msgbox Route19_Text_DouglasPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_David:: + trainerbattle_single TRAINER_SWIMMER_MALE_DAVID, Route19_Text_DavidIntro, Route19_Text_DavidDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_DavidRematch + msgbox Route19_Text_DavidPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_DavidRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_DAVID, Route19_Text_DavidRematchIntro, Route19_Text_DavidDefeat + msgbox Route19_Text_DavidPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Tony:: + trainerbattle_single TRAINER_SWIMMER_MALE_TONY, Route19_Text_TonyIntro, Route19_Text_TonyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_TonyRematch + msgbox Route19_Text_TonyPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_TonyRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_TONY, Route19_Text_TonyRematchIntro, Route19_Text_TonyDefeat + msgbox Route19_Text_TonyPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Axle:: + trainerbattle_single TRAINER_SWIMMER_MALE_AXLE, Route19_Text_AxleIntro, Route19_Text_AxleDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_AxleRematch + msgbox Route19_Text_AxlePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_AxleRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_AXLE, Route19_Text_AxleRematchIntro, Route19_Text_AxleDefeat + msgbox Route19_Text_AxlePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Anya:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_ANYA, Route19_Text_AnyaIntro, Route19_Text_AnyaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_AnyaRematch + msgbox Route19_Text_AnyaPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_AnyaRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_ANYA, Route19_Text_AnyaRematchIntro, Route19_Text_AnyaDefeat + msgbox Route19_Text_AnyaPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Alice:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_ALICE, Route19_Text_AliceIntro, Route19_Text_AliceDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_AliceRematch + msgbox Route19_Text_AlicePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_AliceRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_ALICE, Route19_Text_AliceRematchIntro, Route19_Text_AliceDefeat + msgbox Route19_Text_AlicePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Connie:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_CONNIE, Route19_Text_ConnieIntro, Route19_Text_ConnieDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_ConnieRematch + msgbox Route19_Text_ConniePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_ConnieRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_CONNIE, Route19_Text_ConnieRematchIntro, Route19_Text_ConnieDefeat + msgbox Route19_Text_ConniePostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Lia:: + trainerbattle_double TRAINER_SIS_AND_BRO_LIA_LUC, Route19_Text_LiaIntro, Route19_Text_LiaDefeat, Route19_Text_LiaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_LiaRematch + msgbox Route19_Text_LiaPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_LiaRematch:: + trainerbattle_rematch_double TRAINER_SIS_AND_BRO_LIA_LUC, Route19_Text_LiaRematchIntro, Route19_Text_LiaDefeat, Route19_Text_LiaNotEnoughMons + msgbox Route19_Text_LiaPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_Luc:: + trainerbattle_double TRAINER_SIS_AND_BRO_LIA_LUC, Route19_Text_LucIntro, Route19_Text_LucDefeat, Route19_Text_LucNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route19_EventScript_LucRematch + msgbox Route19_Text_LucPostBattle, MSGBOX_AUTOCLOSE + end + +Route19_EventScript_LucRematch:: + trainerbattle_rematch_double TRAINER_SIS_AND_BRO_LIA_LUC, Route19_Text_LucRematchIntro, Route19_Text_LucDefeat, Route19_Text_LucNotEnoughMons + msgbox Route19_Text_LucPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Barry:: + trainerbattle_single TRAINER_SWIMMER_MALE_BARRY, Route20_Text_BarryIntro, Route20_Text_BarryDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_BarryRematch + msgbox Route20_Text_BarryPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_BarryRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_BARRY, Route20_Text_BarryRematchIntro, Route20_Text_BarryDefeat + msgbox Route20_Text_BarryPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Dean:: + trainerbattle_single TRAINER_SWIMMER_MALE_DEAN, Route20_Text_DeanIntro, Route20_Text_DeanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_DeanRematch + msgbox Route20_Text_DeanPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_DeanRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_DEAN, Route20_Text_DeanRematchIntro, Route20_Text_DeanDefeat + msgbox Route20_Text_DeanPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Darrin:: + trainerbattle_single TRAINER_SWIMMER_MALE_DARRIN, Route20_Text_DarrinIntro, Route20_Text_DarrinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_DarrinRematch + msgbox Route20_Text_DarrinPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_DarrinRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_DARRIN, Route20_Text_DarrinRematchIntro, Route20_Text_DarrinDefeat + msgbox Route20_Text_DarrinPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Tiffany:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_TIFFANY, Route20_Text_TiffanyIntro, Route20_Text_TiffanyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_TiffanyRematch + msgbox Route20_Text_TiffanyPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_TiffanyRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_TIFFANY, Route20_Text_TiffanyRematchIntro, Route20_Text_TiffanyDefeat + msgbox Route20_Text_TiffanyPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Nora:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_NORA, Route20_Text_NoraIntro, Route20_Text_NoraDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_NoraRematch + msgbox Route20_Text_NoraPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_NoraRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_NORA, Route20_Text_NoraRematchIntro, Route20_Text_NoraDefeat + msgbox Route20_Text_NoraPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Melissa:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_MELISSA, Route20_Text_MelissaIntro, Route20_Text_MelissaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_MelissaRematch + msgbox Route20_Text_MelissaPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_MelissaRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_MELISSA, Route20_Text_MelissaRematchIntro, Route20_Text_MelissaDefeat + msgbox Route20_Text_MelissaPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Shirley:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_SHIRLEY, Route20_Text_ShirleyIntro, Route20_Text_ShirleyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_ShirleyRematch + msgbox Route20_Text_ShirleyPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_ShirleyRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_SHIRLEY, Route20_Text_ShirleyRematchIntro, Route20_Text_ShirleyDefeat + msgbox Route20_Text_ShirleyPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Roger:: + trainerbattle_single TRAINER_BIRD_KEEPER_ROGER, Route20_Text_RogerIntro, Route20_Text_RogerDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_RogerRematch + msgbox Route20_Text_RogerPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_RogerRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_ROGER, Route20_Text_RogerRematchIntro, Route20_Text_RogerDefeat + msgbox Route20_Text_RogerPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Missy:: + trainerbattle_single TRAINER_PICNICKER_MISSY, Route20_Text_MissyIntro, Route20_Text_MissyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_MissyRematch + msgbox Route20_Text_MissyPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_MissyRematch:: + trainerbattle_rematch TRAINER_PICNICKER_MISSY, Route20_Text_MissyRematchIntro, Route20_Text_MissyDefeat + msgbox Route20_Text_MissyPostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_Irene:: + trainerbattle_single TRAINER_PICNICKER_IRENE, Route20_Text_IreneIntro, Route20_Text_IreneDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route20_EventScript_IreneRematch + msgbox Route20_Text_IrenePostBattle, MSGBOX_AUTOCLOSE + end + +Route20_EventScript_IreneRematch:: + trainerbattle_rematch TRAINER_PICNICKER_IRENE, Route20_Text_IreneRematchIntro, Route20_Text_IreneDefeat + msgbox Route20_Text_IrenePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_Ronald:: + trainerbattle_single TRAINER_FISHERMAN_RONALD, Route21_North_Text_RonaldIntro, Route21_North_Text_RonaldDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_North_EventScript_RonaldRematch + msgbox Route21_North_Text_RonaldPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_RonaldRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_RONALD, Route21_North_Text_RonaldRematchIntro, Route21_North_Text_RonaldDefeat + msgbox Route21_North_Text_RonaldPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_Claude:: + trainerbattle_single TRAINER_FISHERMAN_CLAUDE, Route21_South_Text_ClaudeIntro, Route21_South_Text_ClaudeDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_South_EventScript_ClaudeRematch + msgbox Route21_South_Text_ClaudePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_ClaudeRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_CLAUDE, Route21_South_Text_ClaudeRematchIntro, Route21_South_Text_ClaudeDefeat + msgbox Route21_South_Text_ClaudePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_Wade:: + trainerbattle_single TRAINER_FISHERMAN_WADE, Route21_North_Text_WadeIntro, Route21_North_Text_WadeDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_North_EventScript_WadeRematch + msgbox Route21_North_Text_WadePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_WadeRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_WADE, Route21_North_Text_WadeRematchIntro, Route21_North_Text_WadeDefeat + msgbox Route21_North_Text_WadePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_Nolan:: + trainerbattle_single TRAINER_FISHERMAN_NOLAN, Route21_South_Text_NolanIntro, Route21_South_Text_NolanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_South_EventScript_NolanRematch + msgbox Route21_South_Text_NolanPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_NolanRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_NOLAN, Route21_South_Text_NolanRematchIntro, Route21_South_Text_NolanDefeat + msgbox Route21_South_Text_NolanPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_Spencer:: + trainerbattle_single TRAINER_SWIMMER_MALE_SPENCER, Route21_North_Text_SpencerIntro, Route21_North_Text_SpencerDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_North_EventScript_SpencerRematch + msgbox Route21_North_Text_SpencerPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_SpencerRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_SPENCER, Route21_North_Text_SpencerRematchIntro, Route21_North_Text_SpencerDefeat + msgbox Route21_North_Text_SpencerPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_Jack:: + trainerbattle_single TRAINER_SWIMMER_MALE_JACK, Route21_South_Text_JackIntro, Route21_South_Text_JackDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_South_EventScript_JackRematch + msgbox Route21_South_Text_JackPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_JackRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_JACK, Route21_South_Text_JackRematchIntro, Route21_South_Text_JackDefeat + msgbox Route21_South_Text_JackPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_Jerome:: + trainerbattle_single TRAINER_SWIMMER_MALE_JEROME, Route21_South_Text_JeromeIntro, Route21_South_Text_JeromeDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_South_EventScript_JeromeRematch + msgbox Route21_South_Text_JeromePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_JeromeRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_JEROME, Route21_South_Text_JeromeRematchIntro, Route21_South_Text_JeromeDefeat + msgbox Route21_South_Text_JeromePostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_Roland:: + trainerbattle_single TRAINER_SWIMMER_MALE_ROLAND, Route21_South_Text_RolandIntro, Route21_South_Text_RolandDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_South_EventScript_RolandRematch + msgbox Route21_South_Text_RolandPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_South_EventScript_RolandRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_ROLAND, Route21_South_Text_RolandRematchIntro, Route21_South_Text_RolandDefeat + msgbox Route21_South_Text_RolandPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_Lil:: + trainerbattle_double TRAINER_SIS_AND_BRO_LIL_IAN, Route21_North_Text_LilIntro, Route21_North_Text_LilDefeat, Route21_North_Text_LilNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_North_EventScript_LilRematch + msgbox Route21_North_Text_LilPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_LilRematch:: + trainerbattle_rematch_double TRAINER_SIS_AND_BRO_LIL_IAN, Route21_North_Text_LilRematchIntro, Route21_North_Text_LilDefeat, Route21_North_Text_LilNotEnoughMons + msgbox Route21_North_Text_LilPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_Ian:: + trainerbattle_double TRAINER_SIS_AND_BRO_LIL_IAN, Route21_North_Text_IanIntro, Route21_North_Text_IanDefeat, Route21_North_Text_IanNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, Route21_North_EventScript_IanRematch + msgbox Route21_North_Text_IanPostBattle, MSGBOX_AUTOCLOSE + end + +Route21_North_EventScript_IanRematch:: + trainerbattle_rematch_double TRAINER_SIS_AND_BRO_LIL_IAN, Route21_North_Text_IanRematchIntro, Route21_North_Text_IanDefeat, Route21_North_Text_IanNotEnoughMons + msgbox Route21_North_Text_IanPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Maria:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_MARIA, OneIsland_KindleRoad_Text_MariaIntro, OneIsland_KindleRoad_Text_MariaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_MariaRematch + msgbox OneIsland_KindleRoad_Text_MariaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_MariaRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_MARIA, OneIsland_KindleRoad_Text_MariaRematchIntro, OneIsland_KindleRoad_Text_MariaDefeat + msgbox OneIsland_KindleRoad_Text_MariaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Abigail:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_ABIGAIL, OneIsland_KindleRoad_Text_AbigailIntro, OneIsland_KindleRoad_Text_AbigailDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_AbigailRematch + msgbox OneIsland_KindleRoad_Text_AbigailPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_AbigailRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_ABIGAIL, OneIsland_KindleRoad_Text_AbigailRematchIntro, OneIsland_KindleRoad_Text_AbigailDefeat + msgbox OneIsland_KindleRoad_Text_AbigailPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Finn:: + trainerbattle_single TRAINER_SWIMMER_MALE_FINN, OneIsland_KindleRoad_Text_FinnIntro, OneIsland_KindleRoad_Text_FinnDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_FinnRematch + msgbox OneIsland_KindleRoad_Text_FinnPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_FinnRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_FINN, OneIsland_KindleRoad_Text_FinnRematchIntro, OneIsland_KindleRoad_Text_FinnDefeat + msgbox OneIsland_KindleRoad_Text_FinnPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Garrett:: + trainerbattle_single TRAINER_SWIMMER_MALE_GARRETT, OneIsland_KindleRoad_Text_GarrettIntro, OneIsland_KindleRoad_Text_GarrettDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_GarrettRematch + msgbox OneIsland_KindleRoad_Text_GarrettPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_GarrettRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_GARRETT, OneIsland_KindleRoad_Text_GarrettRematchIntro, OneIsland_KindleRoad_Text_GarrettDefeat + msgbox OneIsland_KindleRoad_Text_GarrettPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Tommy:: + trainerbattle_single TRAINER_FISHERMAN_TOMMY, OneIsland_KindleRoad_Text_TommyIntro, OneIsland_KindleRoad_Text_TommyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_TommyRematch + msgbox OneIsland_KindleRoad_Text_TommyPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_TommyRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_TOMMY, OneIsland_KindleRoad_Text_TommyRematchIntro, OneIsland_KindleRoad_Text_TommyDefeat + msgbox OneIsland_KindleRoad_Text_TommyPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Sharon:: + trainerbattle_single TRAINER_CRUSH_GIRL_SHARON, OneIsland_KindleRoad_Text_SharonIntro, OneIsland_KindleRoad_Text_SharonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_SharonRematch + msgbox OneIsland_KindleRoad_Text_SharonPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_SharonRematch:: + trainerbattle_rematch TRAINER_CRUSH_GIRL_SHARON, OneIsland_KindleRoad_Text_SharonRematchIntro, OneIsland_KindleRoad_Text_SharonDefeat + msgbox OneIsland_KindleRoad_Text_SharonPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Tanya:: + trainerbattle_single TRAINER_CRUSH_GIRL_TANYA, OneIsland_KindleRoad_Text_TanyaIntro, OneIsland_KindleRoad_Text_TanyaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_TanyaRematch + msgbox OneIsland_KindleRoad_Text_TanyaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_TanyaRematch:: + trainerbattle_rematch TRAINER_CRUSH_GIRL_TANYA, OneIsland_KindleRoad_Text_TanyaRematchIntro, OneIsland_KindleRoad_Text_TanyaDefeat + msgbox OneIsland_KindleRoad_Text_TanyaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Shea:: + trainerbattle_single TRAINER_BLACK_BELT_SHEA, OneIsland_KindleRoad_Text_SheaIntro, OneIsland_KindleRoad_Text_SheaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_SheaRematch + msgbox OneIsland_KindleRoad_Text_SheaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_SheaRematch:: + trainerbattle_rematch TRAINER_BLACK_BELT_SHEA, OneIsland_KindleRoad_Text_SheaRematchIntro, OneIsland_KindleRoad_Text_SheaDefeat + msgbox OneIsland_KindleRoad_Text_SheaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Hugh:: + trainerbattle_single TRAINER_BLACK_BELT_HUGH, OneIsland_KindleRoad_Text_HughIntro, OneIsland_KindleRoad_Text_HughDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_HughRematch + msgbox OneIsland_KindleRoad_Text_HughPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_HughRematch:: + trainerbattle_rematch TRAINER_BLACK_BELT_HUGH, OneIsland_KindleRoad_Text_HughRematchIntro, OneIsland_KindleRoad_Text_HughDefeat + msgbox OneIsland_KindleRoad_Text_HughPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Bryce:: + trainerbattle_single TRAINER_CAMPER_BRYCE, OneIsland_KindleRoad_Text_BryceIntro, OneIsland_KindleRoad_Text_BryceDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_BryceRematch + msgbox OneIsland_KindleRoad_Text_BrycePostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_BryceRematch:: + trainerbattle_rematch TRAINER_CAMPER_BRYCE, OneIsland_KindleRoad_Text_BryceRematchIntro, OneIsland_KindleRoad_Text_BryceDefeat + msgbox OneIsland_KindleRoad_Text_BrycePostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Claire:: + trainerbattle_single TRAINER_PICNICKER_CLAIRE, OneIsland_KindleRoad_Text_ClaireIntro, OneIsland_KindleRoad_Text_ClaireDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_ClaireRematch + msgbox OneIsland_KindleRoad_Text_ClairePostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_ClaireRematch:: + trainerbattle_rematch TRAINER_PICNICKER_CLAIRE, OneIsland_KindleRoad_Text_ClaireRematchIntro, OneIsland_KindleRoad_Text_ClaireDefeat + msgbox OneIsland_KindleRoad_Text_ClairePostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Kia:: + trainerbattle_double TRAINER_CRUSH_KIN_MIK_KIA, OneIsland_KindleRoad_Text_KiaIntro, OneIsland_KindleRoad_Text_KiaDefeat, OneIsland_KindleRoad_Text_KiaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_KiaRematch + msgbox OneIsland_KindleRoad_Text_KiaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_KiaRematch:: + trainerbattle_rematch_double TRAINER_CRUSH_KIN_MIK_KIA, OneIsland_KindleRoad_Text_KiaRematchIntro, OneIsland_KindleRoad_Text_KiaDefeat, OneIsland_KindleRoad_Text_KiaNotEnoughMons + msgbox OneIsland_KindleRoad_Text_KiaPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_Mik:: + trainerbattle_double TRAINER_CRUSH_KIN_MIK_KIA, OneIsland_KindleRoad_Text_MikIntro, OneIsland_KindleRoad_Text_MikDefeat, OneIsland_KindleRoad_Text_MikNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_KindleRoad_EventScript_MikRematch + msgbox OneIsland_KindleRoad_Text_MikPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_KindleRoad_EventScript_MikRematch:: + trainerbattle_rematch_double TRAINER_CRUSH_KIN_MIK_KIA, OneIsland_KindleRoad_Text_MikRematchIntro, OneIsland_KindleRoad_Text_MikDefeat, OneIsland_KindleRoad_Text_MikNotEnoughMons + msgbox OneIsland_KindleRoad_Text_MikPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_TreasureBeach_EventScript_Amara:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_AMARA, OneIsland_TreasureBeach_Text_AmaraIntro, OneIsland_TreasureBeach_Text_AmaraDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, OneIsland_TreasureBeach_EventScript_AmaraRematch + msgbox OneIsland_TreasureBeach_Text_AmaraPostBattle, MSGBOX_AUTOCLOSE + end + +OneIsland_TreasureBeach_EventScript_AmaraRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_AMARA, OneIsland_TreasureBeach_Text_AmaraRematchIntro, OneIsland_TreasureBeach_Text_AmaraDefeat + msgbox OneIsland_TreasureBeach_Text_AmaraPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Nikki:: + trainerbattle_single TRAINER_AROMA_LADY_NIKKI, ThreeIsland_BondBridge_Text_NikkiIntro, ThreeIsland_BondBridge_Text_NikkiDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_NikkiRematch + msgbox ThreeIsland_BondBridge_Text_NikkiPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_NikkiRematch:: + trainerbattle_rematch TRAINER_AROMA_LADY_NIKKI, ThreeIsland_BondBridge_Text_NikkiRematchIntro, ThreeIsland_BondBridge_Text_NikkiDefeat + msgbox ThreeIsland_BondBridge_Text_NikkiPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Violet:: + trainerbattle_single TRAINER_AROMA_LADY_VIOLET, ThreeIsland_BondBridge_Text_VioletIntro, ThreeIsland_BondBridge_Text_VioletDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_VioletRematch + msgbox ThreeIsland_BondBridge_Text_VioletPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_VioletRematch:: + trainerbattle_rematch TRAINER_AROMA_LADY_VIOLET, ThreeIsland_BondBridge_Text_VioletRematchIntro, ThreeIsland_BondBridge_Text_VioletDefeat + msgbox ThreeIsland_BondBridge_Text_VioletPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Amira:: + trainerbattle_single TRAINER_TUBER_AMIRA, ThreeIsland_BondBridge_Text_AmiraIntro, ThreeIsland_BondBridge_Text_AmiraDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_AmiraRematch + msgbox ThreeIsland_BondBridge_Text_AmiraPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_AmiraRematch:: + trainerbattle_rematch TRAINER_TUBER_AMIRA, ThreeIsland_BondBridge_Text_AmiraRematchIntro, ThreeIsland_BondBridge_Text_AmiraDefeat + msgbox ThreeIsland_BondBridge_Text_AmiraPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Alexis:: + trainerbattle_single TRAINER_TUBER_ALEXIS, ThreeIsland_BondBridge_Text_AlexisIntro, ThreeIsland_BondBridge_Text_AlexisDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_AlexisRematch + msgbox ThreeIsland_BondBridge_Text_AlexisPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_AlexisRematch:: + trainerbattle_rematch TRAINER_TUBER_ALEXIS, ThreeIsland_BondBridge_Text_AlexisRematchIntro, ThreeIsland_BondBridge_Text_AlexisDefeat + msgbox ThreeIsland_BondBridge_Text_AlexisPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Tisha:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_TISHA, ThreeIsland_BondBridge_Text_TishaIntro, ThreeIsland_BondBridge_Text_TishaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_TishaRematch + msgbox ThreeIsland_BondBridge_Text_TishaPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_TishaRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_TISHA, ThreeIsland_BondBridge_Text_TishaRematchIntro, ThreeIsland_BondBridge_Text_TishaDefeat + msgbox ThreeIsland_BondBridge_Text_TishaPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Joy:: + trainerbattle_double TRAINER_TWINS_JOY_MEG, ThreeIsland_BondBridge_Text_JoyIntro, ThreeIsland_BondBridge_Text_JoyDefeat, ThreeIsland_BondBridge_Text_JoyNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_JoyRematch + msgbox ThreeIsland_BondBridge_Text_JoyPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_JoyRematch:: + trainerbattle_rematch_double TRAINER_TWINS_JOY_MEG, ThreeIsland_BondBridge_Text_JoyRematchIntro, ThreeIsland_BondBridge_Text_JoyDefeat, ThreeIsland_BondBridge_Text_JoyNotEnoughMons + msgbox ThreeIsland_BondBridge_Text_JoyPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_Meg:: + trainerbattle_double TRAINER_TWINS_JOY_MEG, ThreeIsland_BondBridge_Text_MegIntro, ThreeIsland_BondBridge_Text_MegDefeat, ThreeIsland_BondBridge_Text_MegNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, ThreeIsland_BondBridge_EventScript_MegRematch + msgbox ThreeIsland_BondBridge_Text_MegPostBattle, MSGBOX_AUTOCLOSE + end + +ThreeIsland_BondBridge_EventScript_MegRematch:: + trainerbattle_rematch_double TRAINER_TWINS_JOY_MEG, ThreeIsland_BondBridge_Text_MegRematchIntro, ThreeIsland_BondBridge_Text_MegDefeat, ThreeIsland_BondBridge_Text_MegNotEnoughMons + msgbox ThreeIsland_BondBridge_Text_MegPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Daisy:: + trainerbattle_single TRAINER_PAINTER_DAISY, FiveIsland_ResortGorgeous_Text_DaisyIntro, FiveIsland_ResortGorgeous_Text_DaisyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_DaisyRematch + msgbox FiveIsland_ResortGorgeous_Text_DaisyPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_DaisyRematch:: + trainerbattle_rematch TRAINER_PAINTER_DAISY, FiveIsland_ResortGorgeous_Text_DaisyRematchIntro, FiveIsland_ResortGorgeous_Text_DaisyDefeat + msgbox FiveIsland_ResortGorgeous_Text_DaisyPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Celina:: + trainerbattle_single TRAINER_PAINTER_CELINA, FiveIsland_ResortGorgeous_Text_CelinaIntro, FiveIsland_ResortGorgeous_Text_CelinaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_CelinaRematch + msgbox FiveIsland_ResortGorgeous_Text_CelinaPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_CelinaRematch:: + trainerbattle_rematch TRAINER_PAINTER_CELINA, FiveIsland_ResortGorgeous_Text_CelinaRematchIntro, FiveIsland_ResortGorgeous_Text_CelinaDefeat + msgbox FiveIsland_ResortGorgeous_Text_CelinaPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Rayna:: + trainerbattle_single TRAINER_PAINTER_RAYNA, FiveIsland_ResortGorgeous_Text_RaynaIntro, FiveIsland_ResortGorgeous_Text_RaynaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_RaynaRematch + msgbox FiveIsland_ResortGorgeous_Text_RaynaPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_RaynaRematch:: + trainerbattle_rematch TRAINER_PAINTER_RAYNA, FiveIsland_ResortGorgeous_Text_RaynaRematchIntro, FiveIsland_ResortGorgeous_Text_RaynaDefeat + msgbox FiveIsland_ResortGorgeous_Text_RaynaPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Jacki:: + trainerbattle_single TRAINER_LADY_JACKI, FiveIsland_ResortGorgeous_Text_JackiIntro, FiveIsland_ResortGorgeous_Text_JackiDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_JackiRematch + msgbox FiveIsland_ResortGorgeous_Text_JackiPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_JackiRematch:: + trainerbattle_rematch TRAINER_LADY_JACKI, FiveIsland_ResortGorgeous_Text_JackiRematchIntro, FiveIsland_ResortGorgeous_Text_JackiDefeat + msgbox FiveIsland_ResortGorgeous_Text_JackiPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Gillian:: + trainerbattle_single TRAINER_LADY_GILLIAN, FiveIsland_ResortGorgeous_Text_GillianIntro, FiveIsland_ResortGorgeous_Text_GillianDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_GillianRematch + msgbox FiveIsland_ResortGorgeous_Text_GillianPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_GillianRematch:: + trainerbattle_rematch TRAINER_LADY_GILLIAN, FiveIsland_ResortGorgeous_Text_GillianRematchIntro, FiveIsland_ResortGorgeous_Text_GillianDefeat + msgbox FiveIsland_ResortGorgeous_Text_GillianPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Destin:: + trainerbattle_single TRAINER_YOUNGSTER_DESTIN, FiveIsland_ResortGorgeous_Text_DestinIntro, FiveIsland_ResortGorgeous_Text_DestinDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_DestinRematch + msgbox FiveIsland_ResortGorgeous_Text_DestinPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_DestinRematch:: + trainerbattle_rematch TRAINER_YOUNGSTER_DESTIN, FiveIsland_ResortGorgeous_Text_DestinRematchIntro, FiveIsland_ResortGorgeous_Text_DestinDefeat + msgbox FiveIsland_ResortGorgeous_Text_DestinPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_Toby:: + trainerbattle_single TRAINER_SWIMMER_MALE_TOBY, FiveIsland_ResortGorgeous_Text_TobyIntro, FiveIsland_ResortGorgeous_Text_TobyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_ResortGorgeous_EventScript_TobyRematch + msgbox FiveIsland_ResortGorgeous_Text_TobyPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_ResortGorgeous_EventScript_TobyRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_TOBY, FiveIsland_ResortGorgeous_Text_TobyRematchIntro, FiveIsland_ResortGorgeous_Text_TobyDefeat + msgbox FiveIsland_ResortGorgeous_Text_TobyPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_WaterLabyrinth_EventScript_Alize:: + trainerbattle_single TRAINER_PKMN_BREEDER_ALIZE, FiveIsland_WaterLabyrinth_Text_AlizeIntro, FiveIsland_WaterLabyrinth_Text_AlizeDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_WaterLabyrinth_EventScript_AlizeRematch + msgbox FiveIsland_WaterLabyrinth_Text_AlizePostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_WaterLabyrinth_EventScript_AlizeRematch:: + trainerbattle_rematch TRAINER_PKMN_BREEDER_ALIZE, FiveIsland_WaterLabyrinth_Text_AlizeRematchIntro, FiveIsland_WaterLabyrinth_Text_AlizeDefeat + msgbox FiveIsland_WaterLabyrinth_Text_AlizePostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_MemorialPillar_EventScript_Milo:: + trainerbattle_single TRAINER_BIRD_KEEPER_MILO, FiveIsland_MemorialPillar_Text_MiloIntro, FiveIsland_MemorialPillar_Text_MiloDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_MemorialPillar_EventScript_MiloRematch + msgbox FiveIsland_MemorialPillar_Text_MiloPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_MemorialPillar_EventScript_MiloRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_MILO, FiveIsland_MemorialPillar_Text_MiloRematchIntro, FiveIsland_MemorialPillar_Text_MiloDefeat + msgbox FiveIsland_MemorialPillar_Text_MiloPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_MemorialPillar_EventScript_Chaz:: + trainerbattle_single TRAINER_BIRD_KEEPER_CHAZ, FiveIsland_MemorialPillar_Text_ChazIntro, FiveIsland_MemorialPillar_Text_ChazDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_MemorialPillar_EventScript_ChazRematch + msgbox FiveIsland_MemorialPillar_Text_ChazPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_MemorialPillar_EventScript_ChazRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_CHAZ, FiveIsland_MemorialPillar_Text_ChazRematchIntro, FiveIsland_MemorialPillar_Text_ChazDefeat + msgbox FiveIsland_MemorialPillar_Text_ChazPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_MemorialPillar_EventScript_Harold:: + trainerbattle_single TRAINER_BIRD_KEEPER_HAROLD, FiveIsland_MemorialPillar_Text_HaroldIntro, FiveIsland_MemorialPillar_Text_HaroldDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, FiveIsland_MemorialPillar_EventScript_HaroldRematch + msgbox FiveIsland_MemorialPillar_Text_HaroldPostBattle, MSGBOX_AUTOCLOSE + end + +FiveIsland_MemorialPillar_EventScript_HaroldRematch:: + trainerbattle_rematch TRAINER_BIRD_KEEPER_HAROLD, FiveIsland_MemorialPillar_Text_HaroldRematchIntro, FiveIsland_MemorialPillar_Text_HaroldDefeat + msgbox FiveIsland_MemorialPillar_Text_HaroldPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_Tylor:: + trainerbattle_single TRAINER_FISHERMAN_TYLOR, SixIsland_OutcastIsland_Text_TylorIntro, SixIsland_OutcastIsland_Text_TylorDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_OutcastIsland_EventScript_TylorRematch + msgbox SixIsland_OutcastIsland_Text_TylorPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_TylorRematch:: + trainerbattle_rematch TRAINER_FISHERMAN_TYLOR, SixIsland_OutcastIsland_Text_TylorRematchIntro, SixIsland_OutcastIsland_Text_TylorDefeat + msgbox SixIsland_OutcastIsland_Text_TylorPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_Mymo:: + trainerbattle_single TRAINER_SWIMMER_MALE_MYMO, SixIsland_OutcastIsland_Text_MymoIntro, SixIsland_OutcastIsland_Text_MymoDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_OutcastIsland_EventScript_MymoRematch + msgbox SixIsland_OutcastIsland_Text_MymoPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_MymoRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_MYMO, SixIsland_OutcastIsland_Text_MymoRematchIntro, SixIsland_OutcastIsland_Text_MymoDefeat + msgbox SixIsland_OutcastIsland_Text_MymoPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_Nicole:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_NICOLE, SixIsland_OutcastIsland_Text_NicoleIntro, SixIsland_OutcastIsland_Text_NicoleDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_OutcastIsland_EventScript_NicoleRematch + msgbox SixIsland_OutcastIsland_Text_NicolePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_NicoleRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_NICOLE, SixIsland_OutcastIsland_Text_NicoleRematchIntro, SixIsland_OutcastIsland_Text_NicoleDefeat + msgbox SixIsland_OutcastIsland_Text_NicolePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_Ava:: + trainerbattle_double TRAINER_SIS_AND_BRO_AVA_GEB, SixIsland_OutcastIsland_Text_AvaIntro, SixIsland_OutcastIsland_Text_AvaDefeat, SixIsland_OutcastIsland_Text_AvaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_OutcastIsland_EventScript_AvaRematch + msgbox SixIsland_OutcastIsland_Text_AvaPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_AvaRematch:: + trainerbattle_rematch_double TRAINER_SIS_AND_BRO_AVA_GEB, SixIsland_OutcastIsland_Text_AvaRematchIntro, SixIsland_OutcastIsland_Text_AvaDefeat, SixIsland_OutcastIsland_Text_AvaNotEnoughMons + msgbox SixIsland_OutcastIsland_Text_AvaPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_Geb:: + trainerbattle_double TRAINER_SIS_AND_BRO_AVA_GEB, SixIsland_OutcastIsland_Text_GebIntro, SixIsland_OutcastIsland_Text_GebDefeat, SixIsland_OutcastIsland_Text_GebNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_OutcastIsland_EventScript_GebRematch + msgbox SixIsland_OutcastIsland_Text_GebPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_OutcastIsland_EventScript_GebRematch:: + trainerbattle_rematch_double TRAINER_SIS_AND_BRO_AVA_GEB, SixIsland_OutcastIsland_Text_GebRematchIntro, SixIsland_OutcastIsland_Text_GebDefeat, SixIsland_OutcastIsland_Text_GebNotEnoughMons + msgbox SixIsland_OutcastIsland_Text_GebPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_GreenPath_EventScript_Jaclyn:: + trainerbattle_single TRAINER_PSYCHIC_JACLYN, SixIsland_GreenPath_Text_JaclynIntro, SixIsland_GreenPath_Text_JaclynDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_GreenPath_EventScript_JaclynRematch + msgbox SixIsland_GreenPath_Text_JaclynPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_GreenPath_EventScript_JaclynRematch:: + trainerbattle_rematch TRAINER_PSYCHIC_JACLYN, SixIsland_GreenPath_Text_JaclynRematchIntro, SixIsland_GreenPath_Text_JaclynDefeat + msgbox SixIsland_GreenPath_Text_JaclynPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Rose:: + trainerbattle_single TRAINER_AROMA_LADY_ROSE, SixIsland_WaterPath_Text_RoseIntro, SixIsland_WaterPath_Text_RoseDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_RoseRematch + msgbox SixIsland_WaterPath_Text_RosePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_RoseRematch:: + trainerbattle_rematch TRAINER_AROMA_LADY_ROSE, SixIsland_WaterPath_Text_RoseRematchIntro, SixIsland_WaterPath_Text_RoseDefeat + msgbox SixIsland_WaterPath_Text_RosePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Edward:: + trainerbattle_single TRAINER_JUGGLER_EDWARD, SixIsland_WaterPath_Text_EdwardIntro, SixIsland_WaterPath_Text_EdwardDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_EdwardRematch + msgbox SixIsland_WaterPath_Text_EdwardPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_EdwardRematch:: + trainerbattle_rematch TRAINER_JUGGLER_EDWARD, SixIsland_WaterPath_Text_EdwardRematchIntro, SixIsland_WaterPath_Text_EdwardDefeat + msgbox SixIsland_WaterPath_Text_EdwardPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Samir:: + trainerbattle_single TRAINER_SWIMMER_MALE_SAMIR, SixIsland_WaterPath_Text_SamirIntro, SixIsland_WaterPath_Text_SamirDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_SamirRematch + msgbox SixIsland_WaterPath_Text_SamirPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_SamirRematch:: + trainerbattle_rematch TRAINER_SWIMMER_MALE_SAMIR, SixIsland_WaterPath_Text_SamirRematchIntro, SixIsland_WaterPath_Text_SamirDefeat + msgbox SixIsland_WaterPath_Text_SamirPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Denise:: + trainerbattle_single TRAINER_SWIMMER_FEMALE_DENISE, SixIsland_WaterPath_Text_DeniseIntro, SixIsland_WaterPath_Text_DeniseDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_DeniseRematch + msgbox SixIsland_WaterPath_Text_DenisePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_DeniseRematch:: + trainerbattle_rematch TRAINER_SWIMMER_FEMALE_DENISE, SixIsland_WaterPath_Text_DeniseRematchIntro, SixIsland_WaterPath_Text_DeniseDefeat + msgbox SixIsland_WaterPath_Text_DenisePostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Miu:: + trainerbattle_double TRAINER_TWINS_MIU_MIA, SixIsland_WaterPath_Text_MiuIntro, SixIsland_WaterPath_Text_MiuDefeat, SixIsland_WaterPath_Text_MiuNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_MiuRematch + msgbox SixIsland_WaterPath_Text_MiuPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_MiuRematch:: + trainerbattle_rematch_double TRAINER_TWINS_MIU_MIA, SixIsland_WaterPath_Text_MiuRematchIntro, SixIsland_WaterPath_Text_MiuDefeat, SixIsland_WaterPath_Text_MiuNotEnoughMons + msgbox SixIsland_WaterPath_Text_MiuPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Mia:: + trainerbattle_double TRAINER_TWINS_MIU_MIA, SixIsland_WaterPath_Text_MiaIntro, SixIsland_WaterPath_Text_MiaDefeat, SixIsland_WaterPath_Text_MiaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_MiaRematch + msgbox SixIsland_WaterPath_Text_MiaPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_MiaRematch:: + trainerbattle_rematch_double TRAINER_TWINS_MIU_MIA, SixIsland_WaterPath_Text_MiaRematchIntro, SixIsland_WaterPath_Text_MiaDefeat, SixIsland_WaterPath_Text_MiaNotEnoughMons + msgbox SixIsland_WaterPath_Text_MiaPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_Earl:: + trainerbattle_single TRAINER_HIKER_EARL, SixIsland_WaterPath_Text_EarlIntro, SixIsland_WaterPath_Text_EarlDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_WaterPath_EventScript_EarlRematch + msgbox SixIsland_WaterPath_Text_EarlPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_WaterPath_EventScript_EarlRematch:: + trainerbattle_rematch TRAINER_HIKER_EARL, SixIsland_WaterPath_Text_EarlRematchIntro, SixIsland_WaterPath_Text_EarlDefeat + msgbox SixIsland_WaterPath_Text_EarlPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_Stanly:: + trainerbattle_single TRAINER_RUIN_MANIAC_STANLY, SixIsland_RuinValley_Text_StanlyIntro, SixIsland_RuinValley_Text_StanlyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_RuinValley_EventScript_StanlyRematch + msgbox SixIsland_RuinValley_Text_StanlyPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_StanlyRematch:: + trainerbattle_rematch TRAINER_RUIN_MANIAC_STANLY, SixIsland_RuinValley_Text_StanlyRematchIntro, SixIsland_RuinValley_Text_StanlyDefeat + msgbox SixIsland_RuinValley_Text_StanlyPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_Foster:: + trainerbattle_single TRAINER_RUIN_MANIAC_FOSTER, SixIsland_RuinValley_Text_FosterIntro, SixIsland_RuinValley_Text_FosterDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_RuinValley_EventScript_FosterRematch + msgbox SixIsland_RuinValley_Text_FosterPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_FosterRematch:: + trainerbattle_rematch TRAINER_RUIN_MANIAC_FOSTER, SixIsland_RuinValley_Text_FosterRematchIntro, SixIsland_RuinValley_Text_FosterDefeat + msgbox SixIsland_RuinValley_Text_FosterPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_Larry:: + trainerbattle_single TRAINER_RUIN_MANIAC_LARRY, SixIsland_RuinValley_Text_LarryIntro, SixIsland_RuinValley_Text_LarryDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_RuinValley_EventScript_LarryRematch + msgbox SixIsland_RuinValley_Text_LarryPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_LarryRematch:: + trainerbattle_rematch TRAINER_RUIN_MANIAC_LARRY, SixIsland_RuinValley_Text_LarryRematchIntro, SixIsland_RuinValley_Text_LarryDefeat + msgbox SixIsland_RuinValley_Text_LarryPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_Daryl:: + trainerbattle_single TRAINER_HIKER_DARYL, SixIsland_RuinValley_Text_DarylIntro, SixIsland_RuinValley_Text_DarylDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_RuinValley_EventScript_DarylRematch + msgbox SixIsland_RuinValley_Text_DarylPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_DarylRematch:: + trainerbattle_rematch TRAINER_HIKER_DARYL, SixIsland_RuinValley_Text_DarylRematchIntro, SixIsland_RuinValley_Text_DarylDefeat + msgbox SixIsland_RuinValley_Text_DarylPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_Hector:: + trainerbattle_single TRAINER_POKEMANIAC_HECTOR, SixIsland_RuinValley_Text_HectorIntro, SixIsland_RuinValley_Text_HectorDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SixIsland_RuinValley_EventScript_HectorRematch + msgbox SixIsland_RuinValley_Text_HectorPostBattle, MSGBOX_AUTOCLOSE + end + +SixIsland_RuinValley_EventScript_HectorRematch:: + trainerbattle_rematch TRAINER_POKEMANIAC_HECTOR, SixIsland_RuinValley_Text_HectorRematchIntro, SixIsland_RuinValley_Text_HectorDefeat + msgbox SixIsland_RuinValley_Text_HectorPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TrainerTower_EventScript_Dario:: + trainerbattle_single TRAINER_PSYCHIC_DARIO, SevenIsland_TrainerTower_Text_DarioIntro, SevenIsland_TrainerTower_Text_DarioDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_TrainerTower_EventScript_DarioRematch + msgbox SevenIsland_TrainerTower_Text_DarioPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TrainerTower_EventScript_DarioRematch:: + trainerbattle_rematch TRAINER_PSYCHIC_DARIO, SevenIsland_TrainerTower_Text_DarioRematchIntro, SevenIsland_TrainerTower_Text_DarioDefeat + msgbox SevenIsland_TrainerTower_Text_DarioPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TrainerTower_EventScript_Rodette:: + trainerbattle_single TRAINER_PSYCHIC_RODETTE, SevenIsland_TrainerTower_Text_RodetteIntro, SevenIsland_TrainerTower_Text_RodetteDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_TrainerTower_EventScript_RodetteRematch + msgbox SevenIsland_TrainerTower_Text_RodettePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TrainerTower_EventScript_RodetteRematch:: + trainerbattle_rematch TRAINER_PSYCHIC_RODETTE, SevenIsland_TrainerTower_Text_RodetteRematchIntro, SevenIsland_TrainerTower_Text_RodetteDefeat + msgbox SevenIsland_TrainerTower_Text_RodettePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_Miah:: + trainerbattle_single TRAINER_AROMA_LADY_MIAH, SevenIsland_SevaultCanyon_Entrance_Text_MiahIntro, SevenIsland_SevaultCanyon_Entrance_Text_MiahDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_Entrance_EventScript_MiahRematch + msgbox SevenIsland_SevaultCanyon_Entrance_Text_MiahPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_MiahRematch:: + trainerbattle_rematch TRAINER_AROMA_LADY_MIAH, SevenIsland_SevaultCanyon_Entrance_Text_MiahRematchIntro, SevenIsland_SevaultCanyon_Entrance_Text_MiahDefeat + msgbox SevenIsland_SevaultCanyon_Entrance_Text_MiahPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_Eve:: + trainerbattle_double TRAINER_YOUNG_COUPLE_EVE_JON, SevenIsland_SevaultCanyon_Entrance_Text_EveIntro, SevenIsland_SevaultCanyon_Entrance_Text_EveDefeat, SevenIsland_SevaultCanyon_Entrance_Text_EveNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_Entrance_EventScript_EveRematch + msgbox SevenIsland_SevaultCanyon_Entrance_Text_EvePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_EveRematch:: + trainerbattle_rematch_double TRAINER_YOUNG_COUPLE_EVE_JON, SevenIsland_SevaultCanyon_Entrance_Text_EveRematchIntro, SevenIsland_SevaultCanyon_Entrance_Text_EveDefeat, SevenIsland_SevaultCanyon_Entrance_Text_EveNotEnoughMons + msgbox SevenIsland_SevaultCanyon_Entrance_Text_EvePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_Jon:: + trainerbattle_double TRAINER_YOUNG_COUPLE_EVE_JON, SevenIsland_SevaultCanyon_Entrance_Text_JonIntro, SevenIsland_SevaultCanyon_Entrance_Text_JonDefeat, SevenIsland_SevaultCanyon_Entrance_Text_JonNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_Entrance_EventScript_JonRematch + msgbox SevenIsland_SevaultCanyon_Entrance_Text_JonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_JonRematch:: + trainerbattle_rematch_double TRAINER_YOUNG_COUPLE_EVE_JON, SevenIsland_SevaultCanyon_Entrance_Text_JonRematchIntro, SevenIsland_SevaultCanyon_Entrance_Text_JonDefeat, SevenIsland_SevaultCanyon_Entrance_Text_JonNotEnoughMons + msgbox SevenIsland_SevaultCanyon_Entrance_Text_JonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_Mason:: + trainerbattle_single TRAINER_JUGGLER_MASON, SevenIsland_SevaultCanyon_Entrance_Text_MasonIntro, SevenIsland_SevaultCanyon_Entrance_Text_MasonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_Entrance_EventScript_MasonRematch + msgbox SevenIsland_SevaultCanyon_Entrance_Text_MasonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_MasonRematch:: + trainerbattle_rematch TRAINER_JUGGLER_MASON, SevenIsland_SevaultCanyon_Entrance_Text_MasonRematchIntro, SevenIsland_SevaultCanyon_Entrance_Text_MasonDefeat + msgbox SevenIsland_SevaultCanyon_Entrance_Text_MasonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_Nicolas:: + trainerbattle_single TRAINER_PKMN_RANGER_NICOLAS, SevenIsland_SevaultCanyon_Entrance_Text_NicolasIntro, SevenIsland_SevaultCanyon_Entrance_Text_NicolasDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_Entrance_EventScript_NicolasRematch + msgbox SevenIsland_SevaultCanyon_Entrance_Text_NicolasPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_NicolasRematch:: + trainerbattle_rematch TRAINER_PKMN_RANGER_NICOLAS, SevenIsland_SevaultCanyon_Entrance_Text_NicolasRematchIntro, SevenIsland_SevaultCanyon_Entrance_Text_NicolasDefeat + msgbox SevenIsland_SevaultCanyon_Entrance_Text_NicolasPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_Madeline:: + trainerbattle_single TRAINER_PKMN_RANGER_MADELINE, SevenIsland_SevaultCanyon_Entrance_Text_MadelineIntro, SevenIsland_SevaultCanyon_Entrance_Text_MadelineDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_Entrance_EventScript_MadelineRematch + msgbox SevenIsland_SevaultCanyon_Entrance_Text_MadelinePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_Entrance_EventScript_MadelineRematch:: + trainerbattle_rematch TRAINER_PKMN_RANGER_MADELINE, SevenIsland_SevaultCanyon_Entrance_Text_MadelineRematchIntro, SevenIsland_SevaultCanyon_Entrance_Text_MadelineDefeat + msgbox SevenIsland_SevaultCanyon_Entrance_Text_MadelinePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Cyndy:: + trainerbattle_single TRAINER_CRUSH_GIRL_CYNDY, SevenIsland_SevaultCanyon_Text_CyndyIntro, SevenIsland_SevaultCanyon_Text_CyndyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_CyndyRematch + msgbox SevenIsland_SevaultCanyon_Text_CyndyPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_CyndyRematch:: + trainerbattle_rematch TRAINER_CRUSH_GIRL_CYNDY, SevenIsland_SevaultCanyon_Text_CyndyRematchIntro, SevenIsland_SevaultCanyon_Text_CyndyDefeat + msgbox SevenIsland_SevaultCanyon_Text_CyndyPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Evan:: + trainerbattle_single TRAINER_TAMER_EVAN, SevenIsland_SevaultCanyon_Text_EvanIntro, SevenIsland_SevaultCanyon_Text_EvanDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_EvanRematch + msgbox SevenIsland_SevaultCanyon_Text_EvanPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_EvanRematch:: + trainerbattle_rematch TRAINER_TAMER_EVAN, SevenIsland_SevaultCanyon_Text_EvanRematchIntro, SevenIsland_SevaultCanyon_Text_EvanDefeat + msgbox SevenIsland_SevaultCanyon_Text_EvanPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Jackson:: + trainerbattle_single TRAINER_PKMN_RANGER_JACKSON, SevenIsland_SevaultCanyon_Text_JacksonIntro, SevenIsland_SevaultCanyon_Text_JacksonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_JacksonRematch + msgbox SevenIsland_SevaultCanyon_Text_JacksonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_JacksonRematch:: + trainerbattle_rematch TRAINER_PKMN_RANGER_JACKSON, SevenIsland_SevaultCanyon_Text_JacksonRematchIntro, SevenIsland_SevaultCanyon_Text_JacksonDefeat + msgbox SevenIsland_SevaultCanyon_Text_JacksonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Katelyn:: + trainerbattle_single TRAINER_PKMN_RANGER_KATELYN, SevenIsland_SevaultCanyon_Text_KatelynIntro, SevenIsland_SevaultCanyon_Text_KatelynDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_KatelynRematch + msgbox SevenIsland_SevaultCanyon_Text_KatelynPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_KatelynRematch:: + trainerbattle_rematch TRAINER_PKMN_RANGER_KATELYN, SevenIsland_SevaultCanyon_Text_KatelynRematchIntro, SevenIsland_SevaultCanyon_Text_KatelynDefeat + msgbox SevenIsland_SevaultCanyon_Text_KatelynPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Leroy:: + trainerbattle_single TRAINER_COOLTRAINER_LEROY, SevenIsland_SevaultCanyon_Text_LeroyIntro, SevenIsland_SevaultCanyon_Text_LeroyDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_LeroyRematch + msgbox SevenIsland_SevaultCanyon_Text_LeroyPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_LeroyRematch:: + trainerbattle_rematch TRAINER_COOLTRAINER_LEROY, SevenIsland_SevaultCanyon_Text_LeroyRematchIntro, SevenIsland_SevaultCanyon_Text_LeroyDefeat + msgbox SevenIsland_SevaultCanyon_Text_LeroyPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Michelle:: + trainerbattle_single TRAINER_COOLTRAINER_MICHELLE, SevenIsland_SevaultCanyon_Text_MichelleIntro, SevenIsland_SevaultCanyon_Text_MichelleDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_MichelleRematch + msgbox SevenIsland_SevaultCanyon_Text_MichellePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_MichelleRematch:: + trainerbattle_rematch TRAINER_COOLTRAINER_MICHELLE, SevenIsland_SevaultCanyon_Text_MichelleRematchIntro, SevenIsland_SevaultCanyon_Text_MichelleDefeat + msgbox SevenIsland_SevaultCanyon_Text_MichellePostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Lex:: + trainerbattle_double TRAINER_COOL_COUPLE_LEX_NYA, SevenIsland_SevaultCanyon_Text_LexIntro, SevenIsland_SevaultCanyon_Text_LexDefeat, SevenIsland_SevaultCanyon_Text_LexNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_LexRematch + msgbox SevenIsland_SevaultCanyon_Text_LexPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_LexRematch:: + trainerbattle_rematch_double TRAINER_COOL_COUPLE_LEX_NYA, SevenIsland_SevaultCanyon_Text_LexRematchIntro, SevenIsland_SevaultCanyon_Text_LexDefeat, SevenIsland_SevaultCanyon_Text_LexNotEnoughMons + msgbox SevenIsland_SevaultCanyon_Text_LexPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_Nya:: + trainerbattle_double TRAINER_COOL_COUPLE_LEX_NYA, SevenIsland_SevaultCanyon_Text_NyaIntro, SevenIsland_SevaultCanyon_Text_NyaDefeat, SevenIsland_SevaultCanyon_Text_NyaNotEnoughMons + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_SevaultCanyon_EventScript_NyaRematch + msgbox SevenIsland_SevaultCanyon_Text_NyaPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_SevaultCanyon_EventScript_NyaRematch:: + trainerbattle_rematch_double TRAINER_COOL_COUPLE_LEX_NYA, SevenIsland_SevaultCanyon_Text_NyaRematchIntro, SevenIsland_SevaultCanyon_Text_NyaDefeat, SevenIsland_SevaultCanyon_Text_NyaNotEnoughMons + msgbox SevenIsland_SevaultCanyon_Text_NyaPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_Brandon:: + trainerbattle_single TRAINER_RUIN_MANIAC_BRANDON, SevenIsland_TanobyRuins_Text_BrandonIntro, SevenIsland_TanobyRuins_Text_BrandonDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_TanobyRuins_EventScript_BrandonRematch + msgbox SevenIsland_TanobyRuins_Text_BrandonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_BrandonRematch:: + trainerbattle_rematch TRAINER_RUIN_MANIAC_BRANDON, SevenIsland_TanobyRuins_Text_BrandonRematchIntro, SevenIsland_TanobyRuins_Text_BrandonDefeat + msgbox SevenIsland_TanobyRuins_Text_BrandonPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_Benjamin:: + trainerbattle_single TRAINER_RUIN_MANIAC_BENJAMIN, SevenIsland_TanobyRuins_Text_BenjaminIntro, SevenIsland_TanobyRuins_Text_BenjaminDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_TanobyRuins_EventScript_BenjaminRematch + msgbox SevenIsland_TanobyRuins_Text_BenjaminPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_BenjaminRematch:: + trainerbattle_rematch TRAINER_RUIN_MANIAC_BENJAMIN, SevenIsland_TanobyRuins_Text_BenjaminRematchIntro, SevenIsland_TanobyRuins_Text_BenjaminDefeat + msgbox SevenIsland_TanobyRuins_Text_BenjaminPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_Edna:: + trainerbattle_single TRAINER_PAINTER_EDNA, SevenIsland_TanobyRuins_Text_EdnaIntro, SevenIsland_TanobyRuins_Text_EdnaDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_TanobyRuins_EventScript_EdnaRematch + msgbox SevenIsland_TanobyRuins_Text_EdnaPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_EdnaRematch:: + trainerbattle_rematch TRAINER_PAINTER_EDNA, SevenIsland_TanobyRuins_Text_EdnaRematchIntro, SevenIsland_TanobyRuins_Text_EdnaDefeat + msgbox SevenIsland_TanobyRuins_Text_EdnaPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_Clifford:: + trainerbattle_single TRAINER_GENTLEMAN_CLIFFORD, SevenIsland_TanobyRuins_Text_CliffordIntro, SevenIsland_TanobyRuins_Text_CliffordDefeat + specialvar VAR_RESULT, ShouldTryRematchBattle + goto_if_eq VAR_RESULT, TRUE, SevenIsland_TanobyRuins_EventScript_CliffordRematch + msgbox SevenIsland_TanobyRuins_Text_CliffordPostBattle, MSGBOX_AUTOCLOSE + end + +SevenIsland_TanobyRuins_EventScript_CliffordRematch:: + trainerbattle_rematch TRAINER_GENTLEMAN_CLIFFORD, SevenIsland_TanobyRuins_Text_CliffordRematchIntro, SevenIsland_TanobyRuins_Text_CliffordDefeat + msgbox SevenIsland_TanobyRuins_Text_CliffordPostBattle, MSGBOX_AUTOCLOSE + end diff --git a/data/specials.inc b/data/specials.inc index f80933c0112c..ec1e6ecfe7d3 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -16,6 +16,14 @@ .align 2 gSpecials:: def_special HealPlayerParty + def_special StartBlackJack + def_special StartGacha + def_special StartBlockStacker + def_special StartDerby + def_special GetNewDerby + def_special StartSnake + def_special StartFlappyBird + def_special Special_ViewVoltorbFlip def_special SetCableClubWarp def_special DoCableClubWarp def_special ReturnFromLinkRoom @@ -346,6 +354,7 @@ gSpecials:: def_special GetContestMultiplayerId def_special ScriptGetPartyMonSpecies def_special IsSelectedMonEgg + def_special HasMovesToRelearn def_special TryInitBattleTowerAwardManObjectEvent def_special MoveOutOfSecretBaseFromOutside def_special LoadPlayerBag @@ -500,7 +509,6 @@ gSpecials:: def_special StartMirageTowerDisintegration def_special StartMirageTowerShake def_special StartMirageTowerFossilFallAndSink - def_special ChangeBoxPokemonNickname def_special GetPCBoxToSendMon def_special ShouldShowBoxWasFullMessage def_special SetMatchCallRegisteredFlag @@ -565,5 +573,76 @@ gSpecials:: def_special GetCodeFeedback def_special SetHiddenNature def_special SetAbility + def_special CanTeachMoveBoxMon def_special ObjectEventInteractionGetApricornTreeData def_special ObjectEventInteractionPickApricornTree + def_special GetFrlgPokedexCount + def_special HasAllMons + def_special GetProfOaksRatingMessage + def_special UpdatePickStateFromSpecialVar8005 + def_special SetFlavorTextFlagFromSpecialVars + def_special DisableMsgBoxWalkaway + def_special SetWalkingIntoSignVars + def_special StartOldManTutorialBattle + def_special DaisyMassageServices + def_special GetLeadMonFriendship + def_special OpenMuseumFossilPic + def_special CloseMuseumFossilPic + def_special CapeBrinkGetMoveToTeachLeadPokemon + def_special HasLearnedAllMovesFromCapeBrinkTutor + def_special SetSeenMon + def_special AnimateTeleporterHousing + def_special AnimateTeleporterCable + def_special IsThereMonInRoute5Daycare + def_special PutMonInRoute5Daycare + def_special GetNumLevelsGainedForRoute5DaycareMon + def_special TakePokemonFromRoute5Daycare + def_special GetCostToWithdrawRoute5DaycareMon + def_special DrawSeagallopDestinationMenu + def_special GetSelectedSeagallopDestination + def_special GetSeagallopNumber + def_special DoSeagallopFerryScene + def_special IsPlayerLeftOfVermilionSailor + def_special SetVermilionTrashCans + def_special DoSSAnneDepartureCutscene + def_special StartMarowakBattle + def_special DoesPlayerPartyContainSpecies + def_special GetMagikarpSizeRecordInfo + def_special CompareMagikarpSize + def_special GetHeracrossSizeRecordInfo + def_special CompareHeracrossSize + def_special GetRandomSlotMachineId + def_special HasAllKantoMons + def_special AnimateElevator + def_special InitElevatorFloorSelectMenuPos + def_special CloseElevatorCurrentFloorWindow + def_special DrawElevatorCurrentFloorWindow + def_special GetElevatorFloor + def_special ForcePlayerOntoBike + def_special Script_IsFanClubMemberFanOfPlayer + def_special Script_GetNumFansOfPlayerInTrainerFanClub + def_special Script_BufferFanClubTrainerName + def_special Script_TryLoseFansFromPlayTimeAfterLinkBattle + def_special Script_TryLoseFansFromPlayTime + def_special Script_SetPlayerGotFirstFans + def_special Script_UpdateTrainerFanClubGameClear + def_special Script_TryGainNewFanFromCounterFrlg + def_special IsNationalPokedexEnabled + def_special SetPostgameFlags + def_special IsPlayerNotInTrainerTowerLobby + def_special BrailleCursorToggle + def_special EnterHallOfFame + def_special CB2_StartCreditsSequence + def_special DoPokemonLeagueLightingEffect + def_special GetStarterPokemon + def_special SetIcefallCaveCrackedIceMetatiles + def_special UpdateLoreleiDollCollection + def_special SampleResortGorgeousMonAndReward + def_special PlayerPartyContainsSpeciesWithPlayerID + def_special ShakeScreen + def_special CallTrainerTowerFunc + def_special ForcePlayerToStartSurfing + def_special SeafoamIslandsB4F_CurrentDumpsPlayerOnLand + def_special UpdateTrainerCardPhotoIcons + def_special StickerManGetBragFlags + def_special CheckAddCoins diff --git a/data/text/battle_dome.inc b/data/text/battle_dome.inc deleted file mode 100644 index 8a26ff5ffc4f..000000000000 --- a/data/text/battle_dome.inc +++ /dev/null @@ -1,341 +0,0 @@ -BattleDome_Text_Potential1:: - .string "The best candidate to be a champ!$" - -BattleDome_Text_Potential2:: - .string "A sure-finalist team.$" - -BattleDome_Text_Potential3:: - .string "A likely top-three finisher.$" - -BattleDome_Text_Potential4:: - .string "A candidate to finish first.$" - -BattleDome_Text_Potential5:: - .string "A team with top-class potential.$" - -BattleDome_Text_Potential6:: - .string "The dark horse team this tournament.$" - -BattleDome_Text_Potential7:: - .string "A better-than-average team.$" - -BattleDome_Text_Potential8:: - .string "This tournament's average team.$" - -BattleDome_Text_Potential9:: - .string "A team with average potential.$" - -BattleDome_Text_Potential10:: - .string "A weaker-than-average team.$" - -BattleDome_Text_Potential11:: - .string "A team looking for its first win.$" - -BattleDome_Text_Potential12:: - .string "One win will make this team proud.$" - -BattleDome_Text_Potential13:: - .string "Overall, a weak team.$" - -BattleDome_Text_Potential14:: - .string "A team with very low potential.$" - -BattleDome_Text_Potential15:: - .string "A team unlikely to win the tournament.$" - -BattleDome_Text_Potential16:: - .string "The team most unlikely to win.$" - -BattleDome_Text_PotentialDomeAceTucker:: - .string "The perfect, invincible superstar!$" - -BattleDome_Text_StyleRiskDisaster:: - .string "Willing to risk total disaster at times.$" - -BattleDome_Text_StyleEndureLongBattles:: - .string "Skilled at enduring long battles.$" - -BattleDome_Text_StyleVariesTactics:: - .string "Varies tactics to suit the opponent.$" - -BattleDome_Text_StyleToughWinningPattern:: - .string "Has a tough winning pattern.$" - -BattleDome_Text_StyleUsesVeryRareMove:: - .string "Occasionally uses a very rare move.$" - -BattleDome_Text_StyleUsesStartlingMoves:: - .string "Uses startling and disruptive moves.$" - -BattleDome_Text_StyleConstantlyWatchesHP:: - .string "Constantly watches HP in battle.$" - -BattleDome_Text_StyleStoresAndLoosesPower:: - .string "Good at storing then loosing power.$" - -BattleDome_Text_StyleEnfeeblesFoes:: - .string "Skilled at enfeebling foes.$" - -BattleDome_Text_StylePrefersLuckTactics:: - .string "Prefers tactics that rely on luck.$" - -BattleDome_Text_StyleRegalAtmosphere:: - .string "Attacks with a regal atmosphere.$" - -BattleDome_Text_StylePowerfulLowPPMoves:: - .string "Attacks with powerful, low-PP moves.$" - -BattleDome_Text_StyleEnfeebleThenAttack:: - .string "Skilled at enfeebling, then attacking.$" - -BattleDome_Text_StyleBattlesWhileEnduring:: - .string "Battles while enduring all attacks.$" - -BattleDome_Text_StyleUpsetsFoesEmotionally:: - .string "Skilled at upsetting foes emotionally.$" - -BattleDome_Text_StyleStrongAndStraightforward:: - .string "Uses strong and straightforward moves.$" - -BattleDome_Text_StyleAggressivelyStrongMoves:: - .string "Aggressively uses strong moves.$" - -BattleDome_Text_StyleCleverlyDodgesAttacks:: - .string "Battles while cleverly dodging attacks.$" - -BattleDome_Text_StyleUsesUpsettingMoves:: - .string "Skilled at using upsetting attacks.$" - -BattleDome_Text_StyleUsesPopularMoves:: - .string "Uses many popular moves.$" - -BattleDome_Text_StyleHasPowerfulComboMoves:: - .string "Has moves for powerful combinations.$" - -BattleDome_Text_StyleUsesHighProbabilityMoves:: - .string "Uses high-probability attacks.$" - -BattleDome_Text_StyleAggressivelySpectacularMoves:: - .string "Aggressively uses spectacular moves.$" - -BattleDome_Text_StyleEmphasizesOffenseOverDefense:: - .string "Emphasizes offense over defense.$" - -BattleDome_Text_StyleEmphasizesDefenseOverOffense:: - .string "Emphasizes defense over offense.$" - -BattleDome_Text_StyleAttacksQuicklyStrongMoves:: - .string "Attacks quickly with strong moves.$" - -BattleDome_Text_StyleUsesAddedEffectMoves:: - .string "Often uses moves with added effects.$" - -BattleDome_Text_StyleUsesBalancedMixOfMoves:: - .string "Uses a well-balanced mix of moves.$" - -BattleDome_Text_StyleSampleMessage1:: - .string "This is sample message 1.$" - -BattleDome_Text_StyleSampleMessage2:: - .string "This is sample message 2.$" - -BattleDome_Text_StyleSampleMessage3:: - .string "This is sample message 3.$" - -BattleDome_Text_StyleSampleMessage4:: - .string "This is sample message 4.$" - -BattleDome_Text_EmphasizesHPAndAtk:: - .string "Emphasizes HP and ATTACK.$" - -BattleDome_Text_EmphasizesHPAndDef:: - .string "Emphasizes HP and DEFENSE.$" - -BattleDome_Text_EmphasizesHPAndSpeed:: - .string "Emphasizes HP and SPEED.$" - -BattleDome_Text_EmphasizesHPAndSpAtk:: - .string "Emphasizes HP and SP. ATTACK.$" - -BattleDome_Text_EmphasizesHPAndSpDef:: - .string "Emphasizes HP and SP. DEFENSE.$" - -BattleDome_Text_EmphasizesAtkAndDef:: - .string "Emphasizes ATTACK and DEFENSE.$" - -BattleDome_Text_EmphasizesAtkAndSpeed:: - .string "Emphasizes ATTACK and SPEED.$" - -BattleDome_Text_EmphasizesAtkAndSpAtk:: - .string "Emphasizes ATTACK and SP. ATTACK.$" - -BattleDome_Text_EmphasizesAtkAndSpDef:: - .string "Emphasizes ATTACK and SP. DEFENSE.$" - -BattleDome_Text_EmphasizesDefAndSpeed:: - .string "Emphasizes DEFENSE and SPEED.$" - -BattleDome_Text_EmphasizesDefAndSpAtk:: - .string "Emphasizes DEFENSE and SP. ATTACK.$" - -BattleDome_Text_EmphasizesDefAndSpDef:: - .string "Emphasizes DEFENSE and SP. DEFENSE.$" - -BattleDome_Text_EmphasizesSpeedAndSpAtk:: - .string "Emphasizes SPEED and SP. ATTACK.$" - -BattleDome_Text_EmphasizesSpeedAndSpDef:: - .string "Emphasizes SPEED and SP. DEFENSE.$" - -BattleDome_Text_EmphasizesSpAtkAndSpDef:: - .string "Emphasizes SP. ATTACK and SP. DEFENSE.$" - -BattleDome_Text_EmphasizesHP:: - .string "Emphasizes HP.$" - -BattleDome_Text_EmphasizesAtk:: - .string "Emphasizes ATTACK.$" - -BattleDome_Text_EmphasizesDef:: - .string "Emphasizes DEFENSE.$" - -BattleDome_Text_EmphasizesSpeed:: - .string "Emphasizes SPEED.$" - -BattleDome_Text_EmphasizesSpAtk:: - .string "Emphasizes SP. ATTACK.$" - -BattleDome_Text_EmphasizesSpDef:: - .string "Emphasizes SP. DEFENSE.$" - -BattleDome_Text_NeglectsHPAndAtk:: - .string "Neglects HP and ATTACK.$" - -BattleDome_Text_NeglectsHPAndDef:: - .string "Neglects HP and DEFENSE.$" - -BattleDome_Text_NeglectsHPAndSpeed:: - .string "Neglects HP and SPEED.$" - -BattleDome_Text_NeglectsHPAndSpAtk:: - .string "Neglects HP and SP. ATTACK.$" - -BattleDome_Text_NeglectsHPAndSpDef:: - .string "Neglects HP and SP. DEFENSE.$" - -BattleDome_Text_NeglectsAtkAndDef:: - .string "Neglects ATTACK and DEFENSE.$" - -BattleDome_Text_NeglectsAtkAndSpeed:: - .string "Neglects ATTACK and SPEED.$" - -BattleDome_Text_NeglectsAtkAndSpAtk:: - .string "Neglects ATTACK and SP. ATTACK.$" - -BattleDome_Text_NeglectsAtkAndSpDef:: - .string "Neglects ATTACK and SP. DEFENSE.$" - -BattleDome_Text_NeglectsDefAndSpeed:: - .string "Neglects DEFENSE and SPEED.$" - -BattleDome_Text_NeglectsDefAndSpAtk:: - .string "Neglects DEFENSE and SP. ATTACK.$" - -BattleDome_Text_NeglectsDefAndSpDef:: - .string "Neglects DEFENSE and SP. DEFENSE.$" - -BattleDome_Text_NeglectsSpeedAndSpAtk:: - .string "Neglects SPEED and SP. ATTACK.$" - -BattleDome_Text_NeglectsSpeedAndSpDef:: - .string "Neglects SPEED and SP. DEFENSE.$" - -BattleDome_Text_NeglectsSpAtkAndSpDef:: - .string "Neglects SP. ATTACK and SP. DEFENSE.$" - -BattleDome_Text_NeglectsHP:: - .string "Neglects HP.$" - -BattleDome_Text_NeglectsAtk:: - .string "Neglects ATTACK.$" - -BattleDome_Text_NeglectsDef:: - .string "Neglects DEFENSE.$" - -BattleDome_Text_NeglectsSpeed:: - .string "Neglects SPEED.$" - -BattleDome_Text_NeglectsSpAtk:: - .string "Neglects SP. ATTACK.$" - -BattleDome_Text_NeglectsSpDef:: - .string "Neglects SP. DEFENSE.$" - -BattleDome_Text_RaisesMonsWellBalanced:: - .string "Raises POKéMON in a well-balanced way.$" - -BattleDome_Text_LetTheBattleBegin:: - .string "Let the battle begin!$" - -BattleDome_Text_TrainerWonUsingMove:: - .string "{STR_VAR_1} won using {STR_VAR_2}!$" - -BattleDome_Text_TrainerBecameChamp:: - .string "{STR_VAR_1} became the champ!$" - -BattleDome_Text_TrainerWonByDefault:: - .string "{STR_VAR_1} won by default!$" - -BattleDome_Text_TrainerWonOutrightByDefault:: - .string "{STR_VAR_1} won outright by default!$" - -BattleDome_Text_TrainerWonNoMoves:: - .string "{STR_VAR_1} won without using a move!$" - -BattleDome_Text_TrainerWonOutrightNoMoves:: - .string "{STR_VAR_1} won outright with no moves!$" - -BattleDome_Text_Round1Match1:: - .string "Round 1, Match 1$" - -BattleDome_Text_Round1Match2:: - .string "Round 1, Match 2$" - -BattleDome_Text_Round1Match3:: - .string "Round 1, Match 3$" - -BattleDome_Text_Round1Match4:: - .string "Round 1, Match 4$" - -BattleDome_Text_Round1Match5:: - .string "Round 1, Match 5$" - -BattleDome_Text_Round1Match6:: - .string "Round 1, Match 6$" - -BattleDome_Text_Round1Match7:: - .string "Round 1, Match 7$" - -BattleDome_Text_Round1Match8:: - .string "Round 1, Match 8$" - -BattleDome_Text_Round2Match1:: - .string "Round 2, Match 1$" - -BattleDome_Text_Round2Match2:: - .string "Round 2, Match 2$" - -BattleDome_Text_Round2Match3:: - .string "Round 2, Match 3$" - -BattleDome_Text_Round2Match4:: - .string "Round 2, Match 4$" - -BattleDome_Text_SemifinalMatch1:: - .string "Semifinal Match 1$" - -BattleDome_Text_SemifinalMatch2:: - .string "Semifinal Match 2$" - -BattleDome_Text_FinalMatch:: - .string "Final Match$" diff --git a/data/text/braille.inc b/data/text/braille.inc index 4518c5769dd3..2266f2480f1e 100644 --- a/data/text/braille.inc +++ b/data/text/braille.inc @@ -115,3 +115,161 @@ AncientTomb_Braille_ShineInTheMiddle: .braille "INHERIT OUR\n" .braille "WILL, SHINE\n" .braille "IN THE MIDDLE.$" + +@ FRLG +Braille_Text_Up:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "UP$" + +Braille_Text_Down:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "DOWN$" + +Braille_Text_Right:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "RIGHT$" + +Braille_Text_Left:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "LEFT$" + +Braille_Text_Cut:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "CUT$" + +Braille_Text_ABC:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "ABC$" + +Braille_Text_GHI:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "GHI$" + +Braille_Text_MNO:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "MNO$" + +Braille_Text_TUV:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "TUV$" + +Braille_Text_DEF:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "DEF$" + +Braille_Text_JKL:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "JKL$" + +Braille_Text_PQRS:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "PQRS$" + +Braille_Text_WXYZ:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "WXYZ$" + +Braille_Text_Period:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille ".$" + +Braille_Text_Comma:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille ",$" + +Braille_Text_Everything:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "EVERYTHING$" + +Braille_Text_HasMeaning1:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "HAS MEANING$" + +Braille_Text_Existence:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "EXISTENCE$" + +Braille_Text_HasMeaning2:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "HAS MEANING$" + +Braille_Text_BeingAlive:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "BEING ALIVE$" + +Braille_Text_HasMeaning3:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "HAS MEANING$" + +Braille_Text_HaveDreams:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "HAVE DREAMS$" + +Braille_Text_UsePower:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "USE POWER.$" + +Braille_Text_LetTheTwo:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "LET THE TWO$" + +Braille_Text_Glittering:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "GLITTERING$" + +Braille_Text_Stones:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "STONES$" + +Braille_Text_OneInRed:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "ONE IN RED$" + +Braille_Text_OneInBlue:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "ONE IN BLUE$" + +Braille_Text_ConnectThe:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "CONNECT THE$" + +Braille_Text_Past:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "PAST.$" + +Braille_Text_TwoFriends:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "TWO FRIENDS$" + +Braille_Text_Sharing:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "SHARING$" + +Braille_Text_PowerOpen:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "POWER OPEN$" + +Braille_Text_AWindowTo:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "A WINDOW TO$" + +Braille_Text_ANewWorld:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "A NEW WORLD$" + +Braille_Text_ThatGlows:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "THAT GLOWS.$" + +Braille_Text_TheNext:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "THE NEXT$" + +Braille_Text_WorldWaits:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "WORLD WAITS$" + +Braille_Text_ForYou:: + brailleformat 3, 0, 25, 19, 6, 3 + .braille "FOR YOU.$" + diff --git a/data/text/day_care_frlg.inc b/data/text/day_care_frlg.inc new file mode 100644 index 000000000000..3de4f4fe3d47 --- /dev/null +++ b/data/text/day_care_frlg.inc @@ -0,0 +1,130 @@ +@ Same as Hoenn's day-care text, used by the Four Island Day-Care. Unused text translated in Emerald + +DayCare_Text_ImDaycareManSpeakToMyWife:: + .string "I'm the DAY-CARE MAN.\p" + .string "I help take care of the precious\n" + .string "POKéMON of TRAINERS.\p" + .string "If you'd like me to raise your\n" + .string "POKéMON, have a word with my wife.$" + +DayCare_Text_DoYouWantEgg:: + .string "Ah, it's you!\p" + .string "We were raising your POKéMON, and\n" + .string "my goodness, were we surprised!\p" + .string "Your POKéMON had an EGG!\p" + .string "We don't know how it got there,\n" + .string "but your POKéMON had it.\p" + .string "You do want it, yes?$" + +DayCare_Text_YourMonIsDoingFine:: + .string "Ah, it's you! Good to see you.\n" + .string "Your {STR_VAR_1}'s doing fine.$" + +DayCare_Text_IllKeepIt:: + .string "Well then, I'll keep it.\n" + .string "Thanks!$" + +DayCare_Text_YouHaveNoRoomForIt:: + .string "You have no room for it…\n" + .string "Come back when you've made room.$" + +DayCare_Text_ReceivedEgg:: + .string "{PLAYER} received the EGG from\n" + .string "the DAY-CARE MAN.$" + +DayCare_Text_TakeGoodCareOfIt:: + .string "Take good care of it.$" + +DayCare_Text_SeeWifeIfYouWantToPickUpMon:: + .string "ポケモンを ひきとりたい ときは\n" + .string "ばさんに いって おくれ$" + +DayCare_Text_YourMonsAreDoingFine:: + .string "Ah, it's you! Your {STR_VAR_1} and\n" + .string "{STR_VAR_2} are doing fine.$" + +DayCare_Text_IWillKeepDoYouWantIt:: + .string "I really will keep it.\n" + .string "You do want this, yes?$" + +DayCare_Text_WouldYouLikeUsToRaiseMon:: + .string "I'm the DAY-CARE LADY.\p" + .string "We can raise POKéMON for you.\p" + .string "Would you like us to raise one?$" + +DayCare_Text_WhichMonShouldWeRaise:: + .string "Which POKéMON should we raise for\n" + .string "you?$" + +DayCare_Text_WellRaiseYourMon:: + .string "Fine, we'll raise your {STR_VAR_1}\n" + .string "for a while.\p" + .string "Come back for it later.$" + +DayCare_Text_WeCanRaiseOneMore:: + .string "We can raise two of your POKéMON.\p" + .string "Would you like us to raise one\n" + .string "more POKéMON for you?$" + +DayCare_Text_HusbandWasLookingForYou:: + .string "My husband was looking for you.$" + +DayCare_Text_FineThenComeAgain:: + .string "Oh, fine, then.\n" + .string "Come again.$" + +DayCare_Text_NotEnoughMoney:: + .string "You don't have enough money…$" + +DayCare_Text_TakeOtherOneBackToo:: + .string "Will you take back the other one,\n" + .string "too?$" + +DayCare_Text_ComeAgain:: + .string "Fine.\n" + .string "Come again.$" + +DayCare_Text_GoodToSeeYou:: + .string "Ah, it's you!\n" + .string "Good to see you.\p" + .string "Your POKéMON can only be doing\n" + .string "good!$" + +DayCare_Text_YourMonHasGrownXLevels:: + .string "By level, your {STR_VAR_1} has\n" + .string "grown by {STR_VAR_2}.$" + +DayCare_Text_YourPartyIsFull:: + .string "Your POKéMON party is full.\n" + .string "Make room, then come see me.$" + +DayCare_Text_TakeBackWhichMon:: + .string "どっちの ポケモンを ひきとるかい?$" + +DayCare_Text_ItWillCostX:: + .string "If you want your {STR_VAR_1} back,\n" + .string "it will cost ¥{STR_VAR_2}.$" + +DayCare_Text_HeresYourMon:: + .string "Perfect!\n" + .string "Here's your POKéMON.$" + +DayCare_Text_TookBackMon:: + .string "{PLAYER} took back {STR_VAR_1} from\n" + .string "the DAY-CARE LADY.$" + +DayCare_Text_YouHaveJustOneMon:: + .string "Oh? But you have just one\n" + .string "POKéMON.\p" + .string "Come back another time.$" + +DayCare_Text_TakeYourMonBack:: + .string "Will you take your POKéMON back?$" + +DayCare_Text_WhatWillYouBattleWith:: + .string "If you leave me that POKéMON,\n" + .string "what will you battle with?\p" + .string "Come back another time.$" + +DayCare_Text_Huh:: + .string "Huh?$" diff --git a/data/text/fame_checker_frlg.inc b/data/text/fame_checker_frlg.inc new file mode 100644 index 000000000000..b4d52b2082bc --- /dev/null +++ b/data/text/fame_checker_frlg.inc @@ -0,0 +1,1487 @@ +gFameCheckerFlavorText_ProfOak0:: @ 0x81AD106 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}OAK POKéMON RESEARCH LAB$" + +gFameCheckerFlavorText_ProfOak1:: @ 0x81AD145 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}To make a complete guide on all\n" + .string "the POKéMON in the world…\p" + .string "That was my dream!$" + +gFameCheckerFlavorText_ProfOak2:: @ 0x81AD1BB + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}PROF. OAK may not look like much,\n" + .string "but he's the authority on POKéMON.\p" + .string "Many POKéMON TRAINERS hold him in\n" + .string "high regard.$" + +gFameCheckerFlavorText_ProfOak3:: @ 0x81AD258 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}PROF. OAK reportedly lives with his\n" + .string "grandchildren, DAISY and {RIVAL}.$" + +gFameCheckerFlavorText_ProfOak4:: @ 0x81AD2B9 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I hear OAK's taken a lot of\n" + .string "interest in you, child.\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He's a shadow of his former self.$" + +gFameCheckerFlavorText_ProfOak5:: @ 0x81AD377 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}PROF. OAK is going to have his own\n" + .string "radio show soon.\p" + .string "The program will be called PROF.\n" + .string "OAK'S POKéMON SEMINAR.$" + +gFameCheckerFlavorText_Daisy0:: @ 0x81AD40C + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}If you show DAISY your POKéMON,\n" + .string "she can tell how much it likes you.\p" + .string "Occasionally, she will even groom\n" + .string "a POKéMON for you.$" + +gFameCheckerFlavorText_Daisy1:: @ 0x81AD4AE + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}But the person who is most liked by\n" + .string "POKéMON is DAISY, I think.$" + +gFameCheckerFlavorText_Daisy2:: @ 0x81AD516 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}She was gently grooming POKéMON…\n" + .string "She was a little angel.\p" + .string "That little girl's name…\n" + .string "I think it was DAISY.$" + +gFameCheckerFlavorText_Daisy3:: @ 0x81AD5A7 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}PROF. OAK reportedly lives with his\n" + .string "grandchildren, DAISY and {RIVAL}.$" + +gFameCheckerFlavorText_Daisy4:: @ 0x81AD608 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}A girl from PALLET TOWN, DAISY,\n" + .string "she enjoys TEA every day.\p" + .string "She visits the CELADON DEPT. STORE\n" + .string "to buy some TEA.$" + +gFameCheckerFlavorText_Daisy5:: @ 0x81AD69F + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}The Spring POKéMON CONTEST's\n" + .string "Grand Champion is DAISY OAK of\l" + .string "PALLET TOWN!$" + +gFameCheckerFlavorText_Brock0:: @ 0x81AD705 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}PEWTER CITY POKéMON GYM\n" + .string "LEADER: BROCK\l" + .string "The Rock-Solid POKéMON TRAINER!$" + +gFameCheckerFlavorText_Brock1:: @ 0x81AD771 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}My rock-hard willpower is evident\n" + .string "in even my POKéMON.\p" + .string "My POKéMON are all rock hard and\n" + .string "have true-grit determination.\p" + .string "That's right - my POKéMON are all\n" + .string "the ROCK type!$" + +gFameCheckerFlavorText_Brock2:: @ 0x81AD840 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}There aren't many serious POKéMON\n" + .string "TRAINERS here.\p" + .string "They're all like BUG CATCHERS,\n" + .string "you know, just hobbyists.\p" + .string "But PEWTER GYM's BROCK isn't like\n" + .string "that, not one bit.$" + +gFameCheckerFlavorText_Brock3:: @ 0x81AD908 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BROCK is cool. He's not just tough.\n" + .string "People like and respect him.\p" + .string "I want to become a GYM LEADER\n" + .string "like him.$" + +gFameCheckerFlavorText_Brock4:: @ 0x81AD99A + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Hi, I'm excavating for fossils here\n" + .string "under MT. MOON.\p" + .string "Sometimes, BROCK of PEWTER GYM\n" + .string "lends me a hand.$" + +gFameCheckerFlavorText_Brock5:: @ 0x81ADA27 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BROCK rarely laughs, but is said to\n" + .string "be unable to stop if he starts.$" + +gFameCheckerFlavorText_Misty0:: @ 0x81ADA91 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}CERULEAN CITY POKéMON GYM\n" + .string "LEADER: MISTY\l" + .string "The Tomboyish Mermaid!$" + +gFameCheckerFlavorText_Misty1:: @ 0x81ADAF6 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}My policy is an all-out offensive\n" + .string "with WATER-type POKéMON!$" + +gFameCheckerFlavorText_Misty2:: @ 0x81ADB5A + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}MISTY is a TRAINER who's going to\n" + .string "keep improving.\p" + .string "She won't lose to someone like you!$" + +gFameCheckerFlavorText_Misty3:: @ 0x81ADBD9 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Strong TRAINERS and WATER POKéMON\n" + .string "are common sights in these parts.\p" + .string "They say that MISTY of the\n" + .string "CERULEAN GYM trains here.$" + +gFameCheckerFlavorText_Misty4:: @ 0x81ADC72 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}This cape is a famous date spot.\p" + .string "MISTY, the GYM LEADER, has high\n" + .string "hopes about this place.$" + +gFameCheckerFlavorText_Misty5:: @ 0x81ADCEB + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}MISTY is said to worship LORELEI\n" + .string "of the ELITE FOUR.$" + +gFameCheckerFlavorText_LtSurge0:: @ 0x81ADD3C + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}VERMILION CITY POKéMON GYM\n" + .string "LEADER: LT. SURGE\l" + .string "The Lightning American!$" + +gFameCheckerFlavorText_LtSurge1:: @ 0x81ADDA7 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I tell you, kid, electric POKéMON\n" + .string "saved me during the war!$" + +gFameCheckerFlavorText_LtSurge2:: @ 0x81ADE0B + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}When I was in the Army, LT. SURGE\n" + .string "was my strict CO.\p" + .string "He was a hard taskmaster.$" + +gFameCheckerFlavorText_LtSurge3:: @ 0x81ADE82 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}LT. SURGE was always famous for\n" + .string "his cautious nature in the Army.$" + +gFameCheckerFlavorText_LtSurge4:: @ 0x81ADEEC + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}LT. SURGE installed the traps in\n" + .string "the GYM himself.\p" + .string "He set up double locks everywhere.$" + +gFameCheckerFlavorText_LtSurge5:: @ 0x81ADF6A + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}LT. SURGE is rumored to have been\n" + .string "a pilot while home in America.\p" + .string "He used the electricity generated\n" + .string "by POKéMON to power his plane.$" + +gFameCheckerFlavorText_Erika0:: @ 0x81AE009 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}CELADON CITY POKéMON GYM\n" + .string "LEADER: ERIKA\l" + .string "The Nature-Loving Princess!$" + +gFameCheckerFlavorText_Erika1:: @ 0x81AE072 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I am a student of the art of\n" + .string "flower arranging.\p" + .string "My POKéMON are solely of the\n" + .string "GRASS type.$" + +gFameCheckerFlavorText_Erika2:: @ 0x81AE0F3 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Our LEADER ERIKA might be quiet,\n" + .string "but she's famous around here.$" + +gFameCheckerFlavorText_Erika3:: @ 0x81AE15B + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}We only use GRASS-type POKéMON at\n" + .string "our GYM.\p" + .string "Why? We also use them for making\n" + .string "flower arrangements!$" + +gFameCheckerFlavorText_Erika4:: @ 0x81AE1E5 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I would never collect POKéMON if\n" + .string "they were unattractive.$" + +gFameCheckerFlavorText_Erika5:: @ 0x81AE247 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Rumor has it that if you peek into\n" + .string "CELADON GYM, you can often\l" + .string "see ERIKA snoozing.$" + +gFameCheckerFlavorText_Koga0:: @ 0x81AE2B6 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}FUCHSIA CITY POKéMON GYM\n" + .string "LEADER: KOGA\l" + .string "The Poisonous Ninja Master$" + +gFameCheckerFlavorText_Koga1:: @ 0x81AE31D + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Despair to the creeping horror of\n" + .string "POISON-type POKéMON!$" + +gFameCheckerFlavorText_Koga2:: @ 0x81AE37D + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Even though I've lost, I will keep\n" + .string "training according to the teachings\l" + .string "of KOGA, my ninja master.$" + +gFameCheckerFlavorText_Koga3:: @ 0x81AE407 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}My father is the GYM LEADER of\n" + .string "this town.\p" + .string "I'm training to use POISON POKéMON\n" + .string "as well as my father.$" + +gFameCheckerFlavorText_Koga4:: @ 0x81AE48D + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}KOGA is said to have a thorough\n" + .string "knowledge of medicine.\p" + .string "He even concocts medicine to nurse\n" + .string "his POKéMON to health.$" + +gFameCheckerFlavorText_Koga5:: @ 0x81AE51B + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}The SAFARI ZONE's huge, wouldn't\n" + .string "you say?\p" + .string "FUCHSIA's GYM LEADER, KOGA, \n" + .string "patrols the grounds every so often.\p" + .string "Thanks to him, we can play here\n" + .string "knowing that we're safe.$" + +gFameCheckerFlavorText_Sabrina0:: @ 0x81AE5E8 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}SAFFRON CITY POKéMON GYM\n" + .string "LEADER: SABRINA\l" + .string "The Master of PSYCHIC POKéMON!$" + +gFameCheckerFlavorText_Sabrina1:: @ 0x81AE656 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}You know about a girl GYM LEADER\n" + .string "in SAFFRON CITY?\p" + .string "She uses PSYCHIC-type POKéMON,\n" + .string "right?$" + +gFameCheckerFlavorText_Sabrina2:: @ 0x81AE6D7 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I have had psychic powers since\n" + .string "I was a child.\p" + .string "It started when a spoon I\n" + .string "carelessly tossed, bent.$" + +gFameCheckerFlavorText_Sabrina3:: @ 0x81AE762 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I dislike battling, but if you wish,\n" + .string "I will show you my powers!$" + +gFameCheckerFlavorText_Sabrina4:: @ 0x81AE7CB + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}People say that SABRINA can\n" + .string "communicate with her POKéMON\l" + .string "during battle without speaking.$" + +gFameCheckerFlavorText_Sabrina5:: @ 0x81AE841 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}SABRINA just wiped out the KARATE\n" + .string "MASTER next door.$" + +gFameCheckerFlavorText_Blaine0:: @ 0x81AE89E + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}CINNABAR ISLAND POKéMON GYM\n" + .string "LEADER: BLAINE\l" + .string "The Hotheaded Quiz Master!$" + +gFameCheckerFlavorText_Blaine1:: @ 0x81AE90A + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}My fiery POKéMON are all rough\n" + .string "and ready with intense heat!\p" + .string "They incinerate all challengers!$" + +gFameCheckerFlavorText_Blaine2:: @ 0x81AE990 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Our LEADER, BLAINE, became lost\n" + .string "in the mountains but good.\p" + .string "Night fell when a fiery bird\n" + .string "POKéMON appeared.\p" + .string "Its light allowed BLAINE to find\n" + .string "his way down safely.$" + +gFameCheckerFlavorText_Blaine3:: @ 0x81AEA59 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}CINNABAR GYM's BLAINE is quite the\n" + .string "odd fellow.\p" + .string "He's lived on the island since way\n" + .string "before the LAB was built.$" + +gFameCheckerFlavorText_Blaine4:: @ 0x81AEAEE + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}It's a photo of BLAINE and\n" + .string "MR. FUJI.\p" + .string "They're standing shoulder to\n" + .string "shoulder with big grins.$" + +gFameCheckerFlavorText_Blaine5:: @ 0x81AEB69 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BLAINE is said to remove his dark\n" + .string "shades only when he is thinking up\l" + .string "new quiz questions.$" + +gFameCheckerFlavorText_Lorelei0:: @ 0x81AEBDF + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I am LORELEI of the ELITE FOUR.$" + +gFameCheckerFlavorText_Lorelei1:: @ 0x81AEC28 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}No one can best me when it comes\n" + .string "to icy POKéMON.$" + +gFameCheckerFlavorText_Lorelei2:: @ 0x81AEC82 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Where was this person born?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}We've had a great and powerful\n" + .string "TRAINER grow up on this island.\p" + .string "I bet even you'd know her.\n" + .string "It's LORELEI of the ELITE FOUR!$" + +gFameCheckerFlavorText_Lorelei3:: @ 0x81AED27 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Known for her logical, calculated,\n" + .string "and cool battling style, LORELEI\l" + .string "has a surprising secret!$" + +gFameCheckerFlavorText_Lorelei4:: @ 0x81AEDAA + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Did you know that LORELEI has lots\n" + .string "and lots of stuffed dolls?\p" + .string "Every time she comes back to\n" + .string "FOUR ISLAND, her collection grows!$" + +gFameCheckerFlavorText_Lorelei5:: @ 0x81AEE51 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}The LAPRAS she has, I imagine it\n" + .string "to be the one she met as a child.\p" + .string "I believe it was in ICEFALL CAVE\n" + .string "that she caught it.\p" + .string "Perhaps that POKéMON has been with\n" + .string "her ever since.$" + +gFameCheckerFlavorText_Bruno0:: @ 0x81AEF25 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I am BRUNO of the ELITE FOUR!$" + +gFameCheckerFlavorText_Bruno1:: @ 0x81AEF6C + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I've lived and trained with my\n" + .string "fighting POKéMON!$" + +gFameCheckerFlavorText_Bruno2:: @ 0x81AEFC6 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BRUNO apparently joined the ELITE\n" + .string "FOUR out of his burning ambition to\l" + .string "battle the best TRAINERS.$" + +gFameCheckerFlavorText_Bruno3:: @ 0x81AF04C + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BRUNO, who's a senior ahead of me,\n" + .string "visits the SPA on occasion.\p" + .string "He comes to rehab injuries, both\n" + .string "his own and his POKéMON's.$" + +gFameCheckerFlavorText_Bruno4:: @ 0x81AF0F0 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}He's one of the ELITE FOUR.\n" + .string "His name is BRUNO.\p" + .string "He went away disappointed when he\n" + .string "found out that they were all sold\l" + .string "out of Rage Candybars.$" + +gFameCheckerFlavorText_Bruno5:: @ 0x81AF19A + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Even BRUNO…\n" + .string "He trained with a fellow by the\l" + .string "name of BRAWLY before.$" + +gFameCheckerFlavorText_Agatha0:: @ 0x81AF200 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I am AGATHA of the ELITE FOUR.$" + +gFameCheckerFlavorText_Agatha1:: @ 0x81AF248 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}AGATHA's GHOST-type POKéMON are\n" + .string "horrifically terrifying in toughness.$" + +gFameCheckerFlavorText_Agatha2:: @ 0x81AF2B7 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}That old lady's also got a really\n" + .string "short fuse, too.\p" + .string "It doesn't take anything to get\n" + .string "that scary lady hollering.$" + +gFameCheckerFlavorText_Agatha3:: @ 0x81AF34E + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}In her youth, AGATHA and PROF.\n" + .string "OAK were rivals who vied for\l" + .string "supremacy as TRAINERS.$" + +gFameCheckerFlavorText_Agatha4:: @ 0x81AF3BE + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I hear OAK's taken a lot of\n" + .string "interest in you, child.\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He's a shadow of his former self.$" + +gFameCheckerFlavorText_Agatha5:: @ 0x81AF47C + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Take AGATHA, for example.\p" + .string "She set a record for being the\n" + .string "oldest-ever ELITE FOUR member.$" + +gFameCheckerFlavorText_Lance0:: @ 0x81AF4FD + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I lead the ELITE FOUR.\p" + .string "You can call me LANCE the dragon\n" + .string "TRAINER.$" + +gFameCheckerFlavorText_Lance1:: @ 0x81AF567 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}You know that dragons are\n" + .string "mythical POKéMON.\p" + .string "They're hard to catch and raise,\n" + .string "but their powers are superior.\p" + .string "They're virtually indestructible.\n" + .string "There's no being clever with them.$" + +gFameCheckerFlavorText_Lance2:: @ 0x81AF641 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}He stands for justice!\n" + .string "He's cool, and yet passionate!\l" + .string "He's the greatest, LANCE!$" + +gFameCheckerFlavorText_Lance3:: @ 0x81AF6BA + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}We have a customer, LANCE, who\n" + .string "occasionally comes.\p" + .string "He always buys capes.\p" + .string "I wonder… Does he have many\n" + .string "identical capes at home?$" + +gFameCheckerFlavorText_Lance4:: @ 0x81AF758 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}LANCE's grandfather is thought to\n" + .string "be the elder of a famous clan of\l" + .string "dragon masters.$" + +gFameCheckerFlavorText_Lance5:: @ 0x81AF7CB + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}From what I've heard, LANCE has\n" + .string "a cousin who's a GYM LEADER\l" + .string "somewhere far away.$" + +gFameCheckerFlavorText_Bill0:: @ 0x81AF83E + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}After all, BILL's world-famous as a\n" + .string "POKéMANIAC.\p" + .string "He invented the POKéMON Storage\n" + .string "System on PC, too.$" + +gFameCheckerFlavorText_Bill1:: @ 0x81AF8CA + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BILL has lots of POKéMON!\n" + .string "He collects rare ones, too!$" + +gFameCheckerFlavorText_Bill2:: @ 0x81AF929 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}He's my grandson!\p" + .string "He always liked collecting things,\n" + .string "even as a child!$" + +gFameCheckerFlavorText_Bill3:: @ 0x81AF998 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BILL is a POKéMANIAC, so he loves\n" + .string "every kind.\p" + .string "Apparently, the first one he caught\n" + .string "was an ABRA.$" + +gFameCheckerFlavorText_Bill4:: @ 0x81AFA20 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}BILL's hometown is GOLDENROD CITY,\n" + .string "where his folks still live.\p" + .string "I've heard that it's quite the\n" + .string "festive, bustling city.$" + +gFameCheckerFlavorText_Bill5:: @ 0x81AFAB9 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Apparently, BILL simply can't\n" + .string "stomach milk at all.$" + +gFameCheckerFlavorText_MrFuji0:: @ 0x81AFB0C + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}He's really kind.\p" + .string "He looks after abandoned and\n" + .string "orphaned POKéMON.$" + +gFameCheckerFlavorText_MrFuji1:: @ 0x81AFB76 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}This old guy marched right up to\n" + .string "our HIDEOUT.\p" + .string "Then, he starts ranting about how\n" + .string "TEAM ROCKET's abusing POKéMON.\p" + .string "So, we're just talking it over as\n" + .string "adults.$" + +gFameCheckerFlavorText_MrFuji2:: @ 0x81AFC38 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}POKéMON FAN MAGAZINE\n" + .string "Monthly Grand Prize Drawing!\p" + .string "The application form is…\p" + .string "Gone! It's been clipped out.\n" + .string "Someone must have applied already.$" + +gFameCheckerFlavorText_MrFuji3:: @ 0x81AFCE9 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}There's a rumor…\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I hear that MR. FUJI's not from\n" + .string "these parts originally, either.$" + +gFameCheckerFlavorText_MrFuji4:: @ 0x81AFD49 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}It's a photo of BLAINE and\n" + .string "MR. FUJI.\p" + .string "They're standing shoulder to\n" + .string "shoulder with big grins.$" + +gFameCheckerFlavorText_MrFuji5:: @ 0x81AFDC4 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Editor: The shy MR. FUJI turned\n" + .string "down our interview requests.\p" + .string "He is a kindly man who is adored\n" + .string "and respected in LAVENDER TOWN.$" + +gFameCheckerFlavorText_Giovanni0:: @ 0x81AFE68 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}TEAM ROCKET captures POKéMON from\n" + .string "around the world.\p" + .string "They're important tools for keeping\n" + .string "our criminal enterprise going.\p" + .string "I am the leader, GIOVANNI!$" + +gFameCheckerFlavorText_Giovanni1:: @ 0x81AFF23 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Favorite kind of POKéMON?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Those thugs that took over our\n" + .string "building…\p" + .string "Their BOSS said he was looking for\n" + .string "strong POKéMON.$" + +gFameCheckerFlavorText_Giovanni2:: @ 0x81AFFA8 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What is this person like?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}TEAM ROCKET's BOSS is terribly\n" + .string "cruel!\p" + .string "To him, POKéMON are just tools to\n" + .string "be used.$" + +gFameCheckerFlavorText_Giovanni3:: @ 0x81B0022 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Welcome to my hideout!\p" + .string "It shall be so until I can restore\n" + .string "TEAM ROCKET to its former glory.$" + +gFameCheckerFlavorText_Giovanni4:: @ 0x81B00A6 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}What does this person do?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Blow me away! GIOVANNI was the\n" + .string "GYM LEADER of VIRIDIAN?$" + +gFameCheckerFlavorText_Giovanni5:: @ 0x81B0106 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}Family and friends?\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}You… You're not GIOVANNI's kid,\n" + .string "are you?\p" + .string "No, that can't be right.\n" + .string "GIOVANNI's kid has red hair.$" + + +gFameCheckerPersonName_ProfOak:: @ 0x81B0188 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}PROF. OAK$" + +gFameCheckerPersonQuote_ProfOak:: @ 0x81B0198 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: PROF. OAK\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Why do POKéMON compete and battle\n" + .string "so hard for you?\p" + .string "They do so because they can see\n" + .string "the love and trust you have\l" + .string "towards POKéMON.\p" + .string "Never forget that.$" + +gFameCheckerPersonName_Daisy:: @ 0x81B0251 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}DAISY$" + +gFameCheckerPersonQuote_Daisy:: @ 0x81B025D + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: DAISY\n" + .string "To: {PLAYER}\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}While I was comfortably enjoying\n" + .string "my tea breaks, you've grown very\l" + .string "skilled and powerful.\p" + .string "I hope you'll remain a good rival\n" + .string "to my little brother.$" + +gFameCheckerPersonName_Brock:: @ 0x81B030F + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}BROCK$" + +gFameCheckerPersonQuote_Brock:: @ 0x81B031B + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: BROCK\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}In this big world of ours, there\n" + .string "must be many tough TRAINERS.\p" + .string "Let's both keep training and\n" + .string "making ourselves stronger!$" + +gFameCheckerPersonName_Misty:: @ 0x81B03B3 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}MISTY$" + +gFameCheckerPersonQuote_Misty:: @ 0x81B03BF + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: MISTY\n" + .string "To: {PLAYER}\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I'm going to keep training here at\n" + .string "this GYM.\p" + .string "When I get better, I'd love to hit\n" + .string "the road and travel.$" + +gFameCheckerPersonName_LtSurge:: @ 0x81B0446 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}LT. SURGE$" + +gFameCheckerPersonQuote_LtSurge:: @ 0x81B0456 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: LT. SURGE\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Hey, kid!\n" + .string "You electrified me in our battle!\p" + .string "I didn't know that there were\n" + .string "gutsy TRAINERS like you.\p" + .string "It made me change my mind about\n" + .string "you!$" + +gFameCheckerPersonName_Erika:: @ 0x81B0504 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}ERIKA$" + +gFameCheckerPersonQuote_Erika:: @ 0x81B0510 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: ERIKA\n" + .string "To: {PLAYER}\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I am so glad that there are strong\n" + .string "TRAINERS like you.\p" + .string "That awareness alone inspires and\n" + .string "motivates me to try harder.\p" + .string "Please visit me again.\n" + .string "Zzz…$" + +gFameCheckerPersonName_Koga:: @ 0x81B05C2 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}KOGA$" + +gFameCheckerPersonQuote_Koga:: @ 0x81B05CD + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: KOGA\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}You and I, we must both set our\n" + .string "sights higher and work towards\l" + .string "meeting our challenges.\p" + .string "Now, I must go train my daughter.$" + +gFameCheckerPersonName_Sabrina:: @ 0x81B0667 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}SABRINA$" + +gFameCheckerPersonQuote_Sabrina:: @ 0x81B0675 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: SABRINA\n" + .string "To: {PLAYER}\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}The love you have towards your\n" + .string "POKéMON…\p" + .string "It was a power that was never\n" + .string "bested by my psychic power.$" + +gFameCheckerPersonName_Blaine:: @ 0x81B06FB + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}BLAINE$" + +gFameCheckerPersonQuote_Blaine:: @ 0x81B0708 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: BLAINE\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}My fire POKéMON!\n" + .string "They'll become even more powerful!\p" + .string "And now, a quiz. How many kinds of\n" + .string "FIRE-type POKéMON are there?$" + +gFameCheckerPersonName_Lorelei:: @ 0x81B079F + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}LORELEI$" + +gFameCheckerPersonQuote_Lorelei:: @ 0x81B07AD + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: LORELEI\n" + .string "To: {PLAYER}\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I needed to thank you for your\n" + .string "help.\p" + .string "But that has nothing to do with our\n" + .string "battles.\p" + .string "You'd better watch out next time!$" + +gFameCheckerPersonName_Bruno:: @ 0x81B0845 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}BRUNO$" + +gFameCheckerPersonQuote_Bruno:: @ 0x81B0851 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: BRUNO\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}The super power of your POKéMON\n" + .string "and you I've experienced myself.\p" + .string "Next time, maybe I should show you\n" + .string "how to train yourself.$" + +gFameCheckerPersonName_Agatha:: @ 0x81B08EE + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}AGATHA$" + +gFameCheckerPersonQuote_Agatha:: @ 0x81B08FB + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: AGATHA\n" + .string "To: {PLAYER}\p" + .string "{FONT_FEMALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}When you grow older, don't you\n" + .string "dare go soft like that coot OAK!\p" + .string "Be like me and keep battling on!$" + +gFameCheckerPersonName_Lance:: @ 0x81B097F + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}LANCE$" + +gFameCheckerPersonQuote_Lance:: @ 0x81B098B + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: LANCE\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}I'm considering going back to my\n" + .string "hometown.\p" + .string "I want to retrain my DRAGON-type\n" + .string "POKéMON and strengthen them.\p" + .string "I'd like to invite you to my\n" + .string "hometown one day.$" + +gFameCheckerPersonName_Bill:: @ 0x81B0A45 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}BILL$" + +gFameCheckerPersonQuote_Bill:: @ 0x81B0A50 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: BILL\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Hey, there! CELIO had nothing but\n" + .string "praise for you.\p" + .string "Hearing that makes me happy.\p" + .string "When you catch some rare POKéMON,\n" + .string "come show me, okay? Promise!$" + +gFameCheckerPersonName_MrFuji:: @ 0x81B0AFF + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}MR. FUJI$" + +gFameCheckerPersonQuote_MrFuji:: @ 0x81B0B0E + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: MR. FUJI\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}Instead of hoping for the happiness\n" + .string "of just your POKéMON…\p" + .string "…Can I get you to wish for the\n" + .string "happiness of all POKéMON?$" + +gFameCheckerPersonName_Giovanni:: @ 0x81B0BA6 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}GIOVANNI$" + +gFameCheckerPersonQuote_Giovanni:: @ 0x81B0BB5 + .string "{COLOR BLUE}{SHADOW LIGHT_BLUE}From: GIOVANNI\n" + .string "To: {PLAYER}\p" + .string "{FONT_MALE}{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}There is nothing that I wish to say\n" + .string "to you.\p" + .string "I will concentrate solely on\n" + .string "bettering myself, and none other.$" + +gFameCheckerFlavorTextOriginLocation_ProfOak0:: @ 0x81B0C45 + .string "PALLET TOWN$" + +gFameCheckerFlavorTextOriginLocation_ProfOak1:: + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_ProfOak2:: + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_ProfOak3:: + .string "VIRIDIAN CITY$" + +gFameCheckerFlavorTextOriginLocation_ProfOak4:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_ProfOak5:: + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_Daisy0:: + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_Daisy1:: + .string "VERMILION CITY$" + +gFameCheckerFlavorTextOriginLocation_Daisy2:: + .string "WATER LABYRINTH$" + +gFameCheckerFlavorTextOriginLocation_Daisy3:: + .string "VIRIDIAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Daisy4:: + .string "CELADON MANSION$" + +gFameCheckerFlavorTextOriginLocation_Daisy5:: + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Brock0:: + .string "PEWTER CITY$" + +gFameCheckerFlavorTextOriginLocation_Brock1:: + .string "PEWTER GYM$" + +gFameCheckerFlavorTextOriginLocation_Brock2:: + .string "PEWTER CITY$" + +gFameCheckerFlavorTextOriginLocation_Brock3:: + .string "ROUTE 4$" + +gFameCheckerFlavorTextOriginLocation_Brock4:: + .string "MT. MOON$" + +gFameCheckerFlavorTextOriginLocation_Brock5:: + .string "PEWTER MUSEUM$" + +gFameCheckerFlavorTextOriginLocation_Misty0:: + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Misty1:: + .string "CERULEAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Misty2:: + .string "CERULEAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Misty3:: + .string "SEAFOAM ISLANDS$" + +gFameCheckerFlavorTextOriginLocation_Misty4:: + .string "CERULEAN CAPE$" + +gFameCheckerFlavorTextOriginLocation_Misty5:: + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_LtSurge0:: + .string "VERMILION CITY$" + +gFameCheckerFlavorTextOriginLocation_LtSurge1:: + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge2:: + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge3:: + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge4:: + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge5:: + .string "VERMILION CITY$" + +gFameCheckerFlavorTextOriginLocation_Erika0:: + .string "CELADON CITY$" + +gFameCheckerFlavorTextOriginLocation_Erika1:: + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika2:: + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika3:: + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika4:: + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika5:: + .string "CELADON MANSION$" + +gFameCheckerFlavorTextOriginLocation_Koga0:: + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Koga1:: + .string "FUCHSIA GYM$" + +gFameCheckerFlavorTextOriginLocation_Koga2:: + .string "FUCHSIA GYM$" + +gFameCheckerFlavorTextOriginLocation_Koga3:: + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Koga4:: + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Koga5:: + .string "SAFARI ZONE$" + +gFameCheckerFlavorTextOriginLocation_Sabrina0:: + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Sabrina1:: + .string "THREE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Sabrina2:: + .string "SAFFRON GYM$" + +gFameCheckerFlavorTextOriginLocation_Sabrina3:: + .string "SAFFRON GYM$" + +gFameCheckerFlavorTextOriginLocation_Sabrina4:: + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Sabrina5:: + .string "SAFFRON GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine0:: + .string "CINNABAR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Blaine1:: + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine2:: + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine3:: + .string "CINNABAR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Blaine4:: + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine5:: + .string "RESORT GORGEOUS$" + +gFameCheckerFlavorTextOriginLocation_Lorelei0:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lorelei1:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lorelei2:: + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lorelei3:: + .string "FIVE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lorelei4:: + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lorelei5:: + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bruno0:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Bruno1:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Bruno2:: + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Bruno3:: + .string "EMBER SPA$" + +gFameCheckerFlavorTextOriginLocation_Bruno4:: + .string "TWO ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bruno5:: + .string "SEVAULT CANYON$" + +gFameCheckerFlavorTextOriginLocation_Agatha0:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Agatha1:: + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Agatha2:: + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Agatha3:: + .string "SEVEN ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Agatha4:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Agatha5:: + .string "SIX ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lance0:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lance1:: + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lance2:: + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Lance3:: + .string "CELADON DEPT.$" + +gFameCheckerFlavorTextOriginLocation_Lance4:: + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Lance5:: + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Bill0:: + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Bill1:: + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Bill2:: + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Bill3:: + .string "ONE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bill4:: + .string "ONE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bill5:: + .string "ONE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_MrFuji0:: + .string "LAVENDER TOWN$" + +gFameCheckerFlavorTextOriginLocation_MrFuji1:: + .string "POKéMON TOWER$" + +gFameCheckerFlavorTextOriginLocation_MrFuji2:: + .string "LAVENDER TOWN$" + +gFameCheckerFlavorTextOriginLocation_MrFuji3:: + .string "LAVENDER TOWN$" + +gFameCheckerFlavorTextOriginLocation_MrFuji4:: + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_MrFuji5:: + .string "CINNABAR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Giovanni0:: + .string "ROCKET HIDEOUT$" + +gFameCheckerFlavorTextOriginLocation_Giovanni1:: + .string "SILPH CO.$" + +gFameCheckerFlavorTextOriginLocation_Giovanni2:: + .string "SILPH CO.$" + +gFameCheckerFlavorTextOriginLocation_Giovanni3:: + .string "VIRIDIAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Giovanni4:: + .string "VIRIDIAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Giovanni5:: + .string "ROCKET WAREHOUSE$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak1:: + .string "PROF. OAK$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak2:: + .string "AIDE$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak3:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak4:: + .string "AGATHA$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak5:: + .string "AIDE$" + +gFameCheckerFlavorTextOriginObjectName_Daisy0:: + .string "AIDE$" + +gFameCheckerFlavorTextOriginObjectName_Daisy1:: + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Daisy2:: + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Daisy3:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Daisy4:: + .string "OLD LADY$" + +gFameCheckerFlavorTextOriginObjectName_Daisy5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Brock0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Brock1:: + .string "BROCK$" + +gFameCheckerFlavorTextOriginObjectName_Brock2:: + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Brock3:: + .string "BOY$" + +gFameCheckerFlavorTextOriginObjectName_Brock4:: + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Brock5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Misty0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Misty1:: + .string "MISTY$" + +gFameCheckerFlavorTextOriginObjectName_Misty2:: + .string "LUIS$" + +gFameCheckerFlavorTextOriginObjectName_Misty3:: + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Misty4:: + .string "DAME$" + +gFameCheckerFlavorTextOriginObjectName_Misty5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge1:: + .string "LT. SURGE$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge2:: + .string "TUCKER$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge3:: + .string "TUCKER$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge4:: + .string "DWAYNE$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Erika0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Erika1:: + .string "ERIKA$" + +gFameCheckerFlavorTextOriginObjectName_Erika2:: + .string "LOLA$" + +gFameCheckerFlavorTextOriginObjectName_Erika3:: + .string "TAMIA$" + +gFameCheckerFlavorTextOriginObjectName_Erika4:: + .string "ERIKA$" + +gFameCheckerFlavorTextOriginObjectName_Erika5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Koga0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Koga1:: + .string "KOGA$" + +gFameCheckerFlavorTextOriginObjectName_Koga2:: + .string "KIRK$" + +gFameCheckerFlavorTextOriginObjectName_Koga3:: + .string "CHARINE$" + +gFameCheckerFlavorTextOriginObjectName_Koga4:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Koga5:: + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina1:: + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina2:: + .string "SABRINA$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina3:: + .string "SABRINA$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina4:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina5:: + .string "TYRON$" + +gFameCheckerFlavorTextOriginObjectName_Blaine0:: + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Blaine1:: + .string "BLAINE$" + +gFameCheckerFlavorTextOriginObjectName_Blaine2:: + .string "DEREK$" + +gFameCheckerFlavorTextOriginObjectName_Blaine3:: + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Blaine4:: + .string "PHOTO$" + +gFameCheckerFlavorTextOriginObjectName_Blaine5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei0:: + .string "LORELEI$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei1:: + .string "LORELEI$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei2:: + .string "OLD MAN$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei3:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei4:: + .string "LITTLE GIRL$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei5:: + .string "OLD LADY$" + +gFameCheckerFlavorTextOriginObjectName_Bruno0:: + .string "BRUNO$" + +gFameCheckerFlavorTextOriginObjectName_Bruno1:: + .string "BRUNO$" + +gFameCheckerFlavorTextOriginObjectName_Bruno2:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Bruno3:: + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Bruno4:: + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Bruno5:: + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Agatha0:: + .string "AGATHA$" + +gFameCheckerFlavorTextOriginObjectName_Agatha1:: + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Agatha2:: + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Agatha3:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Agatha4:: + .string "AGATHA$" + +gFameCheckerFlavorTextOriginObjectName_Agatha5:: + .string "OLD LADY$" + +gFameCheckerFlavorTextOriginObjectName_Lance0:: + .string "LANCE$" + +gFameCheckerFlavorTextOriginObjectName_Lance1:: + .string "LANCE$" + +gFameCheckerFlavorTextOriginObjectName_Lance2:: + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Lance3:: + .string "LITTLE GIRL$" + +gFameCheckerFlavorTextOriginObjectName_Lance4:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Lance5:: + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Bill0:: + .string "{RIVAL}$" + +gFameCheckerFlavorTextOriginObjectName_Bill1:: + .string "LITTLE BOY$" + +gFameCheckerFlavorTextOriginObjectName_Bill2:: + .string "OLD MAN$" + +gFameCheckerFlavorTextOriginObjectName_Bill3:: + .string "CELIO$" + +gFameCheckerFlavorTextOriginObjectName_Bill4:: + .string "CELIO$" + +gFameCheckerFlavorTextOriginObjectName_Bill5:: + .string "CELIO$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji0:: + .string "LITTLE GIRL$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji1:: + .string "TEAM ROCKET$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji2:: + .string "MAGAZINE$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji3:: + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji4:: + .string "PHOTO$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji5:: + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni0:: + .string "GIOVANNI$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni1:: + .string "SCIENTIST$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni2:: + .string "SCIENTIST$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni3:: + .string "GIOVANNI$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni4:: + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni5:: + .string "GIDEON$" + +PokemonJournal_Text_SpecialFeatureBrock:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: PEWTER GYM\n" + .string "LEADER BROCK!\p" + .string "BROCK rarely laughs, but is said to\n" + .string "be unable to stop if he starts.$" + +PokemonJournal_Text_SpecialFeatureMisty:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: CERULEAN GYM\n" + .string "LEADER MISTY!\p" + .string "MISTY is said to worship LORELEI\n" + .string "of the ELITE FOUR.$" + +PokemonJournal_Text_SpecialFeatureLtSurge:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: VERMILION GYM\n" + .string "LEADER LT. SURGE!\p" + .string "LT. SURGE is rumored to have been\n" + .string "a pilot while home in America.\p" + .string "He used the electricity generated\n" + .string "by POKéMON to power his plane.$" + +PokemonJournal_Text_SpecialFeatureErika:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: CELADON GYM\n" + .string "LEADER ERIKA!\p" + .string "Rumor has it that if you peek into\n" + .string "CELADON GYM, you can often\l" + .string "see ERIKA snoozing.$" + +PokemonJournal_Text_SpecialFeatureKoga:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: FUCHSIA GYM\n" + .string "LEADER KOGA!\p" + .string "KOGA is said to have a thorough\n" + .string "knowledge of medicine.\p" + .string "He even concocts medicine to nurse\n" + .string "his POKéMON to health.$" + +PokemonJournal_Text_SpecialFeatureSabrina:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: SAFFRON GYM\n" + .string "LEADER SABRINA!\p" + .string "People say that SABRINA can\n" + .string "communicate with her POKéMON\l" + .string "during battle without speaking.$" + +PokemonJournal_Text_SpecialFeatureBlaine:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: CINNABAR GYM\n" + .string "LEADER BLAINE!\p" + .string "BLAINE is said to remove his dark\n" + .string "shades only when he is thinking up\l" + .string "new quiz questions.$" + +PokemonJournal_Text_SpecialFeatureLorelei:: + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR's LORELEI!\p" + .string "Known for her logical, calculated,\n" + .string "and cool battling style, LORELEI\l" + .string "has a surprising secret!$" + +PokemonJournal_Text_SpecialFeatureBruno:: + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR's BRUNO!\p" + .string "BRUNO apparently joined the ELITE\n" + .string "FOUR out of his burning ambition to\l" + .string "battle the best TRAINERS.$" + +PokemonJournal_Text_SpecialFeatureAgatha:: + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR's AGATHA!\p" + .string "In her youth, AGATHA and PROF.\n" + .string "OAK were rivals who vied for\l" + .string "supremacy as TRAINERS.$" + +PokemonJournal_Text_SpecialFeatureLance:: + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR's LANCE!\p" + .string "LANCE's grandfather is thought to\n" + .string "be the elder of a famous clan of\l" + .string "dragon masters.$" + +PokemonJournal_Text_SpecialFeatureProfOak:: + .string "POKéMON JOURNAL\p" + .string "Special Feature: PROF. OAK,\n" + .string "the POKéMON Researcher!\p" + .string "PROF. OAK reportedly lives with his\n" + .string "grandchildren DAISY and {RIVAL}.$" + +PokemonJournal_Text_SpecialFeatureDaisyOak:: + .string "This is a POKéMON JOURNAL from\n" + .string "years ago…\p" + .string "POKéMON JOURNAL\n" + .string "CONTEST Special!\p" + .string "The Spring POKéMON CONTEST's\n" + .string "Grand Champion is DAISY OAK of\l" + .string "PALLET TOWN!$" + +PokemonJournal_Text_SpecialFeatureMrFuji:: + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "MR. FUJI of POKéMON HOUSE!\p" + .string "Editor: The shy MR. FUJI turned\n" + .string "down our interview requests.\p" + .string "He is a kindly man who is adored\n" + .string "and respected in LAVENDER TOWN.$" diff --git a/data/text/ingame_trade_frlg.inc b/data/text/ingame_trade_frlg.inc new file mode 100644 index 000000000000..0b800bad8cc1 --- /dev/null +++ b/data/text/ingame_trade_frlg.inc @@ -0,0 +1,60 @@ +Trade_Text_LookingForMonWannaTradeForMon:: + .string "I'm looking for the POKéMON\n" + .string "{STR_VAR_1}!\p" + .string "Wanna trade one for my\n" + .string "{STR_VAR_2}?$" + +Trade_Text_AwwOhWell:: + .string "Awww!\n" + .string "Oh, well…$" + +Trade_Text_WhatThatsNoMon:: + .string "What?\n" + .string "That's no {STR_VAR_1}!$" + +Trade_Text_HeyThanks:: + .string "Hey, thanks!$" + +Trade_Text_IsntMyOldMonGreat:: + .string "Isn't my old {STR_VAR_2} great?$" + +Trade_Text_DoYouHaveMonWouldYouTradeForMon:: + .string "Hello, there! Do you happen to\n" + .string "have a {STR_VAR_1}?\p" + .string "Would you agree to a trade for\n" + .string "my {STR_VAR_2}?$" + +Trade_Text_WellIfYouDontWantTo:: + .string "Well, if you don't want to…$" + +Trade_Text_ThisIsntMon:: + .string "Hmmm?\n" + .string "This isn't a {STR_VAR_1}.\p" + .string "Think of me if you get one.$" + +Trade_Text_Thanks:: + .string "Thanks!$" + +Trade_Text_HasTradedMonGrownStronger:: + .string "The {STR_VAR_2} that I traded you,\n" + .string "has it grown stronger?$" + +Trade_Text_DoYouHaveMonWantToTradeForMon:: + .string "Hi!\n" + .string "Do you have a {STR_VAR_1}?\p" + .string "Want to trade it for my\n" + .string "{STR_VAR_2}?$" + +Trade_Text_ThatsTooBad:: + .string "That's too bad.$" + +Trade_Text_ThisIsNoMon:: + .string "…This is no {STR_VAR_1}.\p" + .string "If you get one, trade it with me.$" + +Trade_Text_ThanksYoureAPal:: + .string "Thanks, you're a pal!$" + +Trade_Text_HowIsMyOldMon:: + .string "How is my old {STR_VAR_2}?\n" + .string "My {STR_VAR_1} is doing great!$" diff --git a/data/text/move_relearner.inc b/data/text/move_relearner.inc index b9400fd62b5f..e448fcd9fa49 100644 --- a/data/text/move_relearner.inc +++ b/data/text/move_relearner.inc @@ -47,6 +47,9 @@ MoveRelearner_Text_TMMoveLWR:: MoveRelearner_Text_TutorMoveLWR:: .string "tutor move$" +MoveRelearner_Text_MoveLWR:: + .string "move$" + MoveRelearner_Text_WhichXmoveShouldTeach: .string "Which {STR_VAR_3} should I teach?$" diff --git a/data/text/new_game_intro_frlg.inc b/data/text/new_game_intro_frlg.inc new file mode 100644 index 000000000000..99b4ea3113c5 --- /dev/null +++ b/data/text/new_game_intro_frlg.inc @@ -0,0 +1,243 @@ +gOtherText_NewName:: + .string "NEW NAME$" + +gNameChoice_Green:: + .string "GREEN$" + +gNameChoice_Red:: + .string "RED$" + +gNameChoice_Leaf:: + .string "LEAF$" + +gNameChoice_Fire:: + .string "FIRE$" + +gNameChoice_Gary:: + .string "GARY$" + +gNameChoice_Kaz:: + .string "KAZ$" + +gNameChoice_Toru:: + .string "TORU$" + +gNameChoice_Ash:: + .string "ASH$" + +gNameChoice_Kene:: + .string "KENE$" + +gNameChoice_Geki:: + .string "GEKI$" + +gNameChoice_Jak:: + .string "JAK$" + +gNameChoice_Janne:: + .string "JANNE$" + +gNameChoice_Jonn:: + .string "JONN$" + +gNameChoice_Kamon:: + .string "KAMON$" + +gNameChoice_Karl:: + .string "KARL$" + +gNameChoice_Taylor:: + .string "TAYLOR$" + +gNameChoice_Oscar:: + .string "OSCAR$" + +gNameChoice_Hiro:: + .string "HIRO$" + +gNameChoice_Max:: + .string "MAX$" + +gNameChoice_Jon:: + .string "JON$" + +gNameChoice_Ralph:: + .string "RALPH$" + +gNameChoice_Kay:: + .string "KAY$" + +gNameChoice_Tosh:: + .string "TOSH$" + +gNameChoice_Roak:: + .string "ROAK$" + +gNameChoice_Omi:: + .string "OMI$" + +gNameChoice_Jodi:: + .string "JODI$" + +gNameChoice_Amanda:: + .string "AMANDA$" + +gNameChoice_Hillary:: + .string "HILLARY$" + +gNameChoice_Makey:: + .string "MAKEY$" + +gNameChoice_Michi:: + .string "MICHI$" + +gNameChoice_Paula:: + .string "PAULA$" + +gNameChoice_June:: + .string "JUNE$" + +gNameChoice_Cassie:: + .string "CASSIE$" + +gNameChoice_Rey:: + .string "REY$" + +gNameChoice_Seda:: + .string "SEDA$" + +gNameChoice_Kiko:: + .string "KIKO$" + +gNameChoice_Mina:: + .string "MINA$" + +gNameChoice_Norie:: + .string "NORIE$" + +gNameChoice_Sai:: + .string "SAI$" + +gNameChoice_Momo:: + .string "MOMO$" + +gNameChoice_Suzi:: + .string "SUZI$" + +gControlsGuide_Text_Intro:: + .string "The various buttons will be explained in\n" + .string "the order of their importance.$" + +gControlsGuide_Text_DPad:: + .string "Moves the main character.\n" + .string "Also used to choose various data\n" + .string "headings.$" + +gControlsGuide_Text_AButton:: + .string "Used to confirm a choice, check\n" + .string "things, chat, and scroll text.$" + +gControlsGuide_Text_BButton:: + .string "Used to exit, cancel a choice,\n" + .string "and cancel a mode.$" + +gControlsGuide_Text_StartButton:: + .string "Press this button to open the\n" + .string "MENU.$" + +gControlsGuide_Text_SelectButton:: + .string "Used to shift items and to use\n" + .string "a registered item.$" + +gControlsGuide_Text_LRButtons:: + .string "If you need help playing the\n" + .string "game, or on how to do things,\n" + .string "press the L or R Button.$" + +gOakSpeech_Text_AskPlayerGender:: + .string "Now tell me. Are you a boy?\n" + .string "Or are you a girl?$" + +gPikachuIntro_Text_Page1:: + .string "In the world which you are about to\n" + .string "enter, you will embark on a grand\n" + .string "adventure with you as the hero.\n" + .string "\n" + .string "Speak to people and check things\n" + .string "wherever you go, be it towns, roads,\n" + .string "or caves. Gather information and\n" + .string "hints from every source.$" + +gPikachuIntro_Text_Page2:: + .string "New paths will open to you by helping\n" + .string "people in need, overcoming challenges,\n" + .string "and solving mysteries.\n" + .string "\n" + .string "At times, you will be challenged by\n" + .string "others and attacked by wild creatures.\n" + .string "Be brave and keep pushing on.$" + +gPikachuIntro_Text_Page3:: + .string "Through your adventure, we hope\n" + .string "that you will interact with all sorts\n" + .string "of people and achieve personal growth.\n" + .string "That is our biggest objective.\n" + .string "\n" + .string "Press the A Button, and let your\n" + .string "adventure begin!$" + +gOakSpeech_Text_WelcomeToTheWorld:: + .string "Hello, there!\n" + .string "Glad to meet you!\p" + .string "Welcome to the world of POKéMON!\p" + .string "My name is OAK.\p" + .string "People affectionately refer to me\n" + .string "as the POKéMON PROFESSOR.\p$" + +gOakSpeech_Text_ThisWorld:: + .string "This world…$" + +gOakSpeech_Text_IsInhabitedFarAndWide:: + .string "…is inhabited far and wide by\n" + .string "creatures called POKéMON.\p$" + +gOakSpeech_Text_IStudyPokemon:: + .string "For some people, POKéMON are pets.\n" + .string "Others use them for battling.\p" + .string "As for myself…\p" + .string "I study POKéMON as a profession.\p$" + +gOakSpeech_Text_TellMeALittleAboutYourself:: + .string "But first, tell me a little about\n" + .string "yourself.\p$" + +gOakSpeech_Text_YourNameWhatIsIt:: + .string "Let's begin with your name.\n" + .string "What is it?\p$" + +gOakSpeech_Text_SoYourNameIsPlayer:: + .string "Right…\n" + .string "So your name is {PLAYER}.$" + +gOakSpeech_Text_WhatWasHisName:: + .string "This is my grandson.\p" + .string "He's been your rival since you both\n" + .string "were babies.\p" + .string "…Erm, what was his name now?$" + +gOakSpeech_Text_YourRivalsNameWhatWasIt:: + .string "Your rival's name, what was it now?$" + +gOakSpeech_Text_ConfirmRivalName:: + .string "…Er, was it {RIVAL}?$" + +gOakSpeech_Text_RememberRivalsName:: + .string "That's right! I remember now!\n" + .string "His name is {RIVAL}!\p$" + +gOakSpeech_Text_LetsGo:: + .string "{PLAYER}!\p" + .string "Your very own POKéMON legend is\n" + .string "about to unfold!\p" + .string "A world of dreams and adventures\n" + .string "with POKéMON awaits! Let's go!$" diff --git a/data/text/obtain_item.inc b/data/text/obtain_item.inc index ff13bc0ba3f3..1f41a04af8fc 100644 --- a/data/text/obtain_item.inc +++ b/data/text/obtain_item.inc @@ -35,3 +35,23 @@ gText_ObtainedTheItems:: gText_PlayerFoundItems:: .string "{PLAYER} found {STR_VAR_1} {STR_VAR_2}!$" + +gText_PutCoinsAwayInCoinCase:: + .string "{PLAYER} put the COINS away in\n" + .string "the COIN CASE.$" + +gText_FoundXCoins:: + .string "{PLAYER} found\n" + .string "{STR_VAR_1} {STR_VAR_2}!$" + +gText_FoundXItems:: + .string "{PLAYER} found\n" + .string "{STR_VAR_1} {STR_VAR_2}(s)!$" + +gText_CoinCaseIsFull:: + .string "Too bad!\n" + .string "The COIN CASE is full…$" + +gText_NothingToPutThemIn:: + .string "Too bad!\n" + .string "There's nothing to put them in…$" diff --git a/data/text/pc.inc b/data/text/pc.inc index 1c7bf5a32c63..ae96317010a4 100644 --- a/data/text/pc.inc +++ b/data/text/pc.inc @@ -15,3 +15,6 @@ gText_AccessedPlayersPC:: gText_AccessedLanettesPC:: .string "Accessed LANETTE's PC.$" + +gText_AccessedBillsPC:: + .string "Accessed BILL's PC.$" diff --git a/data/text/pc_transfer.inc b/data/text/pc_transfer.inc index b6995d1111c4..541ca2aa4680 100644 --- a/data/text/pc_transfer.inc +++ b/data/text/pc_transfer.inc @@ -6,7 +6,11 @@ gText_PkmnTransferredSomeonesPC:: gText_PkmnTransferredLanettesPC:: .string "{STR_VAR_2} was transferred to\n" +#if IS_FRLG + .string "BILL'S PC.\p" +#else .string "LANETTE'S PC.\p" +#endif .string "It was placed in \n" .string "BOX “{STR_VAR_1}.”$" @@ -18,7 +22,11 @@ gText_PkmnTransferredSomeonesPCBoxFull:: gText_PkmnTransferredLanettesPCBoxFull:: .string "BOX “{STR_VAR_3}” on\n" +#if IS_FRLG + .string "BILL'S PC was full.\p" +#else .string "LANETTE'S PC was full.\p" +#endif .string "{STR_VAR_2} was transferred to\n" .string "BOX “{STR_VAR_1}.”$" @@ -28,6 +36,10 @@ gText_PkmnSentToPCAfterCatch:: .string "It was placed in \n" .string "BOX “{STR_VAR_1}”.$" +gText_PlayerObtainedTheMon:: + .string "{PLAYER} obtained\n" + .string "the {STR_VAR_1}!$" + gText_NoMoreRoomForPokemon:: .string "There's no more room for POKéMON!\p" .string "The POKéMON BOXES are full and\n" diff --git a/data/text/pokedex_rating.inc b/data/text/pokedex_rating.inc index 175aaccc6b0c..5cdb88a387a7 100644 --- a/data/text/pokedex_rating.inc +++ b/data/text/pokedex_rating.inc @@ -113,3 +113,126 @@ gBirchDexRatingText_OnANationwideBasis:: .string "On a nationwide basis…\p" .string "You've seen {STR_VAR_1} POKéMON,\n" .string "and you've caught {STR_VAR_2} POKéMON…$" + +@ FRLG + +PokedexRating_Text_HowIsPokedexComingAlong:: + .string "OAK: Good to see you!\n" + .string "How is your POKéDEX coming along?\p" + .string "Here, let me take a look.$" + +PokedexRating_Text_SeenXOwnedY:: + .string "The amount of progress you've made\n" + .string "on your POKéDEX is:\p" + .string "{STR_VAR_1} POKéMON seen and\n" + .string "{STR_VAR_2} POKéMON owned.\p" + .string "{FONT_NORMAL}PROF. OAK's rating:$" + +PokedexRating_Text_LessThan10:: + .string "You still have lots to do.\p" + .string "Go into every patch of grass you\n" + .string "see and look for POKéMON!$" + +PokedexRating_Text_LessThan20:: + .string "It looks as if you're getting on\n" + .string "the right track!\p" + .string "I've given one of my AIDES a FLASH\n" + .string "HM. Make sure you go get it!$" + +PokedexRating_Text_LessThan30:: + .string "Your POKéDEX could use a bit more\n" + .string "volume still!\p" + .string "Try to catch other species of\n" + .string "POKéMON!$" + +PokedexRating_Text_LessThan40:: + .string "Good, it's apparent that you're\n" + .string "trying hard!\p" + .string "I've given one of my AIDES an\n" + .string "ITEMFINDER. Be sure to collect it!$" + +PokedexRating_Text_LessThan50:: + .string "Your POKéDEX is coming along quite\n" + .string "well!\p" + .string "I've given one of my AIDES an\n" + .string "AMULET COIN. Be sure to get it!$" + +PokedexRating_Text_LessThan60:: + .string "Ah, you've finally topped 50\n" + .string "species!\p" + .string "I've given one of my AIDES an EXP.\n" + .string "SHARE. Be sure to go get it!$" + +PokedexRating_Text_LessThan70:: + .string "Hoho! This is turning into quite the\n" + .string "respectable POKéDEX!$" + +PokedexRating_Text_LessThan80:: + .string "Very good!\p" + .string "I think you'll collect even more\n" + .string "POKéMON by going fishing!$" + +PokedexRating_Text_LessThan90:: + .string "Wonderful! Let me guess… You\n" + .string "like to collect things, don't you?$" + +PokedexRating_Text_LessThan100:: + .string "I'm impressed!\n" + .string "It must have been difficult to do!$" + +PokedexRating_Text_LessThan110:: + .string "You've finally hit 100 species!\n" + .string "I can't believe how good you are!$" + +PokedexRating_Text_LessThan120:: + .string "You even have the evolved forms\n" + .string "of POKéMON! Super!$" + +PokedexRating_Text_LessThan130:: + .string "Excellent! Trade with friends to\n" + .string "get some more!$" + +PokedexRating_Text_LessThan140:: + .string "Outstanding!\n" + .string "You've become a real pro at this!$" + +PokedexRating_Text_LessThan150:: + .string "I have nothing left to say!\n" + .string "You're the POKéMON PROFESSOR now!$" + +PokedexRating_Text_Complete:: + .string "Your POKéDEX is entirely complete!\n" + .string "Congratulations!!$" + +PokedexRating_Text_NationalDexSeenXOwnedY:: + .string "And your NATIONAL POKéDEX is:\p" + .string "{STR_VAR_1} POKéMON seen and\n" + .string "{STR_VAR_2} POKéMON owned.$" + +PokedexRating_Text_LookForwardToFilledNationalDex:: + .string "I'll be looking forward to seeing\n" + .string "you fill the NATIONAL POKéDEX!$" + +PokedexRating_Text_YouveCompletedDex:: + .string "Finally…\p" + .string "You've finally completed the\n" + .string "POKéDEX!\p" + .string "It's magnificent!\n" + .string "Truly, this is a fantastic feat!$" + +PokedexRating_Text_Wroooaaarrr:: + .string "Wroooooooaaaaaarrrr!$" + +PokedexRating_Text_ThankYouMadeDreamReality:: + .string "Thank you, {PLAYER}!\n" + .string "Sincerely, thank you!\l" + .string "You've made my dream a reality!$" + +PokedexRating_Text_LoveSeeingYourPokedex:: + .string "OAK: Ah, welcome!\p" + .string "Tell me, how is your POKéDEX\n" + .string "coming along?\p" + .string "Wahaha!\p" + .string "Actually, I know how it is, but I\n" + .string "love seeing it anyway!\p" + .string "Let's see…$" diff --git a/data/text/surf.inc b/data/text/surf.inc index 13854f7aa7d3..80a4dc6605aa 100644 --- a/data/text/surf.inc +++ b/data/text/surf.inc @@ -4,3 +4,7 @@ gText_WantToUseSurf:: gText_PlayerUsedSurf:: .string "{STR_VAR_1} used SURF!$" + +Text_CurrentTooFast:: + .string "The current is much too fast!\n" + .string "SURF can't be used here…$" diff --git a/data/text/trainer_card_frlg.inc b/data/text/trainer_card_frlg.inc new file mode 100644 index 000000000000..b61e6100a498 --- /dev/null +++ b/data/text/trainer_card_frlg.inc @@ -0,0 +1,167 @@ +CeladonCity_GameCorner_Text_TryPokemonPrinter:: + .string "It's a POKéMON PRINTER!\p" + .string "It can put a print of your POKéMON\n" + .string "on the back of your TRAINER CARD.\p" + .string "It costs only ¥50.\n" + .string "Would you like to try it?$" + +CeladonCity_GameCorner_Text_DontHaveEnoughMoney:: + .string "You don't have enough money.$" + +CeladonCity_GameCorner_Text_ChoosePrintType:: + .string "Please choose the print type.$" + +CeladonCity_GameCorner_Text_BigSmileForPhoto:: + .string "A big smile for the photo, please!\n" + .string "Three… Two… One…\p" + .string "Flash!$" + +CeladonCity_GameCorner_Text_PrintIsReadyCheckTrainerCard:: + .string "Your POKéMON print is ready!\n" + .string "Check your TRAINER CARD.$" + +FourIsland_House2_Text_WishICouldShowOffStickers:: + .string "Giggle…\n" + .string "I collected a ton of STICKERS.\l" + .string "I wish I could show them off…$" + +FourIsland_House2_Text_GiveYouStickerIfYouBrag:: + .string "Oh, excellent!\n" + .string "You've come to the right place!\p" + .string "Look, look! See? See?\n" + .string "These are my STICKERS!\l" + .string "Look how many I got!\p" + .string "I bet you want some.\n" + .string "I bet you do!\p" + .string "I'll give a STICKER if you can tell\n" + .string "me something awesome about\l" + .string "yourself.\p" + .string "What will you brag about?$" + +FourIsland_House2_Text_BragAboutSomethingForMe:: + .string "Brag about something for me.\n" + .string "I'll give you a STICKER.$" + +FourIsland_House2_Text_BragAboutWhatToday:: + .string "Oh, hi!\n" + .string "Here comes the braggart.\p" + .string "What are you going to brag about\n" + .string "today?$" + +FourIsland_House2_Text_WowHoFLowest:: + .string "Oh, wow, you made it into the\n" + .string "HALL OF FAME.\p" + .string "That's pretty good, yup!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowHoFLow:: + .string "Oh, wow, you've entered the\n" + .string "HALL OF FAME often!\p" + .string "That's impressive, yup!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowHoFHigh:: + .string "Whoa! You've made it into the\n" + .string "HALL OF FAME that often?\l" + .string "That's seriously incredible, yup!\p" + .string "You own the POKéMON LEAGUE!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowHoFHighest:: + .string "No way! You've gone into the\n" + .string "HALL OF FAME that many times?\p" + .string "You're beyond incredible, yup!\n" + .string "That's it, I have to give you this.$" + +FourIsland_House2_Text_HoFStickerApplied:: + .string "The HALL OF FAME STICKER was\n" + .string "applied to the TRAINER CARD.$" + +FourIsland_House2_Text_ComeBackWithBetterStoryHoF:: + .string "Hmm…\p" + .string "Come back with a better story next\n" + .string "time, okay?$" + +FourIsland_House2_Text_LivingLegendHoF:: + .string "Oh, no, no can do.\p" + .string "You're practically a living legend.\n" + .string "I have no SITCKERS left to give.$" + +FourIsland_House2_Text_WowEggsLowest:: + .string "Oh, wow, there are POKéMON EGGS?\n" + .string "I didn't know that!\p" + .string "That's pretty good, yup!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowEggsLow:: + .string "You've hatched that many EGGS?\n" + .string "You really must like them!\p" + .string "That's impressive, yup!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowEggsHigh:: + .string "Whoa! You've hatched a whole\n" + .string "bunch of EGGS!\p" + .string "You're an EGG-hatching machine!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowEggsHighest:: + .string "Wh… You hatched that many EGGS?\p" + .string "What's behind your love of EGGS?\n" + .string "It's beyond incredible, yup!\p" + .string "You're too awesome, I tell you.\n" + .string "That's it, I have to give you this.$" + +FourIsland_House2_Text_EggStickerApplied:: + .string "The EGG STICKER was applied\n" + .string "to the TRAINER CARD.$" + +FourIsland_House2_Text_ComeBackWithBetterStoryEggs:: + .string "Hmm…\p" + .string "Come back with a better story next\n" + .string "time, okay?$" + +FourIsland_House2_Text_LivingLegendEggs:: + .string "Oh, no, no can do.\p" + .string "You're practically a living legend.\n" + .string "I have no SITCKERS left to give.$" + +FourIsland_House2_Text_WowLinkWinsLowest:: + .string "Oh, wow, you've had success\n" + .string "link battling?\p" + .string "You're pretty strong, yup!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowLinkWinsLow:: + .string "You've beaten your friends a lot\n" + .string "link battling, huh?\p" + .string "You're impressively strong, yup!\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowLinkWinsHigh:: + .string "Whoa! You've beaten your friends\n" + .string "a frightful number of times.\p" + .string "Have you lost friends over this?\n" + .string "I'll give you one of these.$" + +FourIsland_House2_Text_WowLinkWinsHighest:: + .string "Wh… Wickedly whoa!\n" + .string "You've won mind-blowingly often!\p" + .string "It just knocks me out thinking\n" + .string "about how tough you are.\p" + .string "You're the stuff of nightmares!\n" + .string "That's it, I have to give you this.$" + +FourIsland_House2_Text_VictoryStickerApplied:: + .string "The VICTORY STICKER was applied\n" + .string "to the TRAINER CARD.$" + +FourIsland_House2_Text_ComeBackWithBetterStoryLinkWins:: + .string "Hmm…\p" + .string "Come back with a better story next\n" + .string "time, okay?$" + +FourIsland_House2_Text_LivingLegendLinkWins:: + .string "Oh, no, no can do.\p" + .string "You're practically a living legend.\n" + .string "I have no SITCKERS left to give.$" diff --git a/data/text/trainers_frlg.inc b/data/text/trainers_frlg.inc new file mode 100644 index 000000000000..393c5da457a0 --- /dev/null +++ b/data/text/trainers_frlg.inc @@ -0,0 +1,992 @@ +Route3_Text_ColtonRematchIntro:: + .string "Hey!\n" + .string "I saw you in VIRIDIAN FOREST!$" + +Route3_Text_BenRematchIntro:: + .string "Hi! I like shorts!\n" + .string "They're comfy and easy to wear!\p" + .string "You should be wearing shorts, too!$" + +Route3_Text_JaniceRematchIntro:: + .string "Excuse me!\n" + .string "You keep looking at me, don't you?$" + +Route3_Text_GregRematchIntro:: + .string "You're a TRAINER, aren't you?\n" + .string "Let's get with it right away!$" + +Route3_Text_SallyRematchIntro:: + .string "That look you give me…\n" + .string "It intrigues me so!$" + +Route3_Text_CalvinRematchIntro:: + .string "Hey! What's wrong with you?\n" + .string "You're still not wearing shorts!$" + +Route3_Text_JamesRematchIntro:: + .string "I'll battle you with the POKéMON\n" + .string "I started raising.$" + +Route3_Text_RobinRematchIntro:: + .string "Eek!\n" + .string "Did you push me?$" + +Route4_Text_CrissyRematchIntro:: + .string "I always catch mushroom POKéMON\n" + .string "on MT. MOON.$" + +Route6_Text_RickyRematchIntro:: + .string "Oh! You're that nosy kid who\n" + .string "eavesdropped on us!$" + +Route6_Text_NancyRematchIntro:: + .string "Excuse me! Didn't I tell you that\n" + .string "this is a private conversation?\p" + .string "You shouldn't be listening in,\n" + .string "you uncouth person!$" + +Route6_Text_KeigoRematchIntro:: + .string "I'm trying to find something good\n" + .string "that's not a BUG POKéMON, but…$" + +Route6_Text_JeffRematchIntro:: + .string "Huh?\n" + .string "You want to go with me again?$" + +Route6_Text_IsabelleRematchIntro:: + .string "Me?\n" + .string "Well, okay. I'll play this once.$" + +Route6_Text_ElijahRematchIntro:: + .string "Hey, long time!\n" + .string "Have you gotten better?$" + +Route8_Text_AidanRematchIntro:: + .string "You are good at POKéMON, but how\n" + .string "is your chemistry grade?$" + +Route8_Text_StanRematchIntro:: + .string "All right!\n" + .string "Let's play another game!$" + +Route8_Text_GlennRematchIntro:: + .string "You need strategy to win at\n" + .string "battling.\p" + .string "Are you following my advice?$" + +Route8_Text_PaigeRematchIntro:: + .string "I've collected many NIDORAN.\n" + .string "I don't want them to evolve, but…$" + +Route8_Text_LeslieRematchIntro:: + .string "School is fun, but I still think\n" + .string "POKéMON are fun, too.$" + +Route8_Text_AndreaRematchIntro:: + .string "MEOWTH and PERSIAN are so cute,\n" + .string "meow, meow, meow!$" + +Route8_Text_MeganRematchIntro:: + .string "We may look silly standing here\n" + .string "like this, but I can still battle.$" + +Route8_Text_RichRematchIntro:: + .string "I'm a rambling, gaming dude!\n" + .string "I'm on a winning streak!$" + +Route8_Text_JuliaRematchIntro:: + .string "What's a cute, round, and fluffy\n" + .string "POKéMON?\p" + .string "You already know, don't you?$" + +Route8_Text_RicardoRematchIntro:: + .string "My bike's still acting up, man.$" + +Route8_Text_JarenRematchIntro:: + .string "Okay, kid!\n" + .string "Don't expect mercy this time!$" + +Route8_Text_EliRematchIntro:: + .string "ELI: Our twin power became even\n" + .string "better!$" + +Route8_Text_AnneRematchIntro:: + .string "ANNE: Our twin power powered up!$" + +Route9_Text_AliciaRematchIntro:: + .string "We're to battle again?\n" + .string "This time, you're mine!$" + +Route9_Text_ChrisRematchIntro:: + .string "I haven't forgotten you were with\n" + .string "those good-looking POKéMON.$" + +Route9_Text_DrewRematchIntro:: + .string "I'm taking ROCK TUNNEL to go to\n" + .string "LAVENDER…\p" + .string "But I keep getting stopped by\n" + .string "everyone along the way…$" + +Route9_Text_CaitlinRematchIntro:: + .string "Don't you dare patronize me today!\n" + .string "We're playing for keeps!$" + +Route9_Text_JeremyRematchIntro:: + .string "Bwahaha!\n" + .string "Great! I was bored again, eh!$" + +Route9_Text_BriceRematchIntro:: + .string "Hahaha!\n" + .string "A little toughie, as always!$" + +Route9_Text_BrentRematchIntro:: + .string "I got up early every day to train\n" + .string "my POKéMON from cocoons!$" + +Route9_Text_AlanRematchIntro:: + .string "Hahahaha!\n" + .string "I'll win this time!$" + +Route9_Text_ConnerRematchIntro:: + .string "Go win, my super BUG POKéMON!$" + +Route10_Text_MarkRematchIntro:: + .string "Wow, you came here again?\n" + .string "Maybe you're a POKéMANIAC, too?\l" + .string "Want to see my collection?$" + +Route10_Text_ClarkRematchIntro:: + .string "Ha-hahah-ah-ha!\n" + .string "I can't stop sneezing!$" + +Route10_Text_HermanRematchIntro:: + .string "Hi, kid!\n" + .string "Did I show you my POKéMON?$" + +Route10_Text_HeidiRematchIntro:: + .string "I went out to a POKéMON GYM again.\p" + .string "…But I lost as usual.$" + +Route10_Text_TrentRematchIntro:: + .string "Ah!\n" + .string "This mountain air is delicious!\l" + .string "It's so good, I can't leave!$" + +Route10_Text_CarolRematchIntro:: + .string "My head is starting to spin.\n" + .string "I've been hiking for too long…$" + +Route11_Text_HugoRematchIntro:: + .string "Win, lose, or draw!\n" + .string "Now for our rematch!$" + +Route11_Text_JasperRematchIntro:: + .string "Competing is the ultimate thrill.\n" + .string "I still can't get enough!$" + +Route11_Text_EddieRematchIntro:: + .string "You know, right?\n" + .string "Let's go, but don't cheat!$" + +Route11_Text_BraxtonRematchIntro:: + .string "Hi, there!\p" + .string "But be careful!\n" + .string "I'm still laying down some cables!$" + +Route11_Text_DillonRematchIntro:: + .string "I became a TRAINER a while ago.\n" + .string "But, I think I can win.$" + +Route11_Text_DirkRematchIntro:: + .string "Fwahaha!\n" + .string "I have never lost!\p" + .string "…And if I did, I've forgotten all\n" + .string "about it!$" + +Route11_Text_DarianRematchIntro:: + .string "I have never won before…\p" + .string "Perhaps I am destined to remain\n" + .string "that way…$" + +Route11_Text_YasuRematchIntro:: + .string "I'm the best in my class.\n" + .string "I train every morning and night!$" + +Route11_Text_BernieRematchIntro:: + .string "Keep your eyes out for live wires!$" + +Route11_Text_DaveRematchIntro:: + .string "I raised my POKéMON carefully.\n" + .string "They should be ready by now.\l" + .string "This time, they should win, too.$" + +Route12_Text_NedRematchIntro:: + .string "Yeah!\n" + .string "I got a bite, here!\l" + .string "Th-this might be the real thing!$" + +Route12_Text_ChipRematchIntro:: + .string "You're finally here.\n" + .string "Fishing is a waiting game.$" + +Route12_Text_JustinRematchIntro:: + .string "Still can't find a MOON STONE…\n" + .string "Have you found one?$" + +Route12_Text_LucaRematchIntro:: + .string "Electricity has always been my\n" + .string "specialty.\p" + .string "I don't know a thing about POKéMON\n" + .string "of the sea, though.$" + +Route12_Text_HankRematchIntro:: + .string "The FISHING FOOL vs. POKéMON KID!\n" + .string "Another round, fight!$" + +Route12_Text_ElliotRematchIntro:: + .string "I love fishing, don't get me wrong.\n" + .string "But, I wish I had more work…\l" + .string "…It's hard to give up fishing!$" + +Route12_Text_AndrewRematchIntro:: + .string "What's catching?\p" + .string "You'll never know unless you beat\n" + .string "me!$" + +Route12_Text_JesRematchIntro:: + .string "JES: I'll win here today and\n" + .string "propose to my GIA.$" + +Route12_Text_GiaRematchIntro:: + .string "GIA: Hey, JES…\n" + .string "I've been waiting a long time now.\p" + .string "If we win today, I'll marry you!$" + +Route13_Text_SebastianRematchIntro:: + .string "My bird POKéMON remember you!$" + +Route13_Text_SusieRematchIntro:: + .string "I want to be the best TRAINER \n" + .string "while I'm a kid!$" + +Route13_Text_ValerieRematchIntro:: + .string "Wow!\n" + .string "You got more cool BADGES!$" + +Route13_Text_GwenRematchIntro:: + .string "My cutely grown POKéMON wish to\n" + .string "become reacquainted with you.$" + +Route13_Text_AlmaRematchIntro:: + .string "I cleaned out my savings and\n" + .string "bought more CARBOS.$" + +Route13_Text_PerryRematchIntro:: + .string "I'm not going to lose this time.\n" + .string "The wind's blowing my way!$" + +Route13_Text_LolaRematchIntro:: + .string "Oh, you're back?\p" + .string "Sure, I'll play again with you,\n" + .string "sweetie.$" + +Route13_Text_SheilaRematchIntro:: + .string "Can't you forget that you battled\n" + .string "with me?$" + +Route13_Text_JaredRematchIntro:: + .string "What're you starin' at?$" + +Route13_Text_RobertRematchIntro:: + .string "I always go with bird POKéMON.\n" + .string "I've dedicated myself to them.$" + +Route14_Text_CarterRematchIntro:: + .string "I used TMs to teach good moves\n" + .string "to my POKéMON.$" + +Route14_Text_MitchRematchIntro:: + .string "My bird POKéMON should be ready\n" + .string "for battle this time.$" + +Route14_Text_BeckRematchIntro:: + .string "Are you using TMs on POKéMON?\n" + .string "Just holding them is useless.$" + +Route14_Text_MarlonRematchIntro:: + .string "Have you taught your bird POKéMON\n" + .string "how to FLY?\p" + .string "You'll be able to soar with it into\n" + .string "the sky! Give it a try.$" + +Route14_Text_DonaldRematchIntro:: + .string "The legend of the winged mirages…\n" + .string "You've heard it, right?$" + +Route14_Text_BennyRematchIntro:: + .string "I'm really not into it, but okay.\n" + .string "Let's go!$" + +Route14_Text_LukasRematchIntro:: + .string "Hey!\n" + .string "I remember you!\p" + .string "C'mon, c'mon.\n" + .string "Let's go, let's go, let's go!$" + +Route14_Text_IsaacRematchIntro:: + .string "You're here again, huh?\n" + .string "Shut up and battle.$" + +Route14_Text_GeraldRematchIntro:: + .string "We've been riding here because of\n" + .string "the wide-open spaces.$" + +Route14_Text_MalikRematchIntro:: + .string "POKéMON battle, right?\n" + .string "Cool! Rumble!$" + +Route14_Text_KiriRematchIntro:: + .string "KIRI: JAN, I hope we win today.$" + +Route14_Text_JanRematchIntro:: + .string "JAN: KIRI, here we go!\n" + .string "Let's win for sure this time!$" + +Route15_Text_KindraRematchIntro:: + .string "I'm going to keep battling with the\n" + .string "POKéMON I got in trades.$" + +Route15_Text_BeckyRematchIntro:: + .string "You look gentle, so I think I can\n" + .string "beat you.\p" + .string "I'll give it one more go!$" + +Route15_Text_EdwinRematchIntro:: + .string "When I whistle, bird POKéMON\n" + .string "gather around.\p" + .string "They're amazingly cute!$" + +Route15_Text_ChesterRematchIntro:: + .string "Hmm? My birds are shivering!\n" + .string "Wait, aren't you that TRAINER…$" + +Route15_Text_GraceRematchIntro:: + .string "Oh, you're a little cutie!\n" + .string "So like a darling POKéMON!\l" + .string "I remember you now!$" + +Route15_Text_OliviaRematchIntro:: + .string "I raise POKéMON for protection\n" + .string "because I live alone.\p" + .string "That hasn't changed.$" + +Route15_Text_ErnestRematchIntro:: + .string "Hey, kid! C'mon!\n" + .string "I got these off some loser!$" + +Route15_Text_AlexRematchIntro:: + .string "Fork over all your cash when you\n" + .string "lose to me, kid!$" + +Route15_Text_CeliaRematchIntro:: + .string "What's cool and happening?\n" + .string "Trading POKéMON, of course.$" + +Route15_Text_YazminRematchIntro:: + .string "Want to play with my POKéMON\n" + .string "again?$" + +Route15_Text_MyaRematchIntro:: + .string "MYA: Hi, we keep meeting,\n" + .string "don't we?\p" + .string "Help me train my little brother\n" + .string "again?$" + +Route15_Text_RonRematchIntro:: + .string "RON: My sister's gotten more\n" + .string "powerful…$" + +Route16_Text_LaoRematchIntro:: + .string "What do you want?$" + +Route16_Text_KojiRematchIntro:: + .string "Nice BIKE!\n" + .string "Hand it over quick!$" + +Route16_Text_LukeRematchIntro:: + .string "Come out and play, little mouse.\n" + .string "I'll treat you right!$" + +Route16_Text_HideoRematchIntro:: + .string "Hey, wait a second!\n" + .string "Don't call me and then run away!$" + +Route16_Text_CamronRematchIntro:: + .string "I'm feeling hungry and mean!\n" + .string "I really need a punching bag!$" + +Route16_Text_RubenRematchIntro:: + .string "Hey, there!\n" + .string "We'll have ourselves a good time!$" + +Route16_Text_JedRematchIntro:: + .string "JED: Are you here to see our\n" + .string "love, which knows no bounds?$" + +Route16_Text_LeaRematchIntro:: + .string "LEA: Sometimes, the intensity of\n" + .string "our love scares me.$" + +Route17_Text_RaulRematchIntro:: + .string "I told you, there's no getting rich\n" + .string "quick in battling kids.$" + +Route17_Text_IsaiahRematchIntro:: + .string "I'm mighty proud of my bod, kiddo.\n" + .string "Come on!$" + +Route17_Text_VirgilRematchIntro:: + .string "You out for a stroll?$" + +Route17_Text_BillyRematchIntro:: + .string "We're BIKERS!\n" + .string "We rule the roads, man!$" + +Route17_Text_NikolasRematchIntro:: + .string "VOLTORB's going to seriously\n" + .string "electrify you today!$" + +Route17_Text_ZeekRematchIntro:: + .string "I leveled up my POKéMON, but it\n" + .string "absolutely won't evolve. Why?$" + +Route17_Text_JamalRematchIntro:: + .string "Gaah! I really need to exercise\n" + .string "and seriously trim some flab!$" + +Route17_Text_CoreyRematchIntro:: + .string "Be a rebel!$" + +Route17_Text_JaxonRematchIntro:: + .string "Yep, that's a nice BIKE!\n" + .string "How's it handle?$" + +Route17_Text_WilliamRematchIntro:: + .string "Get lost, kid!\n" + .string "I'm bushed!$" + +Route18_Text_WiltonRematchIntro:: + .string "I've been checking every grassy\n" + .string "area for new POKéMON.\p" + .string "But it's not always easy…$" + +Route18_Text_RamiroRematchIntro:: + .string "Koorukukukoo!\n" + .string "Is my birdcall getting better?$" + +Route18_Text_JacobRematchIntro:: + .string "I warned you before, this is my\n" + .string "turf!\p" + .string "I don't want you coming around.$" + +Route19_Text_RichardRematchIntro:: + .string "I'm almost warmed up to go\n" + .string "out for a swim.$" + +Route19_Text_ReeceRematchIntro:: + .string "Wait! Slow down!\n" + .string "What if you have a heart attack?$" + +Route19_Text_MatthewRematchIntro:: + .string "I love swimming!\n" + .string "I guess you're the surfing type.$" + +Route19_Text_DouglasRematchIntro:: + .string "What's beyond the horizon?\n" + .string "Have you seen?$" + +Route19_Text_DavidRematchIntro:: + .string "I tried diving for POKéMON again,\n" + .string "but it was a no-go like before.$" + +Route19_Text_TonyRematchIntro:: + .string "I look at the sea to forget all\n" + .string "the bad things that happened.\p" + .string "…Like losing to you the last time!$" + +Route19_Text_AnyaRematchIntro:: + .string "You always get to ride your\n" + .string "POKéMON…\p" + .string "It looks so relaxing.\n" + .string "Can I have it if I win?$" + +Route19_Text_AliceRematchIntro:: + .string "Swimming's great!\n" + .string "Sunburns aren't!$" + +Route19_Text_AxleRematchIntro:: + .string "These waters are treacherous!\n" + .string "You shouldn't come back here!$" + +Route19_Text_ConnieRematchIntro:: + .string "I swam here with my friends…\n" + .string "I'm tired…\l" + .string "Must we really battle again?$" + +Route19_Text_LiaRematchIntro:: + .string "LIA: You know my brother just\n" + .string "became a TRAINER, right?\p" + .string "I want to make him better, so I\n" + .string "need your help again.$" + +Route19_Text_LucRematchIntro:: + .string "LUC: My big sis taught me all\n" + .string "about POKéMON.\p" + .string "I wonder if I'm better?$" + +Route20_Text_BarryRematchIntro:: + .string "The water is shallow here.\n" + .string "There are many people swimming.$" + +Route20_Text_ShirleyRematchIntro:: + .string "Are you jealous that I'm\n" + .string "vacationing on SEAFOAM?$" + +Route20_Text_TiffanyRematchIntro:: + .string "I love floating with the fishes\n" + .string "here among the waves.$" + +Route20_Text_IreneRematchIntro:: + .string "Were you on vacation, too?$" + +Route20_Text_DeanRematchIntro:: + .string "Check out my physique!\p" + .string "It's even more buff than ever\n" + .string "before!$" + +Route20_Text_DarrinRematchIntro:: + .string "Why are you riding a POKéMON?\n" + .string "Haven't you learned to swim yet?$" + +Route20_Text_RogerRematchIntro:: + .string "I rode my bird POKéMON here.$" + +Route20_Text_NoraRematchIntro:: + .string "My boyfriend gave me big pearls.\n" + .string "And, they've grown bigger!$" + +Route20_Text_MissyRematchIntro:: + .string "I swam here from CINNABAR ISLAND.\n" + .string "It wasn't easy, like I said.$" + +Route20_Text_MelissaRematchIntro:: + .string "CINNABAR, in the west, has a LAB\n" + .string "for POKéMON.\p" + .string "My daddy works there.$" + +Route21_North_Text_RonaldRematchIntro:: + .string "You want to know if the fish are\n" + .string "biting?$" + +Route21_North_Text_WadeRematchIntro:: + .string "I got a big haul again!\n" + .string "Wanna go for it once more?$" + +Route21_North_Text_SpencerRematchIntro:: + .string "The sea cleanses my body and soul!$" + +@ Unused trainer from RB that had a rematch intro added +Route21_North_Text_CueBallRematchIntro:: + .string "きょうも およぎに\n" + .string "きちまったぜ$" + +Route21_South_Text_JackRematchIntro:: + .string "I caught my POKéMON at sea.\n" + .string "And that's where I train them.$" + +Route21_South_Text_JeromeRematchIntro:: + .string "Right now, I'm in another triathlon\n" + .string "meet!$" + +Route21_South_Text_RolandRematchIntro:: + .string "Ahh!\n" + .string "Feel the sun and the wind!$" + +Route21_South_Text_ClaudeRematchIntro:: + .string "Hey, cut it out already.\n" + .string "You always scare away the fish!$" + +Route21_South_Text_NolanRematchIntro:: + .string "Keep me company till I get a hit.$" + +Route21_North_Text_LilRematchIntro:: + .string "LIL: Huh? A battle again?\n" + .string "IAN, can't you do it alone?$" + +Route21_North_Text_IanRematchIntro:: + .string "IAN: My sis is still a slob.\n" + .string "Help me get her into shape!$" + +Route25_Text_JoeyRematchIntro:: + .string "I won't lose while I'm here!$" + +Route25_Text_DanRematchIntro:: + .string "Dad took me to a great party on\n" + .string "the S.S. ANNE at VERMILION CITY.$" + +Route25_Text_FlintRematchIntro:: + .string "I'm a cool guy.\n" + .string "I've got a girlfriend!\p" + .string "I'll show her how cool I am for\n" + .string "sure this time!$" + +Route25_Text_KelseyRematchIntro:: + .string "Hi!\n" + .string "My boyfriend is cool!\l" + .string "My conditioning's good today!$" + +Route25_Text_ChadRematchIntro:: + .string "I had this feeling…\n" + .string "I knew I had to battle you again!$" + +Route25_Text_HaleyRematchIntro:: + .string "My friend has many cute POKéMON.\n" + .string "I'm so jealous!$" + +Route25_Text_FranklinRematchIntro:: + .string "I just trained up on MT. MOON,\n" + .string "but I've still got gas in the tank!$" + +Route25_Text_NobRematchIntro:: + .string "A POKéMANIAC lives on the cape.\n" + .string "Have you seen his collection?$" + +Route25_Text_WayneRematchIntro:: + .string "You're going to see BILL again?\n" + .string "First, we battle!$" + +Route24_Text_ShaneRematchIntro:: + .string "I saw your feat from the grass!$" + +Route24_Text_EthanRematchIntro:: + .string "Okay!\n" + .string "I'll stomp you!$" + +Route24_Text_ReliRematchIntro:: + .string "You always look so busy…\n" + .string "Aren't you getting tired?$" + +Route24_Text_TimmyRematchIntro:: + .string "You really must love coming to\n" + .string "NUGGET BRIDGE.$" + +Route24_Text_AliRematchIntro:: + .string "The time we battled…\p" + .string "Even though I was the second in\n" + .string "line, I was the best, wasn't I?$" + +Route24_Text_CaleRematchIntro:: + .string "People call this the NUGGET\n" + .string "BRIDGE!\p" + .string "You've already beaten us, so you're\n" + .string "not allowed to take the challenge…\p" + .string "…But, you're welcome to battle with\n" + .string "us again.$" + +OneIsland_TreasureBeach_Text_AmaraRematchIntro:: + .string "Lying back, rocked by the waves…\n" + .string "I don't notice time slipping by…$" + +OneIsland_KindleRoad_Text_MariaRematchIntro:: + .string "The weather's gorgeous!\n" + .string "I'll try not to spoil it.$" + +OneIsland_KindleRoad_Text_AbigailRematchIntro:: + .string "My sunburn is starting to hurt…$" + +OneIsland_KindleRoad_Text_FinnRematchIntro:: + .string "The fire bird's mountain casts\n" + .string "a huge shadow…$" + +OneIsland_KindleRoad_Text_GarrettRematchIntro:: + .string "I have this strong feeling that\n" + .string "I can win this time!$" + +OneIsland_KindleRoad_Text_TommyRematchIntro:: + .string "Wait! Wait a second!\n" + .string "I'm sure I've hooked a big one!$" + +OneIsland_KindleRoad_Text_SharonRematchIntro:: + .string "You'll help me out with my\n" + .string "training again?$" + +OneIsland_KindleRoad_Text_TanyaRematchIntro:: + .string "We haven't missed a single day of\n" + .string "training yet!$" + +OneIsland_KindleRoad_Text_SheaRematchIntro:: + .string "Every morning, before breakfast,\n" + .string "I swim around this island…\l" + .string "Three times!$" + +OneIsland_KindleRoad_Text_HughRematchIntro:: + .string "Dress appropriately for battle!\n" + .string "Lose that frivolous outfit, I said!$" + +OneIsland_KindleRoad_Text_BryceRematchIntro:: + .string "You know, everything tastes great\n" + .string "when you're out in the wild.$" + +OneIsland_KindleRoad_Text_ClaireRematchIntro:: + .string "I ate too much again, so will you\n" + .string "battle us for some exercise?$" + +OneIsland_KindleRoad_Text_KiaRematchIntro:: + .string "KIA: My big brother and I make\n" + .string "an awesome combination!\p" + .string "We won't lose this time!$" + +OneIsland_KindleRoad_Text_MikRematchIntro:: + .string "MIK: Together with KIA, we're\n" + .string "afraid of nothing!\p" + .string "We'll prove it to you this time!$" + +ThreeIsland_BondBridge_Text_NikkiRematchIntro:: + .string "Are we to battle again?$" + +ThreeIsland_BondBridge_Text_VioletRematchIntro:: + .string "From where have you come, and\n" + .string "where are you bound?$" + +ThreeIsland_BondBridge_Text_AmiraRematchIntro:: + .string "I want to swim without my float\n" + .string "ring soon.$" + +ThreeIsland_BondBridge_Text_AlexisRematchIntro:: + .string "Yay, yay!\n" + .string "POKéMON!$" + +ThreeIsland_BondBridge_Text_TishaRematchIntro:: + .string "Oh, no, didn't I tell you already?\n" + .string "Please, stay away from me!$" + +ThreeIsland_BondBridge_Text_JoyRematchIntro:: + .string "JOY: We've gotten stronger!\n" + .string "Lots and lots!$" + +ThreeIsland_BondBridge_Text_MegRematchIntro:: + .string "MEG: You can't beat us today!$" + +FiveIsland_WaterLabyrinth_Text_AlizeRematchIntro:: + .string "Oh, hello!\p" + .string "Are you raising your POKéMON in a\n" + .string "good environment?$" + +FiveIsland_ResortGorgeous_Text_DaisyRematchIntro:: + .string "With these hands, I will create\n" + .string "my victory today.$" + +FiveIsland_ResortGorgeous_Text_CelinaRematchIntro:: + .string "Must I repeat myself?\n" + .string "I'm trying to paint.\l" + .string "Please keep out of my sight!$" + +FiveIsland_ResortGorgeous_Text_RaynaRematchIntro:: + .string "I haven't made any progress…\n" + .string "I still can't get the right angle…$" + +FiveIsland_ResortGorgeous_Text_JackiRematchIntro:: + .string "Oh, you will give me another\n" + .string "opportunity to match wits with you?$" + +FiveIsland_ResortGorgeous_Text_GillianRematchIntro:: + .string "They're almost finished making the\n" + .string "pool for my POKéMON.\p" + .string "You must drop in for a visit.$" + +FiveIsland_ResortGorgeous_Text_DestinRematchIntro:: + .string "I'm a good runner.\n" + .string "I've gotten even faster!$" + +FiveIsland_ResortGorgeous_Text_TobyRematchIntro:: + .string "I say, friend!\n" + .string "Let us enjoy our time together!$" + +FiveIsland_MemorialPillar_Text_MiloRematchIntro:: + .string "I'm the eldest of the BIRD\n" + .string "BROTHERS. Remember me?\p" + .string "That's right, I'm the one who loves\n" + .string "birds for their beaks!$" + +FiveIsland_MemorialPillar_Text_ChazRematchIntro:: + .string "I'm the middle kid of the BIRD\n" + .string "BROTHERS.\p" + .string "I'm the one that loves wings.\n" + .string "Let's battle again!$" + +FiveIsland_MemorialPillar_Text_HaroldRematchIntro:: + .string "I'm the youngest of the BIRD\n" + .string "BROTHERS.\p" + .string "I love birds for their down.\n" + .string "I didn't think I'd see you again!$" + +SixIsland_OutcastIsland_Text_TylorRematchIntro:: + .string "I'm still having no luck at all.\n" + .string "A battle'd be a change of pace!$" + +SixIsland_OutcastIsland_Text_MymoRematchIntro:: + .string "Gasp… Gasp…\p" + .string "I swam here from SIX ISLAND's port\n" + .string "in one go again.$" + +SixIsland_OutcastIsland_Text_NicoleRematchIntro:: + .string "You always come along while I'm\n" + .string "swimming.$" + +SixIsland_OutcastIsland_Text_AvaRematchIntro:: + .string "AVA: Let's have another\n" + .string "two-on-two marine battle today!$" + +SixIsland_OutcastIsland_Text_GebRematchIntro:: + .string "GEB: My big sister and I are way\n" + .string "tougher than before!$" + +SixIsland_GreenPath_Text_JaclynRematchIntro:: + .string "…Huh?\p" + .string "I envision my house, but TELEPORT\n" + .string "always brings me here!$" + +SixIsland_WaterPath_Text_RoseRematchIntro:: + .string "Oh, hello.\n" + .string "A pleasant breeze is blowing again.$" + +SixIsland_WaterPath_Text_EdwardRematchIntro:: + .string "Hehehe, I'm practicing in secret\n" + .string "again.$" + +SixIsland_WaterPath_Text_SamirRematchIntro:: + .string "What, you're sick of seeing\n" + .string "SWIMMERS like me?\p" + .string "Aww, don't be hatin'!\n" + .string "Battle with me again.$" + +SixIsland_WaterPath_Text_DeniseRematchIntro:: + .string "Sigh…\n" + .string "My boyfriend's busy again…$" + +SixIsland_WaterPath_Text_EarlRematchIntro:: + .string "Come on, tell me, where are the\n" + .string "mountains around these parts?$" + +SixIsland_WaterPath_Text_MiuRematchIntro:: + .string "MIU: Hello, POKéMON!\n" + .string "It's time to play again!$" + +SixIsland_WaterPath_Text_MiaRematchIntro:: + .string "MIA: Hello, POKéMON!\n" + .string "It's time to battle again!$" + +SixIsland_RuinValley_Text_StanlyRematchIntro:: + .string "There appear to be many secrets\n" + .string "still unsolved in this world.$" + +SixIsland_RuinValley_Text_FosterRematchIntro:: + .string "Hi, didn't we meet before?\n" + .string "What compelled you to come back?$" + +SixIsland_RuinValley_Text_LarryRematchIntro:: + .string "It's been said that there are\n" + .string "mysterious stones on this island.\p" + .string "Have you discovered anything since\n" + .string "we last met?$" + +SixIsland_RuinValley_Text_DarylRematchIntro:: + .string "A rematch with you, so high up!$" + +SixIsland_RuinValley_Text_HectorRematchIntro:: + .string "I'm pretty familiar with the land\n" + .string "around these parts.$" + +SevenIsland_TrainerTower_Text_DarioRematchIntro:: + .string "I sensed your approach.$" + +SevenIsland_TrainerTower_Text_RodetteRematchIntro:: + .string "Somewhere on this island, peculiar\n" + .string "POKéMON are sleeping.$" + +SevenIsland_SevaultCanyon_Entrance_Text_MiahRematchIntro:: + .string "Kyahaha!\p" + .string "Coming back won't change a thing.\n" + .string "I'll flick you away effortlessly!$" + +SevenIsland_SevaultCanyon_Entrance_Text_MasonRematchIntro:: + .string "Howdy! You're a member of my\n" + .string "fan club, isn't that right?$" + +SevenIsland_SevaultCanyon_Entrance_Text_NicolasRematchIntro:: + .string "This island is too spread out…\n" + .string "Patrolling the place is a drag…$" + +SevenIsland_SevaultCanyon_Entrance_Text_MadelineRematchIntro:: + .string "I don't forgive people who abuse\n" + .string "POKéMON!$" + +SevenIsland_SevaultCanyon_Entrance_Text_EveRematchIntro:: + .string "EVE: I'll team up with JON and\n" + .string "battle together again.$" + +SevenIsland_SevaultCanyon_Entrance_Text_JonRematchIntro:: + .string "JON: When I'm with EVE, it feels\n" + .string "like we could never lose, not ever.$" + +SevenIsland_SevaultCanyon_Text_CyndyRematchIntro:: + .string "Let's have another battle.\n" + .string "My conditioning's in top form!$" + +SevenIsland_SevaultCanyon_Text_EvanRematchIntro:: + .string "It doesn't matter if you happen to\n" + .string "have the strongest POKéMON…\p" + .string "It doesn't mean a thing if you don't\n" + .string "know how to use them properly!$" + +SevenIsland_SevaultCanyon_Text_JacksonRematchIntro:: + .string "I work to protect the environment.\n" + .string "In turn, nature protects me!$" + +SevenIsland_SevaultCanyon_Text_KatelynRematchIntro:: + .string "Every time we meet, you have those\n" + .string "snazzy shoes on.$" + +SevenIsland_SevaultCanyon_Text_LeroyRematchIntro:: + .string "You must have gotten tougher.\n" + .string "Let me battle you, please!$" + +SevenIsland_SevaultCanyon_Text_MichelleRematchIntro:: + .string "I was given the best possible\n" + .string "education to become this strong.\p" + .string "I won't lose this time.\n" + .string "Absolutely not!$" + +SevenIsland_SevaultCanyon_Text_LexRematchIntro:: + .string "LEX: My darling NYA, together\n" + .string "we will win for certain!$" + +SevenIsland_SevaultCanyon_Text_NyaRematchIntro:: + .string "NYA: I won't drag down my mentor\n" + .string "LEX! We're going to win!$" + +SevenIsland_TanobyRuins_Text_BrandonRematchIntro:: + .string "Have you discovered anything about\n" + .string "this stone chamber?$" + +SevenIsland_TanobyRuins_Text_BenjaminRematchIntro:: + .string "A mystic POKéMON is said to sleep\n" + .string "inside here.$" + +SevenIsland_TanobyRuins_Text_EdnaRematchIntro:: + .string "My teacher is showing me how to\n" + .string "paint some more.$" + +SevenIsland_TanobyRuins_Text_CliffordRematchIntro:: + .string "Today, in addition to our lesson,\n" + .string "we came to see the chamber again.$" diff --git a/data/tilesets/primary/building_frlg/metatile_attributes.bin b/data/tilesets/primary/building_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..c387d17d2e63 Binary files /dev/null and b/data/tilesets/primary/building_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/primary/building_frlg/metatiles.bin b/data/tilesets/primary/building_frlg/metatiles.bin new file mode 100644 index 000000000000..024797c8ee2b Binary files /dev/null and b/data/tilesets/primary/building_frlg/metatiles.bin differ diff --git a/data/tilesets/primary/building_frlg/palettes/00.pal b/data/tilesets/primary/building_frlg/palettes/00.pal new file mode 100644 index 000000000000..3b6416376ec9 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +156 213 255 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/primary/building_frlg/palettes/01.pal b/data/tilesets/primary/building_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/primary/building_frlg/palettes/02.pal b/data/tilesets/primary/building_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/primary/building_frlg/palettes/03.pal b/data/tilesets/primary/building_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/primary/building_frlg/palettes/04.pal b/data/tilesets/primary/building_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/primary/building_frlg/palettes/05.pal b/data/tilesets/primary/building_frlg/palettes/05.pal new file mode 100644 index 000000000000..c7780e5c7515 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/06.pal b/data/tilesets/primary/building_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/07.pal b/data/tilesets/primary/building_frlg/palettes/07.pal new file mode 100644 index 000000000000..c1e7c3d5c579 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/primary/building_frlg/palettes/08.pal b/data/tilesets/primary/building_frlg/palettes/08.pal new file mode 100644 index 000000000000..c1e7c3d5c579 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/primary/building_frlg/palettes/09.pal b/data/tilesets/primary/building_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/10.pal b/data/tilesets/primary/building_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/11.pal b/data/tilesets/primary/building_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/12.pal b/data/tilesets/primary/building_frlg/palettes/12.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/13.pal b/data/tilesets/primary/building_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/14.pal b/data/tilesets/primary/building_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/palettes/15.pal b/data/tilesets/primary/building_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/primary/building_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/primary/building_frlg/tiles.png b/data/tilesets/primary/building_frlg/tiles.png new file mode 100644 index 000000000000..8d864f27e2f1 Binary files /dev/null and b/data/tilesets/primary/building_frlg/tiles.png differ diff --git a/data/tilesets/primary/general_frlg/anim/flower/0.png b/data/tilesets/primary/general_frlg/anim/flower/0.png new file mode 100644 index 000000000000..d445b4045df3 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/flower/0.png differ diff --git a/data/tilesets/primary/general_frlg/anim/flower/1.png b/data/tilesets/primary/general_frlg/anim/flower/1.png new file mode 100644 index 000000000000..1aed594f6560 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/flower/1.png differ diff --git a/data/tilesets/primary/general_frlg/anim/flower/2.png b/data/tilesets/primary/general_frlg/anim/flower/2.png new file mode 100644 index 000000000000..5e58c29a90de Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/flower/2.png differ diff --git a/data/tilesets/primary/general_frlg/anim/flower/3.png b/data/tilesets/primary/general_frlg/anim/flower/3.png new file mode 100644 index 000000000000..bac3d26ffa1c Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/flower/3.png differ diff --git a/data/tilesets/primary/general_frlg/anim/flower/4.png b/data/tilesets/primary/general_frlg/anim/flower/4.png new file mode 100644 index 000000000000..8e589150a000 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/flower/4.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/0.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/0.png new file mode 100644 index 000000000000..0ade81d73b6b Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/0.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/1.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/1.png new file mode 100644 index 000000000000..8dac0eba76e9 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/1.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/2.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/2.png new file mode 100644 index 000000000000..ba6e93bc4e76 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/2.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/3.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/3.png new file mode 100644 index 000000000000..9436601c1f16 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/3.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/4.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/4.png new file mode 100644 index 000000000000..5b74a16fa428 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/4.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/5.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/5.png new file mode 100644 index 000000000000..6c72f4e0e291 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/5.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/6.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/6.png new file mode 100644 index 000000000000..f56c55b04b75 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/6.png differ diff --git a/data/tilesets/primary/general_frlg/anim/sandwatersedge/7.png b/data/tilesets/primary/general_frlg/anim/sandwatersedge/7.png new file mode 100644 index 000000000000..549c44410ca8 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/sandwatersedge/7.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/0.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/0.png new file mode 100644 index 000000000000..ce16ac050ca9 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/0.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/1.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/1.png new file mode 100644 index 000000000000..7e41494c5368 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/1.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/2.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/2.png new file mode 100644 index 000000000000..5765ac4773d5 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/2.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/3.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/3.png new file mode 100644 index 000000000000..dbc111a7f824 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/3.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/4.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/4.png new file mode 100644 index 000000000000..a8ee69c1e87a Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/4.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/5.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/5.png new file mode 100644 index 000000000000..318c7b79650d Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/5.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/6.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/6.png new file mode 100644 index 000000000000..c31713d3492b Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/6.png differ diff --git a/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/7.png b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/7.png new file mode 100644 index 000000000000..e01c91449033 Binary files /dev/null and b/data/tilesets/primary/general_frlg/anim/water_current_landwatersedge/7.png differ diff --git a/data/tilesets/primary/general_frlg/metatile_attributes.bin b/data/tilesets/primary/general_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..d4faf82055e0 Binary files /dev/null and b/data/tilesets/primary/general_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/primary/general_frlg/metatiles.bin b/data/tilesets/primary/general_frlg/metatiles.bin new file mode 100644 index 000000000000..7a228eeaea2f Binary files /dev/null and b/data/tilesets/primary/general_frlg/metatiles.bin differ diff --git a/data/tilesets/primary/general_frlg/palettes/00.pal b/data/tilesets/primary/general_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/primary/general_frlg/palettes/01.pal b/data/tilesets/primary/general_frlg/palettes/01.pal new file mode 100644 index 000000000000..09828f4f1f27 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/primary/general_frlg/palettes/02.pal b/data/tilesets/primary/general_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/primary/general_frlg/palettes/03.pal b/data/tilesets/primary/general_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/primary/general_frlg/palettes/04.pal b/data/tilesets/primary/general_frlg/palettes/04.pal new file mode 100644 index 000000000000..9b094a6aaa24 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 0 +230 246 255 +189 222 255 +139 164 255 +106 164 230 +74 148 222 +74 123 222 +82 156 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/primary/general_frlg/palettes/05.pal b/data/tilesets/primary/general_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/primary/general_frlg/palettes/06.pal b/data/tilesets/primary/general_frlg/palettes/06.pal new file mode 100644 index 000000000000..cdf41b2983e5 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 0 +205 230 246 +180 213 255 +123 156 238 +98 139 213 +65 123 189 +49 98 180 +82 123 205 +238 246 246 +205 222 238 +49 115 197 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 diff --git a/data/tilesets/primary/general_frlg/palettes/07.pal b/data/tilesets/primary/general_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/08.pal b/data/tilesets/primary/general_frlg/palettes/08.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/09.pal b/data/tilesets/primary/general_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/10.pal b/data/tilesets/primary/general_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/11.pal b/data/tilesets/primary/general_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/12.pal b/data/tilesets/primary/general_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/13.pal b/data/tilesets/primary/general_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/14.pal b/data/tilesets/primary/general_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/palettes/15.pal b/data/tilesets/primary/general_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/primary/general_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/primary/general_frlg/tiles.png b/data/tilesets/primary/general_frlg/tiles.png new file mode 100644 index 000000000000..84ba7b2f987c Binary files /dev/null and b/data/tilesets/primary/general_frlg/tiles.png differ diff --git a/data/tilesets/secondary/berry_forest_frlg/metatile_attributes.bin b/data/tilesets/secondary/berry_forest_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..6d6c6d544fc7 Binary files /dev/null and b/data/tilesets/secondary/berry_forest_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/berry_forest_frlg/metatiles.bin b/data/tilesets/secondary/berry_forest_frlg/metatiles.bin new file mode 100644 index 000000000000..fb47747c4b0b Binary files /dev/null and b/data/tilesets/secondary/berry_forest_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/00.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/00.pal new file mode 100644 index 000000000000..7af5bb7d2167 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/01.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/01.pal new file mode 100644 index 000000000000..391d1e3d17b8 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/02.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/03.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/03.pal new file mode 100644 index 000000000000..9581f2cd8be5 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/04.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/05.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/06.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/07.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/08.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/08.pal new file mode 100644 index 000000000000..650a35cc894c --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +57 115 24 +98 65 74 +131 106 82 +65 57 49 +255 0 255 +255 0 255 +255 0 255 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/09.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/09.pal new file mode 100644 index 000000000000..df2d04037372 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 230 189 +57 172 131 +222 230 246 +230 172 123 +106 205 164 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/10.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/10.pal new file mode 100644 index 000000000000..7464374928c5 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +222 230 246 +189 197 222 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +49 139 49 +57 82 0 +49 180 98 +238 230 164 +222 205 131 +213 180 106 +205 156 82 +106 205 164 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/11.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/11.pal new file mode 100644 index 000000000000..6fe747b2d77a --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 148 +222 213 98 +57 148 49 +57 82 0 +57 115 24 +98 65 74 +131 106 82 +65 57 49 +164 164 49 +115 106 49 +255 0 255 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/12.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/12.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/13.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/14.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/berry_forest_frlg/palettes/15.pal b/data/tilesets/secondary/berry_forest_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/berry_forest_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/berry_forest_frlg/tiles.png b/data/tilesets/secondary/berry_forest_frlg/tiles.png new file mode 100644 index 000000000000..dacbc0120342 Binary files /dev/null and b/data/tilesets/secondary/berry_forest_frlg/tiles.png differ diff --git a/data/tilesets/secondary/bike_shop_frlg/metatile_attributes.bin b/data/tilesets/secondary/bike_shop_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..e3ebe9336261 Binary files /dev/null and b/data/tilesets/secondary/bike_shop_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/bike_shop_frlg/metatiles.bin b/data/tilesets/secondary/bike_shop_frlg/metatiles.bin new file mode 100644 index 000000000000..f1c0ab02dab1 Binary files /dev/null and b/data/tilesets/secondary/bike_shop_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/00.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/00.pal new file mode 100644 index 000000000000..4b44e19f441b --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/01.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/01.pal new file mode 100644 index 000000000000..a39ca6aa86b7 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/02.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/02.pal new file mode 100644 index 000000000000..5a4f127be79c --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/03.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/03.pal new file mode 100644 index 000000000000..c84fa4a58be0 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/04.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/04.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/05.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/05.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/06.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/07.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/07.pal new file mode 100644 index 000000000000..a71b8fee2c77 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +172 172 139 +205 205 180 +238 238 222 +131 148 139 +172 189 172 +205 205 205 +213 222 213 +255 255 255 +164 123 74 +189 148 98 +222 172 123 +172 180 106 +197 205 131 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/08.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/08.pal new file mode 100644 index 000000000000..0a666a9c9835 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +65 74 106 +139 139 131 +197 197 197 +255 255 255 +0 0 0 +246 197 197 +74 74 213 +123 123 246 +180 180 0 +213 197 65 +246 246 32 +148 82 74 +205 49 41 +255 123 74 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/09.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/09.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/10.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/10.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/11.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/11.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/12.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/12.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/13.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/14.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/palettes/15.pal b/data/tilesets/secondary/bike_shop_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/bike_shop_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/bike_shop_frlg/tiles.png b/data/tilesets/secondary/bike_shop_frlg/tiles.png new file mode 100644 index 000000000000..90124ff4a5a1 Binary files /dev/null and b/data/tilesets/secondary/bike_shop_frlg/tiles.png differ diff --git a/data/tilesets/secondary/burgled_house_frlg/metatile_attributes.bin b/data/tilesets/secondary/burgled_house_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..36bdebf586a3 Binary files /dev/null and b/data/tilesets/secondary/burgled_house_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/burgled_house_frlg/metatiles.bin b/data/tilesets/secondary/burgled_house_frlg/metatiles.bin new file mode 100644 index 000000000000..dfe78c910c6d Binary files /dev/null and b/data/tilesets/secondary/burgled_house_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/00.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/00.pal new file mode 100644 index 000000000000..6d876039d15c --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/01.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/02.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/03.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/04.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/05.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/05.pal new file mode 100644 index 000000000000..0eef3df8e8fb --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/06.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/07.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/07.pal new file mode 100644 index 000000000000..c1e7c3d5c579 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/08.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/08.pal new file mode 100644 index 000000000000..c1e7c3d5c579 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/09.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/10.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/11.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/12.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/12.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/13.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/14.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/palettes/15.pal b/data/tilesets/secondary/burgled_house_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/burgled_house_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/burgled_house_frlg/tiles.png b/data/tilesets/secondary/burgled_house_frlg/tiles.png new file mode 100644 index 000000000000..9fcf94314319 Binary files /dev/null and b/data/tilesets/secondary/burgled_house_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cable_club_frlg/metatile_attributes.bin b/data/tilesets/secondary/cable_club_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..9bbdd72ef1bf Binary files /dev/null and b/data/tilesets/secondary/cable_club_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cable_club_frlg/metatiles.bin b/data/tilesets/secondary/cable_club_frlg/metatiles.bin new file mode 100644 index 000000000000..0e2f2a6c3461 Binary files /dev/null and b/data/tilesets/secondary/cable_club_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/00.pal b/data/tilesets/secondary/cable_club_frlg/palettes/00.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/01.pal b/data/tilesets/secondary/cable_club_frlg/palettes/01.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/02.pal b/data/tilesets/secondary/cable_club_frlg/palettes/02.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/03.pal b/data/tilesets/secondary/cable_club_frlg/palettes/03.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/04.pal b/data/tilesets/secondary/cable_club_frlg/palettes/04.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/05.pal b/data/tilesets/secondary/cable_club_frlg/palettes/05.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/06.pal b/data/tilesets/secondary/cable_club_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/07.pal b/data/tilesets/secondary/cable_club_frlg/palettes/07.pal new file mode 100644 index 000000000000..00ca6903faef --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +255 213 131 +246 180 82 +213 148 41 +180 172 148 +148 139 123 +255 255 222 +230 230 197 +180 74 24 +213 98 49 +90 156 139 +131 197 180 +172 230 205 +156 222 115 +148 189 106 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/08.pal b/data/tilesets/secondary/cable_club_frlg/palettes/08.pal new file mode 100644 index 000000000000..43d6db90dcd5 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +230 238 255 +213 205 246 +164 164 180 +156 197 156 +106 156 139 +246 255 255 +0 0 0 +180 74 24 +213 98 49 +123 106 164 +156 156 197 +197 197 230 +156 222 115 +148 189 106 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/09.pal b/data/tilesets/secondary/cable_club_frlg/palettes/09.pal new file mode 100644 index 000000000000..87857607f77a --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +238 255 255 +213 222 238 +189 205 197 +156 164 172 +0 0 0 +189 139 90 +222 172 106 +246 189 115 +82 156 164 +115 197 222 +213 98 82 +246 148 131 +148 205 90 +49 131 24 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/10.pal b/data/tilesets/secondary/cable_club_frlg/palettes/10.pal new file mode 100644 index 000000000000..ab8f75e5a1d1 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +123 123 148 +246 255 255 +205 213 213 +0 0 0 +255 123 123 +172 123 115 +139 230 98 +115 189 57 +246 230 24 +189 180 49 +148 148 246 +123 123 180 +222 222 255 +180 172 213 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/11.pal b/data/tilesets/secondary/cable_club_frlg/palettes/11.pal new file mode 100644 index 000000000000..468d7212c795 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +49 57 74 +172 164 255 +131 123 230 +106 98 172 +82 74 180 +82 74 98 +246 255 255 +115 172 65 +123 189 74 +148 205 90 +98 90 148 +139 156 213 +57 57 106 +148 205 90 +0 255 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/12.pal b/data/tilesets/secondary/cable_club_frlg/palettes/12.pal new file mode 100644 index 000000000000..05794ac8234d --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +197 238 255 +172 205 213 +131 164 180 +123 156 180 +98 139 148 +246 255 255 +164 123 115 +180 74 24 +213 98 49 +98 139 148 +172 205 213 +197 238 255 +156 222 115 +148 189 98 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/13.pal b/data/tilesets/secondary/cable_club_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/14.pal b/data/tilesets/secondary/cable_club_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/palettes/15.pal b/data/tilesets/secondary/cable_club_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cable_club_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cable_club_frlg/tiles.png b/data/tilesets/secondary/cable_club_frlg/tiles.png new file mode 100644 index 000000000000..f71f2943244b Binary files /dev/null and b/data/tilesets/secondary/cable_club_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cave_frlg/metatile_attributes.bin b/data/tilesets/secondary/cave_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..685d0d0f9379 Binary files /dev/null and b/data/tilesets/secondary/cave_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cave_frlg/metatiles.bin b/data/tilesets/secondary/cave_frlg/metatiles.bin new file mode 100644 index 000000000000..9f35adc11270 Binary files /dev/null and b/data/tilesets/secondary/cave_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cave_frlg/palettes/00.pal b/data/tilesets/secondary/cave_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/cave_frlg/palettes/01.pal b/data/tilesets/secondary/cave_frlg/palettes/01.pal new file mode 100644 index 000000000000..09828f4f1f27 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/secondary/cave_frlg/palettes/02.pal b/data/tilesets/secondary/cave_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/cave_frlg/palettes/03.pal b/data/tilesets/secondary/cave_frlg/palettes/03.pal new file mode 100644 index 000000000000..ef7460f41eb6 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +123 197 255 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/cave_frlg/palettes/04.pal b/data/tilesets/secondary/cave_frlg/palettes/04.pal new file mode 100644 index 000000000000..e83c6b367a2e --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 205 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/cave_frlg/palettes/05.pal b/data/tilesets/secondary/cave_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/cave_frlg/palettes/06.pal b/data/tilesets/secondary/cave_frlg/palettes/06.pal new file mode 100644 index 000000000000..9bad44649513 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/cave_frlg/palettes/07.pal b/data/tilesets/secondary/cave_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cave_frlg/palettes/08.pal b/data/tilesets/secondary/cave_frlg/palettes/08.pal new file mode 100644 index 000000000000..1c8d33fac57f --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +32 49 57 +255 0 255 +255 0 255 +255 0 255 +222 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/cave_frlg/palettes/09.pal b/data/tilesets/secondary/cave_frlg/palettes/09.pal new file mode 100644 index 000000000000..3795f6c6a5ab --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 213 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 238 164 +230 197 139 +205 172 123 +164 123 90 +148 115 74 +106 65 41 +74 74 57 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/cave_frlg/palettes/10.pal b/data/tilesets/secondary/cave_frlg/palettes/10.pal new file mode 100644 index 000000000000..937405d15bfe --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 164 +230 197 139 +205 172 123 +172 139 106 +213 197 189 +205 180 156 +189 148 139 +148 115 106 +115 65 74 +82 49 65 +90 90 98 diff --git a/data/tilesets/secondary/cave_frlg/palettes/11.pal b/data/tilesets/secondary/cave_frlg/palettes/11.pal new file mode 100644 index 000000000000..bb4f4867c43c --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 189 156 +172 172 139 +148 139 115 +123 115 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 222 148 +222 205 115 +205 180 98 +189 172 98 diff --git a/data/tilesets/secondary/cave_frlg/palettes/12.pal b/data/tilesets/secondary/cave_frlg/palettes/12.pal new file mode 100644 index 000000000000..583384664faa --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/cave_frlg/palettes/13.pal b/data/tilesets/secondary/cave_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cave_frlg/palettes/14.pal b/data/tilesets/secondary/cave_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cave_frlg/palettes/15.pal b/data/tilesets/secondary/cave_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cave_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cave_frlg/tiles.png b/data/tilesets/secondary/cave_frlg/tiles.png new file mode 100644 index 000000000000..8e0f64a78c11 Binary files /dev/null and b/data/tilesets/secondary/cave_frlg/tiles.png differ diff --git a/data/tilesets/secondary/celadon_city_frlg/anim/fountain/0.png b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/0.png new file mode 100644 index 000000000000..c5783f481655 Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/0.png differ diff --git a/data/tilesets/secondary/celadon_city_frlg/anim/fountain/1.png b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/1.png new file mode 100644 index 000000000000..7d1f6fb2e8bd Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/1.png differ diff --git a/data/tilesets/secondary/celadon_city_frlg/anim/fountain/2.png b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/2.png new file mode 100644 index 000000000000..91b54ad6e4ec Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/2.png differ diff --git a/data/tilesets/secondary/celadon_city_frlg/anim/fountain/3.png b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/3.png new file mode 100644 index 000000000000..45f2e40ade33 Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/3.png differ diff --git a/data/tilesets/secondary/celadon_city_frlg/anim/fountain/4.png b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/4.png new file mode 100644 index 000000000000..dd9a94d479ee Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/anim/fountain/4.png differ diff --git a/data/tilesets/secondary/celadon_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/celadon_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..c03afc9b34dc Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/celadon_city_frlg/metatiles.bin b/data/tilesets/secondary/celadon_city_frlg/metatiles.bin new file mode 100644 index 000000000000..3bfb9d239716 Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/00.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..7af5bb7d2167 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/01.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..391d1e3d17b8 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/02.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/03.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..973765509c44 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/04.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/05.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/06.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/07.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/08.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..86930c1d1c71 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +123 123 131 +82 82 106 +197 238 255 +172 213 255 +123 164 222 +98 139 189 +246 230 139 +197 180 115 +172 156 90 +123 164 189 +148 189 238 +255 205 139 +230 131 115 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/09.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..5dc82505a838 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +123 123 131 +82 82 106 +197 197 205 +255 213 164 +222 123 82 +189 90 57 +189 230 222 +131 189 164 +106 148 139 +246 238 189 +222 213 156 +213 189 123 +197 180 106 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/10.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..361b133e676d --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +123 123 131 +82 82 106 +238 230 255 +222 197 255 +180 148 222 +131 106 172 +255 0 255 +115 189 246 +74 148 205 +41 115 172 +148 164 180 +246 238 148 +213 172 74 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/11.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..00caf8dfcc6b --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +180 205 213 +148 164 180 +123 123 131 +82 82 106 +205 222 238 +197 213 222 +164 180 197 +222 180 82 +230 238 238 +255 205 139 +222 106 98 +197 74 65 +98 189 148 +115 205 164 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/12.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..4257575aec41 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +213 222 164 +180 189 131 +139 148 90 +123 123 131 +90 90 115 +65 74 106 +180 148 222 +131 106 172 +189 230 222 +148 205 180 +115 172 148 +106 148 139 +74 115 106 +115 205 164 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/13.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/14.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_city_frlg/palettes/15.pal b/data/tilesets/secondary/celadon_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_city_frlg/tiles.png b/data/tilesets/secondary/celadon_city_frlg/tiles.png new file mode 100644 index 000000000000..db18cb938e59 Binary files /dev/null and b/data/tilesets/secondary/celadon_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/0.png b/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/0.png new file mode 100644 index 000000000000..eabff7d8ad78 Binary files /dev/null and b/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/0.png differ diff --git a/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/1.png b/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/1.png new file mode 100644 index 000000000000..fd9eb53f7327 Binary files /dev/null and b/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/1.png differ diff --git a/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/2.png b/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/2.png new file mode 100644 index 000000000000..a3edd7ccd77e Binary files /dev/null and b/data/tilesets/secondary/celadon_gym_frlg/anim/flowers/2.png differ diff --git a/data/tilesets/secondary/celadon_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/celadon_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..b67cf87721a2 Binary files /dev/null and b/data/tilesets/secondary/celadon_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/celadon_gym_frlg/metatiles.bin b/data/tilesets/secondary/celadon_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..f3f58a44dd16 Binary files /dev/null and b/data/tilesets/secondary/celadon_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/00.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/01.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..69f3f0b9e6e1 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/02.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..330e35b020a6 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +213 131 82 +156 205 246 +98 156 238 +57 123 222 +222 139 106 +189 98 74 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/03.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..eac8236f17e2 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +148 148 148 +180 180 180 +255 255 255 +238 246 238 +222 238 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/04.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/05.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/06.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/07.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..9d84ecaba099 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +74 156 90 +65 139 139 +115 205 90 +148 238 74 +189 255 98 +156 131 82 +197 115 123 +255 164 123 +238 238 172 +82 115 82 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/08.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..085c4934413d --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +222 213 246 +238 238 255 +123 156 246 +106 197 255 +131 222 255 +156 230 255 +115 90 98 +189 115 131 +246 189 115 +222 189 246 +255 230 115 +90 98 213 +255 172 197 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/09.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..9020b628fbb0 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 131 57 +213 197 106 +246 238 148 +213 222 238 +222 230 255 +41 106 82 +57 131 115 +172 131 115 +197 156 148 +238 180 164 +180 139 123 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/10.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/11.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/12.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..041512724fa0 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +41 123 123 +41 156 156 +49 189 172 +65 230 189 +65 246 230 +106 90 74 +131 106 74 +156 131 65 +172 156 74 +172 156 106 +205 180 106 +222 205 98 +230 222 106 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/13.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/14.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/palettes/15.pal b/data/tilesets/secondary/celadon_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/celadon_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/celadon_gym_frlg/tiles.png b/data/tilesets/secondary/celadon_gym_frlg/tiles.png new file mode 100644 index 000000000000..ef08ccc83a6b Binary files /dev/null and b/data/tilesets/secondary/celadon_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cerulean_cave_frlg/metatile_attributes.bin b/data/tilesets/secondary/cerulean_cave_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..8b165df4656c Binary files /dev/null and b/data/tilesets/secondary/cerulean_cave_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cerulean_cave_frlg/metatiles.bin b/data/tilesets/secondary/cerulean_cave_frlg/metatiles.bin new file mode 100644 index 000000000000..249addbc7aad Binary files /dev/null and b/data/tilesets/secondary/cerulean_cave_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/00.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/00.pal new file mode 100644 index 000000000000..a3fab1c2fb12 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/01.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/02.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/03.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/04.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/05.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/06.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/06.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/07.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/07.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/08.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/08.pal new file mode 100644 index 000000000000..db2216a0522c --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +148 156 164 +255 0 255 +255 0 255 +255 0 255 +205 246 172 +172 213 148 +139 180 131 +115 156 106 +82 123 90 +57 98 74 +65 65 74 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/09.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/09.pal new file mode 100644 index 000000000000..c1a5d4f29fd0 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 205 222 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +255 246 164 +205 189 106 +156 131 57 +82 74 32 +90 106 115 +255 0 255 +65 65 74 +16 16 24 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/10.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/10.pal new file mode 100644 index 000000000000..eb9198b0a7d1 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 180 +230 205 164 +189 180 164 +172 164 156 +205 246 172 +172 213 148 +139 180 131 +115 156 106 +82 123 90 +57 98 74 +65 65 74 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/11.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/11.pal new file mode 100644 index 000000000000..9afe8750dac5 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +148 156 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +123 189 156 +106 156 139 +98 123 123 +90 98 115 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/12.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/12.pal new file mode 100644 index 000000000000..aced117f7925 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 205 222 +197 205 222 +172 180 197 +156 164 180 +115 123 139 +238 238 164 +205 205 106 +172 172 90 +123 131 74 +115 123 139 +82 90 32 +65 65 74 +16 16 24 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/13.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/14.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/palettes/15.pal b/data/tilesets/secondary/cerulean_cave_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_cave_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_cave_frlg/tiles.png b/data/tilesets/secondary/cerulean_cave_frlg/tiles.png new file mode 100644 index 000000000000..d53a0cf177b2 Binary files /dev/null and b/data/tilesets/secondary/cerulean_cave_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cerulean_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/cerulean_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..6f93e29fdea7 Binary files /dev/null and b/data/tilesets/secondary/cerulean_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cerulean_city_frlg/metatiles.bin b/data/tilesets/secondary/cerulean_city_frlg/metatiles.bin new file mode 100644 index 000000000000..b810e799635b Binary files /dev/null and b/data/tilesets/secondary/cerulean_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/00.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/01.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..31a636983fba --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/02.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/03.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..973765509c44 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/04.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..91fdcabdf97f --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/05.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..0edb843f52fb --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/06.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..f8ebbc6dc2bd --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/07.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/08.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..ae3dd3f0d64e --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +90 139 164 +115 164 189 +139 189 213 +172 222 238 +139 197 98 +156 222 106 +189 230 139 +222 205 172 +246 230 189 +255 246 213 +164 164 180 +82 82 106 +123 123 139 +205 205 222 +255 255 255 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/09.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..3ed18e08fdc4 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +180 106 90 +222 180 65 +238 164 156 +246 238 131 +230 205 98 +205 131 123 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +164 164 180 +82 82 106 +123 123 139 +205 205 222 +255 255 255 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/10.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..536972f8fbf9 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +255 238 197 +222 205 172 +180 164 123 +123 123 131 +90 90 115 +65 74 106 +123 180 222 +180 222 255 +255 213 164 +230 189 82 +213 164 57 +205 139 32 +172 90 16 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/11.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..986335b745a2 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +255 238 197 +222 205 172 +180 164 123 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +189 180 82 +180 230 172 +139 213 131 +106 180 106 +90 164 90 +57 131 65 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/12.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..c44bc32b5ed0 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +238 222 180 +205 189 156 +180 164 123 +123 123 131 +90 90 115 +65 74 106 +139 197 98 +106 164 65 +172 222 238 +148 197 213 +115 164 189 +90 139 164 +74 123 148 +115 205 164 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/13.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/14.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_city_frlg/palettes/15.pal b/data/tilesets/secondary/cerulean_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_city_frlg/tiles.png b/data/tilesets/secondary/cerulean_city_frlg/tiles.png new file mode 100644 index 000000000000..737d3dd7fbe6 Binary files /dev/null and b/data/tilesets/secondary/cerulean_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cerulean_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/cerulean_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..03770d28c566 Binary files /dev/null and b/data/tilesets/secondary/cerulean_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cerulean_gym_frlg/metatiles.bin b/data/tilesets/secondary/cerulean_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..c026eb65a14a Binary files /dev/null and b/data/tilesets/secondary/cerulean_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/00.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..4b44e19f441b --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/01.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..a39ca6aa86b7 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/02.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..5a4f127be79c --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/03.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..c84fa4a58be0 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 156 156 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/04.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/05.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/06.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/07.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..aac016a72f80 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +156 205 246 +98 156 238 +0 0 0 +0 0 0 +123 164 172 +148 189 197 +172 205 213 +205 222 230 +98 123 148 +123 148 172 +148 172 197 +98 98 123 +148 139 131 +222 205 213 +255 255 255 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/08.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/09.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/10.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/11.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/12.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..419c00911ab7 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +123 164 172 +222 189 172 +246 213 189 +246 230 180 +255 246 213 +164 189 213 +189 205 230 +222 230 246 +98 123 148 +123 148 172 +148 172 197 +98 98 123 +148 139 131 +205 189 197 +255 255 255 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/13.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/14.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/palettes/15.pal b/data/tilesets/secondary/cerulean_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cerulean_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cerulean_gym_frlg/tiles.png b/data/tilesets/secondary/cerulean_gym_frlg/tiles.png new file mode 100644 index 000000000000..44b7c0c34c70 Binary files /dev/null and b/data/tilesets/secondary/cerulean_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/cinnabar_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..d7293b0b8484 Binary files /dev/null and b/data/tilesets/secondary/cinnabar_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/metatiles.bin b/data/tilesets/secondary/cinnabar_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..7a5532619872 Binary files /dev/null and b/data/tilesets/secondary/cinnabar_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/00.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/01.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..69f3f0b9e6e1 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/02.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..330e35b020a6 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +213 131 82 +156 205 246 +98 156 238 +57 123 222 +222 139 106 +189 98 74 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/03.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..eac8236f17e2 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +148 148 148 +180 180 180 +255 255 255 +238 246 238 +222 238 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/04.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/05.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/06.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/07.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..5b659ef1be5b --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +180 156 172 +205 189 189 +230 222 189 +90 115 90 +131 197 115 +205 238 115 +123 82 74 +180 98 98 +255 139 74 +238 246 172 +255 230 74 +106 90 82 +255 0 255 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/08.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..f5a4ee6780d5 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +205 189 189 +246 246 255 +148 131 180 +205 189 230 +123 98 255 +82 172 148 +255 98 98 +90 115 90 +131 197 115 +205 238 115 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/09.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/10.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/11.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/12.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..3f9aa94d67a2 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +106 90 82 +148 115 82 +172 131 90 +213 172 90 +230 180 90 +164 90 172 +197 115 205 +230 148 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/13.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/14.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/palettes/15.pal b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/cinnabar_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_gym_frlg/tiles.png b/data/tilesets/secondary/cinnabar_gym_frlg/tiles.png new file mode 100644 index 000000000000..213799158f7d Binary files /dev/null and b/data/tilesets/secondary/cinnabar_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/cinnabar_island_frlg/metatile_attributes.bin b/data/tilesets/secondary/cinnabar_island_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..2785a3aabecc Binary files /dev/null and b/data/tilesets/secondary/cinnabar_island_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/cinnabar_island_frlg/metatiles.bin b/data/tilesets/secondary/cinnabar_island_frlg/metatiles.bin new file mode 100644 index 000000000000..0abe4b18dc7a Binary files /dev/null and b/data/tilesets/secondary/cinnabar_island_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/00.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/00.pal new file mode 100644 index 000000000000..9dcb673aaf75 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/01.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/01.pal new file mode 100644 index 000000000000..391d1e3d17b8 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/02.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/03.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/04.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/05.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/06.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/07.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/08.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/08.pal new file mode 100644 index 000000000000..f734cd1666d5 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +139 82 57 +164 106 82 +205 148 123 +222 164 139 +172 189 238 +213 222 246 +156 131 90 +189 164 115 +222 205 156 +255 238 189 +164 164 180 +82 82 106 +123 123 139 +205 205 222 +255 255 255 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/09.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/09.pal new file mode 100644 index 000000000000..ca26d1b0806e --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 246 +230 230 189 +197 197 156 +172 172 131 +123 123 82 +65 74 106 +123 123 131 +123 123 131 +98 164 222 +74 131 197 +139 222 189 +106 189 156 +106 189 156 +74 156 123 +90 90 115 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/10.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/10.pal new file mode 100644 index 000000000000..608bbc2cf85b --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/11.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/11.pal new file mode 100644 index 000000000000..608bbc2cf85b --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/12.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/12.pal new file mode 100644 index 000000000000..608bbc2cf85b --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/13.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/14.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/palettes/15.pal b/data/tilesets/secondary/cinnabar_island_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/cinnabar_island_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/cinnabar_island_frlg/tiles.png b/data/tilesets/secondary/cinnabar_island_frlg/tiles.png new file mode 100644 index 000000000000..ddb9ad0cbb73 Binary files /dev/null and b/data/tilesets/secondary/cinnabar_island_frlg/tiles.png differ diff --git a/data/tilesets/secondary/condominiums_frlg/metatile_attributes.bin b/data/tilesets/secondary/condominiums_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..0f542bc5bfb2 Binary files /dev/null and b/data/tilesets/secondary/condominiums_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/condominiums_frlg/metatiles.bin b/data/tilesets/secondary/condominiums_frlg/metatiles.bin new file mode 100644 index 000000000000..117c036fa8fa Binary files /dev/null and b/data/tilesets/secondary/condominiums_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/00.pal b/data/tilesets/secondary/condominiums_frlg/palettes/00.pal new file mode 100644 index 000000000000..5867e5ba690d --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +156 213 255 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/01.pal b/data/tilesets/secondary/condominiums_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/02.pal b/data/tilesets/secondary/condominiums_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/03.pal b/data/tilesets/secondary/condominiums_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/04.pal b/data/tilesets/secondary/condominiums_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/05.pal b/data/tilesets/secondary/condominiums_frlg/palettes/05.pal new file mode 100644 index 000000000000..c7780e5c7515 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/06.pal b/data/tilesets/secondary/condominiums_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/07.pal b/data/tilesets/secondary/condominiums_frlg/palettes/07.pal new file mode 100644 index 000000000000..35987db53279 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +180 180 164 +255 255 255 +205 197 106 +246 238 148 +255 255 222 +98 98 123 +238 238 238 +82 222 123 +131 255 164 +82 164 57 +230 139 98 +189 98 74 +213 213 213 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/08.pal b/data/tilesets/secondary/condominiums_frlg/palettes/08.pal new file mode 100644 index 000000000000..7f33e006f849 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +148 148 164 +180 180 164 +255 255 255 +213 213 213 +106 156 164 +131 189 197 +172 222 230 +238 180 222 +180 115 164 +213 213 180 +255 0 255 +156 205 246 +98 156 238 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/09.pal b/data/tilesets/secondary/condominiums_frlg/palettes/09.pal new file mode 100644 index 000000000000..75022050dcb6 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +148 148 164 +180 180 164 +255 255 255 +213 213 213 +148 205 180 +115 172 148 +106 148 139 +197 238 255 +172 213 255 +123 164 222 +98 139 189 +123 164 189 +148 189 238 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/10.pal b/data/tilesets/secondary/condominiums_frlg/palettes/10.pal new file mode 100644 index 000000000000..3c091df8b340 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +255 213 115 +189 148 49 +139 98 74 +90 106 180 +255 205 139 +230 172 90 +230 148 65 +180 98 24 +238 213 172 +222 156 139 +123 123 123 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/11.pal b/data/tilesets/secondary/condominiums_frlg/palettes/11.pal new file mode 100644 index 000000000000..79494336b9f1 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 238 +213 222 164 +115 156 148 +230 213 115 +180 172 90 +139 148 90 +98 123 180 +148 156 156 +189 197 197 +246 230 164 +180 189 131 +205 213 213 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/12.pal b/data/tilesets/secondary/condominiums_frlg/palettes/12.pal new file mode 100644 index 000000000000..b9b1e6061db3 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +131 131 82 +164 164 98 +197 197 156 +106 164 172 +197 205 213 +205 156 32 +172 148 197 +205 164 230 +230 197 255 +205 197 106 +230 230 230 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/13.pal b/data/tilesets/secondary/condominiums_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/14.pal b/data/tilesets/secondary/condominiums_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/condominiums_frlg/palettes/15.pal b/data/tilesets/secondary/condominiums_frlg/palettes/15.pal new file mode 100644 index 000000000000..093fbdd6c952 --- /dev/null +++ b/data/tilesets/secondary/condominiums_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 222 164 +180 189 131 +139 148 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/condominiums_frlg/tiles.png b/data/tilesets/secondary/condominiums_frlg/tiles.png new file mode 100644 index 000000000000..324b42c9f727 Binary files /dev/null and b/data/tilesets/secondary/condominiums_frlg/tiles.png differ diff --git a/data/tilesets/secondary/department_store_frlg/metatile_attributes.bin b/data/tilesets/secondary/department_store_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..1df374f9bd76 Binary files /dev/null and b/data/tilesets/secondary/department_store_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/department_store_frlg/metatiles.bin b/data/tilesets/secondary/department_store_frlg/metatiles.bin new file mode 100644 index 000000000000..05304519032c Binary files /dev/null and b/data/tilesets/secondary/department_store_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/department_store_frlg/palettes/00.pal b/data/tilesets/secondary/department_store_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/01.pal b/data/tilesets/secondary/department_store_frlg/palettes/01.pal new file mode 100644 index 000000000000..30be2fbe3f58 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/02.pal b/data/tilesets/secondary/department_store_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/03.pal b/data/tilesets/secondary/department_store_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/04.pal b/data/tilesets/secondary/department_store_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/05.pal b/data/tilesets/secondary/department_store_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/06.pal b/data/tilesets/secondary/department_store_frlg/palettes/06.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/07.pal b/data/tilesets/secondary/department_store_frlg/palettes/07.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/08.pal b/data/tilesets/secondary/department_store_frlg/palettes/08.pal new file mode 100644 index 000000000000..18480092bee7 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +115 123 131 +98 90 65 +139 123 82 +197 172 90 +230 230 238 +205 115 74 +238 172 82 +238 213 82 +131 189 57 +164 222 82 +156 139 172 +205 172 222 +213 205 230 +246 255 255 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/09.pal b/data/tilesets/secondary/department_store_frlg/palettes/09.pal new file mode 100644 index 000000000000..dd18b9d0720c --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +131 131 131 +172 123 82 +205 131 65 +213 148 65 +205 148 82 +238 164 82 +238 180 82 +148 106 74 +189 197 213 +222 230 230 +156 172 172 +90 131 238 +106 164 255 +156 189 255 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/10.pal b/data/tilesets/secondary/department_store_frlg/palettes/10.pal new file mode 100644 index 000000000000..c6e769cccf6a --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +131 131 131 +57 106 82 +41 156 98 +90 205 115 +197 172 90 +156 131 82 +213 205 106 +230 197 238 +180 189 164 +213 222 189 +156 172 172 +205 180 213 +189 197 213 +230 246 238 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/11.pal b/data/tilesets/secondary/department_store_frlg/palettes/11.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/12.pal b/data/tilesets/secondary/department_store_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/13.pal b/data/tilesets/secondary/department_store_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/14.pal b/data/tilesets/secondary/department_store_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/palettes/15.pal b/data/tilesets/secondary/department_store_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/department_store_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/department_store_frlg/tiles.png b/data/tilesets/secondary/department_store_frlg/tiles.png new file mode 100644 index 000000000000..42193211864b Binary files /dev/null and b/data/tilesets/secondary/department_store_frlg/tiles.png differ diff --git a/data/tilesets/secondary/digletts_cave_frlg/metatile_attributes.bin b/data/tilesets/secondary/digletts_cave_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..7677c6c5e2d4 Binary files /dev/null and b/data/tilesets/secondary/digletts_cave_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/digletts_cave_frlg/metatiles.bin b/data/tilesets/secondary/digletts_cave_frlg/metatiles.bin new file mode 100644 index 000000000000..37ef8fe349d6 Binary files /dev/null and b/data/tilesets/secondary/digletts_cave_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/00.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/00.pal new file mode 100644 index 000000000000..a3fab1c2fb12 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/01.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/02.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/03.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/04.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/05.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/06.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/06.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/07.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/07.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/08.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/08.pal new file mode 100644 index 000000000000..74cbc54c6189 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 172 123 +172 139 90 +148 106 65 +123 74 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 222 156 +189 189 123 +148 148 106 +115 106 90 +82 74 65 +57 49 41 +65 65 74 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/09.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/09.pal new file mode 100644 index 000000000000..def7acffc543 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 172 123 +172 139 90 +148 106 65 +123 74 41 +164 180 230 +139 156 222 +98 106 139 +65 65 57 +255 0 255 +255 0 255 +65 65 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/10.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/10.pal new file mode 100644 index 000000000000..5ccabc5a0ee9 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 180 +222 205 148 +197 172 123 +172 139 90 +222 222 156 +189 189 123 +148 148 106 +115 106 90 +82 74 65 +57 49 41 +65 65 74 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/11.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/11.pal new file mode 100644 index 000000000000..fa0038726572 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 172 123 +172 139 90 +148 106 65 +123 74 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +230 222 164 +213 197 131 +197 172 106 +172 148 74 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/12.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/12.pal new file mode 100644 index 000000000000..c19d59bd0619 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +180 180 98 +164 164 74 +139 139 49 +123 115 41 +255 238 180 +222 205 148 +197 172 123 +172 139 90 +222 222 156 +189 189 123 +148 148 82 +115 106 49 +90 82 41 +57 49 41 +65 65 74 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/13.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/14.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/digletts_cave_frlg/palettes/15.pal b/data/tilesets/secondary/digletts_cave_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/digletts_cave_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/digletts_cave_frlg/tiles.png b/data/tilesets/secondary/digletts_cave_frlg/tiles.png new file mode 100644 index 000000000000..77b767b799d8 Binary files /dev/null and b/data/tilesets/secondary/digletts_cave_frlg/tiles.png differ diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/metatile_attributes.bin b/data/tilesets/secondary/fan_club_daycare_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..f40b4f5055b9 Binary files /dev/null and b/data/tilesets/secondary/fan_club_daycare_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/metatiles.bin b/data/tilesets/secondary/fan_club_daycare_frlg/metatiles.bin new file mode 100644 index 000000000000..63ddd975bc00 Binary files /dev/null and b/data/tilesets/secondary/fan_club_daycare_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/00.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/00.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/01.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/01.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/02.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/02.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/03.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/03.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/04.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/04.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/05.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/05.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/06.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/07.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/07.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/08.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/08.pal new file mode 100644 index 000000000000..4b7de801212f --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 197 +82 82 106 +131 131 131 +131 115 90 +189 131 90 +205 156 90 +238 180 90 +172 172 131 +222 222 172 +172 180 205 +238 230 172 +255 255 246 +255 255 246 +197 205 222 +205 213 230 +230 230 246 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/09.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/09.pal new file mode 100644 index 000000000000..8fe0861de6f3 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 197 +82 82 106 +131 131 131 +246 246 189 +180 180 139 +205 156 90 +230 230 131 +222 213 131 +205 205 115 +197 180 115 +255 0 255 +123 123 98 +156 156 98 +205 148 197 +90 164 205 +90 189 246 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/10.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/10.pal new file mode 100644 index 000000000000..afe462f8ea0a --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 197 +82 82 106 +131 131 131 +123 189 222 +123 156 189 +164 222 246 +189 238 238 +74 139 98 +106 172 106 +123 205 123 +90 148 115 +139 197 131 +197 238 123 +197 172 74 +255 0 255 +230 230 106 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/11.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/11.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/12.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/13.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/14.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/palettes/15.pal b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fan_club_daycare_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fan_club_daycare_frlg/tiles.png b/data/tilesets/secondary/fan_club_daycare_frlg/tiles.png new file mode 100644 index 000000000000..b8a2a1a4fb79 Binary files /dev/null and b/data/tilesets/secondary/fan_club_daycare_frlg/tiles.png differ diff --git a/data/tilesets/secondary/fuchsia_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/fuchsia_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..3e370a7471a1 Binary files /dev/null and b/data/tilesets/secondary/fuchsia_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/fuchsia_city_frlg/metatiles.bin b/data/tilesets/secondary/fuchsia_city_frlg/metatiles.bin new file mode 100644 index 000000000000..0e0e722da6c7 Binary files /dev/null and b/data/tilesets/secondary/fuchsia_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/00.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..5fb8bdb0154d --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/01.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..391d1e3d17b8 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/02.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/03.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..9581f2cd8be5 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/04.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/05.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/06.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/07.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/08.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..8a0a9a1e0fab --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +65 74 106 +123 123 131 +98 90 82 +115 106 98 +148 131 131 +180 156 131 +189 172 98 +213 205 131 +238 222 139 +90 106 164 +98 139 230 +115 205 255 +255 0 255 +255 0 255 +98 106 115 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/09.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..d39bbb454e7f --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +65 74 106 +123 123 131 +139 90 82 +189 123 115 +222 148 131 +255 197 156 +156 156 172 +189 197 213 +230 238 238 +49 98 90 +74 148 131 +82 197 148 +106 230 172 +164 238 172 +98 106 115 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/10.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..d82bb039195f --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +65 74 106 +123 123 131 +180 164 90 +0 0 255 +255 238 197 +238 238 205 +189 180 172 +172 172 156 +205 205 172 +139 123 49 +164 148 74 +205 197 123 +230 213 139 +106 172 123 +123 197 139 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/11.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..cc0cf52cf42c --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 197 +180 238 82 +139 213 82 +90 164 49 +57 90 90 +74 123 74 +90 98 49 +139 131 49 +65 57 49 +57 139 98 +123 197 49 +123 197 82 +57 139 49 +115 205 164 +57 172 156 +255 0 255 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/12.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..ebcfeb596c03 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +238 180 139 +222 148 131 +189 123 115 +139 90 82 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/13.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/14.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/palettes/15.pal b/data/tilesets/secondary/fuchsia_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_city_frlg/tiles.png b/data/tilesets/secondary/fuchsia_city_frlg/tiles.png new file mode 100644 index 000000000000..a9e9e13e82f5 Binary files /dev/null and b/data/tilesets/secondary/fuchsia_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/fuchsia_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..7dfeb1349648 Binary files /dev/null and b/data/tilesets/secondary/fuchsia_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/metatiles.bin b/data/tilesets/secondary/fuchsia_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..25e3b6297b69 Binary files /dev/null and b/data/tilesets/secondary/fuchsia_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/00.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/01.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/02.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/03.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/04.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/05.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/06.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/07.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..9020b628fbb0 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 131 57 +213 197 106 +246 238 148 +213 222 238 +222 230 255 +41 106 82 +57 131 115 +172 131 115 +197 156 148 +238 180 164 +180 139 123 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/08.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..1873ad439780 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 131 57 +213 197 106 +246 238 148 +156 205 246 +115 172 222 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/09.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/10.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/11.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/12.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..ebfedc7d514f --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +172 131 115 +197 156 148 +238 180 164 +255 222 197 +255 238 238 +230 164 98 +255 197 98 +205 164 156 +180 139 123 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/13.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/14.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/palettes/15.pal b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/fuchsia_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/fuchsia_gym_frlg/tiles.png b/data/tilesets/secondary/fuchsia_gym_frlg/tiles.png new file mode 100644 index 000000000000..cf2fa4ff7695 Binary files /dev/null and b/data/tilesets/secondary/fuchsia_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/game_corner_frlg/metatile_attributes.bin b/data/tilesets/secondary/game_corner_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..893ac5f1d259 Binary files /dev/null and b/data/tilesets/secondary/game_corner_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/game_corner_frlg/metatiles.bin b/data/tilesets/secondary/game_corner_frlg/metatiles.bin new file mode 100644 index 000000000000..1529f8582e5a Binary files /dev/null and b/data/tilesets/secondary/game_corner_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/00.pal b/data/tilesets/secondary/game_corner_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/01.pal b/data/tilesets/secondary/game_corner_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/02.pal b/data/tilesets/secondary/game_corner_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/03.pal b/data/tilesets/secondary/game_corner_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/04.pal b/data/tilesets/secondary/game_corner_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/05.pal b/data/tilesets/secondary/game_corner_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/06.pal b/data/tilesets/secondary/game_corner_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/07.pal b/data/tilesets/secondary/game_corner_frlg/palettes/07.pal new file mode 100644 index 000000000000..b3612e537b88 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +255 164 115 +255 222 189 +123 164 238 +172 205 238 +213 230 238 +164 255 180 +238 164 0 +139 90 197 +213 156 255 +255 255 148 +255 0 255 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/08.pal b/data/tilesets/secondary/game_corner_frlg/palettes/08.pal new file mode 100644 index 000000000000..e58f94305080 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +255 255 123 +205 180 98 +246 230 172 +74 131 197 +139 197 255 +164 255 180 +238 246 246 +164 74 32 +213 115 57 +238 148 98 +255 189 98 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/09.pal b/data/tilesets/secondary/game_corner_frlg/palettes/09.pal new file mode 100644 index 000000000000..75f1d81b5228 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +255 0 255 +255 0 255 +255 255 255 +255 0 255 +131 172 238 +246 230 172 +82 180 172 +32 115 123 +255 148 115 +230 106 90 +90 213 156 +255 189 82 +16 123 255 +131 189 246 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/10.pal b/data/tilesets/secondary/game_corner_frlg/palettes/10.pal new file mode 100644 index 000000000000..6d76050a9423 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 230 230 +172 148 197 +205 164 230 +230 197 255 +238 230 123 +189 172 98 +255 255 148 +131 255 255 +74 131 197 +230 189 164 +255 0 255 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/11.pal b/data/tilesets/secondary/game_corner_frlg/palettes/11.pal new file mode 100644 index 000000000000..9359b8858a56 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +172 172 156 +230 230 205 +197 197 172 +172 172 164 +189 189 164 +255 0 255 +131 172 238 +106 197 106 +197 180 74 +255 0 255 +222 222 222 +213 139 57 +255 255 255 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/12.pal b/data/tilesets/secondary/game_corner_frlg/palettes/12.pal new file mode 100644 index 000000000000..61b3764be4c4 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +222 238 255 +255 0 255 +255 0 255 +32 156 222 +139 197 255 +180 98 0 +197 123 0 +205 139 0 +213 164 0 +230 180 0 +230 197 65 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/13.pal b/data/tilesets/secondary/game_corner_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/14.pal b/data/tilesets/secondary/game_corner_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/game_corner_frlg/palettes/15.pal b/data/tilesets/secondary/game_corner_frlg/palettes/15.pal new file mode 100644 index 000000000000..3bb14e4454e4 --- /dev/null +++ b/data/tilesets/secondary/game_corner_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +230 230 205 +205 205 180 +172 172 148 +222 222 222 +156 115 197 +131 172 238 +106 197 106 +197 180 74 +0 0 0 +213 139 57 +238 222 131 +255 255 255 diff --git a/data/tilesets/secondary/game_corner_frlg/tiles.png b/data/tilesets/secondary/game_corner_frlg/tiles.png new file mode 100644 index 000000000000..b5b249d0ab15 Binary files /dev/null and b/data/tilesets/secondary/game_corner_frlg/tiles.png differ diff --git a/data/tilesets/secondary/generic_building_1_frlg/metatile_attributes.bin b/data/tilesets/secondary/generic_building_1_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..be95e451cd25 Binary files /dev/null and b/data/tilesets/secondary/generic_building_1_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/generic_building_1_frlg/metatiles.bin b/data/tilesets/secondary/generic_building_1_frlg/metatiles.bin new file mode 100644 index 000000000000..806d040ce610 Binary files /dev/null and b/data/tilesets/secondary/generic_building_1_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/00.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/01.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/01.pal new file mode 100644 index 000000000000..69f3f0b9e6e1 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/02.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/02.pal new file mode 100644 index 000000000000..c8ee236d76d6 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +255 0 255 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/03.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/03.pal new file mode 100644 index 000000000000..b17dbb054879 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 164 164 +180 189 189 +255 255 255 +238 246 238 +213 230 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/04.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/05.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/06.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/07.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/07.pal new file mode 100644 index 000000000000..c1e7c3d5c579 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/08.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/08.pal new file mode 100644 index 000000000000..18480092bee7 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 222 156 +82 82 106 +115 123 131 +98 90 65 +139 123 82 +197 172 90 +230 230 238 +205 115 74 +238 172 82 +238 213 82 +131 189 57 +164 222 82 +156 139 172 +205 172 222 +213 205 230 +246 255 255 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/09.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/10.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/11.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/12.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/12.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/13.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/14.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/palettes/15.pal b/data/tilesets/secondary/generic_building_1_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_1_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_1_frlg/tiles.png b/data/tilesets/secondary/generic_building_1_frlg/tiles.png new file mode 100644 index 000000000000..19128719751b Binary files /dev/null and b/data/tilesets/secondary/generic_building_1_frlg/tiles.png differ diff --git a/data/tilesets/secondary/generic_building_2_frlg/metatile_attributes.bin b/data/tilesets/secondary/generic_building_2_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..6e96ad073ef4 Binary files /dev/null and b/data/tilesets/secondary/generic_building_2_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/generic_building_2_frlg/metatiles.bin b/data/tilesets/secondary/generic_building_2_frlg/metatiles.bin new file mode 100644 index 000000000000..0943dc7afe85 Binary files /dev/null and b/data/tilesets/secondary/generic_building_2_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/00.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/01.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/02.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/03.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/04.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/05.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/06.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/07.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/07.pal new file mode 100644 index 000000000000..c62a40b0d024 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +148 172 139 +180 197 164 +213 222 197 +238 255 213 +115 156 180 +197 222 238 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/08.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/08.pal new file mode 100644 index 000000000000..8c66b4998189 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 222 156 +189 98 74 +230 156 98 +213 205 156 +115 156 180 +246 238 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/09.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/09.pal new file mode 100644 index 000000000000..25d5d7019354 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +156 213 255 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/10.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/11.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/12.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/12.pal new file mode 100644 index 000000000000..2903bb074c9e --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +189 164 82 +222 197 106 +230 222 156 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 +213 131 65 +222 230 222 +246 238 189 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/13.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/14.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/palettes/15.pal b/data/tilesets/secondary/generic_building_2_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/generic_building_2_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/generic_building_2_frlg/tiles.png b/data/tilesets/secondary/generic_building_2_frlg/tiles.png new file mode 100644 index 000000000000..ca6e21f03c56 Binary files /dev/null and b/data/tilesets/secondary/generic_building_2_frlg/tiles.png differ diff --git a/data/tilesets/secondary/hall_of_fame_frlg/metatile_attributes.bin b/data/tilesets/secondary/hall_of_fame_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..7068e079113b Binary files /dev/null and b/data/tilesets/secondary/hall_of_fame_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/hall_of_fame_frlg/metatiles.bin b/data/tilesets/secondary/hall_of_fame_frlg/metatiles.bin new file mode 100644 index 000000000000..6f4e8a22e0f5 Binary files /dev/null and b/data/tilesets/secondary/hall_of_fame_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/00.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/00.pal new file mode 100644 index 000000000000..8db07d4180d2 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/01.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/02.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/03.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/04.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/05.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/05.pal new file mode 100644 index 000000000000..c7780e5c7515 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/06.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/07.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/07.pal new file mode 100644 index 000000000000..f0c97cf87fbb --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 189 255 +82 123 197 +49 90 156 +106 164 148 +82 139 123 +106 164 222 +222 230 148 +189 197 115 +90 148 197 +222 164 32 +189 230 255 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/08.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/08.pal new file mode 100644 index 000000000000..33b52bbbd0ac --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +213 222 222 +180 197 213 +156 172 197 +230 106 90 +189 65 49 +255 131 115 +139 41 24 +197 255 205 +238 197 106 +255 255 213 +255 246 172 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/09.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/09.pal new file mode 100644 index 000000000000..3a2cf3b7a123 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +139 222 148 +156 238 164 +197 255 205 +172 246 180 +238 238 197 +255 0 255 +255 0 255 +0 255 156 +189 65 49 +255 222 123 +246 197 0 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/10.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/10.pal new file mode 100644 index 000000000000..6ea570459943 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +238 230 156 +230 189 131 +131 189 172 +205 82 65 +255 148 0 +106 164 148 +82 139 123 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +156 213 197 +164 172 139 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/11.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/11.pal new file mode 100644 index 000000000000..008f150c7dfb --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +115 115 131 +255 0 255 +0 255 156 +106 164 148 +82 139 123 +255 0 255 +255 255 172 +255 213 115 +213 180 106 +164 131 74 +222 213 230 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/12.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/12.pal new file mode 100644 index 000000000000..c1e7c3d5c579 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/13.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/14.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/palettes/15.pal b/data/tilesets/secondary/hall_of_fame_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hall_of_fame_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hall_of_fame_frlg/tiles.png b/data/tilesets/secondary/hall_of_fame_frlg/tiles.png new file mode 100644 index 000000000000..f5ab3a9cb00a Binary files /dev/null and b/data/tilesets/secondary/hall_of_fame_frlg/tiles.png differ diff --git a/data/tilesets/secondary/hoenn_building_frlg/metatile_attributes.bin b/data/tilesets/secondary/hoenn_building_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..6c4ffed21772 Binary files /dev/null and b/data/tilesets/secondary/hoenn_building_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/hoenn_building_frlg/metatiles.bin b/data/tilesets/secondary/hoenn_building_frlg/metatiles.bin new file mode 100644 index 000000000000..af8effb1198b Binary files /dev/null and b/data/tilesets/secondary/hoenn_building_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/00.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/00.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/01.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/01.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/02.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/02.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/03.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/03.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/04.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/04.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/05.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/05.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/06.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/07.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/07.pal new file mode 100644 index 000000000000..53377871201c --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +189 189 164 +255 255 255 +230 222 246 +255 238 213 +255 0 0 +115 115 164 +131 139 230 +164 164 255 +156 106 16 +115 115 139 +213 213 172 +222 172 82 +189 139 49 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/08.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/08.pal new file mode 100644 index 000000000000..0b01f1a0f66f --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 148 +180 180 164 +255 255 255 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +172 90 49 +205 98 57 +246 139 98 +255 205 139 +255 0 0 +255 0 0 +255 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/09.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/09.pal new file mode 100644 index 000000000000..371e5a211fb7 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +189 189 164 +255 255 255 +230 222 246 +148 148 197 +189 189 246 +205 106 49 +246 180 49 +255 246 131 +255 0 0 +189 172 82 +213 205 98 +148 115 41 +172 139 57 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/10.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/10.pal new file mode 100644 index 000000000000..432f421491ab --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +123 123 131 +189 189 164 +255 255 255 +213 197 74 +213 180 131 +148 115 41 +172 139 57 +213 213 180 +106 139 49 +131 172 74 +164 205 106 +197 255 172 +115 90 57 +255 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/11.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/11.pal new file mode 100644 index 000000000000..8c2460403c4d --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +189 189 164 +255 255 255 +222 197 74 +230 230 106 +230 222 246 +148 98 123 +197 131 156 +197 164 189 +123 164 189 +131 197 98 +172 238 139 +90 156 57 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/12.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/12.pal new file mode 100644 index 000000000000..920ad12c9ec9 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 74 106 +139 139 139 +180 180 164 +255 255 255 +189 180 49 +222 213 82 +123 115 49 +156 148 16 +213 213 180 +98 156 139 +123 180 189 +172 222 230 +255 205 139 +246 246 164 +222 131 90 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/13.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/14.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/palettes/15.pal b/data/tilesets/secondary/hoenn_building_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/hoenn_building_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/hoenn_building_frlg/tiles.png b/data/tilesets/secondary/hoenn_building_frlg/tiles.png new file mode 100644 index 000000000000..ef8a943fa2a3 Binary files /dev/null and b/data/tilesets/secondary/hoenn_building_frlg/tiles.png differ diff --git a/data/tilesets/secondary/indigo_plateau_frlg/metatile_attributes.bin b/data/tilesets/secondary/indigo_plateau_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..1abbfdc22221 Binary files /dev/null and b/data/tilesets/secondary/indigo_plateau_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/indigo_plateau_frlg/metatiles.bin b/data/tilesets/secondary/indigo_plateau_frlg/metatiles.bin new file mode 100644 index 000000000000..bbb7ffbee0b5 Binary files /dev/null and b/data/tilesets/secondary/indigo_plateau_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/00.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/01.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/01.pal new file mode 100644 index 000000000000..cf11238126ab --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/02.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/03.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/03.pal new file mode 100644 index 000000000000..5a5e602118b6 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/04.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/04.pal new file mode 100644 index 000000000000..229f9132c30b --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +90 148 197 +65 123 180 +90 164 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/05.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/05.pal new file mode 100644 index 000000000000..215dd1272875 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/06.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/06.pal new file mode 100644 index 000000000000..7e7862a192f8 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +41 82 164 +41 57 131 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/07.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/08.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/08.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/09.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/09.pal new file mode 100644 index 000000000000..3ff6139ac954 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 205 65 +222 172 65 +180 98 0 +213 213 139 +189 189 115 +148 148 82 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/10.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/10.pal new file mode 100644 index 000000000000..70ed40322587 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +213 230 197 +156 172 139 +123 123 131 +90 90 115 +65 74 106 +222 172 65 +180 98 0 +131 65 0 +205 205 123 +164 164 57 +115 189 246 +74 148 213 +49 115 180 +189 197 164 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/11.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/11.pal new file mode 100644 index 000000000000..7b47acf60ad7 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 255 255 +213 213 222 +180 180 164 +148 148 139 +123 123 131 +82 82 106 +197 222 205 +148 172 156 +98 131 106 +230 139 24 +197 98 0 +172 65 0 +230 213 139 +205 180 106 +172 148 82 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/12.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/12.pal new file mode 100644 index 000000000000..f5ff3dddfa15 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +148 148 139 +222 222 230 +205 205 213 +180 180 164 +255 0 255 +222 222 205 +205 205 189 +172 172 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +230 213 139 +205 180 106 +115 205 164 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/13.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/14.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/palettes/15.pal b/data/tilesets/secondary/indigo_plateau_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/indigo_plateau_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/indigo_plateau_frlg/tiles.png b/data/tilesets/secondary/indigo_plateau_frlg/tiles.png new file mode 100644 index 000000000000..4a938b4c518b Binary files /dev/null and b/data/tilesets/secondary/indigo_plateau_frlg/tiles.png differ diff --git a/data/tilesets/secondary/island_harbor_frlg/metatile_attributes.bin b/data/tilesets/secondary/island_harbor_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..f6a9032d4b5c Binary files /dev/null and b/data/tilesets/secondary/island_harbor_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/island_harbor_frlg/metatiles.bin b/data/tilesets/secondary/island_harbor_frlg/metatiles.bin new file mode 100644 index 000000000000..d5916a2cfea7 Binary files /dev/null and b/data/tilesets/secondary/island_harbor_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/00.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/01.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/01.pal new file mode 100644 index 000000000000..22eb1667cb56 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/02.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/03.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/04.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/04.pal new file mode 100644 index 000000000000..5871a448c008 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/05.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/06.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/06.pal new file mode 100644 index 000000000000..9bad44649513 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/07.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/08.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/08.pal new file mode 100644 index 000000000000..5c1251024531 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +172 172 164 +205 213 213 +180 189 189 +148 156 156 +106 115 115 +197 246 230 +106 205 164 +57 156 115 +222 106 98 +222 213 123 +255 180 148 +197 189 98 +238 246 255 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/09.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/09.pal new file mode 100644 index 000000000000..c25501332d0d --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 123 180 +238 246 255 +222 230 238 +189 205 230 +156 164 189 +139 139 156 +98 98 123 +57 57 106 +197 98 98 +172 65 106 +32 74 156 +197 148 0 +246 213 24 +222 238 255 +255 255 255 +74 106 139 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/10.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/10.pal new file mode 100644 index 000000000000..3c091df8b340 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +255 213 115 +189 148 49 +139 98 74 +90 106 180 +255 205 139 +230 172 90 +230 148 65 +180 98 24 +238 213 172 +222 156 139 +123 123 123 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/11.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/11.pal new file mode 100644 index 000000000000..c42eeb7e128e --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +148 148 164 +172 172 164 +164 222 255 +115 180 205 +65 139 164 +41 106 148 +205 213 213 +238 230 139 +189 180 98 +139 131 65 +0 0 0 +255 255 255 +230 172 90 +189 246 255 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/12.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/12.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/13.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/13.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/14.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/island_harbor_frlg/palettes/15.pal b/data/tilesets/secondary/island_harbor_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/island_harbor_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/island_harbor_frlg/tiles.png b/data/tilesets/secondary/island_harbor_frlg/tiles.png new file mode 100644 index 000000000000..166ae2e18f97 Binary files /dev/null and b/data/tilesets/secondary/island_harbor_frlg/tiles.png differ diff --git a/data/tilesets/secondary/lab_frlg/metatile_attributes.bin b/data/tilesets/secondary/lab_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..be758150268a Binary files /dev/null and b/data/tilesets/secondary/lab_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/lab_frlg/metatiles.bin b/data/tilesets/secondary/lab_frlg/metatiles.bin new file mode 100644 index 000000000000..a7833446f030 Binary files /dev/null and b/data/tilesets/secondary/lab_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/lab_frlg/palettes/00.pal b/data/tilesets/secondary/lab_frlg/palettes/00.pal new file mode 100644 index 000000000000..9fc16da3b5f1 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 246 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/lab_frlg/palettes/01.pal b/data/tilesets/secondary/lab_frlg/palettes/01.pal new file mode 100644 index 000000000000..76403e6d627e --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/lab_frlg/palettes/02.pal b/data/tilesets/secondary/lab_frlg/palettes/02.pal new file mode 100644 index 000000000000..b1ecd71dcb90 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/lab_frlg/palettes/03.pal b/data/tilesets/secondary/lab_frlg/palettes/03.pal new file mode 100644 index 000000000000..43d9b60e3726 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/lab_frlg/palettes/04.pal b/data/tilesets/secondary/lab_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/05.pal b/data/tilesets/secondary/lab_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/06.pal b/data/tilesets/secondary/lab_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/07.pal b/data/tilesets/secondary/lab_frlg/palettes/07.pal new file mode 100644 index 000000000000..3d7f8bd898ab --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 131 148 +180 172 180 +189 197 213 +255 255 255 +255 205 139 +230 164 98 +197 131 65 +172 90 24 +82 148 197 +131 189 222 +189 230 255 +123 123 123 +197 180 74 +246 238 148 diff --git a/data/tilesets/secondary/lab_frlg/palettes/08.pal b/data/tilesets/secondary/lab_frlg/palettes/08.pal new file mode 100644 index 000000000000..7fce49d063f3 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 131 148 +180 172 180 +189 197 213 +255 255 255 +222 222 180 +197 197 148 +156 156 106 +230 164 98 +172 90 24 +172 164 65 +139 123 24 +246 238 148 +0 0 0 +246 238 148 diff --git a/data/tilesets/secondary/lab_frlg/palettes/09.pal b/data/tilesets/secondary/lab_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/10.pal b/data/tilesets/secondary/lab_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/11.pal b/data/tilesets/secondary/lab_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/12.pal b/data/tilesets/secondary/lab_frlg/palettes/12.pal new file mode 100644 index 000000000000..3c32c9fd4326 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 246 +82 82 106 +139 131 148 +180 172 180 +189 197 213 +255 255 255 +139 197 139 +156 205 246 +98 156 238 +90 123 180 +222 205 106 +213 230 246 +255 189 180 +230 106 65 +255 131 115 +246 238 148 diff --git a/data/tilesets/secondary/lab_frlg/palettes/13.pal b/data/tilesets/secondary/lab_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/14.pal b/data/tilesets/secondary/lab_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/palettes/15.pal b/data/tilesets/secondary/lab_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/lab_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/lab_frlg/tiles.png b/data/tilesets/secondary/lab_frlg/tiles.png new file mode 100644 index 000000000000..6caeac8a8c86 Binary files /dev/null and b/data/tilesets/secondary/lab_frlg/tiles.png differ diff --git a/data/tilesets/secondary/lavender_town_frlg/metatile_attributes.bin b/data/tilesets/secondary/lavender_town_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..d103d7155e69 Binary files /dev/null and b/data/tilesets/secondary/lavender_town_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/lavender_town_frlg/metatiles.bin b/data/tilesets/secondary/lavender_town_frlg/metatiles.bin new file mode 100644 index 000000000000..f69885645f02 Binary files /dev/null and b/data/tilesets/secondary/lavender_town_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/00.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/01.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/02.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/03.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/04.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/04.pal new file mode 100644 index 000000000000..07dcd957cf71 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +57 148 197 +32 131 172 +82 148 213 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/05.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/06.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/06.pal new file mode 100644 index 000000000000..0dba59a72c27 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +41 90 172 +41 57 148 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/07.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/08.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/08.pal new file mode 100644 index 000000000000..376749664117 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +115 205 164 +148 164 180 +123 123 131 +65 74 106 +205 82 74 +172 32 41 +255 246 189 +238 230 156 +222 205 131 +189 164 90 +148 131 49 +123 90 24 +123 123 131 +65 74 106 +205 222 238 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/09.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/09.pal new file mode 100644 index 000000000000..82b469a66915 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +230 246 238 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +172 172 106 +213 213 148 +180 205 180 +148 180 148 +131 164 131 +106 139 106 +197 222 197 +139 172 139 +90 115 90 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/10.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/10.pal new file mode 100644 index 000000000000..b97e9df4b8f2 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +213 230 222 +148 164 180 +123 123 131 +90 90 115 +82 82 106 +213 238 255 +164 189 222 +123 148 180 +255 238 139 +222 180 65 +255 255 189 +164 98 98 +213 148 148 +197 123 131 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/11.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/11.pal new file mode 100644 index 000000000000..f711819764aa --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +255 0 255 +255 0 255 +123 123 131 +255 0 255 +82 82 106 +213 238 255 +164 189 222 +123 148 180 +255 238 139 +222 180 65 +255 255 189 +156 213 255 +115 189 246 +98 164 222 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/12.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/12.pal new file mode 100644 index 000000000000..0cdcab8c27b8 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +222 205 246 +205 172 255 +172 139 213 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +213 189 98 +222 197 255 +172 139 213 +148 115 189 +139 106 180 +255 246 164 +172 148 82 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/13.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/14.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/lavender_town_frlg/palettes/15.pal b/data/tilesets/secondary/lavender_town_frlg/palettes/15.pal new file mode 100644 index 000000000000..3973e491ad46 --- /dev/null +++ b/data/tilesets/secondary/lavender_town_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +246 230 172 +246 213 180 +222 189 164 +180 148 123 +139 98 90 +90 57 74 +123 123 131 +65 74 106 +205 222 238 diff --git a/data/tilesets/secondary/lavender_town_frlg/tiles.png b/data/tilesets/secondary/lavender_town_frlg/tiles.png new file mode 100644 index 000000000000..66bd81f8ba29 Binary files /dev/null and b/data/tilesets/secondary/lavender_town_frlg/tiles.png differ diff --git a/data/tilesets/secondary/mart_frlg/metatile_attributes.bin b/data/tilesets/secondary/mart_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..429e556c74da Binary files /dev/null and b/data/tilesets/secondary/mart_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/mart_frlg/metatiles.bin b/data/tilesets/secondary/mart_frlg/metatiles.bin new file mode 100644 index 000000000000..1c00836c1a7f Binary files /dev/null and b/data/tilesets/secondary/mart_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/mart_frlg/palettes/00.pal b/data/tilesets/secondary/mart_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/mart_frlg/palettes/01.pal b/data/tilesets/secondary/mart_frlg/palettes/01.pal new file mode 100644 index 000000000000..3a16a45c79a0 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/mart_frlg/palettes/02.pal b/data/tilesets/secondary/mart_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/mart_frlg/palettes/03.pal b/data/tilesets/secondary/mart_frlg/palettes/03.pal new file mode 100644 index 000000000000..e1b56cd57de4 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 172 164 +180 189 189 +238 246 246 +238 246 238 +213 230 222 +197 205 197 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/mart_frlg/palettes/04.pal b/data/tilesets/secondary/mart_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/05.pal b/data/tilesets/secondary/mart_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/06.pal b/data/tilesets/secondary/mart_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/07.pal b/data/tilesets/secondary/mart_frlg/palettes/07.pal new file mode 100644 index 000000000000..0a07057ecda5 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/mart_frlg/palettes/08.pal b/data/tilesets/secondary/mart_frlg/palettes/08.pal new file mode 100644 index 000000000000..06fcc911b85a --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 189 139 +172 230 172 +205 246 205 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/09.pal b/data/tilesets/secondary/mart_frlg/palettes/09.pal new file mode 100644 index 000000000000..ea018609bd99 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +164 172 164 +180 189 189 +238 246 246 +238 246 238 +213 230 222 +197 205 197 +255 0 255 +255 0 255 +156 205 255 +106 164 238 +74 139 230 +57 131 205 +41 98 189 +255 0 255 diff --git a/data/tilesets/secondary/mart_frlg/palettes/10.pal b/data/tilesets/secondary/mart_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/11.pal b/data/tilesets/secondary/mart_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/12.pal b/data/tilesets/secondary/mart_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/13.pal b/data/tilesets/secondary/mart_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/14.pal b/data/tilesets/secondary/mart_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/palettes/15.pal b/data/tilesets/secondary/mart_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/mart_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/mart_frlg/tiles.png b/data/tilesets/secondary/mart_frlg/tiles.png new file mode 100644 index 000000000000..2bfeb408064a Binary files /dev/null and b/data/tilesets/secondary/mart_frlg/tiles.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_0.png b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_0.png new file mode 100644 index 000000000000..18ea4bdd7d0e Binary files /dev/null and b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_0.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_1.png b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_1.png new file mode 100644 index 000000000000..350108ce0e47 Binary files /dev/null and b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_1.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_2.png b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_2.png new file mode 100644 index 000000000000..91c3cde759d5 Binary files /dev/null and b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_2.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_3.png b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_3.png new file mode 100644 index 000000000000..a6e727c7a983 Binary files /dev/null and b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_3.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_4.png b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_4.png new file mode 100644 index 000000000000..80e86e3f0e3a Binary files /dev/null and b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_4.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_5.png b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_5.png new file mode 100644 index 000000000000..2ab35d89094d Binary files /dev/null and b/data/tilesets/secondary/mauville_game_corner/anim/lights/light_anim_5.png differ diff --git a/data/tilesets/secondary/mauville_game_corner/metatile_attributes.bin b/data/tilesets/secondary/mauville_game_corner/metatile_attributes.bin index 2ebca58dde6e..e1eedfdb8779 100644 Binary files a/data/tilesets/secondary/mauville_game_corner/metatile_attributes.bin and b/data/tilesets/secondary/mauville_game_corner/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/mauville_game_corner/metatiles.bin b/data/tilesets/secondary/mauville_game_corner/metatiles.bin index 07cf8c1c9757..b71363d940b0 100644 Binary files a/data/tilesets/secondary/mauville_game_corner/metatiles.bin and b/data/tilesets/secondary/mauville_game_corner/metatiles.bin differ diff --git a/data/tilesets/secondary/mauville_game_corner/palettes/06.pal b/data/tilesets/secondary/mauville_game_corner/palettes/06.pal index 7dc7f376afd5..f55bf6e9cdd2 100644 --- a/data/tilesets/secondary/mauville_game_corner/palettes/06.pal +++ b/data/tilesets/secondary/mauville_game_corner/palettes/06.pal @@ -3,17 +3,17 @@ JASC-PAL 16 0 0 0 82 82 106 -123 123 139 -205 205 197 +117 123 135 +185 191 212 255 255 255 -49 131 156 -98 172 205 -189 205 230 -238 230 246 -213 82 49 -246 82 82 +136 139 159 +176 173 196 +203 209 232 +214 230 246 +220 70 81 +255 85 85 164 74 65 172 98 90 -0 0 0 -0 0 0 +156 255 90 +131 197 90 0 0 0 diff --git a/data/tilesets/secondary/mauville_game_corner/palettes/08.pal b/data/tilesets/secondary/mauville_game_corner/palettes/08.pal index 4f83e4b70839..67068e968862 100644 --- a/data/tilesets/secondary/mauville_game_corner/palettes/08.pal +++ b/data/tilesets/secondary/mauville_game_corner/palettes/08.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 0 0 -82 82 106 -156 148 139 -205 189 197 -255 255 255 -82 123 255 -156 255 90 -131 197 90 -123 148 213 -180 205 230 -180 123 49 -222 156 74 -255 189 90 -0 0 0 -255 49 148 +128 132 152 +160 72 64 +128 196 88 +80 80 104 +200 208 232 +176 172 192 +152 252 88 +216 68 80 +248 252 248 +168 96 88 +208 228 240 +136 148 168 +184 188 208 +248 84 80 0 0 0 diff --git a/data/tilesets/secondary/mauville_game_corner/palettes/09.pal b/data/tilesets/secondary/mauville_game_corner/palettes/09.pal index 0f7f46c29aa6..b6fe0a8c8a6b 100644 --- a/data/tilesets/secondary/mauville_game_corner/palettes/09.pal +++ b/data/tilesets/secondary/mauville_game_corner/palettes/09.pal @@ -4,7 +4,7 @@ JASC-PAL 0 0 0 82 82 106 123 123 139 -205 205 197 +168 148 151 255 255 255 156 90 57 197 131 82 diff --git a/data/tilesets/secondary/mauville_game_corner/palettes/10.pal b/data/tilesets/secondary/mauville_game_corner/palettes/10.pal index 4b0812f09403..450793286e48 100644 --- a/data/tilesets/secondary/mauville_game_corner/palettes/10.pal +++ b/data/tilesets/secondary/mauville_game_corner/palettes/10.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +82 82 106 +132 135 152 +185 191 212 +255 255 255 +142 148 174 +176 173 196 +203 209 232 +214 230 246 +46 130 217 +53 173 214 +32 78 171 +84 98 177 +156 255 90 +131 197 90 0 0 0 diff --git a/data/tilesets/secondary/mauville_game_corner/palettes/11.pal b/data/tilesets/secondary/mauville_game_corner/palettes/11.pal index 4b0812f09403..8ae3d09397b6 100644 --- a/data/tilesets/secondary/mauville_game_corner/palettes/11.pal +++ b/data/tilesets/secondary/mauville_game_corner/palettes/11.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +65 74 106 +139 139 148 +180 180 164 +255 255 255 +206 159 70 +64 123 199 +101 171 255 +148 205 252 +217 188 98 +205 98 57 +246 139 98 +255 223 162 +116 101 183 +161 135 229 +110 99 122 diff --git a/data/tilesets/secondary/mauville_game_corner/palettes/12.pal b/data/tilesets/secondary/mauville_game_corner/palettes/12.pal index 4b0812f09403..03160d6bda5c 100644 --- a/data/tilesets/secondary/mauville_game_corner/palettes/12.pal +++ b/data/tilesets/secondary/mauville_game_corner/palettes/12.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +82 82 106 +132 135 152 +185 191 212 +255 255 255 +142 148 174 +176 173 196 +203 209 232 +214 230 246 +130 101 162 +155 114 185 +96 78 122 +107 93 136 +156 255 90 +131 197 90 0 0 0 diff --git a/data/tilesets/secondary/mauville_game_corner/tiles.png b/data/tilesets/secondary/mauville_game_corner/tiles.png index 50e341fde562..d09b9e51b6f9 100644 Binary files a/data/tilesets/secondary/mauville_game_corner/tiles.png and b/data/tilesets/secondary/mauville_game_corner/tiles.png differ diff --git a/data/tilesets/secondary/mt_ember_frlg/anim/steam/0.png b/data/tilesets/secondary/mt_ember_frlg/anim/steam/0.png new file mode 100644 index 000000000000..ab0ca2c698a8 Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/anim/steam/0.png differ diff --git a/data/tilesets/secondary/mt_ember_frlg/anim/steam/1.png b/data/tilesets/secondary/mt_ember_frlg/anim/steam/1.png new file mode 100644 index 000000000000..1324c7ad5cab Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/anim/steam/1.png differ diff --git a/data/tilesets/secondary/mt_ember_frlg/anim/steam/2.png b/data/tilesets/secondary/mt_ember_frlg/anim/steam/2.png new file mode 100644 index 000000000000..310aa1ebd801 Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/anim/steam/2.png differ diff --git a/data/tilesets/secondary/mt_ember_frlg/anim/steam/3.png b/data/tilesets/secondary/mt_ember_frlg/anim/steam/3.png new file mode 100644 index 000000000000..a6ec412cf459 Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/anim/steam/3.png differ diff --git a/data/tilesets/secondary/mt_ember_frlg/metatile_attributes.bin b/data/tilesets/secondary/mt_ember_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..2d655cf7e883 Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/mt_ember_frlg/metatiles.bin b/data/tilesets/secondary/mt_ember_frlg/metatiles.bin new file mode 100644 index 000000000000..b8079682100d Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/00.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/00.pal new file mode 100644 index 000000000000..30ff4070a1a6 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/01.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/01.pal new file mode 100644 index 000000000000..e15d979f128b --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/02.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/03.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/03.pal new file mode 100644 index 000000000000..973765509c44 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/04.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/04.pal new file mode 100644 index 000000000000..91fdcabdf97f --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/05.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/05.pal new file mode 100644 index 000000000000..0edb843f52fb --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/06.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/06.pal new file mode 100644 index 000000000000..32afdccbb1f8 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/07.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/07.pal new file mode 100644 index 000000000000..fa9d5d6332a1 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +172 123 123 +139 98 98 +115 74 74 +90 49 49 +65 24 24 +41 0 0 +41 41 49 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/08.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/08.pal new file mode 100644 index 000000000000..f4a797b8723c --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 197 180 +172 172 156 +148 148 123 +123 123 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 172 172 +197 156 148 +172 123 123 +131 82 74 +115 49 49 +90 24 24 +90 90 98 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/09.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/09.pal new file mode 100644 index 000000000000..0a21091959b0 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 197 180 +172 172 156 +148 148 123 +123 123 106 +255 238 164 +230 197 139 +205 172 123 +164 123 90 +148 115 74 +106 65 41 +74 74 57 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/10.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/10.pal new file mode 100644 index 000000000000..fc340ed1503a --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +255 238 164 +230 197 139 +205 172 123 +172 139 106 +213 172 172 +197 156 148 +172 123 123 +131 82 74 +115 49 49 +90 24 24 +90 90 98 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/11.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/11.pal new file mode 100644 index 000000000000..e07ce69097ae --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +197 197 180 +172 172 156 +148 148 123 +123 123 106 +164 172 172 +255 230 65 +123 123 106 +255 255 255 +74 65 74 +238 238 230 +189 189 180 +230 230 205 +205 205 180 +180 180 164 +164 164 148 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/12.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/12.pal new file mode 100644 index 000000000000..cc53a5940868 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 115 172 +139 205 246 +98 172 197 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +139 90 90 +106 65 65 +82 49 49 +49 32 32 +24 16 16 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/13.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/14.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mt_ember_frlg/palettes/15.pal b/data/tilesets/secondary/mt_ember_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/mt_ember_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/mt_ember_frlg/tiles.png b/data/tilesets/secondary/mt_ember_frlg/tiles.png new file mode 100644 index 000000000000..04d2b7b67516 Binary files /dev/null and b/data/tilesets/secondary/mt_ember_frlg/tiles.png differ diff --git a/data/tilesets/secondary/museum_frlg/metatile_attributes.bin b/data/tilesets/secondary/museum_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..77ad62e5aa33 Binary files /dev/null and b/data/tilesets/secondary/museum_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/museum_frlg/metatiles.bin b/data/tilesets/secondary/museum_frlg/metatiles.bin new file mode 100644 index 000000000000..993b73cbd093 Binary files /dev/null and b/data/tilesets/secondary/museum_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/museum_frlg/palettes/00.pal b/data/tilesets/secondary/museum_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/museum_frlg/palettes/01.pal b/data/tilesets/secondary/museum_frlg/palettes/01.pal new file mode 100644 index 000000000000..69f3f0b9e6e1 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +180 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/museum_frlg/palettes/02.pal b/data/tilesets/secondary/museum_frlg/palettes/02.pal new file mode 100644 index 000000000000..330e35b020a6 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +213 131 82 +156 205 246 +98 156 238 +57 123 222 +222 139 106 +189 98 74 diff --git a/data/tilesets/secondary/museum_frlg/palettes/03.pal b/data/tilesets/secondary/museum_frlg/palettes/03.pal new file mode 100644 index 000000000000..1520bed0b528 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +148 148 148 +180 180 180 +255 255 255 +238 246 238 +222 238 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +90 90 90 +115 106 98 +148 123 98 diff --git a/data/tilesets/secondary/museum_frlg/palettes/04.pal b/data/tilesets/secondary/museum_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/05.pal b/data/tilesets/secondary/museum_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/06.pal b/data/tilesets/secondary/museum_frlg/palettes/06.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/07.pal b/data/tilesets/secondary/museum_frlg/palettes/07.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/08.pal b/data/tilesets/secondary/museum_frlg/palettes/08.pal new file mode 100644 index 000000000000..223737ab6991 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +106 98 74 +139 123 74 +164 139 74 +222 205 74 +123 123 123 +189 197 205 +238 246 238 +98 90 98 +156 131 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/museum_frlg/palettes/09.pal b/data/tilesets/secondary/museum_frlg/palettes/09.pal new file mode 100644 index 000000000000..6de173f9078e --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +98 98 74 +164 139 82 +222 205 74 +255 0 255 +255 0 255 +213 213 156 +222 230 172 +246 246 238 +90 90 98 +115 115 106 +156 131 106 +205 131 82 +238 164 106 diff --git a/data/tilesets/secondary/museum_frlg/palettes/10.pal b/data/tilesets/secondary/museum_frlg/palettes/10.pal new file mode 100644 index 000000000000..fc8da5d40d17 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +98 98 74 +164 139 82 +222 205 74 +65 123 164 +82 139 197 +98 189 213 +148 213 213 +180 238 230 +189 197 205 +238 246 238 +222 222 172 +205 131 82 +246 172 106 diff --git a/data/tilesets/secondary/museum_frlg/palettes/11.pal b/data/tilesets/secondary/museum_frlg/palettes/11.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/12.pal b/data/tilesets/secondary/museum_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/13.pal b/data/tilesets/secondary/museum_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/14.pal b/data/tilesets/secondary/museum_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/palettes/15.pal b/data/tilesets/secondary/museum_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/museum_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/museum_frlg/tiles.png b/data/tilesets/secondary/museum_frlg/tiles.png new file mode 100644 index 000000000000..9be5ebca9014 Binary files /dev/null and b/data/tilesets/secondary/museum_frlg/tiles.png differ diff --git a/data/tilesets/secondary/navel_rock_frlg/metatile_attributes.bin b/data/tilesets/secondary/navel_rock_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..961e6098eb04 Binary files /dev/null and b/data/tilesets/secondary/navel_rock_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/navel_rock_frlg/metatiles.bin b/data/tilesets/secondary/navel_rock_frlg/metatiles.bin new file mode 100644 index 000000000000..7fdc5c55d751 Binary files /dev/null and b/data/tilesets/secondary/navel_rock_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/00.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/01.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/02.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/03.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/04.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/05.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/06.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/06.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/07.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/07.pal new file mode 100644 index 000000000000..364379ad9d46 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +197 213 205 +180 197 189 +164 172 172 +131 148 139 +255 0 255 +246 205 74 +255 0 255 +180 189 197 +180 189 197 +189 197 197 +164 172 172 +131 139 139 +106 106 106 +90 90 82 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/08.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/08.pal new file mode 100644 index 000000000000..102aaaf2cc78 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +197 213 205 +180 197 189 +164 172 172 +131 148 139 +255 0 255 +255 0 255 +255 0 255 +255 255 255 +255 255 255 +246 246 238 +222 222 213 +189 189 180 +156 156 139 +98 98 90 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/09.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/09.pal new file mode 100644 index 000000000000..91329f82ec6b --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 238 164 +197 213 205 +180 197 189 +164 172 172 +205 205 106 +205 205 197 +172 172 90 +123 131 74 +82 90 32 +106 106 82 +74 74 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/10.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/10.pal new file mode 100644 index 000000000000..334da8f23881 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 238 230 +172 172 164 +74 74 74 +0 0 0 +255 246 180 +238 222 123 +197 205 123 +197 213 205 +255 255 255 +255 255 255 +246 246 238 +222 222 213 +189 189 180 +156 156 139 +98 98 90 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/11.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/11.pal new file mode 100644 index 000000000000..0c3d2870e3ae --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +230 197 65 +197 213 205 +180 197 189 +164 172 172 +205 205 197 +255 230 65 +123 123 131 +255 255 255 +74 65 74 +238 238 230 +189 189 180 +238 238 230 +222 222 213 +205 205 197 +156 156 164 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/12.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/12.pal new file mode 100644 index 000000000000..a68c94c2c6f1 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +197 213 205 +180 197 189 +164 172 172 +131 148 139 +255 0 255 +255 0 255 +255 0 255 +139 156 180 +139 139 164 +131 139 148 +115 115 131 +90 90 106 +82 82 82 +57 65 65 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/13.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/14.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/navel_rock_frlg/palettes/15.pal b/data/tilesets/secondary/navel_rock_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/navel_rock_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/navel_rock_frlg/tiles.png b/data/tilesets/secondary/navel_rock_frlg/tiles.png new file mode 100644 index 000000000000..cbce25763a36 Binary files /dev/null and b/data/tilesets/secondary/navel_rock_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pallet_town_frlg/metatile_attributes.bin b/data/tilesets/secondary/pallet_town_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..bd99388ce83a Binary files /dev/null and b/data/tilesets/secondary/pallet_town_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pallet_town_frlg/metatiles.bin b/data/tilesets/secondary/pallet_town_frlg/metatiles.bin new file mode 100644 index 000000000000..41db27015095 Binary files /dev/null and b/data/tilesets/secondary/pallet_town_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/00.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/00.pal new file mode 100644 index 000000000000..42246e9ea73b --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 255 255 +139 213 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 189 139 +24 172 106 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/01.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/01.pal new file mode 100644 index 000000000000..28db536cb43b --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +238 238 238 +222 222 230 +172 189 205 +131 131 139 +65 49 65 +139 230 189 +74 205 131 +65 172 115 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/02.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/02.pal new file mode 100644 index 000000000000..937cec4da854 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +115 82 74 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +197 172 139 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/03.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/03.pal new file mode 100644 index 000000000000..6d1dfb5af46c --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 238 246 +189 139 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +172 32 41 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/04.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/04.pal new file mode 100644 index 000000000000..cde020d4ea5a --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +222 230 238 +230 213 164 +205 197 148 +222 180 164 +156 164 189 +82 106 213 +65 90 189 +57 82 156 +41 65 139 +172 197 230 +139 164 222 +106 131 213 +82 106 213 +189 148 139 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/05.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/05.pal new file mode 100644 index 000000000000..bdcc7b8ed092 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +238 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 172 +246 238 205 +222 205 131 +255 0 255 +65 189 139 +115 205 164 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/06.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/07.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/07.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/08.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/08.pal new file mode 100644 index 000000000000..dcecb9c40718 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +222 230 246 +189 197 222 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +255 205 180 +246 164 131 +222 139 106 +189 98 74 +123 205 164 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/09.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/09.pal new file mode 100644 index 000000000000..90bb77517197 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +222 230 246 +189 197 222 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +246 238 197 +230 222 148 +213 189 106 +197 148 74 +222 205 123 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/10.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/10.pal new file mode 100644 index 000000000000..1958eff11b30 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 205 148 +246 246 255 +189 197 222 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +98 156 238 +205 139 148 +189 123 131 +164 90 106 +139 65 82 +32 172 98 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/11.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/11.pal new file mode 100644 index 000000000000..896c79281af5 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 255 255 +156 230 197 +148 222 189 +139 213 189 +255 0 255 +255 0 255 +255 0 255 +189 238 213 +115 205 164 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/12.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/12.pal new file mode 100644 index 000000000000..2bfc45b6d384 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +156 230 197 +148 222 189 +139 213 189 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +189 238 213 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/13.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/14.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pallet_town_frlg/palettes/15.pal b/data/tilesets/secondary/pallet_town_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pallet_town_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pallet_town_frlg/tiles.png b/data/tilesets/secondary/pallet_town_frlg/tiles.png new file mode 100644 index 000000000000..771eed906cc7 Binary files /dev/null and b/data/tilesets/secondary/pallet_town_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pewter_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/pewter_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..4e19ca1853f4 Binary files /dev/null and b/data/tilesets/secondary/pewter_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pewter_city_frlg/metatiles.bin b/data/tilesets/secondary/pewter_city_frlg/metatiles.bin new file mode 100644 index 000000000000..a23224773df2 Binary files /dev/null and b/data/tilesets/secondary/pewter_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/00.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..620015e777bf --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/01.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..60de8c7ad121 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +255 0 255 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/02.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/03.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..9581f2cd8be5 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/04.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/05.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/06.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/07.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/08.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..d404706ab9e2 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 41 82 +246 246 255 +230 238 255 +197 205 222 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +222 106 98 +205 82 74 +222 230 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/09.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..cacf892a652e --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 205 246 +98 156 238 +57 123 222 +222 197 139 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/10.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..76fda8006ae3 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +230 238 255 +180 197 213 +131 148 164 +123 123 131 +90 90 115 +57 65 98 +255 246 238 +213 197 189 +172 156 148 +131 123 115 +246 213 246 +238 189 213 +197 115 180 +172 106 131 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/11.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..3f8fdc519c10 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +123 123 131 +230 238 255 +197 205 222 +164 180 197 +156 205 246 +98 156 238 +57 65 98 +255 246 238 +213 197 189 +172 156 148 +131 123 115 +57 123 222 +238 238 246 +213 222 222 +197 197 213 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/12.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/13.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/14.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_city_frlg/palettes/15.pal b/data/tilesets/secondary/pewter_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pewter_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_city_frlg/tiles.png b/data/tilesets/secondary/pewter_city_frlg/tiles.png new file mode 100644 index 000000000000..d3148ba5a111 Binary files /dev/null and b/data/tilesets/secondary/pewter_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pewter_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/pewter_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..6d45628f6515 Binary files /dev/null and b/data/tilesets/secondary/pewter_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pewter_gym_frlg/metatiles.bin b/data/tilesets/secondary/pewter_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..7034bb6d6552 Binary files /dev/null and b/data/tilesets/secondary/pewter_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/00.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..8db07d4180d2 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/01.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/02.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/03.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/04.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/05.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..0eef3df8e8fb --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/06.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/07.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..34c0ddd1717d --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 131 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/08.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..77e03a48cd35 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +172 172 164 +222 213 139 +180 172 98 +156 148 82 +213 255 197 +164 230 148 +123 172 148 +148 213 164 +156 74 41 +180 90 65 +213 131 106 +238 164 139 +246 238 205 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/09.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..ef91ae987825 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +172 172 164 +156 189 131 +222 205 115 +156 148 82 +123 106 57 +74 131 164 +98 172 205 +49 139 49 +106 205 164 +156 148 82 +115 164 106 +205 230 197 +238 255 238 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/10.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..131aaa71cb61 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/11.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..131aaa71cb61 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/12.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..c8dfac7d2278 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 131 131 +98 74 49 +131 106 82 +164 139 115 +197 189 139 +148 148 156 +172 172 172 +172 189 115 +205 222 148 +98 131 131 +131 164 164 +164 197 197 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/13.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/14.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_gym_frlg/palettes/15.pal b/data/tilesets/secondary/pewter_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pewter_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pewter_gym_frlg/tiles.png b/data/tilesets/secondary/pewter_gym_frlg/tiles.png new file mode 100644 index 000000000000..6e97a68a13d2 Binary files /dev/null and b/data/tilesets/secondary/pewter_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_center_frlg/metatile_attributes.bin b/data/tilesets/secondary/pokemon_center_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..7ce3f4752213 Binary files /dev/null and b/data/tilesets/secondary/pokemon_center_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pokemon_center_frlg/metatiles.bin b/data/tilesets/secondary/pokemon_center_frlg/metatiles.bin new file mode 100644 index 000000000000..2ec8817bca86 Binary files /dev/null and b/data/tilesets/secondary/pokemon_center_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/00.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/01.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/02.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/03.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/04.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/05.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/06.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/07.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/07.pal new file mode 100644 index 000000000000..27ca86ca31f4 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 222 205 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/08.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/08.pal new file mode 100644 index 000000000000..6b6a0f25f210 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +131 205 139 +230 189 115 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/09.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/09.pal new file mode 100644 index 000000000000..4b279ecf992b --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +82 82 106 +148 148 164 +205 189 197 +255 255 255 +189 148 49 +156 115 90 +197 238 148 +156 197 74 +106 164 41 +197 222 205 +139 180 172 +172 205 180 +123 123 139 +255 98 49 +238 222 164 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/10.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/10.pal new file mode 100644 index 000000000000..62e3e6d6bd27 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +189 98 74 +255 131 115 +255 0 255 +255 0 255 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +189 230 255 +189 230 255 +156 189 213 +90 131 180 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/11.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/11.pal new file mode 100644 index 000000000000..7ba7bcccaa06 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 222 156 +82 82 106 +123 123 123 +180 180 164 +222 230 230 +180 213 230 +131 180 205 +98 156 164 +57 115 139 +255 65 0 +205 49 0 +8 90 255 +0 57 197 +255 180 0 +0 230 115 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/12.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/12.pal new file mode 100644 index 000000000000..0f1f367389af --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +164 172 164 +180 189 189 +255 255 255 +115 115 123 +213 205 156 +238 238 172 +197 180 139 +230 222 156 +246 246 205 +0 82 123 +57 139 180 +115 197 238 +222 230 222 +131 131 139 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/13.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/14.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_center_frlg/palettes/15.pal b/data/tilesets/secondary/pokemon_center_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/pokemon_center_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_center_frlg/tiles.png b/data/tilesets/secondary/pokemon_center_frlg/tiles.png new file mode 100644 index 000000000000..92d0112f38af Binary files /dev/null and b/data/tilesets/secondary/pokemon_center_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_league_frlg/metatile_attributes.bin b/data/tilesets/secondary/pokemon_league_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..bcc2fedb440e Binary files /dev/null and b/data/tilesets/secondary/pokemon_league_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pokemon_league_frlg/metatiles.bin b/data/tilesets/secondary/pokemon_league_frlg/metatiles.bin new file mode 100644 index 000000000000..7cdfa846a884 Binary files /dev/null and b/data/tilesets/secondary/pokemon_league_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/00.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/00.pal new file mode 100644 index 000000000000..8db07d4180d2 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/01.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/01.pal new file mode 100644 index 000000000000..fc945ef6cc91 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/02.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/03.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/04.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/05.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/05.pal new file mode 100644 index 000000000000..34ef2f2d2eac --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +222 164 115 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/06.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/07.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/07.pal new file mode 100644 index 000000000000..6528f9f75f7d --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/08.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/08.pal new file mode 100644 index 000000000000..6b56cd49e698 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +222 222 222 +106 115 115 +189 230 255 +123 205 255 +98 180 246 +49 139 213 +180 180 164 +172 213 222 +156 197 205 +180 156 222 +156 131 205 +139 197 230 +131 172 222 +98 148 197 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/09.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/09.pal new file mode 100644 index 000000000000..5c2ed43a0051 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +222 222 222 +106 115 115 +222 230 238 +180 197 205 +148 164 180 +131 139 139 +238 238 238 +230 230 230 +213 213 213 +139 213 156 +123 189 139 +230 222 123 +213 205 106 +189 180 90 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/10.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/10.pal new file mode 100644 index 000000000000..18908d2ef15c --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +222 222 222 +106 115 115 +230 197 246 +180 82 205 +148 57 180 +230 222 123 +189 180 82 +230 230 172 +222 213 139 +222 164 164 +205 139 139 +205 180 238 +189 148 230 +164 131 205 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/11.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/11.pal new file mode 100644 index 000000000000..edc05893b76e --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 164 164 +255 255 255 +230 230 230 +123 123 123 +189 189 197 +148 148 156 +213 213 222 +98 98 106 +180 180 164 +230 172 164 +197 131 131 +180 82 205 +148 57 180 +106 189 189 +82 164 164 +57 139 139 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/12.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/12.pal new file mode 100644 index 000000000000..36807053a1e1 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 90 98 +98 123 139 +164 197 197 +222 238 238 +255 255 255 +123 123 123 +180 82 205 +131 49 164 +131 164 164 +230 213 156 +255 0 255 +213 131 222 +255 246 156 +90 16 131 +41 49 57 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/13.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/14.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_league_frlg/palettes/15.pal b/data/tilesets/secondary/pokemon_league_frlg/palettes/15.pal new file mode 100644 index 000000000000..0b5e86def41b --- /dev/null +++ b/data/tilesets/secondary/pokemon_league_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 230 255 diff --git a/data/tilesets/secondary/pokemon_league_frlg/tiles.png b/data/tilesets/secondary/pokemon_league_frlg/tiles.png new file mode 100644 index 000000000000..0f65e1ff3564 Binary files /dev/null and b/data/tilesets/secondary/pokemon_league_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/metatile_attributes.bin b/data/tilesets/secondary/pokemon_mansion_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..43bead9ab10f Binary files /dev/null and b/data/tilesets/secondary/pokemon_mansion_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/metatiles.bin b/data/tilesets/secondary/pokemon_mansion_frlg/metatiles.bin new file mode 100644 index 000000000000..5caba25a7b0b Binary files /dev/null and b/data/tilesets/secondary/pokemon_mansion_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/00.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/00.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/01.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/01.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/02.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/02.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/03.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/03.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/04.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/04.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/05.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/05.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/06.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/07.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/07.pal new file mode 100644 index 000000000000..4d22869cd51f --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 148 +82 131 106 +131 180 156 +180 230 205 +180 0 0 +255 0 0 +148 148 156 +172 172 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/08.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/08.pal new file mode 100644 index 000000000000..2a9d791a4238 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 148 +164 98 74 +222 148 123 +255 189 164 +139 82 57 +172 197 230 +213 222 238 +0 0 0 +0 0 0 +189 164 115 +0 0 0 +255 238 189 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/09.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/09.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/10.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/10.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/11.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/11.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/12.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/12.pal new file mode 100644 index 000000000000..9c9a571ef464 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 148 +164 98 74 +222 148 123 +255 189 164 +139 82 57 +189 131 156 +246 205 238 +139 115 49 +156 131 90 +189 164 115 +222 205 156 +255 238 189 +82 82 106 +123 123 139 +205 205 197 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/13.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/14.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/palettes/15.pal b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_mansion_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_mansion_frlg/tiles.png b/data/tilesets/secondary/pokemon_mansion_frlg/tiles.png new file mode 100644 index 000000000000..3e69db5c3e88 Binary files /dev/null and b/data/tilesets/secondary/pokemon_mansion_frlg/tiles.png differ diff --git a/data/tilesets/secondary/pokemon_tower_frlg/metatile_attributes.bin b/data/tilesets/secondary/pokemon_tower_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..a2f1a0f9a926 Binary files /dev/null and b/data/tilesets/secondary/pokemon_tower_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/pokemon_tower_frlg/metatiles.bin b/data/tilesets/secondary/pokemon_tower_frlg/metatiles.bin new file mode 100644 index 000000000000..d4216989eaae Binary files /dev/null and b/data/tilesets/secondary/pokemon_tower_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/00.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/00.pal new file mode 100644 index 000000000000..8db07d4180d2 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/01.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/01.pal new file mode 100644 index 000000000000..30be2fbe3f58 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/02.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/02.pal new file mode 100644 index 000000000000..e7c4b911ada2 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/03.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/03.pal new file mode 100644 index 000000000000..54b77e0c8452 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/04.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/05.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/06.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/07.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/07.pal new file mode 100644 index 000000000000..241a2678c68a --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 246 +82 123 82 +90 131 90 +106 156 106 +131 172 131 +180 156 222 +106 82 156 +139 115 189 +213 189 255 +255 0 255 +65 106 65 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/08.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/08.pal new file mode 100644 index 000000000000..ebd9e912ce31 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 246 +98 139 98 +106 156 106 +131 172 131 +148 189 148 +180 156 222 +205 139 32 +222 172 57 +246 238 164 +255 0 255 +82 123 82 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/09.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/09.pal new file mode 100644 index 000000000000..51daf670133a --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +115 115 115 +180 180 164 +238 238 246 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +172 123 32 +238 189 74 +74 205 205 +164 255 255 +255 255 255 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/10.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/11.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/12.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/12.pal new file mode 100644 index 000000000000..fa56f966e195 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 106 189 +156 123 205 +230 230 255 +115 115 123 +106 156 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 82 156 +156 131 205 +205 172 246 +189 164 230 +115 115 123 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/13.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/14.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/palettes/15.pal b/data/tilesets/secondary/pokemon_tower_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/pokemon_tower_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/pokemon_tower_frlg/tiles.png b/data/tilesets/secondary/pokemon_tower_frlg/tiles.png new file mode 100644 index 000000000000..b8f8c6a4dde2 Binary files /dev/null and b/data/tilesets/secondary/pokemon_tower_frlg/tiles.png differ diff --git a/data/tilesets/secondary/power_plant_frlg/metatile_attributes.bin b/data/tilesets/secondary/power_plant_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..c1ebebbcb35b Binary files /dev/null and b/data/tilesets/secondary/power_plant_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/power_plant_frlg/metatiles.bin b/data/tilesets/secondary/power_plant_frlg/metatiles.bin new file mode 100644 index 000000000000..7d1e1567669f Binary files /dev/null and b/data/tilesets/secondary/power_plant_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/00.pal b/data/tilesets/secondary/power_plant_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/01.pal b/data/tilesets/secondary/power_plant_frlg/palettes/01.pal new file mode 100644 index 000000000000..30be2fbe3f58 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/02.pal b/data/tilesets/secondary/power_plant_frlg/palettes/02.pal new file mode 100644 index 000000000000..e7c4b911ada2 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/03.pal b/data/tilesets/secondary/power_plant_frlg/palettes/03.pal new file mode 100644 index 000000000000..54b77e0c8452 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/04.pal b/data/tilesets/secondary/power_plant_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/05.pal b/data/tilesets/secondary/power_plant_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/06.pal b/data/tilesets/secondary/power_plant_frlg/palettes/06.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/07.pal b/data/tilesets/secondary/power_plant_frlg/palettes/07.pal new file mode 100644 index 000000000000..b69e6cfa4a9a --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +156 65 65 +57 106 16 +0 0 139 +98 123 156 +131 156 180 +164 189 213 +197 197 148 +213 205 172 +230 222 197 +164 156 164 +205 197 189 +82 82 106 +123 123 139 +246 238 222 +255 255 255 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/08.pal b/data/tilesets/secondary/power_plant_frlg/palettes/08.pal new file mode 100644 index 000000000000..3cada9fa116c --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +180 180 90 +222 222 148 +246 246 180 +156 65 65 +222 131 131 +189 98 98 +255 0 255 +255 0 255 +255 0 255 +164 156 164 +205 197 189 +82 82 106 +123 123 139 +246 238 222 +255 255 255 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/09.pal b/data/tilesets/secondary/power_plant_frlg/palettes/09.pal new file mode 100644 index 000000000000..2a1743eaafef --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/10.pal b/data/tilesets/secondary/power_plant_frlg/palettes/10.pal new file mode 100644 index 000000000000..2a1743eaafef --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/11.pal b/data/tilesets/secondary/power_plant_frlg/palettes/11.pal new file mode 100644 index 000000000000..307e0ea7e8a7 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/12.pal b/data/tilesets/secondary/power_plant_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/13.pal b/data/tilesets/secondary/power_plant_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/14.pal b/data/tilesets/secondary/power_plant_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/palettes/15.pal b/data/tilesets/secondary/power_plant_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/power_plant_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/power_plant_frlg/tiles.png b/data/tilesets/secondary/power_plant_frlg/tiles.png new file mode 100644 index 000000000000..d252dbcd30ff Binary files /dev/null and b/data/tilesets/secondary/power_plant_frlg/tiles.png differ diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/metatile_attributes.bin b/data/tilesets/secondary/restaurant_hotel_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..6652fce50bf3 Binary files /dev/null and b/data/tilesets/secondary/restaurant_hotel_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/metatiles.bin b/data/tilesets/secondary/restaurant_hotel_frlg/metatiles.bin new file mode 100644 index 000000000000..5cddd954c0f1 Binary files /dev/null and b/data/tilesets/secondary/restaurant_hotel_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/00.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/01.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/01.pal new file mode 100644 index 000000000000..30be2fbe3f58 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/02.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/02.pal new file mode 100644 index 000000000000..e7c4b911ada2 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/03.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/03.pal new file mode 100644 index 000000000000..54b77e0c8452 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/04.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/05.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/06.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/06.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/07.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/07.pal new file mode 100644 index 000000000000..5e3bac102cf7 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +255 205 90 +82 148 197 +189 230 255 +139 98 41 +156 123 65 +180 148 90 +205 172 115 +246 213 172 +205 106 90 +255 148 131 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/08.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/08.pal new file mode 100644 index 000000000000..2257c0006796 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +230 222 246 +255 255 255 +255 205 98 +255 255 148 +189 230 255 +180 148 90 +255 139 180 +197 180 131 +213 213 164 +238 238 213 +106 197 106 +205 106 90 +131 115 16 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/09.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/09.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/10.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/10.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/11.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/11.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/12.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/13.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/14.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/palettes/15.pal b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/15.pal new file mode 100644 index 000000000000..71b5ee827718 --- /dev/null +++ b/data/tilesets/secondary/restaurant_hotel_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/restaurant_hotel_frlg/tiles.png b/data/tilesets/secondary/restaurant_hotel_frlg/tiles.png new file mode 100644 index 000000000000..5c8a38b9edf2 Binary files /dev/null and b/data/tilesets/secondary/restaurant_hotel_frlg/tiles.png differ diff --git a/data/tilesets/secondary/rock_tunnel_frlg/metatile_attributes.bin b/data/tilesets/secondary/rock_tunnel_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..7195b71a2763 Binary files /dev/null and b/data/tilesets/secondary/rock_tunnel_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/rock_tunnel_frlg/metatiles.bin b/data/tilesets/secondary/rock_tunnel_frlg/metatiles.bin new file mode 100644 index 000000000000..0ee478c87629 Binary files /dev/null and b/data/tilesets/secondary/rock_tunnel_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/00.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/01.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/02.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/03.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/04.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/05.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/06.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/06.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/07.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/07.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/08.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/08.pal new file mode 100644 index 000000000000..34a637b1a9f3 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 189 115 +172 172 115 +156 156 115 +131 131 115 +98 106 90 +255 0 255 +255 0 255 +255 0 255 +197 230 230 +180 213 213 +172 189 197 +131 156 156 +90 115 115 +74 82 82 +49 57 57 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/09.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/09.pal new file mode 100644 index 000000000000..f10a94f7c25a --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 189 115 +172 172 115 +156 156 115 +131 131 115 +238 222 123 +255 0 255 +222 180 57 +189 148 57 +148 115 74 +106 106 82 +74 74 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/10.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/10.pal new file mode 100644 index 000000000000..4235579fc41e --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +238 238 180 +230 213 123 +205 180 98 +156 156 115 +197 230 230 +180 213 213 +172 189 197 +131 156 156 +90 115 115 +74 82 82 +49 57 57 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/11.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/11.pal new file mode 100644 index 000000000000..27717297657b --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 189 115 +172 172 115 +156 156 115 +131 131 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 156 98 +148 139 98 +115 123 98 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/12.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/12.pal new file mode 100644 index 000000000000..2fa21e9fbacb --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/13.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/14.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/palettes/15.pal b/data/tilesets/secondary/rock_tunnel_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/rock_tunnel_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/rock_tunnel_frlg/tiles.png b/data/tilesets/secondary/rock_tunnel_frlg/tiles.png new file mode 100644 index 000000000000..cb4078fa9236 Binary files /dev/null and b/data/tilesets/secondary/rock_tunnel_frlg/tiles.png differ diff --git a/data/tilesets/secondary/safari_zone_building_frlg/metatile_attributes.bin b/data/tilesets/secondary/safari_zone_building_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..b3edaca96102 Binary files /dev/null and b/data/tilesets/secondary/safari_zone_building_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/safari_zone_building_frlg/metatiles.bin b/data/tilesets/secondary/safari_zone_building_frlg/metatiles.bin new file mode 100644 index 000000000000..3337a5393720 Binary files /dev/null and b/data/tilesets/secondary/safari_zone_building_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/00.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/00.pal new file mode 100644 index 000000000000..620015e777bf --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 139 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/01.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/02.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/02.pal new file mode 100644 index 000000000000..ddec077d01d4 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +115 82 74 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +197 172 139 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/03.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/03.pal new file mode 100644 index 000000000000..6d1dfb5af46c --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 238 246 +189 139 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +172 32 41 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/04.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/05.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/05.pal new file mode 100644 index 000000000000..9de0ef422ffe --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 238 164 +255 0 255 +255 0 255 +180 222 164 +131 213 164 +115 205 164 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/06.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/06.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/07.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/07.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/08.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/08.pal new file mode 100644 index 000000000000..eed6dbc35936 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 197 180 +74 74 90 +123 123 131 +189 197 189 +255 0 255 +205 222 222 +90 90 65 +131 115 74 +148 148 115 +189 189 131 +238 238 139 +238 238 246 +74 98 65 +74 156 65 +115 197 98 +156 230 98 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/09.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/09.pal new file mode 100644 index 000000000000..e9b93cfd22f0 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 197 180 +74 74 90 +123 123 131 +205 213 213 +205 156 115 +238 172 115 +106 123 74 +156 148 98 +197 172 115 +222 205 139 +230 222 156 +90 90 49 +213 180 230 +164 139 197 +148 115 172 +123 98 131 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/10.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/10.pal new file mode 100644 index 000000000000..1f08b0f6fa89 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +238 172 115 +205 156 115 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +156 148 98 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/11.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/12.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/13.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/14.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/palettes/15.pal b/data/tilesets/secondary/safari_zone_building_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/safari_zone_building_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/safari_zone_building_frlg/tiles.png b/data/tilesets/secondary/safari_zone_building_frlg/tiles.png new file mode 100644 index 000000000000..6c8d53e34ce3 Binary files /dev/null and b/data/tilesets/secondary/safari_zone_building_frlg/tiles.png differ diff --git a/data/tilesets/secondary/saffron_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/saffron_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..bcc8d5517e4b Binary files /dev/null and b/data/tilesets/secondary/saffron_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/saffron_city_frlg/metatiles.bin b/data/tilesets/secondary/saffron_city_frlg/metatiles.bin new file mode 100644 index 000000000000..dd43794df62a Binary files /dev/null and b/data/tilesets/secondary/saffron_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/00.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..9dcb673aaf75 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/01.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..391d1e3d17b8 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/02.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/03.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..973765509c44 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/04.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/05.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/06.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/07.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/08.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..b1e16885507b --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +197 197 197 +222 222 230 +148 164 180 +123 123 131 +65 74 106 +246 246 255 +205 164 255 +164 131 205 +123 90 164 +255 0 255 +255 0 255 +255 0 255 +164 131 205 +205 164 255 +90 90 115 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/09.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..7a88fdbbf61d --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +255 255 255 +205 205 213 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 238 246 +255 238 139 +230 189 82 +238 148 115 +222 246 255 +172 230 255 +123 205 213 +197 106 74 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/10.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..ce671fee4a26 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +24 255 82 +238 238 238 +222 222 230 +123 123 131 +172 189 205 +65 74 106 +222 222 205 +205 205 189 +180 180 164 +213 213 164 +189 189 139 +148 148 98 +32 82 164 +156 205 246 +82 164 205 +115 205 164 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/11.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..d1ae629c8ef5 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +197 197 205 +49 98 164 +172 222 180 +139 189 148 +106 156 115 +82 131 90 +65 115 74 +255 0 255 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/12.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..b66bd774a765 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 255 255 +222 222 230 +139 156 172 +123 123 131 +82 82 106 +213 205 32 +246 238 74 +164 131 205 +164 156 16 +205 197 106 +255 255 148 +139 189 148 +74 131 197 +197 197 205 +115 189 246 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/13.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/14.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_city_frlg/palettes/15.pal b/data/tilesets/secondary/saffron_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..3ffc684ac7cd --- /dev/null +++ b/data/tilesets/secondary/saffron_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 222 164 +222 205 131 +205 180 106 +213 213 197 +197 197 180 +164 164 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_city_frlg/tiles.png b/data/tilesets/secondary/saffron_city_frlg/tiles.png new file mode 100644 index 000000000000..ea835f8ddf1b Binary files /dev/null and b/data/tilesets/secondary/saffron_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/saffron_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/saffron_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..aa5259655580 Binary files /dev/null and b/data/tilesets/secondary/saffron_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/saffron_gym_frlg/metatiles.bin b/data/tilesets/secondary/saffron_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..e0fdb79fbc5d Binary files /dev/null and b/data/tilesets/secondary/saffron_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/00.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/01.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..3a16a45c79a0 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/02.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..c8ee236d76d6 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +255 0 255 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/03.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..b17dbb054879 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 164 164 +180 189 189 +255 255 255 +238 246 238 +213 230 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/04.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/05.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/06.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/07.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..c66eaedff69c --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 131 +197 189 213 +255 255 255 +180 123 148 +230 139 230 +255 222 255 +213 213 222 +213 98 65 +246 139 106 +255 0 255 +255 0 255 +255 0 255 +205 246 255 +98 197 238 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/08.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/09.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/10.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/11.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/12.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..702c67ecb801 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 131 +197 189 213 +255 255 255 +148 148 156 +180 139 222 +205 172 246 +222 205 255 +106 123 172 +131 148 197 +156 172 230 +65 205 82 +180 255 197 +246 164 115 +255 230 148 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/13.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/14.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/palettes/15.pal b/data/tilesets/secondary/saffron_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/saffron_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/saffron_gym_frlg/tiles.png b/data/tilesets/secondary/saffron_gym_frlg/tiles.png new file mode 100644 index 000000000000..87641a309c8e Binary files /dev/null and b/data/tilesets/secondary/saffron_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/school_frlg/metatile_attributes.bin b/data/tilesets/secondary/school_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..c01201dcce2d Binary files /dev/null and b/data/tilesets/secondary/school_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/school_frlg/metatiles.bin b/data/tilesets/secondary/school_frlg/metatiles.bin new file mode 100644 index 000000000000..35009a690963 Binary files /dev/null and b/data/tilesets/secondary/school_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/school_frlg/palettes/00.pal b/data/tilesets/secondary/school_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/school_frlg/palettes/01.pal b/data/tilesets/secondary/school_frlg/palettes/01.pal new file mode 100644 index 000000000000..30be2fbe3f58 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/school_frlg/palettes/02.pal b/data/tilesets/secondary/school_frlg/palettes/02.pal new file mode 100644 index 000000000000..e7c4b911ada2 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/school_frlg/palettes/03.pal b/data/tilesets/secondary/school_frlg/palettes/03.pal new file mode 100644 index 000000000000..54b77e0c8452 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/school_frlg/palettes/04.pal b/data/tilesets/secondary/school_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/05.pal b/data/tilesets/secondary/school_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/06.pal b/data/tilesets/secondary/school_frlg/palettes/06.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/07.pal b/data/tilesets/secondary/school_frlg/palettes/07.pal new file mode 100644 index 000000000000..6c1a5b0967f9 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +172 148 90 +213 189 131 +255 230 172 +255 255 98 +255 197 197 +98 156 74 +148 205 123 +98 156 172 +123 180 197 +156 205 222 +189 230 246 diff --git a/data/tilesets/secondary/school_frlg/palettes/08.pal b/data/tilesets/secondary/school_frlg/palettes/08.pal new file mode 100644 index 000000000000..1557a55f0e7c --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +123 131 82 +139 148 82 +156 164 90 +172 180 106 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/09.pal b/data/tilesets/secondary/school_frlg/palettes/09.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/10.pal b/data/tilesets/secondary/school_frlg/palettes/10.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/11.pal b/data/tilesets/secondary/school_frlg/palettes/11.pal new file mode 100644 index 000000000000..c06a049b0e5c --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/12.pal b/data/tilesets/secondary/school_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/13.pal b/data/tilesets/secondary/school_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/14.pal b/data/tilesets/secondary/school_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/school_frlg/palettes/15.pal b/data/tilesets/secondary/school_frlg/palettes/15.pal new file mode 100644 index 000000000000..71b5ee827718 --- /dev/null +++ b/data/tilesets/secondary/school_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 diff --git a/data/tilesets/secondary/school_frlg/tiles.png b/data/tilesets/secondary/school_frlg/tiles.png new file mode 100644 index 000000000000..935afccd2fc6 Binary files /dev/null and b/data/tilesets/secondary/school_frlg/tiles.png differ diff --git a/data/tilesets/secondary/sea_cottage_frlg/metatile_attributes.bin b/data/tilesets/secondary/sea_cottage_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..599482a47c78 Binary files /dev/null and b/data/tilesets/secondary/sea_cottage_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/sea_cottage_frlg/metatiles.bin b/data/tilesets/secondary/sea_cottage_frlg/metatiles.bin new file mode 100644 index 000000000000..6ac3cbf9840c Binary files /dev/null and b/data/tilesets/secondary/sea_cottage_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/00.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/00.pal new file mode 100644 index 000000000000..ed708dd79a6a --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/01.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/01.pal new file mode 100644 index 000000000000..4d2b4899195a --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/02.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/02.pal new file mode 100644 index 000000000000..878c13c95dca --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/03.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/03.pal new file mode 100644 index 000000000000..bed4c20c37cc --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/04.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/04.pal new file mode 100644 index 000000000000..b77ba3e87372 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/05.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/05.pal new file mode 100644 index 000000000000..74a2a9ed0d48 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/06.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/07.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/07.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/08.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/08.pal new file mode 100644 index 000000000000..370a3d2dbbb3 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +139 164 164 +164 189 189 +205 222 222 +205 238 238 +90 139 115 +139 148 115 +106 189 197 +82 180 106 +115 222 148 +148 246 180 +131 123 57 +197 106 74 +238 148 74 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/09.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/09.pal new file mode 100644 index 000000000000..1193cc807f8c --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +98 106 148 +115 131 197 +139 164 230 +164 213 246 +197 197 197 +238 230 205 +255 0 255 +106 98 90 +131 115 90 +156 139 90 +131 139 90 +164 156 90 +189 172 90 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/10.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/10.pal new file mode 100644 index 000000000000..e8624e82f923 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +139 164 164 +164 189 189 +205 222 222 +205 238 238 +90 139 115 +0 0 0 +0 0 0 +82 180 106 +115 222 148 +205 197 57 +230 230 139 +238 131 74 +255 180 98 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/11.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/11.pal new file mode 100644 index 000000000000..9cec1272b936 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +0 0 0 +0 0 0 +0 0 0 +205 238 238 +222 255 255 +0 0 0 +106 189 197 +106 246 230 +164 255 238 +0 0 0 +131 123 57 +197 106 74 +238 148 74 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/12.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/12.pal new file mode 100644 index 000000000000..600d8f469645 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 205 172 +82 82 106 +131 131 131 +255 255 255 +90 230 255 +213 255 255 +148 238 255 +90 139 115 +0 0 0 +0 0 0 +82 180 106 +115 222 148 +148 246 180 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/13.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/14.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sea_cottage_frlg/palettes/15.pal b/data/tilesets/secondary/sea_cottage_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sea_cottage_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sea_cottage_frlg/tiles.png b/data/tilesets/secondary/sea_cottage_frlg/tiles.png new file mode 100644 index 000000000000..42d557bcfd36 Binary files /dev/null and b/data/tilesets/secondary/sea_cottage_frlg/tiles.png differ diff --git a/data/tilesets/secondary/seafoam_islands_frlg/metatile_attributes.bin b/data/tilesets/secondary/seafoam_islands_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..7becb8211dd0 Binary files /dev/null and b/data/tilesets/secondary/seafoam_islands_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/seafoam_islands_frlg/metatiles.bin b/data/tilesets/secondary/seafoam_islands_frlg/metatiles.bin new file mode 100644 index 000000000000..8f8bd569b2d6 Binary files /dev/null and b/data/tilesets/secondary/seafoam_islands_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/00.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/01.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/02.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/03.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/04.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/05.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/06.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/06.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/07.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/07.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/08.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/08.pal new file mode 100644 index 000000000000..d96f3f0fc255 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 213 230 +189 197 230 +172 180 213 +148 156 172 +156 238 255 +164 246 255 +213 255 255 +205 230 238 +238 238 246 +180 205 238 +123 180 230 +90 156 197 +98 123 172 +82 98 131 +65 74 82 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/09.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/09.pal new file mode 100644 index 000000000000..1a1dc881b76b --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 213 230 +189 197 230 +172 180 213 +148 156 172 +255 238 164 +238 230 139 +230 205 90 +197 172 74 +156 123 57 +106 82 115 +65 57 74 +0 0 0 +98 139 197 +74 115 172 +57 98 156 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/10.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/10.pal new file mode 100644 index 000000000000..7116e91ff6b9 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +238 238 180 +238 222 148 +189 222 156 +205 230 238 +238 238 246 +180 205 238 +123 180 230 +90 156 197 +98 123 172 +82 98 131 +65 74 82 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/11.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/11.pal new file mode 100644 index 000000000000..b237ef1c825e --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +189 213 230 +189 197 230 +172 180 213 +148 156 172 +156 238 255 +164 246 255 +213 255 255 +106 230 255 +41 205 255 +32 131 255 +32 82 197 +32 74 131 +205 230 172 +189 213 172 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/12.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/12.pal new file mode 100644 index 000000000000..ed56edee1c99 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/13.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/14.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/palettes/15.pal b/data/tilesets/secondary/seafoam_islands_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/seafoam_islands_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/seafoam_islands_frlg/tiles.png b/data/tilesets/secondary/seafoam_islands_frlg/tiles.png new file mode 100644 index 000000000000..e085d8e33f3f Binary files /dev/null and b/data/tilesets/secondary/seafoam_islands_frlg/tiles.png differ diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/metatile_attributes.bin b/data/tilesets/secondary/sevii_islands_123_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..76f77dd0477a Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_123_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/metatiles.bin b/data/tilesets/secondary/sevii_islands_123_frlg/metatiles.bin new file mode 100644 index 000000000000..52d2f020d970 Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_123_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/00.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/01.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/01.pal new file mode 100644 index 000000000000..e15d979f128b --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/02.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/03.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/04.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/04.pal new file mode 100644 index 000000000000..fca4a2623911 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/05.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/05.pal new file mode 100644 index 000000000000..09555ded561b --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/06.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/06.pal new file mode 100644 index 000000000000..f8ebbc6dc2bd --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/07.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/08.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/08.pal new file mode 100644 index 000000000000..4d9ab6348057 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +131 197 164 +98 164 131 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 255 +222 172 230 +172 123 189 +148 98 164 +115 65 131 +238 213 156 +205 189 123 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/09.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/09.pal new file mode 100644 index 000000000000..b66fdcdbf840 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +115 189 246 +98 164 222 +123 123 131 +90 90 115 +65 74 106 +246 246 213 +230 230 189 +189 189 148 +172 172 131 +156 156 115 +230 222 115 +246 156 115 +222 115 98 +131 230 180 +49 164 123 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/10.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/10.pal new file mode 100644 index 000000000000..265fb0625eca --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +205 222 238 +156 172 189 +123 123 131 +90 90 115 +65 74 106 +255 255 180 +255 238 123 +156 115 65 +238 197 246 +213 156 213 +189 106 172 +238 230 74 +238 189 0 +222 156 0 +255 255 255 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/11.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/11.pal new file mode 100644 index 000000000000..9e1e423c6767 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +238 238 246 +197 205 222 +172 172 197 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +123 139 222 +115 189 246 +255 230 156 +255 189 65 +238 164 41 +213 131 16 +180 82 0 +255 205 106 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/12.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/12.pal new file mode 100644 index 000000000000..375e3914b90a --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +65 49 65 +230 238 238 +90 189 139 +90 90 115 +230 230 222 +213 213 197 +180 180 164 +148 148 131 +123 123 90 +98 98 74 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/13.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/14.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/palettes/15.pal b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_123_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_123_frlg/tiles.png b/data/tilesets/secondary/sevii_islands_123_frlg/tiles.png new file mode 100644 index 000000000000..ad8f73a2c665 Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_123_frlg/tiles.png differ diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/metatile_attributes.bin b/data/tilesets/secondary/sevii_islands_45_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..d67c4690c303 Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_45_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/metatiles.bin b/data/tilesets/secondary/sevii_islands_45_frlg/metatiles.bin new file mode 100644 index 000000000000..7613f37024fd Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_45_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/00.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/01.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/01.pal new file mode 100644 index 000000000000..d8a4e7757d1b --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/02.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/03.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/04.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/04.pal new file mode 100644 index 000000000000..fca4a2623911 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +74 139 189 +65 123 189 +82 139 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/05.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/05.pal new file mode 100644 index 000000000000..09555ded561b --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/06.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/06.pal new file mode 100644 index 000000000000..f8ebbc6dc2bd --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +213 238 255 +172 205 255 +139 180 238 +106 156 230 +65 123 172 +41 98 156 +74 115 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 172 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/07.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/08.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/08.pal new file mode 100644 index 000000000000..4d9ab6348057 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +131 197 164 +98 164 131 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 255 +222 172 230 +172 123 189 +148 98 164 +115 65 131 +238 213 156 +205 189 123 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/09.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/09.pal new file mode 100644 index 000000000000..5ac617b25f37 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +156 156 222 +255 238 189 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 139 +230 172 98 +213 139 74 +197 115 49 +156 90 16 +115 189 246 +74 131 197 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/10.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/10.pal new file mode 100644 index 000000000000..86502dd48ef7 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +205 222 230 +164 180 197 +123 123 131 +90 90 115 +65 74 106 +205 197 148 +180 172 123 +156 148 106 +230 156 106 +197 115 74 +172 98 49 +148 82 32 +205 222 230 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/11.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/11.pal new file mode 100644 index 000000000000..b05410cbad36 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 0 +0 0 0 +0 0 0 +131 131 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/12.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/12.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/13.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/14.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/palettes/15.pal b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_45_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_45_frlg/tiles.png b/data/tilesets/secondary/sevii_islands_45_frlg/tiles.png new file mode 100644 index 000000000000..744b38638c50 Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_45_frlg/tiles.png differ diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/metatile_attributes.bin b/data/tilesets/secondary/sevii_islands_67_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..b4fe36868060 Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_67_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/metatiles.bin b/data/tilesets/secondary/sevii_islands_67_frlg/metatiles.bin new file mode 100644 index 000000000000..13f97073b8ed Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_67_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/00.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/01.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/01.pal new file mode 100644 index 000000000000..09828f4f1f27 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/02.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/03.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/04.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/04.pal new file mode 100644 index 000000000000..5871a448c008 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/05.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/06.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/06.pal new file mode 100644 index 000000000000..9bad44649513 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/07.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/07.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/08.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/08.pal new file mode 100644 index 000000000000..4d9ab6348057 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +131 197 164 +98 164 131 +123 123 131 +90 90 115 +65 74 106 +222 230 238 +197 213 230 +164 180 197 +255 222 255 +222 172 230 +172 123 189 +148 98 164 +115 65 131 +238 213 156 +205 189 123 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/09.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/09.pal new file mode 100644 index 000000000000..edc5961bb5ac --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 246 255 +197 213 222 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +115 172 246 +65 123 172 +49 90 139 +32 74 123 +189 230 164 +115 156 90 +148 131 74 +156 213 255 +98 164 230 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/10.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/10.pal new file mode 100644 index 000000000000..d26d003afbf5 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +238 246 255 +197 213 222 +172 189 197 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +255 0 255 +131 172 148 +189 180 164 +172 164 156 +148 139 139 +123 115 115 +106 98 106 +115 205 164 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/11.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/11.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/12.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/12.pal new file mode 100644 index 000000000000..995731c23cc0 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/13.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/14.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/palettes/15.pal b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/sevii_islands_67_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/sevii_islands_67_frlg/tiles.png b/data/tilesets/secondary/sevii_islands_67_frlg/tiles.png new file mode 100644 index 000000000000..d40c92649aeb Binary files /dev/null and b/data/tilesets/secondary/sevii_islands_67_frlg/tiles.png differ diff --git a/data/tilesets/secondary/silph_co_frlg/anim/fountain/0.png b/data/tilesets/secondary/silph_co_frlg/anim/fountain/0.png new file mode 100644 index 000000000000..09714447b9cc Binary files /dev/null and b/data/tilesets/secondary/silph_co_frlg/anim/fountain/0.png differ diff --git a/data/tilesets/secondary/silph_co_frlg/anim/fountain/1.png b/data/tilesets/secondary/silph_co_frlg/anim/fountain/1.png new file mode 100644 index 000000000000..5063c1476e1f Binary files /dev/null and b/data/tilesets/secondary/silph_co_frlg/anim/fountain/1.png differ diff --git a/data/tilesets/secondary/silph_co_frlg/anim/fountain/2.png b/data/tilesets/secondary/silph_co_frlg/anim/fountain/2.png new file mode 100644 index 000000000000..eb46683ea93b Binary files /dev/null and b/data/tilesets/secondary/silph_co_frlg/anim/fountain/2.png differ diff --git a/data/tilesets/secondary/silph_co_frlg/anim/fountain/3.png b/data/tilesets/secondary/silph_co_frlg/anim/fountain/3.png new file mode 100644 index 000000000000..e582fbce24f0 Binary files /dev/null and b/data/tilesets/secondary/silph_co_frlg/anim/fountain/3.png differ diff --git a/data/tilesets/secondary/silph_co_frlg/metatile_attributes.bin b/data/tilesets/secondary/silph_co_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..fe4e55d57b53 Binary files /dev/null and b/data/tilesets/secondary/silph_co_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/silph_co_frlg/metatiles.bin b/data/tilesets/secondary/silph_co_frlg/metatiles.bin new file mode 100644 index 000000000000..c86070668b57 Binary files /dev/null and b/data/tilesets/secondary/silph_co_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/ss_anne_frlg/metatile_attributes.bin b/data/tilesets/secondary/ss_anne_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..0e1deb580fd5 Binary files /dev/null and b/data/tilesets/secondary/ss_anne_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/ss_anne_frlg/metatiles.bin b/data/tilesets/secondary/ss_anne_frlg/metatiles.bin new file mode 100644 index 000000000000..a976297b3ea1 Binary files /dev/null and b/data/tilesets/secondary/ss_anne_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/00.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/00.pal new file mode 100644 index 000000000000..28232d99edd0 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/01.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/01.pal new file mode 100644 index 000000000000..b43532470f65 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/02.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/02.pal new file mode 100644 index 000000000000..e267ae90e403 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/03.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/03.pal new file mode 100644 index 000000000000..503f22878d98 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/04.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/04.pal new file mode 100644 index 000000000000..cdf1b6190640 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +57 148 197 +32 131 172 +82 148 213 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/05.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/05.pal new file mode 100644 index 000000000000..09555ded561b --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/06.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/06.pal new file mode 100644 index 000000000000..0dba59a72c27 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 255 255 +172 222 255 +148 189 238 +106 156 230 +41 90 172 +41 57 148 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +230 213 148 +238 230 139 +222 197 139 +213 189 106 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/07.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/07.pal new file mode 100644 index 000000000000..e9848a1c072e --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +82 82 106 +115 115 139 +148 148 172 +189 189 205 +222 222 230 +255 255 255 +180 180 74 +205 205 98 +255 255 98 +98 98 172 +131 131 213 +164 164 255 +131 98 41 +164 139 82 +205 180 123 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/08.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/08.pal new file mode 100644 index 000000000000..b5c80c8f409b --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +90 156 57 +131 180 49 +172 205 49 +197 230 98 +222 255 148 +222 172 98 +255 197 98 +255 222 156 +131 98 41 +164 139 82 +205 180 123 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/09.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/09.pal new file mode 100644 index 000000000000..b66b2399a661 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +255 0 255 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +255 0 255 +255 0 255 +255 0 255 +131 98 41 +164 139 82 +205 180 123 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/10.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/10.pal new file mode 100644 index 000000000000..2a1743eaafef --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/11.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/11.pal new file mode 100644 index 000000000000..307e0ea7e8a7 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 156 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/12.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/13.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/14.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/ss_anne_frlg/palettes/15.pal b/data/tilesets/secondary/ss_anne_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/ss_anne_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/ss_anne_frlg/tiles.png b/data/tilesets/secondary/ss_anne_frlg/tiles.png new file mode 100644 index 000000000000..280f3e227720 Binary files /dev/null and b/data/tilesets/secondary/ss_anne_frlg/tiles.png differ diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/metatile_attributes.bin b/data/tilesets/secondary/tanoby_ruins_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..5fe7d59fc4e3 Binary files /dev/null and b/data/tilesets/secondary/tanoby_ruins_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/metatiles.bin b/data/tilesets/secondary/tanoby_ruins_frlg/metatiles.bin new file mode 100644 index 000000000000..2b3a9543e11c Binary files /dev/null and b/data/tilesets/secondary/tanoby_ruins_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/00.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/00.pal new file mode 100644 index 000000000000..83b30fc17a34 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/01.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/02.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/03.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/04.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/05.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/05.pal new file mode 100644 index 000000000000..c7780e5c7515 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/06.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/07.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/07.pal new file mode 100644 index 000000000000..dfa7796353f8 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +131 131 131 +98 131 131 +139 172 172 +164 205 189 +98 106 131 +90 98 106 +98 156 197 +164 172 139 +139 156 139 +115 123 123 +205 213 156 +180 197 156 +164 172 156 +90 0 255 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/08.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/08.pal new file mode 100644 index 000000000000..fd7d8a9d79b2 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +205 139 189 +213 148 74 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/09.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/09.pal new file mode 100644 index 000000000000..0d43d6ef9430 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +131 205 82 +230 213 82 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/10.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/10.pal new file mode 100644 index 000000000000..fb565545bf13 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +90 0 255 +222 222 230 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/11.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/11.pal new file mode 100644 index 000000000000..e637019c6b0a --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +90 0 255 +139 148 139 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/12.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/12.pal new file mode 100644 index 000000000000..775369fed94d --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 172 82 +82 82 106 +230 222 164 +156 148 90 +123 115 115 +205 197 106 +164 156 90 +189 172 90 +246 246 222 +238 238 164 +98 106 90 +205 213 156 +139 148 106 +98 98 106 +90 0 255 +156 197 213 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/13.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/14.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/palettes/15.pal b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/tanoby_ruins_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/tanoby_ruins_frlg/tiles.png b/data/tilesets/secondary/tanoby_ruins_frlg/tiles.png new file mode 100644 index 000000000000..c61f91c47ce0 Binary files /dev/null and b/data/tilesets/secondary/tanoby_ruins_frlg/tiles.png differ diff --git a/data/tilesets/secondary/trainer_tower_frlg/metatile_attributes.bin b/data/tilesets/secondary/trainer_tower_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..b499b0fa9b2d Binary files /dev/null and b/data/tilesets/secondary/trainer_tower_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/trainer_tower_frlg/metatiles.bin b/data/tilesets/secondary/trainer_tower_frlg/metatiles.bin new file mode 100644 index 000000000000..f045f57e8886 Binary files /dev/null and b/data/tilesets/secondary/trainer_tower_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/00.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/00.pal new file mode 100644 index 000000000000..8db07d4180d2 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/01.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/02.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/03.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/04.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/05.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/05.pal new file mode 100644 index 000000000000..c7780e5c7515 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +197 197 205 +205 82 65 +0 0 0 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/06.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/07.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/07.pal new file mode 100644 index 000000000000..edc5961bb5ac --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +238 246 255 +197 213 222 +139 156 172 +123 123 131 +90 90 115 +65 74 106 +115 172 246 +65 123 172 +49 90 139 +32 74 123 +189 230 164 +115 156 90 +148 131 74 +156 213 255 +98 164 230 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/08.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/08.pal new file mode 100644 index 000000000000..317213c427fd --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +123 74 148 +148 106 180 +230 213 246 +205 172 213 +222 213 90 +197 189 65 +189 180 49 +172 164 32 +213 205 90 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/09.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/09.pal new file mode 100644 index 000000000000..19dc9a47e98f --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +255 0 255 +255 131 115 +106 197 106 +164 255 180 +238 197 115 +213 131 74 +189 213 230 +123 156 180 +90 123 156 +156 180 205 +222 230 238 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/10.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/10.pal new file mode 100644 index 000000000000..ab3a7d14f8a7 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +172 213 255 +139 189 246 +123 172 222 +98 180 230 +106 148 213 +255 0 255 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +189 230 255 +189 230 255 +156 189 213 +90 131 180 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/11.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/11.pal new file mode 100644 index 000000000000..bb88b4d57179 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +148 148 148 +123 123 123 +98 98 98 +82 82 106 +255 213 90 +230 164 74 +255 0 255 +222 230 238 +197 205 156 +205 139 115 +172 172 172 +222 230 189 +230 172 139 +0 0 0 +255 255 255 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/12.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/12.pal new file mode 100644 index 000000000000..b0d005f21c41 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +205 205 205 +255 131 65 +222 98 32 +255 0 255 +222 213 90 +197 189 65 +189 180 49 +172 164 32 +213 205 90 +148 148 148 +230 230 230 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/13.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/14.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/trainer_tower_frlg/palettes/15.pal b/data/tilesets/secondary/trainer_tower_frlg/palettes/15.pal new file mode 100644 index 000000000000..6a17f18dc2b2 --- /dev/null +++ b/data/tilesets/secondary/trainer_tower_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +172 222 172 +189 238 197 +139 189 139 +205 246 213 +172 222 172 +74 106 156 +90 131 180 +213 222 222 +156 189 213 +238 139 98 +189 98 74 +156 65 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/trainer_tower_frlg/tiles.png b/data/tilesets/secondary/trainer_tower_frlg/tiles.png new file mode 100644 index 000000000000..f74f7c9f7e7c Binary files /dev/null and b/data/tilesets/secondary/trainer_tower_frlg/tiles.png differ diff --git a/data/tilesets/secondary/underground_path_frlg/metatile_attributes.bin b/data/tilesets/secondary/underground_path_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..f711a0221a3e Binary files /dev/null and b/data/tilesets/secondary/underground_path_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/underground_path_frlg/metatiles.bin b/data/tilesets/secondary/underground_path_frlg/metatiles.bin new file mode 100644 index 000000000000..2010e1eca87c Binary files /dev/null and b/data/tilesets/secondary/underground_path_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/00.pal b/data/tilesets/secondary/underground_path_frlg/palettes/00.pal new file mode 100644 index 000000000000..6d876039d15c --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/01.pal b/data/tilesets/secondary/underground_path_frlg/palettes/01.pal new file mode 100644 index 000000000000..66561f6d3326 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +139 180 222 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +246 238 148 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/02.pal b/data/tilesets/secondary/underground_path_frlg/palettes/02.pal new file mode 100644 index 000000000000..87a022102f19 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +197 189 213 +255 255 255 +106 197 106 +230 213 123 +255 205 90 +255 238 197 +90 90 115 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/03.pal b/data/tilesets/secondary/underground_path_frlg/palettes/03.pal new file mode 100644 index 000000000000..783496dcd9bf --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 180 74 +255 246 131 +65 98 156 +90 123 180 +115 156 197 +222 213 131 +164 164 172 +205 205 213 +238 238 246 +106 172 115 +156 205 139 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/04.pal b/data/tilesets/secondary/underground_path_frlg/palettes/04.pal new file mode 100644 index 000000000000..89eace6050ad --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +230 238 246 +172 197 180 +197 222 205 +90 189 172 +246 238 156 +205 189 131 +189 164 123 +148 131 106 +106 106 106 +213 222 230 +238 180 115 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/05.pal b/data/tilesets/secondary/underground_path_frlg/palettes/05.pal new file mode 100644 index 000000000000..0eef3df8e8fb --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +213 222 222 +164 180 189 +255 0 255 +131 115 74 +213 213 148 +197 189 139 +172 156 115 +148 131 90 +255 0 255 +255 0 255 +0 0 0 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/06.pal b/data/tilesets/secondary/underground_path_frlg/palettes/06.pal new file mode 100644 index 000000000000..1d08ce9a2024 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/07.pal b/data/tilesets/secondary/underground_path_frlg/palettes/07.pal new file mode 100644 index 000000000000..23e995640fb6 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +148 148 156 +205 205 197 +148 139 90 +172 164 106 +197 189 131 +82 139 148 +115 164 172 +156 189 197 +180 90 74 +205 115 90 +238 156 123 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/08.pal b/data/tilesets/secondary/underground_path_frlg/palettes/08.pal new file mode 100644 index 000000000000..3ce3570a15f2 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +82 82 106 +123 123 123 +172 172 164 +255 255 255 +255 255 156 +197 197 156 +172 172 139 +148 148 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/09.pal b/data/tilesets/secondary/underground_path_frlg/palettes/09.pal new file mode 100644 index 000000000000..e12b8edac859 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/10.pal b/data/tilesets/secondary/underground_path_frlg/palettes/10.pal new file mode 100644 index 000000000000..e12b8edac859 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/11.pal b/data/tilesets/secondary/underground_path_frlg/palettes/11.pal new file mode 100644 index 000000000000..e12b8edac859 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/12.pal b/data/tilesets/secondary/underground_path_frlg/palettes/12.pal new file mode 100644 index 000000000000..e12b8edac859 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 189 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/13.pal b/data/tilesets/secondary/underground_path_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/14.pal b/data/tilesets/secondary/underground_path_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/underground_path_frlg/palettes/15.pal b/data/tilesets/secondary/underground_path_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/underground_path_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/underground_path_frlg/tiles.png b/data/tilesets/secondary/underground_path_frlg/tiles.png new file mode 100644 index 000000000000..b8865022d7dc Binary files /dev/null and b/data/tilesets/secondary/underground_path_frlg/tiles.png differ diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/metatile_attributes.bin b/data/tilesets/secondary/unused_gatehouse_1_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..3549eaa93cd3 Binary files /dev/null and b/data/tilesets/secondary/unused_gatehouse_1_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/metatiles.bin b/data/tilesets/secondary/unused_gatehouse_1_frlg/metatiles.bin new file mode 100644 index 000000000000..ea1398be38ba Binary files /dev/null and b/data/tilesets/secondary/unused_gatehouse_1_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/00.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/01.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/02.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/03.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/04.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/05.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/06.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/06.pal new file mode 100644 index 000000000000..2903bb074c9e --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +189 164 82 +222 197 106 +230 222 156 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 +213 131 65 +222 230 222 +246 238 189 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/07.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/07.pal new file mode 100644 index 000000000000..c62a40b0d024 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +148 172 139 +180 197 164 +213 222 197 +238 255 213 +115 156 180 +197 222 238 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/08.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/08.pal new file mode 100644 index 000000000000..8c66b4998189 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 222 156 +189 98 74 +230 156 98 +213 205 156 +115 156 180 +246 238 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/09.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/10.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/11.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/12.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/13.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/14.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/15.pal b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_1_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_1_frlg/tiles.png b/data/tilesets/secondary/unused_gatehouse_1_frlg/tiles.png new file mode 100644 index 000000000000..6d376f447b5b Binary files /dev/null and b/data/tilesets/secondary/unused_gatehouse_1_frlg/tiles.png differ diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/metatile_attributes.bin b/data/tilesets/secondary/unused_gatehouse_2_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..3549eaa93cd3 Binary files /dev/null and b/data/tilesets/secondary/unused_gatehouse_2_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/metatiles.bin b/data/tilesets/secondary/unused_gatehouse_2_frlg/metatiles.bin new file mode 100644 index 000000000000..ea1398be38ba Binary files /dev/null and b/data/tilesets/secondary/unused_gatehouse_2_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/00.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/01.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/02.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/03.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/04.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/05.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/06.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/06.pal new file mode 100644 index 000000000000..2903bb074c9e --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +189 164 82 +222 197 106 +230 222 156 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 +213 131 65 +222 230 222 +246 238 189 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/07.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/07.pal new file mode 100644 index 000000000000..c62a40b0d024 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +148 172 139 +180 197 164 +213 222 197 +238 255 213 +115 156 180 +197 222 238 +123 197 189 +156 222 213 +213 255 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/08.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/08.pal new file mode 100644 index 000000000000..8c66b4998189 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +230 222 156 +189 98 74 +230 156 98 +213 205 156 +115 156 180 +246 238 189 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/09.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/10.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/11.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/12.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/12.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/13.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/14.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/15.pal b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/unused_gatehouse_2_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/unused_gatehouse_2_frlg/tiles.png b/data/tilesets/secondary/unused_gatehouse_2_frlg/tiles.png new file mode 100644 index 000000000000..6d376f447b5b Binary files /dev/null and b/data/tilesets/secondary/unused_gatehouse_2_frlg/tiles.png differ diff --git a/data/tilesets/secondary/vermilion_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/vermilion_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..1136f644af4b Binary files /dev/null and b/data/tilesets/secondary/vermilion_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/vermilion_city_frlg/metatiles.bin b/data/tilesets/secondary/vermilion_city_frlg/metatiles.bin new file mode 100644 index 000000000000..c7978128e2b5 Binary files /dev/null and b/data/tilesets/secondary/vermilion_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/00.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/01.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..09828f4f1f27 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +123 123 131 +32 49 57 +230 238 238 +90 189 139 +90 90 115 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +123 74 74 +90 57 65 +115 205 164 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/02.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/03.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..205c464c79d6 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/04.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..5871a448c008 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 246 255 +189 222 255 +139 189 255 +115 164 255 +65 139 222 +57 115 222 +82 148 230 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +49 115 197 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/05.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..c5a653979a01 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/06.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..9bad44649513 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +205 230 246 +180 213 255 +123 180 246 +98 148 230 +65 123 189 +49 98 180 +82 131 222 +213 230 238 +172 189 205 +123 123 131 +90 90 115 +238 246 246 +238 230 139 +230 213 139 +213 197 106 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/07.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..17b1a0ed2879 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/08.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..7179b91bd801 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 246 172 +255 189 32 +222 156 0 +189 106 57 +123 123 131 +90 90 115 +65 74 106 +255 255 255 +205 205 222 +255 230 131 +238 205 123 +197 164 90 +131 164 197 +255 0 255 +180 156 49 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/09.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..746dac7dacc7 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +74 123 180 +90 164 213 +57 90 148 +213 148 49 +238 180 82 +205 205 222 +115 189 246 +74 131 197 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/10.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..892aae6edd9d --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +115 82 41 +255 189 32 +222 156 0 +189 106 57 +123 123 131 +90 90 115 +65 74 106 +189 255 139 +131 213 98 +106 180 98 +255 230 131 +238 205 123 +197 164 90 +131 164 197 +255 0 255 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/11.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..b2a405273f09 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/12.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..f124929b457b --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 238 189 +222 205 131 +205 180 106 +180 139 74 +246 246 255 +172 189 205 +222 106 98 +213 164 156 +213 148 49 +65 74 106 +123 123 131 +16 123 74 +49 148 106 +98 189 148 +164 230 197 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/13.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/14.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_city_frlg/palettes/15.pal b/data/tilesets/secondary/vermilion_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..ac0d32eb09d5 --- /dev/null +++ b/data/tilesets/secondary/vermilion_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 222 90 +246 197 65 +238 164 57 +172 189 205 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_city_frlg/tiles.png b/data/tilesets/secondary/vermilion_city_frlg/tiles.png new file mode 100644 index 000000000000..8cfa9b4ddac6 Binary files /dev/null and b/data/tilesets/secondary/vermilion_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/vermilion_gym_frlg/anim/motorizeddoor/0.png b/data/tilesets/secondary/vermilion_gym_frlg/anim/motorizeddoor/0.png new file mode 100644 index 000000000000..a17ad6f5ead2 Binary files /dev/null and b/data/tilesets/secondary/vermilion_gym_frlg/anim/motorizeddoor/0.png differ diff --git a/data/tilesets/secondary/vermilion_gym_frlg/anim/motorizeddoor/1.png b/data/tilesets/secondary/vermilion_gym_frlg/anim/motorizeddoor/1.png new file mode 100644 index 000000000000..bfddebccd994 Binary files /dev/null and b/data/tilesets/secondary/vermilion_gym_frlg/anim/motorizeddoor/1.png differ diff --git a/data/tilesets/secondary/vermilion_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/vermilion_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..015dd4e76ff6 Binary files /dev/null and b/data/tilesets/secondary/vermilion_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/vermilion_gym_frlg/metatiles.bin b/data/tilesets/secondary/vermilion_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..25a46724bb29 Binary files /dev/null and b/data/tilesets/secondary/vermilion_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/00.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/01.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..d99adaffffc0 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +90 131 180 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/02.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..cc3a9457d494 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +246 238 164 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/03.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..7ec794ae5408 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +172 172 164 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 172 +205 205 213 +238 238 246 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/04.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/05.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/06.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/07.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..efd64bcc5892 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +32 180 230 +172 255 230 +189 189 115 +238 222 164 +255 255 180 +205 82 65 +255 131 115 +189 180 106 +205 197 123 +222 222 148 +164 164 98 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/08.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/09.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/10.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/11.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..9fa42f21fca8 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +65 74 106 +90 90 115 +123 123 131 +148 164 180 +172 189 205 +205 222 238 +246 246 255 +255 0 255 +255 0 255 +205 82 65 +255 131 115 +230 172 57 +222 213 0 +222 180 65 +255 222 98 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/12.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..5e2756cc990b --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +131 131 131 +180 180 164 +255 255 255 +222 180 65 +238 197 82 +189 148 49 +246 238 164 +213 213 222 +156 156 205 +180 180 246 +82 106 156 +123 148 197 +189 197 255 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/13.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/14.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/palettes/15.pal b/data/tilesets/secondary/vermilion_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/vermilion_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/vermilion_gym_frlg/tiles.png b/data/tilesets/secondary/vermilion_gym_frlg/tiles.png new file mode 100644 index 000000000000..1baac08930ac Binary files /dev/null and b/data/tilesets/secondary/vermilion_gym_frlg/tiles.png differ diff --git a/data/tilesets/secondary/viridian_city_frlg/metatile_attributes.bin b/data/tilesets/secondary/viridian_city_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..ee2d7d5b3eae Binary files /dev/null and b/data/tilesets/secondary/viridian_city_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/viridian_city_frlg/metatiles.bin b/data/tilesets/secondary/viridian_city_frlg/metatiles.bin new file mode 100644 index 000000000000..297673a4beec Binary files /dev/null and b/data/tilesets/secondary/viridian_city_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/00.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/00.pal new file mode 100644 index 000000000000..2f3f97d6fdb7 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 90 16 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/01.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/01.pal new file mode 100644 index 000000000000..cf11238126ab --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 197 164 +189 148 139 +148 106 106 +115 65 74 +82 49 65 +115 205 164 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/02.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/02.pal new file mode 100644 index 000000000000..372fb5d7c3b6 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/03.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/03.pal new file mode 100644 index 000000000000..5a5e602118b6 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/04.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/04.pal new file mode 100644 index 000000000000..229f9132c30b --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +90 148 197 +65 123 180 +90 164 205 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/05.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/05.pal new file mode 100644 index 000000000000..215dd1272875 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +213 197 131 +197 172 106 +172 148 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/06.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/06.pal new file mode 100644 index 000000000000..7e7862a192f8 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +222 230 255 +197 213 255 +164 197 238 +123 172 230 +41 82 164 +41 57 131 +74 123 197 +205 222 238 +172 189 205 +123 123 131 +90 90 115 +32 98 139 +238 230 139 +222 197 139 +205 180 106 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/07.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/07.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/08.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/08.pal new file mode 100644 index 000000000000..219129ebabb2 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 65 82 +74 74 90 +123 123 131 +106 139 205 +115 197 238 +164 230 238 +131 115 57 +180 172 65 +222 205 65 +246 246 205 +213 205 205 +90 90 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/09.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/09.pal new file mode 100644 index 000000000000..0aa2b58dcfed --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 205 65 +222 172 65 +180 98 0 +213 213 139 +189 189 115 +148 148 82 +255 0 255 +115 205 164 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/10.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/10.pal new file mode 100644 index 000000000000..4baf904aeaa0 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 65 82 +74 74 90 +123 123 131 +106 139 205 +172 213 230 +115 98 65 +148 123 65 +238 172 65 +230 213 74 +65 123 123 +65 156 131 +65 205 156 +74 123 65 +90 172 74 +123 213 98 +172 238 106 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/11.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/11.pal new file mode 100644 index 000000000000..2e92b3cc3e58 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +246 246 205 +213 213 213 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +246 230 131 +222 205 65 +172 238 106 +123 213 98 +106 197 82 +90 172 74 +74 123 65 +115 205 164 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/12.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/12.pal new file mode 100644 index 000000000000..70ed40322587 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +246 246 255 +213 230 197 +156 172 139 +123 123 131 +90 90 115 +65 74 106 +222 172 65 +180 98 0 +131 65 0 +205 205 123 +164 164 57 +115 189 246 +74 148 213 +49 115 180 +189 197 164 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/13.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/14.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_city_frlg/palettes/15.pal b/data/tilesets/secondary/viridian_city_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_city_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_city_frlg/tiles.png b/data/tilesets/secondary/viridian_city_frlg/tiles.png new file mode 100644 index 000000000000..39b80d8f9de1 Binary files /dev/null and b/data/tilesets/secondary/viridian_city_frlg/tiles.png differ diff --git a/data/tilesets/secondary/viridian_forest_frlg/metatile_attributes.bin b/data/tilesets/secondary/viridian_forest_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..990d6861cc95 Binary files /dev/null and b/data/tilesets/secondary/viridian_forest_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/viridian_forest_frlg/metatiles.bin b/data/tilesets/secondary/viridian_forest_frlg/metatiles.bin new file mode 100644 index 000000000000..cd0bd5f53fb3 Binary files /dev/null and b/data/tilesets/secondary/viridian_forest_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/00.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/00.pal new file mode 100644 index 000000000000..7af5bb7d2167 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +115 98 98 +65 57 49 +255 0 255 +139 222 189 +255 197 115 +238 131 106 +197 49 65 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/01.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/01.pal new file mode 100644 index 000000000000..391d1e3d17b8 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 230 +197 205 213 +172 189 205 +131 131 139 +65 49 65 +230 238 238 +90 189 139 +255 0 255 +238 213 197 +222 189 164 +189 148 139 +156 115 115 +123 82 82 +90 57 74 +115 205 164 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/02.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/02.pal new file mode 100644 index 000000000000..6b019b884c96 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +156 123 98 +197 172 139 +255 205 139 +238 148 115 +222 106 98 +205 82 74 +172 32 41 +74 131 197 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/03.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/03.pal new file mode 100644 index 000000000000..9581f2cd8be5 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +205 222 238 +172 189 205 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +230 222 131 +205 180 106 +156 213 255 +115 189 246 +98 164 222 +74 131 197 +49 98 164 +115 205 164 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/04.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/04.pal new file mode 100644 index 000000000000..702db8a907c6 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 222 172 +189 189 139 +156 156 106 +115 115 65 +255 255 213 +255 238 180 +238 222 156 +172 197 197 +148 189 189 +123 180 180 +230 246 255 +189 222 222 +172 213 222 +148 205 205 +255 255 255 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/05.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/05.pal new file mode 100644 index 000000000000..3a2db72a7f32 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +222 230 238 +172 189 205 +123 123 131 +90 90 115 +65 74 106 +230 222 164 +222 205 131 +205 180 106 +180 139 74 +238 230 139 +222 197 139 +213 189 106 +189 230 164 +172 222 164 +115 205 164 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/06.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/06.pal new file mode 100644 index 000000000000..93518605a9ef --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/07.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/07.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/08.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/08.pal new file mode 100644 index 000000000000..650a35cc894c --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +189 255 139 +131 213 98 +57 148 49 +57 82 0 +57 115 24 +98 65 74 +131 106 82 +65 57 49 +255 0 255 +255 0 255 +255 0 255 +164 230 197 +115 205 164 +65 180 139 +24 164 106 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/09.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/09.pal new file mode 100644 index 000000000000..df2d04037372 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 230 189 +57 172 131 +222 230 246 +230 172 123 +106 205 164 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/10.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/10.pal new file mode 100644 index 000000000000..7464374928c5 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 246 255 +222 230 246 +189 197 222 +148 164 180 +123 123 131 +90 90 115 +65 74 106 +49 139 49 +57 82 0 +49 180 98 +238 230 164 +222 205 131 +213 180 106 +205 156 82 +106 205 164 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/11.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/11.pal new file mode 100644 index 000000000000..410d5193a245 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/12.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/12.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/13.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/14.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_forest_frlg/palettes/15.pal b/data/tilesets/secondary/viridian_forest_frlg/palettes/15.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_forest_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_forest_frlg/tiles.png b/data/tilesets/secondary/viridian_forest_frlg/tiles.png new file mode 100644 index 000000000000..451eb8d5a0f8 Binary files /dev/null and b/data/tilesets/secondary/viridian_forest_frlg/tiles.png differ diff --git a/data/tilesets/secondary/viridian_gym_frlg/metatile_attributes.bin b/data/tilesets/secondary/viridian_gym_frlg/metatile_attributes.bin new file mode 100644 index 000000000000..d935f8be0099 Binary files /dev/null and b/data/tilesets/secondary/viridian_gym_frlg/metatile_attributes.bin differ diff --git a/data/tilesets/secondary/viridian_gym_frlg/metatiles.bin b/data/tilesets/secondary/viridian_gym_frlg/metatiles.bin new file mode 100644 index 000000000000..2980877c10aa Binary files /dev/null and b/data/tilesets/secondary/viridian_gym_frlg/metatiles.bin differ diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/00.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/00.pal new file mode 100644 index 000000000000..88e712348b43 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/00.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 32 57 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +172 148 65 +213 197 106 +246 238 148 +82 148 197 +172 205 246 +222 230 230 +106 197 106 +164 255 180 +205 82 65 +255 131 115 +148 148 139 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/01.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/01.pal new file mode 100644 index 000000000000..3a16a45c79a0 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/01.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +123 123 123 +180 180 164 +255 255 255 +197 197 148 +213 213 172 +189 230 255 +156 189 213 +131 115 16 +164 148 49 +197 180 74 +222 205 106 +255 230 156 +222 213 230 +238 246 238 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/02.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/02.pal new file mode 100644 index 000000000000..c8ee236d76d6 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/02.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +131 131 139 +197 189 213 +255 255 255 +139 197 139 +230 213 123 +255 205 90 +255 238 197 +115 115 123 +230 238 246 +156 205 246 +98 156 238 +255 0 255 +230 139 98 +189 98 74 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/03.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/03.pal new file mode 100644 index 000000000000..b17dbb054879 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/03.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +82 82 106 +164 164 164 +180 189 189 +255 255 255 +238 246 238 +213 230 222 +197 205 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/04.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/04.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/04.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/05.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/05.pal new file mode 100644 index 000000000000..6f31ca776222 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/05.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/06.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/06.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/06.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/07.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/07.pal new file mode 100644 index 000000000000..f55e52fe2e0c --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/07.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +197 189 213 +255 255 255 +205 197 106 +246 238 148 +255 255 222 +98 98 123 +238 238 238 +82 222 123 +131 255 164 +82 164 57 +255 0 255 +255 0 255 +172 106 74 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/08.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/08.pal new file mode 100644 index 000000000000..3a7dbc274cec --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/08.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +139 139 148 +197 189 213 +255 255 255 +222 222 238 +230 205 131 +189 197 82 +222 230 115 +238 230 148 +74 123 180 +131 131 139 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/09.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/09.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/09.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/10.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/10.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/11.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/11.pal new file mode 100644 index 000000000000..6b0281bd6a48 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/12.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/12.pal new file mode 100644 index 000000000000..d2c6cb0891ee --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/12.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +82 82 106 +123 123 123 +180 180 164 +230 230 230 +255 255 255 +180 115 82 +213 156 123 +123 123 123 +106 156 148 +139 189 180 +180 222 213 +255 0 255 +213 213 213 +230 189 123 +246 197 156 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/13.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/13.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/13.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/14.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/14.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/14.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/palettes/15.pal b/data/tilesets/secondary/viridian_gym_frlg/palettes/15.pal new file mode 100644 index 000000000000..92e7ed30983d --- /dev/null +++ b/data/tilesets/secondary/viridian_gym_frlg/palettes/15.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +90 0 255 +0 0 0 diff --git a/data/tilesets/secondary/viridian_gym_frlg/tiles.png b/data/tilesets/secondary/viridian_gym_frlg/tiles.png new file mode 100644 index 000000000000..b53b94b965f4 Binary files /dev/null and b/data/tilesets/secondary/viridian_gym_frlg/tiles.png differ diff --git a/dev_scripts/delete_frlg_maps.py b/dev_scripts/delete_frlg_maps.py new file mode 100644 index 000000000000..743f14b7194d --- /dev/null +++ b/dev_scripts/delete_frlg_maps.py @@ -0,0 +1,44 @@ +import json +import os +import re + +if not os.path.exists("Makefile"): + print("Please run this script from your root folder.") + quit() + +os.system("rm -R data/layouts/*_Frlg") +print("rm -R data/layouts/*_Frlg") +os.system("touch data/layouts/layouts.json") +os.system("rm -R data/maps/*_Frlg") +print("rm -R data/maps/*_Frlg") + +fileInput = "data/event_scripts.s" +allLines = list() +print("Deleting FRLG maps from data/event_scripts.s") +with open(fileInput, 'r', encoding='UTF-8') as file: + while line:=file.readline(): + if re.search(r"data/maps/\w+_Frlg", line): + pass + else: + allLines.append(line) + +with open(fileInput, 'w', encoding='UTF-8') as file: + for line in allLines: + file.write(line) + +fileInput = "data/maps/map_groups.json" +print("Deleting FRLG maps from data/maps/map_groups.json") +with open(fileInput, 'r') as f: + map_data = json.load(f) + +new_group_order = list() +for group in map_data["group_order"]: + if re.search(r"\w+_Frlg", group): + map_data.pop(group, None) + else: + new_group_order.append(group) + +map_data["group_order"] = new_group_order; + +with open(fileInput, 'w') as f: + json.dump(map_data, f, indent=2) diff --git a/docs/STYLEGUIDE.md b/docs/STYLEGUIDE.md index 9535ce4fe36f..c320444de41a 100644 --- a/docs/STYLEGUIDE.md +++ b/docs/STYLEGUIDE.md @@ -168,10 +168,20 @@ int MyFunction(int bar) } ``` -A chain of `if-else` statements in which any block is more than one line of -code should use braces. If all blocks are single-line, then no braces are necessary. +A chain of `if-else` statements in which any condition or block is more +than one line of code should use braces. If all blocks *and* conditions +are single-line, then no braces are necessary. ```c +if (foo) // correct + return 1; + +if (foo + && bar) // correct +{ + return 1; +} + if (foo) // correct { return 1; @@ -182,6 +192,25 @@ else return 0; } +if (foo) // correct +{ + return 1; +} +else if (foo + && bar) +{ + return 0; +} + +if (foo) // incorrect +{ + return 1; +} + +if (foo + && bar) // incorrect + return 1; + if (foo) // incorrect return 1; else @@ -189,6 +218,26 @@ else MyFunction(); return 0; } + +if (foo) // incorrect + return 1; +else if (foo + && bar) + return 0; +``` + +The exception is `assertf` which should always use braces if it has a recovery path, even for one line of conditions and one line of code. + +```c +assertf(true); // correct + +assertf(true) // correct +{ + return NULL; +} + +assertf(true) // incorrect + return NULL; ``` ### Control Structures diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 97130374bf51..833429d262be 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -25,6 +25,7 @@ - [Tutorials]() - [What are AI Flags?](tutorials/ai_flags.md) - [How to add new AI Flags](tutorials/ai_logic.md) + - [What are Dynamic AI Functions?](tutorials/ai_dynamic_functions.md) - [How to add new battle script commands/macros](tutorials/how_to_battle_script_command_macro.md) - [How to add a new move](tutorials/how_to_new_move.md) - [How to add a new trainer class]() @@ -42,8 +43,15 @@ - [How to Apricorn Tree](tutorials/how_to_apricorn_tree.md) - [How to Namebox](tutorials/how_to_namebox.md) - [Vs. Seeker](tutorials/vs_seeker.md) + - [Teachable Learnsets Explanations](tutorials/teachable_learnsets.md) + - [Struct Pokemon Generation](tutorials/mon_generation.md) + - [How to use FRLG](tutorials/how_to_frlg.md) + - [How to delete vanilla maps](tutorials/how_to_delete_vanilla_maps.md) - [Changelog](./CHANGELOG.md) + - [1.15.x]() + - [Version 1.15.0](changelogs/1.15.x/1.15.0.md) - [1.14.x]() + - [Version 1.14.4](changelogs/1.14.x/1.14.4.md) - [Version 1.14.3](changelogs/1.14.x/1.14.3.md) - [Version 1.14.2](changelogs/1.14.x/1.14.2.md) - [Version 1.14.1](changelogs/1.14.x/1.14.1.md) diff --git a/docs/changelogs/1.14.x/1.14.4.md b/docs/changelogs/1.14.x/1.14.4.md new file mode 100644 index 000000000000..8375d66a4dfb --- /dev/null +++ b/docs/changelogs/1.14.x/1.14.4.md @@ -0,0 +1,120 @@ +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.14.4 +`. +``` + + +## 🧬 General 🧬 +### Changed +* docs(dns): add nighttime palette user guide by @izrofid in [#9158](https://github.com/rh-hideout/pokeemerald-expansion/pull/9158) + +### Fixed +* `sPlayerAvatarGfxToStateFlag`'s graphics id to `u16` by @estellarc in [#9101](https://github.com/rh-hideout/pokeemerald-expansion/pull/9101) +* Fix migration script output from move anim documentation by @hedara90 in [#9140](https://github.com/rh-hideout/pokeemerald-expansion/pull/9140) +* Show ability num instead of ability id whn picking ability with debug givemon by @FosterProgramming in [#9225](https://github.com/rh-hideout/pokeemerald-expansion/pull/9225) +* Fix setting the wall clock crashing with OW_USE_FAKE_RTC set to FALSE and LTO=1 by @hedara90 in [#9299](https://github.com/rh-hideout/pokeemerald-expansion/pull/9299) + +## 🗺️ Overworld 🗺️ +### Fixed +* NO_WHITEOUT now prevent forfeits from B_RUN_TRAINER_BATTLE by @pkmnsnfrn in [#9112](https://github.com/rh-hideout/pokeemerald-expansion/pull/9112) +* Make sure grass effect palette ignore fog when time blended by @FosterProgramming in [#9235](https://github.com/rh-hideout/pokeemerald-expansion/pull/9235) +* Fix batle dome streak thresholds by @FosterProgramming in [#9257](https://github.com/rh-hideout/pokeemerald-expansion/pull/9257) + +## 🐉 Pokémon 🐉 +### Fixed +* Allow Power Construct Animation by @KnightGallade in [#9298](https://github.com/rh-hideout/pokeemerald-expansion/pull/9298) + +## ⚔️ Battle General ⚔️ +### Changed +* Use direct config names instead of enum names by @AsparagusEduardo in [#8824](https://github.com/rh-hideout/pokeemerald-expansion/pull/8824) + - `GetConfig` and `WITH_CONFIG` now use the actual config define. Eg, `B_STURDY` instead of `CONFIG_STURDY`. However, in scripts, using `jumpifgenconfiglowerthan` in scripts would use the full name of `CONFIG_B_STURDY`. + +### Fixed +* NO_WHITEOUT now prevent forfeits from B_RUN_TRAINER_BATTLE by @pkmnsnfrn in [#9112](https://github.com/rh-hideout/pokeemerald-expansion/pull/9112) +* Fix Leppa Berry PP restore target under forced-consumption effects by @Cle-bit in [#9108](https://github.com/rh-hideout/pokeemerald-expansion/pull/9108) +* Fix Instruct failing improperly when the instructed move isn't in the target's moveset by @Cle-bit in [#9113](https://github.com/rh-hideout/pokeemerald-expansion/pull/9113) +* Fix Aroma Veil target-side check for ally-targeted limiting moves by @Cle-bit in [#9157](https://github.com/rh-hideout/pokeemerald-expansion/pull/9157) +* Fix immunity ability status sync to avoid persisting Toxic counter when only volatile conditions are cured by @Cle-bit in [#9156](https://github.com/rh-hideout/pokeemerald-expansion/pull/9156) +* Fix Instruct Missing Checks for Focus Punch, Beak Blast, Shell Trap, and Sky Drop by @Cle-bit in [#9152](https://github.com/rh-hideout/pokeemerald-expansion/pull/9152) +* Fix Aqua Ring reuse failure check and add Aqua Ring/Ingrain tests by @Cle-bit in [#9174](https://github.com/rh-hideout/pokeemerald-expansion/pull/9174) +* Fix Transform fail conditions with gen-specific checks by @Cle-bit in [#9070](https://github.com/rh-hideout/pokeemerald-expansion/pull/9070) +* Fix Taunt to not block Me First in Gen 5+ by @Cle-bit in [#9069](https://github.com/rh-hideout/pokeemerald-expansion/pull/9069) +* Fix Present heal miss-flag handling and enforce Telepathy blocking by @Cle-bit in [#9170](https://github.com/rh-hideout/pokeemerald-expansion/pull/9170) +* Fix Commander cleanup after Volt Switch switch-in by @Cle-bit in [#9141](https://github.com/rh-hideout/pokeemerald-expansion/pull/9141) +* Fixes Gulp Missile crash on targets that can be statused by @AlexOn1ine in [#9179](https://github.com/rh-hideout/pokeemerald-expansion/pull/9179) +* Fix multi battle switch checks for Eject items by @Cle-bit in [#9190](https://github.com/rh-hideout/pokeemerald-expansion/pull/9190) +* Fix incorrect player berry animation on opponent’s low-HP heal at battle start by @Cle-bit in [#9198](https://github.com/rh-hideout/pokeemerald-expansion/pull/9198) +* Fixes Protective Pads preventing Poison Touch activation by @PhallenTree in [#9222](https://github.com/rh-hideout/pokeemerald-expansion/pull/9222) +* Fix tera icon palettes by @grintoul1 in [#9208](https://github.com/rh-hideout/pokeemerald-expansion/pull/9208) +* Running from trainer battles properly handles whiteouts by @pkmnsnfrn in [#9228](https://github.com/rh-hideout/pokeemerald-expansion/pull/9228) +* Prevents `seteffectprimary` and `seteffectsecondary` from softlocking by @PhallenTree in [#9236](https://github.com/rh-hideout/pokeemerald-expansion/pull/9236) +* Fixes Throat Chop timer being reset with every use of the move by @PhallenTree in [#9246](https://github.com/rh-hideout/pokeemerald-expansion/pull/9246) +* Fix incorrect Adaptability interaction with non Tera type moves after Terastalization by @Cle-bit in [#9272](https://github.com/rh-hideout/pokeemerald-expansion/pull/9272) +* Fix Ability Shield exemption when Neutralizing Gas ends by @Cle-bit in [#9273](https://github.com/rh-hideout/pokeemerald-expansion/pull/9273) +* Fix Tickle to be blocked by Substitute in Gen 4+ by @Cle-bit in [#9288](https://github.com/rh-hideout/pokeemerald-expansion/pull/9288) +* Fix Venom Drench bypassing Substitute by @Cle-bit in [#9289](https://github.com/rh-hideout/pokeemerald-expansion/pull/9289) +* Fix Assist to account for temporarily changed moves in Gen 5+ by @Cle-bit in [#9287](https://github.com/rh-hideout/pokeemerald-expansion/pull/9287) +* Fixes Minior not appearing in Meteor form when encountered in the wild by @luuma in [#9282](https://github.com/rh-hideout/pokeemerald-expansion/pull/9282) +* Fix Eviolite to use original species after Transform by @Cle-bit in [#9285](https://github.com/rh-hideout/pokeemerald-expansion/pull/9285) +* Fix Sucker Punch to succeed against Me First targets by @Cle-bit in [#9284](https://github.com/rh-hideout/pokeemerald-expansion/pull/9284) +* Fixes plasma fists and several let's go and max move effects which should occur even when fainting a foe by @luuma in [#9262](https://github.com/rh-hideout/pokeemerald-expansion/pull/9262) +* Fix Paradox stat selection under Wonder Room by @Cle-bit in [#9356](https://github.com/rh-hideout/pokeemerald-expansion/pull/9356) +* Fix illegal switch due to hazards by @AlexOn1ine in [#9361](https://github.com/rh-hideout/pokeemerald-expansion/pull/9361) +* Fix Trapping Persisting after KO in doubles by @ChrispyChris27 in [#9380](https://github.com/rh-hideout/pokeemerald-expansion/pull/9380) +* Fix Baton Pass to clear Mean Look trapping on the target in Gen 5+ by @Cle-bit in [#9378](https://github.com/rh-hideout/pokeemerald-expansion/pull/9378) +* Fix Meloetta not reverting forms on switch and remove deprecated Lunar Dance string ID by @Meister-anon in [#9379](https://github.com/rh-hideout/pokeemerald-expansion/pull/9379) +* Corrects battler used in STRINGID_ATTACKERABILITYSTATRAISE by @grintoul1 in [#9383](https://github.com/rh-hideout/pokeemerald-expansion/pull/9383) + +## 🤹 Moves 🤹 +### Changed +* fix(bttl-anim): remove unused battle selector to silence warning by @izrofid in [#9218](https://github.com/rh-hideout/pokeemerald-expansion/pull/9218) + +### Fixed +* correct move flags/data by @amiosi in [#8858](https://github.com/rh-hideout/pokeemerald-expansion/pull/8858) + +## 🧶 Items 🧶 +### Fixed +* Fix Rare Candy reviving fainted level 100 Pokémon by @Cle-bit in [#9117](https://github.com/rh-hideout/pokeemerald-expansion/pull/9117) + +## 🤖 Battle AI 🤖 +### Fixed +* Add missing weather checks for AI sandstorm/hail damage helpers by @Cle-bit in [#9155](https://github.com/rh-hideout/pokeemerald-expansion/pull/9155) +* Fix AI semi-invulnerable move handling and simplify switching logic by @Cle-bit in [#9180](https://github.com/rh-hideout/pokeemerald-expansion/pull/9180) +* Fix AI Sheer Force checks to allow Order Up’s Commander stat boost by @Cle-bit in [#9250](https://github.com/rh-hideout/pokeemerald-expansion/pull/9250) + +## 🧹 Other Cleanup 🧹 +* fix(bttl-anim): remove unused battle selector to silence warning by @izrofid in [#9218](https://github.com/rh-hideout/pokeemerald-expansion/pull/9218) + +## 🧪 Test Runner 🧪 +### Changed +* Adds Parabolic Charge spread damage healing test by @AlexOn1ine in [#9094](https://github.com/rh-hideout/pokeemerald-expansion/pull/9094) +* Use direct config names instead of enum names by @AsparagusEduardo in [#8824](https://github.com/rh-hideout/pokeemerald-expansion/pull/8824) + - `GetConfig` and `WITH_CONFIG` now use the actual config define. Eg, `B_STURDY` instead of `CONFIG_STURDY`. However, in scripts, using `jumpifgenconfiglowerthan` in scripts would use the full name of `CONFIG_B_STURDY`. +* Added Weight battle tests by @AsparagusEduardo in [#9202](https://github.com/rh-hideout/pokeemerald-expansion/pull/9202) +* Add tests for Hadron Engine and Psyblade by @Cle-bit in [#9314](https://github.com/rh-hideout/pokeemerald-expansion/pull/9314) +* Add tests for Future Sight interaction with Ally Switch by @Cle-bit in [#9300](https://github.com/rh-hideout/pokeemerald-expansion/pull/9300) + +### Fixed +* Fix Aqua Ring reuse failure check and add Aqua Ring/Ingrain tests by @Cle-bit in [#9174](https://github.com/rh-hideout/pokeemerald-expansion/pull/9174) +* Fixes Protective Pads preventing Poison Touch activation by @PhallenTree in [#9222](https://github.com/rh-hideout/pokeemerald-expansion/pull/9222) +* Fix tera icon palettes by @grintoul1 in [#9208](https://github.com/rh-hideout/pokeemerald-expansion/pull/9208) +* Fix Meloetta not reverting forms on switch and remove deprecated Lunar Dance string ID by @Meister-anon in [#9379](https://github.com/rh-hideout/pokeemerald-expansion/pull/9379) + +## 📚 Documentation 📚 +* docs(dns): add nighttime palette user guide by @izrofid in [#9158](https://github.com/rh-hideout/pokeemerald-expansion/pull/9158) + +## 👻 Sprites 👻 +### Fixed +* Fix tera icon palettes by @grintoul1 in [#9208](https://github.com/rh-hideout/pokeemerald-expansion/pull/9208) + +## New Contributors +* @luuma made their first contribution in [#9282](https://github.com/rh-hideout/pokeemerald-expansion/pull/9282) +* @KnightGallade made their first contribution in [#9298](https://github.com/rh-hideout/pokeemerald-expansion/pull/9298) + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.14.3...expansion/1.14.4 + + + + diff --git a/docs/changelogs/1.15.x/1.15.0.md b/docs/changelogs/1.15.x/1.15.0.md new file mode 100644 index 000000000000..20f76fc5bb2a --- /dev/null +++ b/docs/changelogs/1.15.x/1.15.0.md @@ -0,0 +1,719 @@ +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.15.0 +`. +``` + +## 🌋 *REFACTORS* 🌋 +📜 = Uses a migration script. +* Switch-in Events Refactor by @AlexOn1ine in [#8128](https://github.com/rh-hideout/pokeemerald-expansion/pull/8128) +* Updated Focus Punch failure check and moved to attackcanceler by @PhallenTree in [#8360](https://github.com/rh-hideout/pokeemerald-expansion/pull/8360) +* Move crit calculation into the damage calc by @AlexOn1ine in [#8365](https://github.com/rh-hideout/pokeemerald-expansion/pull/8365) +* Trainerbattle Type Differentiation by @u8-Salem in [#6424](https://github.com/rh-hideout/pokeemerald-expansion/pull/6424) + - for multi battles: `partnerId` is no longer set in `multi_*` macros but instead by `setmultitrainerbattle` +* Make Glaive Rush a MOVE_EFFECT_GLAIVE_RUSH by @AlexOn1ine in [#8351](https://github.com/rh-hideout/pokeemerald-expansion/pull/8351) +* Refactor Fury Cutter and Rollout by @AlexOn1ine in [#8375](https://github.com/rh-hideout/pokeemerald-expansion/pull/8375) +* Refactor Multi Hit moves to use a flag instead of effect by @AlexOn1ine in [#8379](https://github.com/rh-hideout/pokeemerald-expansion/pull/8379) +* Decouples BattlerHasAi from battle positions to instead be determined by battler Battle Controller by @grintoul1 in [#8247](https://github.com/rh-hideout/pokeemerald-expansion/pull/8247) +* Allow Starting Statuses beyond 15 by @AsparagusEduardo in [#8485](https://github.com/rh-hideout/pokeemerald-expansion/pull/8485) + - You may now define if a Trainer's starting status is temporary or not, by adding "Temporary" at the end (eg. "Electric Terrain Temporary") + - `B_VAR_STARTING_STATUS` and `B_VAR_STARTING_STATUS_TIMER` have been replaced with `setstartingstatus` and the timer functionality has been removed in favor of defining temporary and permanent versions of each starting status. Eg. + ``` + setvar B_VAR_STARTING_STATUS STARTING_STATUS_PSYCHIC_TERRAIN | STARTING_STATUS_RAINBOW_OPPONENT + setvar B_VAR_STARTING_STATUS_TIMER 5 + ``` + has been replaced with + ``` + setstartingstatus STATUS_PSYCHIC_TERRAIN_TEMPORARY + setstartingstatus STARTING_STATUS_RAINBOW_OPPONENT + ``` + They can be stacked on top of each other. +* AI `ShouldPivot` Overhaul by @Pawkkie in [#8486](https://github.com/rh-hideout/pokeemerald-expansion/pull/8486) +* Move disable struct members to battle mon volatiles by @AlexOn1ine in [#8540](https://github.com/rh-hideout/pokeemerald-expansion/pull/8540) +* Refactor switchin candidates to use `battler` by @Pawkkie in [#8546](https://github.com/rh-hideout/pokeemerald-expansion/pull/8546) +* Switchin calcs leverage saving / restoring `AiLogicData` by @Pawkkie in [#8556](https://github.com/rh-hideout/pokeemerald-expansion/pull/8556) +* Move target type refactor by @AlexOn1ine in [#8513](https://github.com/rh-hideout/pokeemerald-expansion/pull/8513) +* Counter/Mirror Coat/Metal Burst refactor by @PhallenTree in [#8604](https://github.com/rh-hideout/pokeemerald-expansion/pull/8604) + - `EFFECT_COUNTER`, `EFFECT_MIRROR_COAT` and `EFFECT_METAL_BURST` have been combined into `EFFECT_REFLECT_DAMAGE` + - These now use `BattleScript_EffectHit` and their damage is calculated in `DoFixedDamageMoveCalc` +* Refactor Endeavor to use DoFixedDamageMoveCalc func by @AlexOn1ine in [#8618](https://github.com/rh-hideout/pokeemerald-expansion/pull/8618) +* Move Explosion to attackcanceler and Terrain Boost effect by @AlexOn1ine in [#8612](https://github.com/rh-hideout/pokeemerald-expansion/pull/8612) +* Refactoring the way teachable learnsets are generated by @FosterProgramming in [#8027](https://github.com/rh-hideout/pokeemerald-expansion/pull/8027) + - `src/data/pokemon/teachable_learnsets.h` has been removed from the repo + - If your config P_LEARNSET_HELPER_TEACHABLE is set to false, open your `.gitignore` file and remove the `src/data/pokemon/teachable_learnsets.h` line, commit your `.gitignore` and `src/data/pokemon/teachable_learnsets.h` files then continue like before. + - If your config P_LEARNSET_HELPER_TEACHABLE is set to true, it will be created again when you use `make`. Documentation about the way the file is generated can be found in `docs/tutorials/teachable_learnsets.md`. Also the file `src/data/pokemon/all_learnables.json` is now replacing the porymoves files as the proper way to edit teachables sets. To your old teachables sets, run `make clean-teachables` and the file will be recreated based on the porymoves files when you run `make` +* Add Move End Faint Block by @PhallenTree in [#8673](https://github.com/rh-hideout/pokeemerald-expansion/pull/8673) +* Further weather consolidation by @AlexOn1ine in [#8161](https://github.com/rh-hideout/pokeemerald-expansion/pull/8161) +* enum TrainerPicID to replace defines for TRAINER_PIC_XXXX and TRAINER_BACK_PIC_XXXX by @grintoul1 in [#8789](https://github.com/rh-hideout/pokeemerald-expansion/pull/8789) + - Requires a `make clean` prior to make so that all trainer and battle partner front and back pic defines are refreshed by trainerproc +* Refactor mon generation by @FosterProgramming in [#8204](https://github.com/rh-hideout/pokeemerald-expansion/pull/8204) + - Reworked the functions that generate Pokemon, it should not affect most users but please read `docs/tutorials/mon_generation.md` if you want to know more or have difficulties adapting custom code that used to rely on the changed functions + - Synchronize and Cute Charm update: both of these overworld abilities now better match their cartridge behavior in regards to which pokemon are affected by the effect (use the `OW_SYNCHRONIZE_NATURE` config to choose the version) and can be more easily customized by changing the data in `src/ow_abilities.c` + - OW_SYNCHRONIZE_NATURE now defaults to GEN_LATEST(gen 9) where Synchronize has no overworld effect +* Consolidate battle anim particles by @fdeblasio in [#8797](https://github.com/rh-hideout/pokeemerald-expansion/pull/8797) +* Refactor move relearner and small #8027 follow-up by @PCG06 in [#8675](https://github.com/rh-hideout/pokeemerald-expansion/pull/8675) +* Refactor protect failure to match vanilla by @AlexOn1ine in [#8832](https://github.com/rh-hideout/pokeemerald-expansion/pull/8832) +* Capture odds refactor and new catch rate modifiers by @FosterProgramming in [#8682](https://github.com/rh-hideout/pokeemerald-expansion/pull/8682) + - Added new configs for catch rate modifiers: B_INCAPACITATED_CATCH_BONUS, B_LOW_LEVEL_CATCH_BONUS, B_MISSING_BADGE_CATCH_MALUS + - B_MISSING_BADGE_CATCH_MALUS default config may reduce catch rate in your hack + - Add new CATCHING_CHANCE macro to the test engine that allow to record the catching chance to more easily test capture parameters +* Add setpreattackadditionaleffect and use it for brick break / spectra… by @AlexOn1ine in [#8719](https://github.com/rh-hideout/pokeemerald-expansion/pull/8719) +* Refactor move target failure by @AlexOn1ine in [#8696](https://github.com/rh-hideout/pokeemerald-expansion/pull/8696) +* Refactor multi test system trainer party allocation and adds enum BattleTrainer by @grintoul1 in [#8908](https://github.com/rh-hideout/pokeemerald-expansion/pull/8908) +* Cleanup healthbox printing by @hedara90 in [#8958](https://github.com/rh-hideout/pokeemerald-expansion/pull/8958) +* Refactor Lilycove quiz and favor ladies by @fdeblasio in [#8929](https://github.com/rh-hideout/pokeemerald-expansion/pull/8929) +* Move adjustdamage to the damage calc by @AlexOn1ine in [#8948](https://github.com/rh-hideout/pokeemerald-expansion/pull/8948) +* Refactor OHKO Moves by @AlexOn1ine in [#8916](https://github.com/rh-hideout/pokeemerald-expansion/pull/8916) +* Refactor chooseboxmon by @FosterProgramming in [#8491](https://github.com/rh-hideout/pokeemerald-expansion/pull/8491) + - WARNING: In Game trade have been modified and previous script might be broken, we recommend replacing you trade script by using the new macro + - Add a new macro for ingame trade: `ingame_trade tradeId:req wantTradeMsg:req, declineTradeJump:req, wrongMonJump:req, tradeCompleteMsg:req` + - Add a new macro for move tutor: `move_tutor moveId:req, wantTeachingMsg:req, monSelectMsg:req, declinedJmp:req, taughtJmp:req, flagId=0`. flagId is optional, if it is present the move tutor can only be used once (it checks if the flag is unset and sets the flag after teaching the move). If it is not present, the move tutor can be used as many times as you want + - Adds a new config `OW_CHOOSE_FROM_PC_AND_PARTY` inc `cofig/overworld.h` to select if you want npc (daycare, move tutors, trade npc, ...) to let you pick a pokemon from the storage system (pc boxes+party) or just the party (defaults to TRUE allowing to choose mon from pc boxes + - Adds a filter to show which mons are valid when picking a mon from PC +* Even more battle environment updates by @fdeblasio in [#8835](https://github.com/rh-hideout/pokeemerald-expansion/pull/8835) +* Adds CancelerSetTargets and improves Pre Attack Effects by @PhallenTree in [#9178](https://github.com/rh-hideout/pokeemerald-expansion/pull/9178) + - Setting targets for moves has been refactored: + - `gBattleStruct->battlerState[gBattlerAttacker]->targetsDone[target]` is set to `TRUE` if `target` isn't targeted by the move; + - Moves now properly check failures against all targets when applicable. If it fails for all targets, it plays the same battle script as before; if it fails for some but not all targets, it will say "It doesn't affect target!", similar to Synchronoise. + - Additional effects that occur before the move animation (like Brick Break, Spectral Thief), can now be applied to multiple targets and can have a chance to activate. +* Sky Drop Fixes/Refactor by @AlexOn1ine in [#9185](https://github.com/rh-hideout/pokeemerald-expansion/pull/9185) + +## 🧬 General 🧬 +### Added +* New debug menu actions: Give Egg and Set KO by @FosterProgramming in [#8330](https://github.com/rh-hideout/pokeemerald-expansion/pull/8330) + - New debug menu action Give -> Give Egg let you select a species and add an egg of that species to your party (even if that species is not supposed to have eggs) + - New debug menu action Party -> Inflict Status -> KO let you pick a pokemon in your party and sets its hp to 0 +* 📜 Enable 3-color text by @Gudf in [#8191](https://github.com/rh-hideout/pokeemerald-expansion/pull/8191) +* Add trainers submenu for debug menu by @FosterProgramming in [#8399](https://github.com/rh-hideout/pokeemerald-expansion/pull/8399) +* 📜 Sprite text printing improvements by @hedara90 in [#8345](https://github.com/rh-hideout/pokeemerald-expansion/pull/8345) + - Sprite printing must be set up with `SetupSpritesForTextPrinting(arrayOfSpriteIds, arrayOfSourceSprites, numSpritesX, numSpritesY)` + - Has migration script to handle changes to `IsTextPrinterActive` +* Adding move animation backgrounds to the Pokemon Sprite Visualizer by @fdeblasio in [#8764](https://github.com/rh-hideout/pokeemerald-expansion/pull/8764) +* Add config flag to skip save overwrite confirmation by @spindrift64 in [#8659](https://github.com/rh-hideout/pokeemerald-expansion/pull/8659) +* Allow renaming and move relearning from box summary screen by @kittenchilly in [#8854](https://github.com/rh-hideout/pokeemerald-expansion/pull/8854) +* Change randomweightedarray to use u16 weights instead of u8 by @FosterProgramming in [#8934](https://github.com/rh-hideout/pokeemerald-expansion/pull/8934) +* Ease vanilla maps deletions by @FosterProgramming in [#9199](https://github.com/rh-hideout/pokeemerald-expansion/pull/9199) + - Added a new script that deletes all FRLG maps, just run `python dev_scripts/delete_frlg_maps.py`. It should take care of all the map constants but you will need to fix mention the to fuschia city entrance in the safari_zone.inc script. This does not save ROM space and is only useful to clean your repo + +### Changed +* Add FRLG (Part 1) by @cawtds in [#7572](https://github.com/rh-hideout/pokeemerald-expansion/pull/7572) +* Support NULLs in SpriteTemplate by @mrgriffin in [#8292](https://github.com/rh-hideout/pokeemerald-expansion/pull/8292) +* Adjusted battle string IDs to match the order in `gBattleStringsTable` by @AsparagusEduardo in [#8446](https://github.com/rh-hideout/pokeemerald-expansion/pull/8446) +* Allow Starting Statuses beyond 15 by @AsparagusEduardo in [#8485](https://github.com/rh-hideout/pokeemerald-expansion/pull/8485) + - You may now define if a Trainer's starting status is temporary or not, by adding "Temporary" at the end (eg. "Electric Terrain Temporary") + - `B_VAR_STARTING_STATUS` and `B_VAR_STARTING_STATUS_TIMER` have been replaced with `setstartingstatus` and the timer functionality has been removed in favor of defining temporary and permanent versions of each starting status. Eg. + ``` + setvar B_VAR_STARTING_STATUS STARTING_STATUS_PSYCHIC_TERRAIN | STARTING_STATUS_RAINBOW_OPPONENT + setvar B_VAR_STARTING_STATUS_TIMER 5 + ``` + has been replaced with + ``` + setstartingstatus STATUS_PSYCHIC_TERRAIN_TEMPORARY + setstartingstatus STARTING_STATUS_RAINBOW_OPPONENT + ``` + They can be stacked on top of each other. +* Remove vestigial handledeoxys code by @FosterProgramming in [#8509](https://github.com/rh-hideout/pokeemerald-expansion/pull/8509) +* assertf: Formatted asserts by @mrgriffin in [#8196](https://github.com/rh-hideout/pokeemerald-expansion/pull/8196) +* Battle Factory move style automation by @AsparagusEduardo in [#8368](https://github.com/rh-hideout/pokeemerald-expansion/pull/8368) +* errorf by @mrgriffin in [#8580](https://github.com/rh-hideout/pokeemerald-expansion/pull/8580) +* Improve make_scr_cmd_constants.py by @cawtds in [#8347](https://github.com/rh-hideout/pokeemerald-expansion/pull/8347) +* Centralize message box and standard frame drawing by @estellarc in [#8190](https://github.com/rh-hideout/pokeemerald-expansion/pull/8190) +* Refactoring the way teachable learnsets are generated by @FosterProgramming in [#8027](https://github.com/rh-hideout/pokeemerald-expansion/pull/8027) + - `src/data/pokemon/teachable_learnsets.h` has been removed from the repo + - If your config P_LEARNSET_HELPER_TEACHABLE is set to false, open your `.gitignore` file and remove the `src/data/pokemon/teachable_learnsets.h` line, commit your `.gitignore` and `src/data/pokemon/teachable_learnsets.h` files then continue like before. + - If your config P_LEARNSET_HELPER_TEACHABLE is set to true, it will be created again when you use `make`. Documentation about the way the file is generated can be found in `docs/tutorials/teachable_learnsets.md`. Also the file `src/data/pokemon/all_learnables.json` is now replacing the porymoves files as the proper way to edit teachables sets. To your old teachables sets, run `make clean-teachables` and the file will be recreated based on the porymoves files when you run `make` +* Fix `update_text_color_defs.py` on Python < 3.12 by @Gudf in [#8549](https://github.com/rh-hideout/pokeemerald-expansion/pull/8549) +* Clean up GenConfigTimeOfDay by @AlexOn1ine in [#8710](https://github.com/rh-hideout/pokeemerald-expansion/pull/8710) +* Added a include/config option to change mega cry sounds by @lordraindance2 in [#7558](https://github.com/rh-hideout/pokeemerald-expansion/pull/7558) +* Migrated some strings out of strings.c/strings.h by @fdeblasio in [#8270](https://github.com/rh-hideout/pokeemerald-expansion/pull/8270) +* DMA micro optimization by @estellarc in [#8410](https://github.com/rh-hideout/pokeemerald-expansion/pull/8410) +* Add a cleaner way to reset all_learnables.json by @FosterProgramming in [#8747](https://github.com/rh-hideout/pokeemerald-expansion/pull/8747) +* Easy chat data refactor by @fdeblasio in [#8271](https://github.com/rh-hideout/pokeemerald-expansion/pull/8271) +* enum TrainerPicID to replace defines for TRAINER_PIC_XXXX and TRAINER_BACK_PIC_XXXX by @grintoul1 in [#8789](https://github.com/rh-hideout/pokeemerald-expansion/pull/8789) + - Requires a `make clean` prior to make so that all trainer and battle partner front and back pic defines are refreshed by trainerproc +* Small code deduplication in battle_ai_switch.c by @cawtds in [#8790](https://github.com/rh-hideout/pokeemerald-expansion/pull/8790) +* Standardized use of macros in LoadPalette by @fdeblasio in [#8822](https://github.com/rh-hideout/pokeemerald-expansion/pull/8822) +* cleanup GetMon Null Data Instances by @Meister-anon in [#8867](https://github.com/rh-hideout/pokeemerald-expansion/pull/8867) +* Sprite Visualizer font update by @fdeblasio in [#8883](https://github.com/rh-hideout/pokeemerald-expansion/pull/8883) +* Decoupled trainer gender from encounter music by @fdeblasio in [#8892](https://github.com/rh-hideout/pokeemerald-expansion/pull/8892) +* More contest code consolidation by @fdeblasio in [#8889](https://github.com/rh-hideout/pokeemerald-expansion/pull/8889) +* Refactor pokerus and add configs by @FosterProgramming in [#7731](https://github.com/rh-hideout/pokeemerald-expansion/pull/7731) +* Standardized item indentation by @fdeblasio in [#8913](https://github.com/rh-hideout/pokeemerald-expansion/pull/8913) +* Change HP bar color calculation from pixel-width to actual values by @Kasenn in [#8694](https://github.com/rh-hideout/pokeemerald-expansion/pull/8694) +* Add sprite fill function taking a sprite as argument by @hedara90 in [#8940](https://github.com/rh-hideout/pokeemerald-expansion/pull/8940) +* Cleanup healthbox printing by @hedara90 in [#8958](https://github.com/rh-hideout/pokeemerald-expansion/pull/8958) +* Refactor Lilycove quiz and favor ladies by @fdeblasio in [#8929](https://github.com/rh-hideout/pokeemerald-expansion/pull/8929) +* Poke Ball consolidation by @fdeblasio in [#8962](https://github.com/rh-hideout/pokeemerald-expansion/pull/8962) +* More type checking across the repo by @Bassoonian in [#8988](https://github.com/rh-hideout/pokeemerald-expansion/pull/8988) +* Add FRLG by @cawtds in [#7423](https://github.com/rh-hideout/pokeemerald-expansion/pull/7423) + - use `make firered` or `make leafgreen` to build FRLG + - FRLG is playable, but missing some features + - Fame Checker, Map Preview an graphical elements aren't added yet. Teachy TV, TM Case and Berry Pouch not in scope. +* documentation on how to use frlg by @cawtds in [#9045](https://github.com/rh-hideout/pokeemerald-expansion/pull/9045) +* Fix another FRLG style oversight by @Bassoonian in [#9046](https://github.com/rh-hideout/pokeemerald-expansion/pull/9046) +* Fix FRLG comment oversight in ``script_cmd_table.inc`` by @Bassoonian in [#9043](https://github.com/rh-hideout/pokeemerald-expansion/pull/9043) +* Remove aif2pcm by @hedara90 in [#9076](https://github.com/rh-hideout/pokeemerald-expansion/pull/9076) +* Rename ow_synchronize.c by @FosterProgramming in [#9097](https://github.com/rh-hideout/pokeemerald-expansion/pull/9097) +* Delete irrelevant battle type comments for expansion by @AlexOn1ine in [#9082](https://github.com/rh-hideout/pokeemerald-expansion/pull/9082) +* Move SubtractClamped to util.c from battle_util.c by @AlexOn1ine in [#9120](https://github.com/rh-hideout/pokeemerald-expansion/pull/9120) +* docs(dns): add nighttime palette user guide by @izrofid in [#9158](https://github.com/rh-hideout/pokeemerald-expansion/pull/9158) +* Clean up ``reshow_battle_screen.c`` by @Bassoonian in [#9352](https://github.com/rh-hideout/pokeemerald-expansion/pull/9352) +* Cleans up unused String IDs and EWRAM variables by @Bassoonian in [#9363](https://github.com/rh-hideout/pokeemerald-expansion/pull/9363) +* Fix spacing for conditions by @Bassoonian in [#9369](https://github.com/rh-hideout/pokeemerald-expansion/pull/9369) +* Regularise switch indentation by @Bassoonian in [#9368](https://github.com/rh-hideout/pokeemerald-expansion/pull/9368) +* Updated Trainer Tower formatting by @fdeblasio in [#9209](https://github.com/rh-hideout/pokeemerald-expansion/pull/9209) +* Fix space indentation in .s and .inc files by @Bassoonian in [#9371](https://github.com/rh-hideout/pokeemerald-expansion/pull/9371) + +### Fixed +* Fix balls used for battle factory mons by @FosterProgramming in [#8480](https://github.com/rh-hideout/pokeemerald-expansion/pull/8480) + - Frontier mons can now be assigned to originate from a strange ball +* Fix save text colors arg order by @Gudf in [#8514](https://github.com/rh-hideout/pokeemerald-expansion/pull/8514) +* Fixed Wally Tutorial and added option to check from Debug Menu by @AsparagusEduardo in [#8502](https://github.com/rh-hideout/pokeemerald-expansion/pull/8502) +* Assertf improvements and fixes by @hedara90 in [#8570](https://github.com/rh-hideout/pokeemerald-expansion/pull/8570) +* 3-color text fixes by @Gudf in [#8672](https://github.com/rh-hideout/pokeemerald-expansion/pull/8672) +* Fix Debug Menu accessing disabled species by @hedara90 in [#8683](https://github.com/rh-hideout/pokeemerald-expansion/pull/8683) +* Stop early if species is disabled in HGSS dex by @hedara90 in [#8687](https://github.com/rh-hideout/pokeemerald-expansion/pull/8687) +* Make Porygon not load-bearing by @hedara90 in [#8688](https://github.com/rh-hideout/pokeemerald-expansion/pull/8688) + - `SPECIES_NONE` now uses the cry of Porygon, and said cry is not disabled with `P_FAMILY_PORYGON` +* Remove unused moveEffect variable in MoveEnd_MultihitMove to fix upcoming by @grintoul1 in [#8715](https://github.com/rh-hideout/pokeemerald-expansion/pull/8715) +* Replaced undeclared variable in Cmd_tryswapitems; commented out Eject Button test conflicting with another Commander test by @grintoul1 in [#8805](https://github.com/rh-hideout/pokeemerald-expansion/pull/8805) +* Fix struct TextPrinterTemplate on old GCC versions by @hedara90 in [#8825](https://github.com/rh-hideout/pokeemerald-expansion/pull/8825) +* Fix missing deafult moves for trainer parties by @FosterProgramming in [#8829](https://github.com/rh-hideout/pokeemerald-expansion/pull/8829) +* Rework teachable learnset makefile by @FosterProgramming in [#8803](https://github.com/rh-hideout/pokeemerald-expansion/pull/8803) +* Fix auto-signpost textprinter by @hedara90 in [#8833](https://github.com/rh-hideout/pokeemerald-expansion/pull/8833) +* Fix in-game trade not having moves (missing default moves again) by @FosterProgramming in [#8851](https://github.com/rh-hideout/pokeemerald-expansion/pull/8851) +* Clear out text printer when closing dialogue windows by @hedara90 in [#8848](https://github.com/rh-hideout/pokeemerald-expansion/pull/8848) +* Fix trailing commas in define by @FosterProgramming in [#8863](https://github.com/rh-hideout/pokeemerald-expansion/pull/8863) +* Reduce area filled when printing HP by @hedara90 in [#8866](https://github.com/rh-hideout/pokeemerald-expansion/pull/8866) +* Fix ability name printing for trainer mon ability assertf by @hedara90 in [#8877](https://github.com/rh-hideout/pokeemerald-expansion/pull/8877) +* Add missing sprite fill functions by @hedara90 in [#8975](https://github.com/rh-hideout/pokeemerald-expansion/pull/8975) +* fix: add `__attribute__((packed))` to `enum Direction` by @khbsd in [#8994](https://github.com/rh-hideout/pokeemerald-expansion/pull/8994) +* Fix gender selecting task not waiting for input by @FosterProgramming in [#9001](https://github.com/rh-hideout/pokeemerald-expansion/pull/9001) +* `sPlayerAvatarGfxToStateFlag`'s graphics id to `u16` by @estellarc in [#9101](https://github.com/rh-hideout/pokeemerald-expansion/pull/9101) +* Fix statement after label issue in chooseboxmon by @FosterProgramming in [#9093](https://github.com/rh-hideout/pokeemerald-expansion/pull/9093) +* Fix instant text option freezing the game by @hedara90 in [#9132](https://github.com/rh-hideout/pokeemerald-expansion/pull/9132) +* Squirtle is not a fire type by @Pawkkie in [#9145](https://github.com/rh-hideout/pokeemerald-expansion/pull/9145) +* Fix migration script output from move anim documentation by @hedara90 in [#9140](https://github.com/rh-hideout/pokeemerald-expansion/pull/9140) +* Move tutors makefile by @FosterProgramming in [#9058](https://github.com/rh-hideout/pokeemerald-expansion/pull/9058) +* fix(fanclub): use sText instead of non-existent gText by @izrofid in [#9163](https://github.com/rh-hideout/pokeemerald-expansion/pull/9163) +* Fix HGSS National Dex List Count by @HashtagMarky in [#9189](https://github.com/rh-hideout/pokeemerald-expansion/pull/9189) +* fix id range for object events and multi decrements/increments by @cawtds in [#9098](https://github.com/rh-hideout/pokeemerald-expansion/pull/9098) +* Show ability num instead of ability id whn picking ability with debug givemon by @FosterProgramming in [#9225](https://github.com/rh-hideout/pokeemerald-expansion/pull/9225) +* Fix sprite fill using wrong mask in some cases by @hedara90 in [#9205](https://github.com/rh-hideout/pokeemerald-expansion/pull/9205) + - Also fixes an issue where long mon names didn't use narrower fonts. +* fix(build): fix debug builds failing by @izrofid in [#9219](https://github.com/rh-hideout/pokeemerald-expansion/pull/9219) +* Fix battle tutorial crashing after reshow in frlg by @FosterProgramming in [#9243](https://github.com/rh-hideout/pokeemerald-expansion/pull/9243) +* 📜 Make .party files use "enum Pokeball" instead of "enum Item" by @FosterProgramming in [#9159](https://github.com/rh-hideout/pokeemerald-expansion/pull/9159) + - Balls data in trainers.party and battle_partners.party now expect enum Pokeball instead of struct Item + - The "BALL_" prefix is automatically added just like "ITEM_" used to be be, it means "great ball" must become "great" or "love ball" must become "love" + - running the migration script `python3 migration_scripts/1.15/trainer_party_ball_type_change.py` should change your files to the proper structure. If you have ball items not present in expansion in your project, you may need to edit the item_to_ball array in `migration_scripts/1.15/trainer_party_ball_type_change.py` to run the script +* Fix setting the wall clock crashing with OW_USE_FAKE_RTC set to FALSE and LTO=1 by @hedara90 in [#9299](https://github.com/rh-hideout/pokeemerald-expansion/pull/9299) +* Update Makefile to remove every rom on clean by @FosterProgramming in [#9346](https://github.com/rh-hideout/pokeemerald-expansion/pull/9346) +* Fix messed up palettes during battle intro by @hedara90 in [#9333](https://github.com/rh-hideout/pokeemerald-expansion/pull/9333) +* Merge metatile labels files by @FosterProgramming in [#9351](https://github.com/rh-hideout/pokeemerald-expansion/pull/9351) +* Adds a warning when trainer is invalid by @pkmnsnfrn in [#9195](https://github.com/rh-hideout/pokeemerald-expansion/pull/9195) +* Fix mapjson error with layouts missing layout_version key by @FosterProgramming in [#9374](https://github.com/rh-hideout/pokeemerald-expansion/pull/9374) +* Fix mapjson failing with long map/layout names by @FosterProgramming in [#9375](https://github.com/rh-hideout/pokeemerald-expansion/pull/9375) + +## 🗺️ Overworld 🗺️ +### Added +* Add Chooseboxmon special by @Artrios in [#5428](https://github.com/rh-hideout/pokeemerald-expansion/pull/5428) +* Add gym leader support for vs seeker and clean vs seeker code by @FosterProgramming in [#8172](https://github.com/rh-hideout/pokeemerald-expansion/pull/8172) + - Vs seeker now support gym leaders rematches with the same conditions as match call + - Vs seeker now allow rematches with all NPC types (TRAINER_TYPE_NONE and TRAINER_TYPE_ALL_DIRECTIONS) in addition to (TRAINER_TYPE_NORMAL and TRAINER_TYPE_BURIED) + - Vs seeker now uses question mark emote to represent NPCs who are not TRAINER_TYPE_NONE and do not have a trainer id in the first line of their script. + +### Changed +* OW mon fixes by @purrfectdoodle in [#8444](https://github.com/rh-hideout/pokeemerald-expansion/pull/8444) +* waitmovementall by @mrgriffin in [#8333](https://github.com/rh-hideout/pokeemerald-expansion/pull/8333) +* Add OW_BERRY_COLORS and update gBerries to match by @pkmnsnfrn in [#8353](https://github.com/rh-hideout/pokeemerald-expansion/pull/8353) +* Add Gen2 OW_TIMES_OF_DAY configuration. by @GraionDilach in [#8176](https://github.com/rh-hideout/pokeemerald-expansion/pull/8176) +* Refactor exchange service corner by @fdeblasio in [#8840](https://github.com/rh-hideout/pokeemerald-expansion/pull/8840) + +### Fixed +* Fix slateport battle tent battle type by @FosterProgramming in [#8475](https://github.com/rh-hideout/pokeemerald-expansion/pull/8475) +* Refactor mon generation by @FosterProgramming in [#8204](https://github.com/rh-hideout/pokeemerald-expansion/pull/8204) + - Reworked the functions that generate Pokemon, it should not affect most users but please read `docs/tutorials/mon_generation.md` if you want to know more or have difficulties adapting custom code that used to rely on the changed functions + - Synchronize and Cute Charm update: both of these overworld abilities now better match their cartridge behavior in regards to which pokemon are affected by the effect (use the `OW_SYNCHRONIZE_NATURE` config to choose the version) and can be more easily customized by changing the data in `src/ow_abilities.c` + - OW_SYNCHRONIZE_NATURE now defaults to GEN_LATEST(gen 9) where Synchronize has no overworld effect +* fix small mistake in ScriptGiveMonParameterized by @artsquirrelb in [#8820](https://github.com/rh-hideout/pokeemerald-expansion/pull/8820) +* Another MOVE_DEFAULT bugfix by @FosterProgramming in [#8823](https://github.com/rh-hideout/pokeemerald-expansion/pull/8823) +* Fix Daycare party select with `ChooseBoxMon` by @AsparagusEduardo in [#8845](https://github.com/rh-hideout/pokeemerald-expansion/pull/8845) +* Remove assert for surpassing total ev cap by @FosterProgramming in [#8938](https://github.com/rh-hideout/pokeemerald-expansion/pull/8938) +* Fix winning moves by @FosterProgramming in [#8978](https://github.com/rh-hideout/pokeemerald-expansion/pull/8978) +* Fix checking for rare move in disabled species by @FosterProgramming in [#8977](https://github.com/rh-hideout/pokeemerald-expansion/pull/8977) +* Fix checking for frontier banned disabled species by @FosterProgramming in [#8980](https://github.com/rh-hideout/pokeemerald-expansion/pull/8980) +* Refactor chooseboxmon by @FosterProgramming in [#8491](https://github.com/rh-hideout/pokeemerald-expansion/pull/8491) + - WARNING: In Game trade have been modified and previous script might be broken, we recommend replacing you trade script by using the new macro + - Add a new macro for ingame trade: `ingame_trade tradeId:req wantTradeMsg:req, declineTradeJump:req, wrongMonJump:req, tradeCompleteMsg:req` + - Add a new macro for move tutor: `move_tutor moveId:req, wantTeachingMsg:req, monSelectMsg:req, declinedJmp:req, taughtJmp:req, flagId=0`. flagId is optional, if it is present the move tutor can only be used once (it checks if the flag is unset and sets the flag after teaching the move). If it is not present, the move tutor can be used as many times as you want + - Adds a new config `OW_CHOOSE_FROM_PC_AND_PARTY` inc `cofig/overworld.h` to select if you want npc (daycare, move tutors, trade npc, ...) to let you pick a pokemon from the storage system (pc boxes+party) or just the party (defaults to TRUE allowing to choose mon from pc boxes + - Adds a filter to show which mons are valid when picking a mon from PC +* Fix return to field when selecting a move to forget by @FosterProgramming in [#9000](https://github.com/rh-hideout/pokeemerald-expansion/pull/9000) +* Fixed Link Overworld by @AsparagusEduardo in [#9014](https://github.com/rh-hideout/pokeemerald-expansion/pull/9014) +* Fix special var collision with battle frontier tutors by @FosterProgramming in [#9072](https://github.com/rh-hideout/pokeemerald-expansion/pull/9072) +* NO_WHITEOUT now prevent forfeits from B_RUN_TRAINER_BATTLE by @pkmnsnfrn in [#9112](https://github.com/rh-hideout/pokeemerald-expansion/pull/9112) +* Add wander around slower movement type by @FosterProgramming in [#9164](https://github.com/rh-hideout/pokeemerald-expansion/pull/9164) +* Make sure grass effect palette ignore fog when time blended by @FosterProgramming in [#9235](https://github.com/rh-hideout/pokeemerald-expansion/pull/9235) +* Fix batle dome streak thresholds by @FosterProgramming in [#9257](https://github.com/rh-hideout/pokeemerald-expansion/pull/9257) +* Fix sanitizeTrainerId by @FosterProgramming in [#9244](https://github.com/rh-hideout/pokeemerald-expansion/pull/9244) +* createmon:fix move order when all moves are default by @FosterProgramming in [#9261](https://github.com/rh-hideout/pokeemerald-expansion/pull/9261) +* Fix firered TV loading emerald TV script by @FosterProgramming in [#9329](https://github.com/rh-hideout/pokeemerald-expansion/pull/9329) +* Fix double actions on standard bike by @FosterProgramming in [#9344](https://github.com/rh-hideout/pokeemerald-expansion/pull/9344) +* Fix ss anne disappearing early by @FosterProgramming in [#9334](https://github.com/rh-hideout/pokeemerald-expansion/pull/9334) +* Fix frlg coinbox window by @FosterProgramming in [#9336](https://github.com/rh-hideout/pokeemerald-expansion/pull/9336) +* Fix region text when looking at map in frlg by @FosterProgramming in [#9347](https://github.com/rh-hideout/pokeemerald-expansion/pull/9347) +* Add original frlg safari zone menu and fix initial step counter by @FosterProgramming in [#9340](https://github.com/rh-hideout/pokeemerald-expansion/pull/9340) +* Fix floor menu in frlg elevator showing wrong values by @FosterProgramming in [#9350](https://github.com/rh-hideout/pokeemerald-expansion/pull/9350) +* Redraw money box after multi choice in bike shop script by @FosterProgramming in [#9331](https://github.com/rh-hideout/pokeemerald-expansion/pull/9331) +* Fix special vars in frlg ingame trade by @FosterProgramming in [#9328](https://github.com/rh-hideout/pokeemerald-expansion/pull/9328) +* Set var facing on all interactions by @FosterProgramming in [#9330](https://github.com/rh-hideout/pokeemerald-expansion/pull/9330) +* 📜 createmon uses enum Pokeball instead of Item by @FosterProgramming in [#9281](https://github.com/rh-hideout/pokeemerald-expansion/pull/9281) + - Balls data in when using createmon and givemon now expect enum Pokeball instead of struct Item + - Running the migration script python3 migration_scripts/1.15/givemon_balls_typechange.py should update your script file automatically. If you have ball items not present in expansion in your project, you may need to edit the item_to_ball array in migration_scripts/1.15/trainer_party_ball_type_change.py to run the script +* Add red and leaf icons to frlg map by @FosterProgramming in [#9357](https://github.com/rh-hideout/pokeemerald-expansion/pull/9357) +* Make sure prevo moves are not duplicated in move relearner by @FosterProgramming in [#9377](https://github.com/rh-hideout/pokeemerald-expansion/pull/9377) +* Movement follow player by @FosterProgramming in [#9365](https://github.com/rh-hideout/pokeemerald-expansion/pull/9365) +* add missing tv sprite in frlg pokecenter by @FosterProgramming in [#9348](https://github.com/rh-hideout/pokeemerald-expansion/pull/9348) + +## 🐉 Pokémon 🐉 +### Added +* Add support for species unique eggs by @hedara90 in [#8557](https://github.com/rh-hideout/pokeemerald-expansion/pull/8557) + - New species unique eggs must be added to `enum EggIds` and `src/data/pokemon/egg_data.h` + +### Changed +* OW mon fixes by @purrfectdoodle in [#8444](https://github.com/rh-hideout/pokeemerald-expansion/pull/8444) +* Simplified sprite visualizer's battle backgrounds by @fdeblasio in [#8775](https://github.com/rh-hideout/pokeemerald-expansion/pull/8775) +* Convert ``IsMonBannedFromSkyBattles`` table to species flag by @Bassoonian in [#8793](https://github.com/rh-hideout/pokeemerald-expansion/pull/8793) + - If you previously changed the table in ``IsMonBannedFromSkyBattles``, please mark species as banned from sky battles by adding the ``isSkyBattleBanned`` to them in their ``gSpeciesInfo`` struct. +* Refactor move relearner and small #8027 follow-up by @PCG06 in [#8675](https://github.com/rh-hideout/pokeemerald-expansion/pull/8675) +* Add Legends Z-A: Mega Dimension content by @LinathanZel in [#8550](https://github.com/rh-hideout/pokeemerald-expansion/pull/8550) + - To retain compatibility with your new items and species, make sure to move the new additions behind your own additions. + - The save block will shift if you have enabled USE_DEXNAV_SEARCH_LEVELS (due to the new species) or if OW_SHOW_ITEM_DESCRIPTIONS is set to OW_ITEM_DESCRIPTIONS_FIRST_TIME (due to the new items). +* Add Legends Z-A cries by @LinathanZel in [#8151](https://github.com/rh-hideout/pokeemerald-expansion/pull/8151) + - These cries result in a 2.26% increase in ROM space used. + - Toggling `P_MODIFIED_MEGA_CRIES` to `FALSE` saves about 3.74% ROM space. +* Add missing cries for Cramorant-Gulping, Cramorant-Gorging, Oinkologne-Female, and Ursaluna-Bloodmoon by @LinathanZel in [#8911](https://github.com/rh-hideout/pokeemerald-expansion/pull/8911) +* New White Stripe Basculin Sprites by @SabataLunar in [#8926](https://github.com/rh-hideout/pokeemerald-expansion/pull/8926) +* Add Egg Moves to Pokémon introduced in Legends Arceus by @LinathanZel in [#8982](https://github.com/rh-hideout/pokeemerald-expansion/pull/8982) + +### Fixed +* fix(code): stop GetSpeciesPreEvolution from checking disabled species by @khbsd in [#8598](https://github.com/rh-hideout/pokeemerald-expansion/pull/8598) + - this prevents species from showing up as pre-evolutions if their evolutions are disabled; if a feature you have relies on that make sure to adjust. +* Fix file endings for White-Stripe Basculin palettes by @hedara90 in [#8956](https://github.com/rh-hideout/pokeemerald-expansion/pull/8956) +* Allow Power Construct Animation by @KnightGallade in [#9298](https://github.com/rh-hideout/pokeemerald-expansion/pull/9298) +* createmon:fix move order when all moves are default by @FosterProgramming in [#9261](https://github.com/rh-hideout/pokeemerald-expansion/pull/9261) + +## ⚔️ Battle General ⚔️ +### Added +* Allow x items to be cross-used in double battles by @FosterProgramming in [#8280](https://github.com/rh-hideout/pokeemerald-expansion/pull/8280) + - Adds a new config `B_X_ITEMS_CROSSUSE` (true by default) that allows X items to be used on any allied battler in double battle +* Support Gen 2's Sandstorm not reducing Solar Beam's power by @AsparagusEduardo in [#8422](https://github.com/rh-hideout/pokeemerald-expansion/pull/8422) + - Changed uses of `B_WEATHER_HAIL | B_WEATHER_SNOW` to `B_WEATHER_ICY_ANY`. +* Adds smart target type by @AlexOn1ine in [#8639](https://github.com/rh-hideout/pokeemerald-expansion/pull/8639) +* Adds assertf for incorrect usage of `end`s, `return`, `call` and selection script commands by @PhallenTree in [#9018](https://github.com/rh-hideout/pokeemerald-expansion/pull/9018) + +### Changed +* Switch-in Events Refactor by @AlexOn1ine in [#8128](https://github.com/rh-hideout/pokeemerald-expansion/pull/8128) +* Updated Focus Punch failure check and moved to attackcanceler by @PhallenTree in [#8360](https://github.com/rh-hideout/pokeemerald-expansion/pull/8360) +* Move crit calculation into the damage calc by @AlexOn1ine in [#8365](https://github.com/rh-hideout/pokeemerald-expansion/pull/8365) +* Trainerbattle Type Differentiation by @u8-Salem in [#6424](https://github.com/rh-hideout/pokeemerald-expansion/pull/6424) + - for multi battles: `partnerId` is no longer set in `multi_*` macros but instead by `setmultitrainerbattle` +* Make Glaive Rush a MOVE_EFFECT_GLAIVE_RUSH by @AlexOn1ine in [#8351](https://github.com/rh-hideout/pokeemerald-expansion/pull/8351) +* Removed Hold Effects that do nothing by @AsparagusEduardo in [#8420](https://github.com/rh-hideout/pokeemerald-expansion/pull/8420) + - Removed `HOLD_EFFECT_DRAGON_SCALE` and `HOLD_EFFECT_UPGRADE`. +* Convert starting statuses to a bitmask by @AlexOn1ine in [#8233](https://github.com/rh-hideout/pokeemerald-expansion/pull/8233) +* Refactor Multi Hit moves to use a flag instead of effect by @AlexOn1ine in [#8379](https://github.com/rh-hideout/pokeemerald-expansion/pull/8379) +* Renames for struct BattleContext and DamageContext by @AlexOn1ine in [#8426](https://github.com/rh-hideout/pokeemerald-expansion/pull/8426) +* Decouples BattlerHasAi from battle positions to instead be determined by battler Battle Controller by @grintoul1 in [#8247](https://github.com/rh-hideout/pokeemerald-expansion/pull/8247) +* Streamline unable to use move flags by @AlexOn1ine in [#8415](https://github.com/rh-hideout/pokeemerald-expansion/pull/8415) +* Add fieldStatuses argument to Ai_CalcDamage for switch in calc by @AlexOn1ine in [#8490](https://github.com/rh-hideout/pokeemerald-expansion/pull/8490) +* Battle controller Ball throw cleanup by @AsparagusEduardo in [#8519](https://github.com/rh-hideout/pokeemerald-expansion/pull/8519) +* Add starting-status hazard support by @moostoet in [#8302](https://github.com/rh-hideout/pokeemerald-expansion/pull/8302) + - `B_VAR_STARTING_STATUS` now supports spawning layered hazards (Spikes, Toxic Spikes, Sticky Web, Stealth Rock, Steelsurge) with correct messaging and effects. +* Move disable struct members to battle mon volatiles by @AlexOn1ine in [#8540](https://github.com/rh-hideout/pokeemerald-expansion/pull/8540) +* Move target type refactor by @AlexOn1ine in [#8513](https://github.com/rh-hideout/pokeemerald-expansion/pull/8513) +* Counter/Mirror Coat/Metal Burst refactor by @PhallenTree in [#8604](https://github.com/rh-hideout/pokeemerald-expansion/pull/8604) + - `EFFECT_COUNTER`, `EFFECT_MIRROR_COAT` and `EFFECT_METAL_BURST` have been combined into `EFFECT_REFLECT_DAMAGE` + - These now use `BattleScript_EffectHit` and their damage is calculated in `DoFixedDamageMoveCalc` +* Refactor Endeavor to use DoFixedDamageMoveCalc func by @AlexOn1ine in [#8618](https://github.com/rh-hideout/pokeemerald-expansion/pull/8618) +* Move Explosion to attackcanceler and Terrain Boost effect by @AlexOn1ine in [#8612](https://github.com/rh-hideout/pokeemerald-expansion/pull/8612) +* Stockpile / WishFutureKnock / Order up clean up by @AlexOn1ine in [#8528](https://github.com/rh-hideout/pokeemerald-expansion/pull/8528) +* Add Move End Faint Block by @PhallenTree in [#8673](https://github.com/rh-hideout/pokeemerald-expansion/pull/8673) +* Clean up for touchedProtectLike by @AlexOn1ine in [#8699](https://github.com/rh-hideout/pokeemerald-expansion/pull/8699) +* Create battle_move_resolution.c by @AlexOn1ine in [#8703](https://github.com/rh-hideout/pokeemerald-expansion/pull/8703) +* Trainer slides for multiple trainers and multibattles by @grintoul1 in [#7588](https://github.com/rh-hideout/pokeemerald-expansion/pull/7588) +* Change Present edge case by @AlexOn1ine in [#8708](https://github.com/rh-hideout/pokeemerald-expansion/pull/8708) +* Add error handling to BS_GetStatValue by @hedara90 in [#8734](https://github.com/rh-hideout/pokeemerald-expansion/pull/8734) +* Fix Rage generational inaccuracies by @moostoet in [#8642](https://github.com/rh-hideout/pokeemerald-expansion/pull/8642) +* Further weather consolidation by @AlexOn1ine in [#8161](https://github.com/rh-hideout/pokeemerald-expansion/pull/8161) +* Add pre–Gen 4 handling for Hidden Power and Counter interaction by @izrofid in [#8741](https://github.com/rh-hideout/pokeemerald-expansion/pull/8741) +* Clean up volatiles by @AlexOn1ine in [#8762](https://github.com/rh-hideout/pokeemerald-expansion/pull/8762) +* Add handling for Trick/Switcheroo behavior when both battlers are choice-locked (pre–Gen 5) by @izrofid in [#8730](https://github.com/rh-hideout/pokeemerald-expansion/pull/8730) +* Fixed GetCopycatMove's capitalization by @fdeblasio in [#8808](https://github.com/rh-hideout/pokeemerald-expansion/pull/8808) +* Added Secret Power animations to gBattleEnvironmentInfo by @fdeblasio in [#8807](https://github.com/rh-hideout/pokeemerald-expansion/pull/8807) +* More battle environment updates by @fdeblasio in [#8809](https://github.com/rh-hideout/pokeemerald-expansion/pull/8809) +* Refactor protect failure to match vanilla by @AlexOn1ine in [#8832](https://github.com/rh-hideout/pokeemerald-expansion/pull/8832) +* Adds type checking for battler positions by @Bassoonian in [#8792](https://github.com/rh-hideout/pokeemerald-expansion/pull/8792) +* Add setpreattackadditionaleffect and use it for brick break / spectra… by @AlexOn1ine in [#8719](https://github.com/rh-hideout/pokeemerald-expansion/pull/8719) +* Refactor move target failure by @AlexOn1ine in [#8696](https://github.com/rh-hideout/pokeemerald-expansion/pull/8696) +* Battle file cleanup & documentation by @Bassoonian in [#8903](https://github.com/rh-hideout/pokeemerald-expansion/pull/8903) +* Apply some cases of `STATUS1_ICY_ANY` by @AsparagusEduardo in [#8924](https://github.com/rh-hideout/pokeemerald-expansion/pull/8924) +* Consolidated `HandleStatusIconUpdate` by @AsparagusEduardo in [#8925](https://github.com/rh-hideout/pokeemerald-expansion/pull/8925) +* `GetBattleTrainer` -> `GetBattlerTrainer` by @AsparagusEduardo in [#8952](https://github.com/rh-hideout/pokeemerald-expansion/pull/8952) +* Move adjustdamage to the damage calc by @AlexOn1ine in [#8948](https://github.com/rh-hideout/pokeemerald-expansion/pull/8948) +* Refactor OHKO Moves by @AlexOn1ine in [#8916](https://github.com/rh-hideout/pokeemerald-expansion/pull/8916) +* Move attack canceler to the move resolution file by @AlexOn1ine in [#8921](https://github.com/rh-hideout/pokeemerald-expansion/pull/8921) +* Add even more type checking by @Bassoonian in [#8972](https://github.com/rh-hideout/pokeemerald-expansion/pull/8972) +* Add missing copycatBanned to Mirror Coat by @fdeblasio in [#9016](https://github.com/rh-hideout/pokeemerald-expansion/pull/9016) +* Move Target failure follow up by @AlexOn1ine in [#8986](https://github.com/rh-hideout/pokeemerald-expansion/pull/8986) +* Even more battle environment updates by @fdeblasio in [#8835](https://github.com/rh-hideout/pokeemerald-expansion/pull/8835) +* Form Change Improvements by @AsparagusEduardo in [#8850](https://github.com/rh-hideout/pokeemerald-expansion/pull/8850) +* Clean up redundant item assignment after it was stolen by @AlexOn1ine in [#9044](https://github.com/rh-hideout/pokeemerald-expansion/pull/9044) +* Use direct config names instead of enum names by @AsparagusEduardo in [#8824](https://github.com/rh-hideout/pokeemerald-expansion/pull/8824) + - `GetConfig` and `WITH_CONFIG` now use the actual config define. Eg, `B_STURDY` instead of `CONFIG_STURDY`. However, in scripts, using `jumpifgenconfiglowerthan` in scripts would use the full name of `CONFIG_B_STURDY`. +* Adds CancelerSetTargets and improves Pre Attack Effects by @PhallenTree in [#9178](https://github.com/rh-hideout/pokeemerald-expansion/pull/9178) + - Setting targets for moves has been refactored: + - `gBattleStruct->battlerState[gBattlerAttacker]->targetsDone[target]` is set to `TRUE` if `target` isn't targeted by the move; + - Moves now properly check failures against all targets when applicable. If it fails for all targets, it plays the same battle script as before; if it fails for some but not all targets, it will say "It doesn't affect target!", similar to Synchronoise. + - Additional effects that occur before the move animation (like Brick Break, Spectral Thief), can now be applied to multiple targets and can have a chance to activate. +* Sky Drop Fixes/Refactor by @AlexOn1ine in [#9185](https://github.com/rh-hideout/pokeemerald-expansion/pull/9185) +* FRLG accuracy check clean up by @AlexOn1ine in [#9224](https://github.com/rh-hideout/pokeemerald-expansion/pull/9224) +* Simplify defrosting/thawing and expand target thawing config by @PhallenTree in [#9271](https://github.com/rh-hideout/pokeemerald-expansion/pull/9271) +* Move undoing Dynamax to before faint cry by @PhallenTree in [#9317](https://github.com/rh-hideout/pokeemerald-expansion/pull/9317) +* Adjust the restriction for Pecharunt by @AlexOn1ine in [#9181](https://github.com/rh-hideout/pokeemerald-expansion/pull/9181) + +### Fixed +* Refactor Fury Cutter and Rollout by @AlexOn1ine in [#8375](https://github.com/rh-hideout/pokeemerald-expansion/pull/8375) +* Fix Snatch stealing snatched moves by @moostoet in [#8350](https://github.com/rh-hideout/pokeemerald-expansion/pull/8350) +* Fix Air Balloon message happening when another battler switches in by @PhallenTree in [#8455](https://github.com/rh-hideout/pokeemerald-expansion/pull/8455) +* Fix potential bug with CanBattlerGetOrLoseItem by @AlexOn1ine in [#8518](https://github.com/rh-hideout/pokeemerald-expansion/pull/8518) +* Fix Red Card / Eject Button interaction by @AlexOn1ine in [#8780](https://github.com/rh-hideout/pokeemerald-expansion/pull/8780) +* Fixes Chilly Reception displaying its message when called by another move by @PhallenTree in [#8795](https://github.com/rh-hideout/pokeemerald-expansion/pull/8795) +* Ability Shield allows for ability activation when obtained and Trick cleanup by @PhallenTree in [#8784](https://github.com/rh-hideout/pokeemerald-expansion/pull/8784) +* Update volatiles once again by @AlexOn1ine in [#8798](https://github.com/rh-hideout/pokeemerald-expansion/pull/8798) +* Fix field abilities activating when an other mon switches in by @AlexOn1ine in [#8743](https://github.com/rh-hideout/pokeemerald-expansion/pull/8743) +* Fix capture using strange ball by @FosterProgramming in [#8874](https://github.com/rh-hideout/pokeemerald-expansion/pull/8874) +* Fix Gen 4 Taunt for upcoming by @amiosi in [#8878](https://github.com/rh-hideout/pokeemerald-expansion/pull/8878) +* Fix wrong getter in GetSwitchinStatusDamage by @Bassoonian in [#8896](https://github.com/rh-hideout/pokeemerald-expansion/pull/8896) +* Follow up for anim issue in doubles by @AlexOn1ine in [#8894](https://github.com/rh-hideout/pokeemerald-expansion/pull/8894) +* Fix brackets in SetMoveEffect by @AlexOn1ine in [#8922](https://github.com/rh-hideout/pokeemerald-expansion/pull/8922) +* Misc battle engine changes by @AlexOn1ine in [#8931](https://github.com/rh-hideout/pokeemerald-expansion/pull/8931) +* Mold Breaker, Last Resort, Assume and Tantrum fixes by @AlexOn1ine in [#9047](https://github.com/rh-hideout/pokeemerald-expansion/pull/9047) +* Fixes Fling Booster Energy being prevented by target Paradox mon by @PhallenTree in [#9050](https://github.com/rh-hideout/pokeemerald-expansion/pull/9050) +* Fixes wild mon target choice in double battles by @izrofid in [#9075](https://github.com/rh-hideout/pokeemerald-expansion/pull/9075) +* Fix Electroweb crash by correcting target sprite resolution by @Cle-bit in [#9091](https://github.com/rh-hideout/pokeemerald-expansion/pull/9091) +* Clear Selection Scripts to prevents consequent fails by @PhallenTree in [#9095](https://github.com/rh-hideout/pokeemerald-expansion/pull/9095) +* NO_WHITEOUT now prevent forfeits from B_RUN_TRAINER_BATTLE by @pkmnsnfrn in [#9112](https://github.com/rh-hideout/pokeemerald-expansion/pull/9112) +* Fix Leppa Berry PP restore target under forced-consumption effects by @Cle-bit in [#9108](https://github.com/rh-hideout/pokeemerald-expansion/pull/9108) +* fix(battle ui): standardize hp bar color logic for `GEN_5` and up by @khbsd in [#9083](https://github.com/rh-hideout/pokeemerald-expansion/pull/9083) +* Battle Heap and Animation Test fixes by @hedara90 in [#9118](https://github.com/rh-hideout/pokeemerald-expansion/pull/9118) +* Fix Instruct failing improperly when the instructed move isn't in the target's moveset by @Cle-bit in [#9113](https://github.com/rh-hideout/pokeemerald-expansion/pull/9113) +* Fix ShouldSkipAccuracyCalcPastFirstHit wrong return val by @AlexOn1ine in [#9122](https://github.com/rh-hideout/pokeemerald-expansion/pull/9122) +* Fixes Dancer activating on missed moves and Neutralizing Gas interaction by @PhallenTree in [#9129](https://github.com/rh-hideout/pokeemerald-expansion/pull/9129) +* Strength Sap fixes by @AlexOn1ine in [#9130](https://github.com/rh-hideout/pokeemerald-expansion/pull/9130) +* Fix Aroma Veil target-side check for ally-targeted limiting moves by @Cle-bit in [#9157](https://github.com/rh-hideout/pokeemerald-expansion/pull/9157) +* Fix immunity ability status sync to avoid persisting Toxic counter when only volatile conditions are cured by @Cle-bit in [#9156](https://github.com/rh-hideout/pokeemerald-expansion/pull/9156) +* Fix Pickpocket timing by @AlexOn1ine in [#9165](https://github.com/rh-hideout/pokeemerald-expansion/pull/9165) +* Fix Instruct Missing Checks for Focus Punch, Beak Blast, Shell Trap, and Sky Drop by @Cle-bit in [#9152](https://github.com/rh-hideout/pokeemerald-expansion/pull/9152) +* Fix Aqua Ring reuse failure check and add Aqua Ring/Ingrain tests by @Cle-bit in [#9174](https://github.com/rh-hideout/pokeemerald-expansion/pull/9174) +* Fix Transform fail conditions with gen-specific checks by @Cle-bit in [#9070](https://github.com/rh-hideout/pokeemerald-expansion/pull/9070) +* Fix Taunt to not block Me First in Gen 5+ by @Cle-bit in [#9069](https://github.com/rh-hideout/pokeemerald-expansion/pull/9069) +* Fix Present heal miss-flag handling and enforce Telepathy blocking by @Cle-bit in [#9170](https://github.com/rh-hideout/pokeemerald-expansion/pull/9170) +* Fix Commander cleanup after Volt Switch switch-in by @Cle-bit in [#9141](https://github.com/rh-hideout/pokeemerald-expansion/pull/9141) +* Fixes Gulp Missile crash on targets that can be statused by @AlexOn1ine in [#9179](https://github.com/rh-hideout/pokeemerald-expansion/pull/9179) +* Fix moves causing errors in Multiplayer due to recoil check in Battle TV by @hedara90 in [#9183](https://github.com/rh-hideout/pokeemerald-expansion/pull/9183) +* Fix multi battle switch checks for Eject items by @Cle-bit in [#9190](https://github.com/rh-hideout/pokeemerald-expansion/pull/9190) +* Fix incorrect player berry animation on opponent’s low-HP heal at battle start by @Cle-bit in [#9198](https://github.com/rh-hideout/pokeemerald-expansion/pull/9198) +* Fix accuracy bypass by @cawtds in [#9201](https://github.com/rh-hideout/pokeemerald-expansion/pull/9201) +* Fixes Protective Pads preventing Poison Touch activation by @PhallenTree in [#9222](https://github.com/rh-hideout/pokeemerald-expansion/pull/9222) +* Fix tera icon palettes by @grintoul1 in [#9208](https://github.com/rh-hideout/pokeemerald-expansion/pull/9208) +* Running from trainer battles properly handles whiteouts by @pkmnsnfrn in [#9228](https://github.com/rh-hideout/pokeemerald-expansion/pull/9228) +* Prevents `seteffectprimary` and `seteffectsecondary` from softlocking by @PhallenTree in [#9236](https://github.com/rh-hideout/pokeemerald-expansion/pull/9236) +* fix cram form change issue #9182 by @Meister-anon in [#9184](https://github.com/rh-hideout/pokeemerald-expansion/pull/9184) +* Fixes Throat Chop timer being reset with every use of the move by @PhallenTree in [#9246](https://github.com/rh-hideout/pokeemerald-expansion/pull/9246) +* Fix pressing left or up when choosing target potentially causing a softlock by @PhallenTree in [#9247](https://github.com/rh-hideout/pokeemerald-expansion/pull/9247) +* Poltergeist Fix: Usable against Klutz targets and while Magic Room is in effect by @LinathanZel in [#9256](https://github.com/rh-hideout/pokeemerald-expansion/pull/9256) +* Fixes Rapid Spin and target defrost not being blocked by Sheer Force by @PhallenTree in [#9252](https://github.com/rh-hideout/pokeemerald-expansion/pull/9252) +* Fix incorrect Adaptability interaction with non Tera type moves after Terastalization by @Cle-bit in [#9272](https://github.com/rh-hideout/pokeemerald-expansion/pull/9272) +* Fix Ability Shield exemption when Neutralizing Gas ends by @Cle-bit in [#9273](https://github.com/rh-hideout/pokeemerald-expansion/pull/9273) +* Fix Tickle to be blocked by Substitute in Gen 4+ by @Cle-bit in [#9288](https://github.com/rh-hideout/pokeemerald-expansion/pull/9288) +* Fix Venom Drench bypassing Substitute by @Cle-bit in [#9289](https://github.com/rh-hideout/pokeemerald-expansion/pull/9289) +* Fix Assist to account for temporarily changed moves in Gen 5+ by @Cle-bit in [#9287](https://github.com/rh-hideout/pokeemerald-expansion/pull/9287) +* Fixes Minior not appearing in Meteor form when encountered in the wild by @luuma in [#9282](https://github.com/rh-hideout/pokeemerald-expansion/pull/9282) +* Fix Eviolite to use original species after Transform by @Cle-bit in [#9285](https://github.com/rh-hideout/pokeemerald-expansion/pull/9285) +* Fixes present master merge regression by @AlexOn1ine in [#9301](https://github.com/rh-hideout/pokeemerald-expansion/pull/9301) +* Fix Power Construct Z symbol color + Add Form Change Sounds by @LinathanZel in [#9326](https://github.com/rh-hideout/pokeemerald-expansion/pull/9326) +* Fix Sucker Punch to succeed against Me First targets by @Cle-bit in [#9284](https://github.com/rh-hideout/pokeemerald-expansion/pull/9284) +* Fix safari healthbox by @FosterProgramming in [#9341](https://github.com/rh-hideout/pokeemerald-expansion/pull/9341) +* Fixes post-KO animation assertf trigger caused by OOB battler number by @grintoul1 in [#9343](https://github.com/rh-hideout/pokeemerald-expansion/pull/9343) +* Temporary fix to sprite data corruption during multi-faint by @hedara90 in [#9332](https://github.com/rh-hideout/pokeemerald-expansion/pull/9332) +* Zen Mode Fix: Removes start battle form change and adds switch-out form change by @LinathanZel in [#9304](https://github.com/rh-hideout/pokeemerald-expansion/pull/9304) +* Fix trainer sprite no reshowing properly in safari battle by @FosterProgramming in [#9353](https://github.com/rh-hideout/pokeemerald-expansion/pull/9353) +* Fixes plasma fists and several let's go and max move effects which should occur even when fainting a foe by @luuma in [#9262](https://github.com/rh-hideout/pokeemerald-expansion/pull/9262) +* Fix Paradox stat selection under Wonder Room by @Cle-bit in [#9356](https://github.com/rh-hideout/pokeemerald-expansion/pull/9356) +* Fix illegal switch due to hazards by @AlexOn1ine in [#9361](https://github.com/rh-hideout/pokeemerald-expansion/pull/9361) +* Fix reshowing battle not loading gimmick palettes by @hedara90 in [#9391](https://github.com/rh-hideout/pokeemerald-expansion/pull/9391) + +## 🤹 Moves 🤹 +### Changed +* Consolidate battle anim particles by @fdeblasio in [#8797](https://github.com/rh-hideout/pokeemerald-expansion/pull/8797) +* Consolidated common steps for Brick Break, Psychic Fang, and Raging Bull's animations by @fdeblasio in [#9020](https://github.com/rh-hideout/pokeemerald-expansion/pull/9020) +* Converted break_screen_animation from a macro to a function by @fdeblasio in [#9115](https://github.com/rh-hideout/pokeemerald-expansion/pull/9115) +* fix(bttl-anim): remove unused battle selector to silence warning by @izrofid in [#9218](https://github.com/rh-hideout/pokeemerald-expansion/pull/9218) + +### Fixed +* Fix Aqua Ring animation by @hedara90 in [#8707](https://github.com/rh-hideout/pokeemerald-expansion/pull/8707) +* Fixed an issue where double targeting a Pokemon on a single mon party causes animation issues by @LinathanZel in [#8891](https://github.com/rh-hideout/pokeemerald-expansion/pull/8891) +* Restore natural 0 battle TV score by @AsparagusEduardo in [#8901](https://github.com/rh-hideout/pokeemerald-expansion/pull/8901) +* correct move flags/data by @amiosi in [#8858](https://github.com/rh-hideout/pokeemerald-expansion/pull/8858) + +## 🧶 Items 🧶 +### Added +* Add gym leader support for vs seeker and clean vs seeker code by @FosterProgramming in [#8172](https://github.com/rh-hideout/pokeemerald-expansion/pull/8172) + - Vs seeker now support gym leaders rematches with the same conditions as match call + - Vs seeker now allow rematches with all NPC types (TRAINER_TYPE_NONE and TRAINER_TYPE_ALL_DIRECTIONS) in addition to (TRAINER_TYPE_NORMAL and TRAINER_TYPE_BURIED) + - Vs seeker now uses question mark emote to represent NPCs who are not TRAINER_TYPE_NONE and do not have a trainer id in the first line of their script. +* Gen 3 Lax Incense by @amiosi in [#8864](https://github.com/rh-hideout/pokeemerald-expansion/pull/8864) + +### Changed +* Add OW_BERRY_COLORS and update gBerries to match by @pkmnsnfrn in [#8353](https://github.com/rh-hideout/pokeemerald-expansion/pull/8353) +* Updated Lemonade's description's formatting to match the rest of the healing items by @fdeblasio in [#8888](https://github.com/rh-hideout/pokeemerald-expansion/pull/8888) +* Adds ``Item`` enum by @Bassoonian in [#8897](https://github.com/rh-hideout/pokeemerald-expansion/pull/8897) + - The struct ``Item`` was renamed to ``ItemInfo`` for consistency with the other structs. +* Add all of the Z-A mega stone sprites by @kittenchilly in [#9143](https://github.com/rh-hideout/pokeemerald-expansion/pull/9143) + +### Fixed +* Fix Rare Candy reviving fainted level 100 Pokémon by @Cle-bit in [#9117](https://github.com/rh-hideout/pokeemerald-expansion/pull/9117) + +## 🤖 Battle AI 🤖 +### Added +* Add Smarter AI Resist Berry Handling by @Pawkkie in [#8376](https://github.com/rh-hideout/pokeemerald-expansion/pull/8376) +* Improved behavior for AI X Items and Dire Hit; vanilla behavior moved to Force Setup First Turn by @surskitty in [#7851](https://github.com/rh-hideout/pokeemerald-expansion/pull/7851) +* Add AI_FLAG_RANDOMIZE_SWITCHINS by @Pawkkie and @lhearachel, @ghoulslash, @u8-Salem, @mrgriffin, @FosterProgramming in [#6222](https://github.com/rh-hideout/pokeemerald-expansion/pull/6222) +* AI will not stat boost if Yawn'd by @Pawkkie in [#8377](https://github.com/rh-hideout/pokeemerald-expansion/pull/8377) +* Improve self-sacrifice AI by @Pawkkie in [#8427](https://github.com/rh-hideout/pokeemerald-expansion/pull/8427) +* Adds TIE_BREAK_SCORE and TIE_BREAK_TARGET to test system to allow for forced or random move and target selection by @grintoul1 in [#8398](https://github.com/rh-hideout/pokeemerald-expansion/pull/8398) + - Due to how tests "crash" if the expected move is not what happens in the actual test, the move/target being expected must be the one selected in the **last** run of a test, else the crash causes an animation failure message. +* Trapping switch AI can see Shed Shell by @Pawkkie in [#8388](https://github.com/rh-hideout/pokeemerald-expansion/pull/8388) +* AI last chance / priority handling tweaks by @Pawkkie in [#8384](https://github.com/rh-hideout/pokeemerald-expansion/pull/8384) +* feat (AI): AI hits to KO considers Endure effects, and self-damage setup move handling by @ghostyboyy97 in [#8482](https://github.com/rh-hideout/pokeemerald-expansion/pull/8482) + - The AI now has logic for selecting Clangorous Soul and Fillet Away + - The AI now has improved logic for selecting Belly Drum + - The AI overall is more aware of whether or not its item and ability allows it to endure a hit. +* Switch AI sees terrain when calcing damage by @Pawkkie in [#8498](https://github.com/rh-hideout/pokeemerald-expansion/pull/8498) +* Add AI switchin quality consideration configs by @Pawkkie in [#8508](https://github.com/rh-hideout/pokeemerald-expansion/pull/8508) +* Improve AI Absorb Handling by @Pawkkie in [#8465](https://github.com/rh-hideout/pokeemerald-expansion/pull/8465) +* ShouldSwitch 1v1 calcs handle Endure effects by @Pawkkie in [#8544](https://github.com/rh-hideout/pokeemerald-expansion/pull/8544) +* Switchin calcs leverage saving / restoring `AiLogicData` by @Pawkkie in [#8556](https://github.com/rh-hideout/pokeemerald-expansion/pull/8556) +* AI uses Z-moves to ensure a low-accuracy KO. by @surskitty in [#8584](https://github.com/rh-hideout/pokeemerald-expansion/pull/8584) +* Cap AI scores for Quiver Dance, Victory Dance, and Shell Smash. by @surskitty in [#8585](https://github.com/rh-hideout/pokeemerald-expansion/pull/8585) +* Ensure Palafin prioritizes safe Flip Turn for Zero To Hero in battle by @Cle-bit in [#8591](https://github.com/rh-hideout/pokeemerald-expansion/pull/8591) +* Add Dynamic Switch AI Function by @Pawkkie in [#8629](https://github.com/rh-hideout/pokeemerald-expansion/pull/8629) +* Adjust AI two-turn move scoring by @Pawkkie in [#8651](https://github.com/rh-hideout/pokeemerald-expansion/pull/8651) +* Add AI_FLAG_RANDOMIZE_PARTY_INDICES by @Pawkkie in [#8717](https://github.com/rh-hideout/pokeemerald-expansion/pull/8717) +* AI uses Tailwind with Wind Rider and Wind Power by @Cle-bit in [#8983](https://github.com/rh-hideout/pokeemerald-expansion/pull/8983) + +### Changed +* Smarter AI handling for incoming heals / Revival Blessing by @moostoet in [#8325](https://github.com/rh-hideout/pokeemerald-expansion/pull/8325) + - AI now chooses Healing Wish/Wish/Lunar Dance/Z-Parting Shot/Z-Memento and Revival Blessing recipients intelligently, accounting for hazards, status cures, and matchup safety. +* Decouples BattlerHasAi from battle positions to instead be determined by battler Battle Controller by @grintoul1 in [#8247](https://github.com/rh-hideout/pokeemerald-expansion/pull/8247) +* Split `battle_ai_switch_items.c` in two by @Pawkkie in [#8414](https://github.com/rh-hideout/pokeemerald-expansion/pull/8414) + - Please see the PR description for guidance if you have modified anything in this file +* Enables AI to score all moves that KO as best damage, and store multiple moves as best damaging move for additional checks by @grintoul1 in [#8425](https://github.com/rh-hideout/pokeemerald-expansion/pull/8425) +* Rename `Ai_WhichMoveBetter` to `CompareMoveEffects` by @Pawkkie in [#8468](https://github.com/rh-hideout/pokeemerald-expansion/pull/8468) +* AI `ShouldPivot` Overhaul by @Pawkkie in [#8486](https://github.com/rh-hideout/pokeemerald-expansion/pull/8486) +* Fix switch AI caring about super effective Snore by @Pawkkie in [#8500](https://github.com/rh-hideout/pokeemerald-expansion/pull/8500) +* Refactor switchin candidates to use `battler` by @Pawkkie in [#8546](https://github.com/rh-hideout/pokeemerald-expansion/pull/8546) +* Consolidate `GetIndexMove` by @Pawkkie in [#8622](https://github.com/rh-hideout/pokeemerald-expansion/pull/8622) +* Iterator cleanup in `battle_ai` files by @Pawkkie in [#8582](https://github.com/rh-hideout/pokeemerald-expansion/pull/8582) +* Improve Trick/Bestow AI logic for Toxic/Flame Orb and Utility Umbrella by @Cle-bit in [#8729](https://github.com/rh-hideout/pokeemerald-expansion/pull/8729) +* AI avoids Protect against Unseen Fist and protection‑ignoring moves by @Cle-bit in [#8939](https://github.com/rh-hideout/pokeemerald-expansion/pull/8939) +* AI sees No Guard prevents having Semi Invulnerability. by @surskitty in [#8586](https://github.com/rh-hideout/pokeemerald-expansion/pull/8586) +* Remove redundant Levitate check for Magnitute by @AlexOn1ine in [#9197](https://github.com/rh-hideout/pokeemerald-expansion/pull/9197) + +### Fixed +* Fixes dmg rounding error for AI by @grintoul1 in [#8436](https://github.com/rh-hideout/pokeemerald-expansion/pull/8436) +* Fixes uninitialised variable in IncreaseSleepScore and corrects Focus Punch check by @grintoul1 in [#8481](https://github.com/rh-hideout/pokeemerald-expansion/pull/8481) +* fix (scoring): configure GetNoOfHitsToKOBattler to allow optional endure consideration by @ghostyboyy97 in [#8496](https://github.com/rh-hideout/pokeemerald-expansion/pull/8496) + - The AI will NOT consider if it can endure an extra hit for setup consideration to prevent AI abuse +* Fix doubles moves bad / choice lock bad switch AI by @Pawkkie in [#9078](https://github.com/rh-hideout/pokeemerald-expansion/pull/9078) +* Fix AI_FLAG_RANDOMIZE_SWITCHIN logic by @Pawkkie in [#9128](https://github.com/rh-hideout/pokeemerald-expansion/pull/9128) +* Prevent Coaching score inflation in certain circumstances. by @surskitty in [#9154](https://github.com/rh-hideout/pokeemerald-expansion/pull/9154) +* Add missing weather checks for AI sandstorm/hail damage helpers by @Cle-bit in [#9155](https://github.com/rh-hideout/pokeemerald-expansion/pull/9155) +* Fix doubles switch looping by @Pawkkie in [#9167](https://github.com/rh-hideout/pokeemerald-expansion/pull/9167) +* Fix AI semi-invulnerable move handling and simplify switching logic by @Cle-bit in [#9180](https://github.com/rh-hideout/pokeemerald-expansion/pull/9180) +* Fix Toxic Spikes switchin typo by @Pawkkie in [#9242](https://github.com/rh-hideout/pokeemerald-expansion/pull/9242) +* Fix AI Sheer Force checks to allow Order Up’s Commander stat boost by @Cle-bit in [#9250](https://github.com/rh-hideout/pokeemerald-expansion/pull/9250) + +## 🧹 Other Cleanup 🧹 +* Removed Hold Effects that do nothing by @AsparagusEduardo in [#8420](https://github.com/rh-hideout/pokeemerald-expansion/pull/8420) + - Removed `HOLD_EFFECT_DRAGON_SCALE` and `HOLD_EFFECT_UPGRADE`. +* Support NULLs in SpriteTemplate by @mrgriffin in [#8292](https://github.com/rh-hideout/pokeemerald-expansion/pull/8292) +* Renames for struct BattleContext and DamageContext by @AlexOn1ine in [#8426](https://github.com/rh-hideout/pokeemerald-expansion/pull/8426) +* Adjusted battle string IDs to match the order in `gBattleStringsTable` by @AsparagusEduardo in [#8446](https://github.com/rh-hideout/pokeemerald-expansion/pull/8446) +* Streamline unable to use move flags by @AlexOn1ine in [#8415](https://github.com/rh-hideout/pokeemerald-expansion/pull/8415) +* Split `battle_ai_switch_items.c` in two by @Pawkkie in [#8414](https://github.com/rh-hideout/pokeemerald-expansion/pull/8414) + - Please see the PR description for guidance if you have modified anything in this file +* Rename `Ai_WhichMoveBetter` to `CompareMoveEffects` by @Pawkkie in [#8468](https://github.com/rh-hideout/pokeemerald-expansion/pull/8468) +* Simplify some code by using GetBattlerParty by @AsparagusEduardo in [#8488](https://github.com/rh-hideout/pokeemerald-expansion/pull/8488) +* Remove vestigial handledeoxys code by @FosterProgramming in [#8509](https://github.com/rh-hideout/pokeemerald-expansion/pull/8509) +* Battle controller Ball throw cleanup by @AsparagusEduardo in [#8519](https://github.com/rh-hideout/pokeemerald-expansion/pull/8519) +* Removed more instances of hardcoded move IDs by @AsparagusEduardo in [#8539](https://github.com/rh-hideout/pokeemerald-expansion/pull/8539) +* Fix switch AI caring about super effective Snore by @Pawkkie in [#8500](https://github.com/rh-hideout/pokeemerald-expansion/pull/8500) +* Consolidate `GetIndexMove` by @Pawkkie in [#8622](https://github.com/rh-hideout/pokeemerald-expansion/pull/8622) +* Stockpile / WishFutureKnock / Order up clean up by @AlexOn1ine in [#8528](https://github.com/rh-hideout/pokeemerald-expansion/pull/8528) +* Iterator cleanup in `battle_ai` files by @Pawkkie in [#8582](https://github.com/rh-hideout/pokeemerald-expansion/pull/8582) +* Improve make_scr_cmd_constants.py by @cawtds in [#8347](https://github.com/rh-hideout/pokeemerald-expansion/pull/8347) +* Clean up for Wish struct, IsSpreadMove and all learnables file by @AlexOn1ine in [#8680](https://github.com/rh-hideout/pokeemerald-expansion/pull/8680) +* Clean up for touchedProtectLike by @AlexOn1ine in [#8699](https://github.com/rh-hideout/pokeemerald-expansion/pull/8699) +* Create battle_move_resolution.c by @AlexOn1ine in [#8703](https://github.com/rh-hideout/pokeemerald-expansion/pull/8703) +* Change Present edge case by @AlexOn1ine in [#8708](https://github.com/rh-hideout/pokeemerald-expansion/pull/8708) +* Migrated some strings out of strings.c/strings.h by @fdeblasio in [#8270](https://github.com/rh-hideout/pokeemerald-expansion/pull/8270) +* Add a cleaner way to reset all_learnables.json by @FosterProgramming in [#8747](https://github.com/rh-hideout/pokeemerald-expansion/pull/8747) +* Easy chat data refactor by @fdeblasio in [#8271](https://github.com/rh-hideout/pokeemerald-expansion/pull/8271) +* Clean up volatiles by @AlexOn1ine in [#8762](https://github.com/rh-hideout/pokeemerald-expansion/pull/8762) +* enum TrainerPicID to replace defines for TRAINER_PIC_XXXX and TRAINER_BACK_PIC_XXXX by @grintoul1 in [#8789](https://github.com/rh-hideout/pokeemerald-expansion/pull/8789) + - Requires a `make clean` prior to make so that all trainer and battle partner front and back pic defines are refreshed by trainerproc +* Convert ``IsMonBannedFromSkyBattles`` table to species flag by @Bassoonian in [#8793](https://github.com/rh-hideout/pokeemerald-expansion/pull/8793) + - If you previously changed the table in ``IsMonBannedFromSkyBattles``, please mark species as banned from sky battles by adding the ``isSkyBattleBanned`` to them in their ``gSpeciesInfo`` struct. +* Small code deduplication in battle_ai_switch.c by @cawtds in [#8790](https://github.com/rh-hideout/pokeemerald-expansion/pull/8790) +* Fixed GetCopycatMove's capitalization by @fdeblasio in [#8808](https://github.com/rh-hideout/pokeemerald-expansion/pull/8808) +* Added Secret Power animations to gBattleEnvironmentInfo by @fdeblasio in [#8807](https://github.com/rh-hideout/pokeemerald-expansion/pull/8807) +* More battle environment updates by @fdeblasio in [#8809](https://github.com/rh-hideout/pokeemerald-expansion/pull/8809) +* Standardized use of macros in LoadPalette by @fdeblasio in [#8822](https://github.com/rh-hideout/pokeemerald-expansion/pull/8822) +* Improve `IsBattlerSpritePresent`'s alive check by @PhallenTree in [#8847](https://github.com/rh-hideout/pokeemerald-expansion/pull/8847) +* OCD PR: Test summary order by @AsparagusEduardo in [#8853](https://github.com/rh-hideout/pokeemerald-expansion/pull/8853) +* Remove hacky spaces from `src/data/battle_environment.h` by @estellarc in [#8828](https://github.com/rh-hideout/pokeemerald-expansion/pull/8828) +* Refactor exchange service corner by @fdeblasio in [#8840](https://github.com/rh-hideout/pokeemerald-expansion/pull/8840) +* cleanup GetMon Null Data Instances by @Meister-anon in [#8867](https://github.com/rh-hideout/pokeemerald-expansion/pull/8867) +* Sprite Visualizer font update by @fdeblasio in [#8883](https://github.com/rh-hideout/pokeemerald-expansion/pull/8883) +* Updated Lemonade's description's formatting to match the rest of the healing items by @fdeblasio in [#8888](https://github.com/rh-hideout/pokeemerald-expansion/pull/8888) +* Decoupled trainer gender from encounter music by @fdeblasio in [#8892](https://github.com/rh-hideout/pokeemerald-expansion/pull/8892) +* More contest code consolidation by @fdeblasio in [#8889](https://github.com/rh-hideout/pokeemerald-expansion/pull/8889) +* Battle file cleanup & documentation by @Bassoonian in [#8903](https://github.com/rh-hideout/pokeemerald-expansion/pull/8903) +* Standardized item indentation by @fdeblasio in [#8913](https://github.com/rh-hideout/pokeemerald-expansion/pull/8913) +* Apply some cases of `STATUS1_ICY_ANY` by @AsparagusEduardo in [#8924](https://github.com/rh-hideout/pokeemerald-expansion/pull/8924) +* Consolidated `HandleStatusIconUpdate` by @AsparagusEduardo in [#8925](https://github.com/rh-hideout/pokeemerald-expansion/pull/8925) +* `GetBattleTrainer` -> `GetBattlerTrainer` by @AsparagusEduardo in [#8952](https://github.com/rh-hideout/pokeemerald-expansion/pull/8952) +* Poke Ball consolidation by @fdeblasio in [#8962](https://github.com/rh-hideout/pokeemerald-expansion/pull/8962) +* Move attack canceler to the move resolution file by @AlexOn1ine in [#8921](https://github.com/rh-hideout/pokeemerald-expansion/pull/8921) +* Add even more type checking by @Bassoonian in [#8972](https://github.com/rh-hideout/pokeemerald-expansion/pull/8972) +* More type checking across the repo by @Bassoonian in [#8988](https://github.com/rh-hideout/pokeemerald-expansion/pull/8988) +* Properly capitalized the comments of new move animations by @fdeblasio in [#9002](https://github.com/rh-hideout/pokeemerald-expansion/pull/9002) +* Add missing copycatBanned to Mirror Coat by @fdeblasio in [#9016](https://github.com/rh-hideout/pokeemerald-expansion/pull/9016) +* Added `enum BattlerId` type checks by @AsparagusEduardo in [#8954](https://github.com/rh-hideout/pokeemerald-expansion/pull/8954) +* Move Target failure follow up by @AlexOn1ine in [#8986](https://github.com/rh-hideout/pokeemerald-expansion/pull/8986) +* Consolidated common steps for Brick Break, Psychic Fang, and Raging Bull's animations by @fdeblasio in [#9020](https://github.com/rh-hideout/pokeemerald-expansion/pull/9020) +* Fix another FRLG style oversight by @Bassoonian in [#9046](https://github.com/rh-hideout/pokeemerald-expansion/pull/9046) +* Fix FRLG comment oversight in ``script_cmd_table.inc`` by @Bassoonian in [#9043](https://github.com/rh-hideout/pokeemerald-expansion/pull/9043) +* Clean up redundant item assignment after it was stolen by @AlexOn1ine in [#9044](https://github.com/rh-hideout/pokeemerald-expansion/pull/9044) +* Remove aif2pcm by @hedara90 in [#9076](https://github.com/rh-hideout/pokeemerald-expansion/pull/9076) +* Remove trainers_frlg.h from repo for gitignore by @grintoul1 in [#9081](https://github.com/rh-hideout/pokeemerald-expansion/pull/9081) +* Rename ow_synchronize.c by @FosterProgramming in [#9097](https://github.com/rh-hideout/pokeemerald-expansion/pull/9097) +* Delete irrelevant battle type comments for expansion by @AlexOn1ine in [#9082](https://github.com/rh-hideout/pokeemerald-expansion/pull/9082) +* Move SubtractClamped to util.c from battle_util.c by @AlexOn1ine in [#9120](https://github.com/rh-hideout/pokeemerald-expansion/pull/9120) +* Converted break_screen_animation from a macro to a function by @fdeblasio in [#9115](https://github.com/rh-hideout/pokeemerald-expansion/pull/9115) +* Remove redundant Levitate check for Magnitute by @AlexOn1ine in [#9197](https://github.com/rh-hideout/pokeemerald-expansion/pull/9197) +* Add defines to Trainer Tower by @fdeblasio in [#9187](https://github.com/rh-hideout/pokeemerald-expansion/pull/9187) +* Re-enable disabled test by @Pawkkie in [#9200](https://github.com/rh-hideout/pokeemerald-expansion/pull/9200) +* fix(bttl-anim): remove unused battle selector to silence warning by @izrofid in [#9218](https://github.com/rh-hideout/pokeemerald-expansion/pull/9218) +* FRLG accuracy check clean up by @AlexOn1ine in [#9224](https://github.com/rh-hideout/pokeemerald-expansion/pull/9224) +* Simplify defrosting/thawing and expand target thawing config by @PhallenTree in [#9271](https://github.com/rh-hideout/pokeemerald-expansion/pull/9271) +* Move undoing Dynamax to before faint cry by @PhallenTree in [#9317](https://github.com/rh-hideout/pokeemerald-expansion/pull/9317) +* Adjust the restriction for Pecharunt by @AlexOn1ine in [#9181](https://github.com/rh-hideout/pokeemerald-expansion/pull/9181) +* Clean up ``reshow_battle_screen.c`` by @Bassoonian in [#9352](https://github.com/rh-hideout/pokeemerald-expansion/pull/9352) +* Fix tabs in C/H files by @Bassoonian in [#9364](https://github.com/rh-hideout/pokeemerald-expansion/pull/9364) +* Cleans up unused String IDs and EWRAM variables by @Bassoonian in [#9363](https://github.com/rh-hideout/pokeemerald-expansion/pull/9363) +* Fix spacing for conditions by @Bassoonian in [#9369](https://github.com/rh-hideout/pokeemerald-expansion/pull/9369) +* Regularise switch indentation by @Bassoonian in [#9368](https://github.com/rh-hideout/pokeemerald-expansion/pull/9368) +* Updated Trainer Tower formatting by @fdeblasio in [#9209](https://github.com/rh-hideout/pokeemerald-expansion/pull/9209) +* Fix space indentation in .s and .inc files by @Bassoonian in [#9371](https://github.com/rh-hideout/pokeemerald-expansion/pull/9371) + +## 🧪 Test Runner 🧪 +### Added +* Adds TIE_BREAK_SCORE and TIE_BREAK_TARGET to test system to allow for forced or random move and target selection by @grintoul1 in [#8398](https://github.com/rh-hideout/pokeemerald-expansion/pull/8398) + - Due to how tests "crash" if the expected move is not what happens in the actual test, the move/target being expected must be the one selected in the **last** run of a test, else the crash causes an animation failure message. +* Adds EXPECT_FAIL macro to test system to allow for testing of conditions correctly triggering failures by @grintoul1 in [#8553](https://github.com/rh-hideout/pokeemerald-expansion/pull/8553) +* Capture odds refactor and new catch rate modifiers by @FosterProgramming in [#8682](https://github.com/rh-hideout/pokeemerald-expansion/pull/8682) + - Added new configs for catch rate modifiers: B_INCAPACITATED_CATCH_BONUS, B_LOW_LEVEL_CATCH_BONUS, B_MISSING_BADGE_CATCH_MALUS + - B_MISSING_BADGE_CATCH_MALUS default config may reduce catch rate in your hack + - Add new CATCHING_CHANCE macro to the test engine that allow to record the catching chance to more easily test capture parameters + +### Changed +* Fix setup for some moves in animation tests by @hedara90 in [#8492](https://github.com/rh-hideout/pokeemerald-expansion/pull/8492) +* Add missing behavior when using focus punch while surviving an OHKO move by @FosterProgramming in [#8484](https://github.com/rh-hideout/pokeemerald-expansion/pull/8484) +* assertf: Formatted asserts by @mrgriffin in [#8196](https://github.com/rh-hideout/pokeemerald-expansion/pull/8196) +* Improve Trick/Bestow AI logic for Toxic/Flame Orb and Utility Umbrella by @Cle-bit in [#8729](https://github.com/rh-hideout/pokeemerald-expansion/pull/8729) +* Add handling for Trick/Switcheroo behavior when both battlers are choice-locked (pre–Gen 5) by @izrofid in [#8730](https://github.com/rh-hideout/pokeemerald-expansion/pull/8730) +* OCD PR: Test summary order by @AsparagusEduardo in [#8853](https://github.com/rh-hideout/pokeemerald-expansion/pull/8853) +* Refactor pokerus and add configs by @FosterProgramming in [#7731](https://github.com/rh-hideout/pokeemerald-expansion/pull/7731) +* AI avoids Protect against Unseen Fist and protection‑ignoring moves by @Cle-bit in [#8939](https://github.com/rh-hideout/pokeemerald-expansion/pull/8939) +* Adds Parabolic Charge spread damage healing test by @AlexOn1ine in [#9094](https://github.com/rh-hideout/pokeemerald-expansion/pull/9094) +* Use direct config names instead of enum names by @AsparagusEduardo in [#8824](https://github.com/rh-hideout/pokeemerald-expansion/pull/8824) + - `GetConfig` and `WITH_CONFIG` now use the actual config define. Eg, `B_STURDY` instead of `CONFIG_STURDY`. However, in scripts, using `jumpifgenconfiglowerthan` in scripts would use the full name of `CONFIG_B_STURDY`. +* Re-enable disabled test by @Pawkkie in [#9200](https://github.com/rh-hideout/pokeemerald-expansion/pull/9200) +* Added Weight battle tests by @AsparagusEduardo in [#9202](https://github.com/rh-hideout/pokeemerald-expansion/pull/9202) +* Add tests for Hadron Engine and Psyblade by @Cle-bit in [#9314](https://github.com/rh-hideout/pokeemerald-expansion/pull/9314) +* Add tests for Future Sight interaction with Ally Switch by @Cle-bit in [#9300](https://github.com/rh-hideout/pokeemerald-expansion/pull/9300) + +### Fixed +* Tie Break failsafe correction by @grintoul1 in [#8596](https://github.com/rh-hideout/pokeemerald-expansion/pull/8596) +* Fix Red Card / Eject Button interaction by @AlexOn1ine in [#8780](https://github.com/rh-hideout/pokeemerald-expansion/pull/8780) +* Replaced undeclared variable in Cmd_tryswapitems; commented out Eject Button test conflicting with another Commander test by @grintoul1 in [#8805](https://github.com/rh-hideout/pokeemerald-expansion/pull/8805) +* Fix field abilities activating when an other mon switches in by @AlexOn1ine in [#8743](https://github.com/rh-hideout/pokeemerald-expansion/pull/8743) +* Refactor multi test system trainer party allocation and adds enum BattleTrainer by @grintoul1 in [#8908](https://github.com/rh-hideout/pokeemerald-expansion/pull/8908) +* Fix Aqua Ring reuse failure check and add Aqua Ring/Ingrain tests by @Cle-bit in [#9174](https://github.com/rh-hideout/pokeemerald-expansion/pull/9174) +* Fixes Protective Pads preventing Poison Touch activation by @PhallenTree in [#9222](https://github.com/rh-hideout/pokeemerald-expansion/pull/9222) +* Fix tera icon palettes by @grintoul1 in [#9208](https://github.com/rh-hideout/pokeemerald-expansion/pull/9208) +* Adds a warning when trainer is invalid by @pkmnsnfrn in [#9195](https://github.com/rh-hideout/pokeemerald-expansion/pull/9195) + +## 📚 Documentation 📚 +* Add AI_FLAG_KNOW_OPPONENT_PARTY to ai_flags.md by @Pawkkie in [#8366](https://github.com/rh-hideout/pokeemerald-expansion/pull/8366) +* Add .isRestricted and .isSubLegendary by @jtebbe in [#8501](https://github.com/rh-hideout/pokeemerald-expansion/pull/8501) +* Require braces on bodies with multiline conditions by @mrgriffin in [#8566](https://github.com/rh-hideout/pokeemerald-expansion/pull/8566) +* Clean up for Wish struct, IsSpreadMove and all learnables file by @AlexOn1ine in [#8680](https://github.com/rh-hideout/pokeemerald-expansion/pull/8680) +* Move enum by @Bassoonian in [#8739](https://github.com/rh-hideout/pokeemerald-expansion/pull/8739) +* Extra enum typechecking by @Bassoonian in [#8786](https://github.com/rh-hideout/pokeemerald-expansion/pull/8786) +* Adds type checking for battler positions by @Bassoonian in [#8792](https://github.com/rh-hideout/pokeemerald-expansion/pull/8792) +* Updated Lemonade's description's formatting to match the rest of the healing items by @fdeblasio in [#8888](https://github.com/rh-hideout/pokeemerald-expansion/pull/8888) +* Battle file cleanup & documentation by @Bassoonian in [#8903](https://github.com/rh-hideout/pokeemerald-expansion/pull/8903) +* Adds ``Item`` enum by @Bassoonian in [#8897](https://github.com/rh-hideout/pokeemerald-expansion/pull/8897) + - The struct ``Item`` was renamed to ``ItemInfo`` for consistency with the other structs. +* Add even more type checking by @Bassoonian in [#8972](https://github.com/rh-hideout/pokeemerald-expansion/pull/8972) +* More type checking across the repo by @Bassoonian in [#8988](https://github.com/rh-hideout/pokeemerald-expansion/pull/8988) +* Properly capitalized the comments of new move animations by @fdeblasio in [#9002](https://github.com/rh-hideout/pokeemerald-expansion/pull/9002) +* Added `enum BattlerId` type checks by @AsparagusEduardo in [#8954](https://github.com/rh-hideout/pokeemerald-expansion/pull/8954) +* documentation on how to use frlg by @cawtds in [#9045](https://github.com/rh-hideout/pokeemerald-expansion/pull/9045) +* Remove trainers_frlg.h from repo for gitignore by @grintoul1 in [#9081](https://github.com/rh-hideout/pokeemerald-expansion/pull/9081) +* docs(dns): add nighttime palette user guide by @izrofid in [#9158](https://github.com/rh-hideout/pokeemerald-expansion/pull/9158) +* Add defines to Trainer Tower by @fdeblasio in [#9187](https://github.com/rh-hideout/pokeemerald-expansion/pull/9187) +* Update new mon teachable learnset tutorial by @FosterProgramming in [#9302](https://github.com/rh-hideout/pokeemerald-expansion/pull/9302) + +## 👻 Sprites 👻 +### Added +* Z-A Mega sprites from PokeCommunity by @kittenchilly in [#8945](https://github.com/rh-hideout/pokeemerald-expansion/pull/8945) + +### Changed +* Add Gba-style Substitute by @amiosi in [#8655](https://github.com/rh-hideout/pokeemerald-expansion/pull/8655) + +### Fixed +* Fixes Manaphy egg data blocking compiler with Manaphy disabled by @grintoul1 in [#8671](https://github.com/rh-hideout/pokeemerald-expansion/pull/8671) +* Fix tera icon palettes by @grintoul1 in [#9208](https://github.com/rh-hideout/pokeemerald-expansion/pull/9208) +* Fixes post-KO animation assertf trigger caused by OOB battler number by @grintoul1 in [#9343](https://github.com/rh-hideout/pokeemerald-expansion/pull/9343) + +## New Contributors +* @Artrios made their first contribution in [#5428](https://github.com/rh-hideout/pokeemerald-expansion/pull/5428) +* @Gudf made their first contribution in [#8191](https://github.com/rh-hideout/pokeemerald-expansion/pull/8191) +* @jtebbe made their first contribution in [#8501](https://github.com/rh-hideout/pokeemerald-expansion/pull/8501) +* @Kasenn made their first contribution in [#8694](https://github.com/rh-hideout/pokeemerald-expansion/pull/8694) +* @SabataLunar made their first contribution in [#8926](https://github.com/rh-hideout/pokeemerald-expansion/pull/8926) +* @luuma made their first contribution in [#9282](https://github.com/rh-hideout/pokeemerald-expansion/pull/9282) +* @KnightGallade made their first contribution in [#9298](https://github.com/rh-hideout/pokeemerald-expansion/pull/9298) + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.14.3...expansion/1.15.0 + + + + diff --git a/docs/tutorials/ai_dynamic_functions.md b/docs/tutorials/ai_dynamic_functions.md new file mode 100644 index 000000000000..6b07b28766bf --- /dev/null +++ b/docs/tutorials/ai_dynamic_functions.md @@ -0,0 +1,27 @@ +# What are Dynamic AI Functions? +Dynamic AI functions enable AI behaviour to be controlled on a per-battle basis by being set directly ahead of a particular battle when scripting. They allow for unique move scoring or switching decisions that are not applied at scale to multiple trainers or the entire AI as a whole. + +As such they're really useful for one-shot battle setups like boss fights or totem Pokemon or narrative tie-ins like switch happy Jugglers that would benefit from specialized AI that only applies during those specific fights. + +There are currently two different types of dynamic AI functions, one that affects move scoring and one that affects switching. + +# How do I use the dynamic move scoring function? +There are a few steps involved: +- Be sure to set `AI_FLAG_DYNAMIC_FUNC` on the trainer you'll be using your unique behaviour for +- Write your custom AI logic. Our example for this is `AI_TagBattlePreferFoe`, and you should match its arguments and return structure in your own custom function. +- In the script the triggers the battle, add a call to `setdynamicaifunc` specifying your function, as in: +``` +setdynamicaifunc AI_TagBattlePreferFoe +multi_2_vs_2 TRAINER_SIRIUS_NOVA_HYPERION_TAG, Text_NovaInsurgence_Arrival_Hyperion_Loss, TRAINER_SIRIUS_NOVA_DEIMOS_RECRUIT_TAG, Text_NovaInsurgence_Arrival_DeimosRecruit_Loss, TRAINER_SIRIUS_WHARF_TRITON_PARTNER, TRAINER_PIC_BACK_TRITON +``` +That's it! The scoring function will be used in the battle immediately following it, and automatically cleared at the end of the battle. You can then use `setdynamicaifunc` with the same or a different AI scoring function as you see fit. + +# How do I use the dynamic switching function? +There are a few steps involved: +- Write your custom AI logic. Our example for this is `ShouldSwitchDynFuncExample`, and you should match its arguments and return structure in your own custom function. +- In the script that triggers the battle, add a call to `setdynamicswitchaifunc` specifying your function, as in: +``` +setdynamicswitchaifunc ShouldSwitchDynFuncExample +trainerbattle_single TRAINER_TIANA, Route102_Text_TianaIntro, Route102_Text_TianaDefeated +``` +That's it! The switching function will be used in the battle immediately following it, and automatically cleared at the end of the battle. You can then use `setdynamicswitchaifunc` with the same or a different AI scoring function as you see fit. diff --git a/docs/tutorials/ai_flags.md b/docs/tutorials/ai_flags.md index 5f58ef1ff62d..b373a3f07855 100644 --- a/docs/tutorials/ai_flags.md +++ b/docs/tutorials/ai_flags.md @@ -147,6 +147,9 @@ Marks the last two Pokémon in the party as Ace Pokémon, with the same behaviou ## `AI_FLAG_OMNISCIENT` AI has full knowledge of player moves, abilities, and hold items, and can use this knowledge when making decisions. +## `AI_FLAG_KNOW_OPPONENT_PARTY` +AI has full knowledge of the species in the player's party, as well as their fainted status; no other omniscient knowledge is included. Functions similarly to a team preview. + ## `AI_FLAG_ASSUME_STAB` A significantly more restricted version of `AI_FLAG_OMNISCIENT`, the AI only knows the player's STAB moves, as their existence would be reasonable to assume in almost any case. @@ -201,3 +204,9 @@ AI will predict what move the player is going to use based on what move it would ## `AI_FLAG_PP_STALL_PREVENTION` This flag aims to prevent the player from PP stalling the AI by switching between immunities. The AI mon's move scores will slowly decay for absorbed moves over time, eventually making its moves unpredictable. More detailed control for this behaviour can be customized in the `ai.h` config file. + +## `AI_FLAG_RANDOMIZE_SWITCHIN` +AI will randomly choose between eligible switchin candidates rather than always picking the last one in the party. For example, if the AI has two mons that can revenge kill the player's mon after a KO, by default the AI will only track the most recent eligible candidate, and will always send in the last one in party order as a result. With this flag, it will instead track all of the eligible mons, and randomly choose between them when deciding which to send out. + +## `AI_FLAG_RANDOMIZE_PARTY_INDICES` +AI will randomize the order of the mons in their party before battle starts. This means that lead choice is randommized, but so is the last mon for things like Illusion or the Ace flag, so be mindful when using it. diff --git a/docs/tutorials/ai_logic.md b/docs/tutorials/ai_logic.md index b910d469461b..1c1d01054948 100644 --- a/docs/tutorials/ai_logic.md +++ b/docs/tutorials/ai_logic.md @@ -10,17 +10,17 @@ Open `include/constants/battle_ai.h`. We have many unused flags, but you can add ## 2. Make your new function -Open `src/battle_ai_main.c`. Search for the array `static s16 (*const sBattleAiFuncTable[])(u8, u8, u16, s16)`. We want to add our new function to this table. Since we have defined our flag as `(1 << 16)`, find the 16th entry in the table (identifiable by the initializer, `[16]`), and replace it with: +Open `src/battle_ai_main.c`. Search for the array `static s16 (*const sBattleAiFuncTable[])(u8, u8, enum Move, s16)`. We want to add our new function to this table. Since we have defined our flag as `(1 << 16)`, find the 16th entry in the table (identifiable by the initializer, `[16]`), and replace it with: `[16] = AI_Support, // AI_FLAG_SUPPORT` -Define your function above the table as `static s16 AI_Support(u8 battlerAtk, u8 battlerDef, u16 move, s16 score);` +Define your function above the table as `static s16 AI_Support(u8 battlerAtk, u8 battlerDef, enum Move move, s16 score);` ## Make your function do something at the bottom of the file, add: ```c -static s16 AI_Support(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) +static s16 AI_Support(u8 battlerAtk, u8 battlerDef, enum Move move, s16 score) { // Add your logic here! } diff --git a/docs/tutorials/how_to_delete_vanilla_maps.md b/docs/tutorials/how_to_delete_vanilla_maps.md new file mode 100644 index 000000000000..ba59aa4ee674 --- /dev/null +++ b/docs/tutorials/how_to_delete_vanilla_maps.md @@ -0,0 +1,36 @@ +# Deleting all FRLG maps + +A command was added to delete all FRLG maps at once. This doesn't save space in the ROM because the maps are not compiled in the ROM if you are compiling in "emerald mode". This solely exists for users that want to clean up their repo. The command is + +```shell +python dev_scripts/delete_frlg_maps.py +``` +It will take care of all the map constants in the c files but you will need to fix mention the to fuschia city entrance in the `safari_zone.inc` script. + +### Disclaimer: The following is a work-in-progess and the processes described here are not fully tested and will likely break your game! Use at your own risk. + +# Deleting vanilla maps + +Separately, if you want to delete a singular map, you will need to remove 4 things: +- the map folder in `data/maps/` +- the map folder in `data/layouts` +- the include of the mapscript in `data/event_scripts.s` +- the name of the map in `data/maps/map_groups.json` + +After deleting the layout folder, you will need to run +```shell +touch data/layouts/layouts.json +``` +in order for some things to update properly during compilation + +Because vanilla maps are referenced all over the C code, deleting references to them can prevent the project to compile. To avoid this, mapjson will check if vanilla maps are missing and create dummy values for them. + +**NOTE**: +- `mapjson` will _not_ function correctly unless all four of the aforementioned are edited. +- `mapjson` will also modify `heal_locations.json` if one of the deleted map contained a heal_location. +- when creating connections between maps, `mapjson` will check if the connected map exist and will not add a connection for a missing map. + +## Known issues + +- Some maps may still be referenced in ways that cause compilation issues. Usually, it will be scripts that directly reference the old map names. +- If you try to enter a map that used to be connected to a deleted map, the game will freeze. diff --git a/docs/tutorials/how_to_frlg.md b/docs/tutorials/how_to_frlg.md new file mode 100644 index 000000000000..6cb7f41bfb4f --- /dev/null +++ b/docs/tutorials/how_to_frlg.md @@ -0,0 +1,46 @@ +# How to use FireRed/LeafGreen + +## How to compile +```make firered -j```
+or
+```make leafgreen -j``` + +Note: If you switch between building emerald and FRLG, `make clean` is required at the moment. + +## Porymap adjustments +For Porymap to work with FRLG maps you need to adjust a few settings (`Options > Project Settings`): +- in the `General` tab change the base game version to `pokefirered` + +![porymap_general](./img/frlg/porymap_general.png) + +- in the `Identifiers` tab change the following attributes: + - define_tiles_primary: `NUM_TILES_IN_PRIMARY_FRLG` + - define_metatiles_primary: `NUM_METATILES_IN_PRIMARY_FRLG` + - define_pals_primary: `NUM_PALS_IN_PRIMARY_FRLG` + - define_mask_behavior: `METATILE_ATTR_BEHAVIOR_MASK_FRLG` + - define_mask_layer: `METATILE_ATTR_LAYER_MASK_FRLG` + +![porymap_identifier](./img/frlg/porymap_identifier.png) + +## How to add maps +For maps to be included in the firered build process they need to have a custom attribute `region` with the value `REGION_KANTO`. Not defining this attribute defaults to `REGION_HOENN`. The attribute can either be added in porymap or manually in the `map.json` file. + +**Examples:** + +map.json: +``` +{ + "id": "MAP_PALLET_TOWN", + "name": "PalletTown_Frlg", + "layout": "LAYOUT_PALLET_TOWN", + "music": "MUS_RG_PALLET", + "region": "REGION_KANTO", + ... +``` +Porymap: + +![porymap_region_attribute](./img/frlg/porymap_region_attribute.png) + +## Migrating FRLG tilesets +To migrate tilesets that have been previously created for pokefirered you can use [this script](/migration_scripts/frlg_metatile_behavior_converter.py).
+Instructions are in the script. diff --git a/docs/tutorials/how_to_new_move.md b/docs/tutorials/how_to_new_move.md index 0f7ca1d15c57..ba4978394f8f 100644 --- a/docs/tutorials/how_to_new_move.md +++ b/docs/tutorials/how_to_new_move.md @@ -37,7 +37,7 @@ Let's look at an example: .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 30, - .target = MOVE_TARGET_SELECTED, + .target = TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, .additionalEffects = ADDITIONAL_EFFECTS({ @@ -170,7 +170,7 @@ Each move can have up to 3 additional effects, allowing you to construct monstro .type = TYPE_NORMAL, .accuracy = 100, .pp = 35, - .target = MOVE_TARGET_SELECTED, + .target = TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, .additionalEffects = ADDITIONAL_EFFECTS({ diff --git a/docs/tutorials/how_to_new_pokemon.md b/docs/tutorials/how_to_new_pokemon.md index ba1872889e24..3e49a5901a45 100644 --- a/docs/tutorials/how_to_new_pokemon.md +++ b/docs/tutorials/how_to_new_pokemon.md @@ -707,7 +707,7 @@ We're almost there just a bit left! ... .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_PURPLE, -+ .isLegendary = TRUE, ++ .isRestrictedLegendary = TRUE, + .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, }, }; @@ -715,9 +715,10 @@ We're almost there just a bit left! Each species flag provides properties to the species: - `perfectIVCount` ***(1.10 onwards)***: - Guarantees that the number of IVs specified here will be perfect. -- `isLegendary`: - - ***1.10 onwards:*** Does nothing. - - ***1.9 and earlier:*** Guaranteed 3 perfect IVs for the species. +- `isRestrictedLegendary`: + - ***1.14.3 onwards:*** Does nothing. +- `isSubLegendary`: + - ***1.14.3 onwards:*** Does nothing. - `isMythical`: - Is skipped during Pokédex evaluations. - Unless it also has the `dexForceRequired` flag. @@ -819,7 +820,30 @@ Again, we need to register the learnset in `gSpeciesInfo`: Next we need to specify which moves can be taught via TM, HM, or Move Tutor. -Append to [src/data/pokemon/teachable_learnsets.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/teachable_learnsets.h): +Those are defined in [src/data/pokemon/teachable_learnsets.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/teachable_learnsets.h). This file is automatically generated by default and you can read the details of how this works in this [doc](tutorials/how_to_trainer_front_pic.md) +but let's go through the basics. + +If you open [src/data/pokemon/all_learnables.json](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/tall_learnables.json), you will see list of moves associated with every species, the order doesn't matter so let's add Mewthree moves at the top. +```diff +{ ++ "MEWTHREE": [ ++ MOVE_FOCUS_PUNCH, ++ MOVE_WATER_PULSE, ++ MOVE_CALM_MIND, ++ MOVE_TOXIC ++ ], + "PINCURCHIN": [ + ... +``` +When compiling, the game will look at the moves and cross-references with the tutor and TM moves available in your game to generate the final list (so you don't need to worry about putting a move there is no way to learn in your game). + +While this is not recommended, you can also disable the learnset helper that generates [src/data/pokemon/teachable_learnsets.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/teachable_learnsets.h) and edit the file yourself. First change the config in `include/config/pokemon.h`: +``` +// Learnset helper toggles +#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/teachable.py using the included JSON files based on available TMs and tutors. +``` + +so that your manual changes are not overwritten then you can update the file ```diff #if P_FAMILY_PECHARUNT @@ -834,92 +858,11 @@ static const u16 sPecharuntTeachableLearnset[] = { + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, -+ MOVE_HAIL, -+ MOVE_BULK_UP, -+ MOVE_HIDDEN_POWER, -+ MOVE_SUNNY_DAY, -+ MOVE_TAUNT, -+ MOVE_ICE_BEAM, -+ MOVE_BLIZZARD, -+ MOVE_HYPER_BEAM, -+ MOVE_LIGHT_SCREEN, -+ MOVE_PROTECT, -+ MOVE_RAIN_DANCE, -+ MOVE_SAFEGUARD, -+ MOVE_FRUSTRATION, -+ MOVE_SOLAR_BEAM, -+ MOVE_IRON_TAIL, -+ MOVE_THUNDERBOLT, -+ MOVE_THUNDER, -+ MOVE_EARTHQUAKE, -+ MOVE_RETURN, -+ MOVE_PSYCHIC, -+ MOVE_SHADOW_BALL, -+ MOVE_BRICK_BREAK, -+ MOVE_DOUBLE_TEAM, -+ MOVE_REFLECT, -+ MOVE_SHOCK_WAVE, -+ MOVE_FLAMETHROWER, -+ MOVE_SANDSTORM, -+ MOVE_FIRE_BLAST, -+ MOVE_ROCK_TOMB, -+ MOVE_AERIAL_ACE, -+ MOVE_TORMENT, -+ MOVE_FACADE, -+ MOVE_SECRET_POWER, -+ MOVE_REST, -+ MOVE_SKILL_SWAP, -+ MOVE_SNATCH, -+ MOVE_STRENGTH, -+ MOVE_FLASH, -+ MOVE_ROCK_SMASH, -+ MOVE_MEGA_PUNCH, -+ MOVE_MEGA_KICK, -+ MOVE_BODY_SLAM, -+ MOVE_DOUBLE_EDGE, -+ MOVE_COUNTER, -+ MOVE_SEISMIC_TOSS, -+ MOVE_MIMIC, -+ MOVE_METRONOME, -+ MOVE_DREAM_EATER, -+ MOVE_THUNDER_WAVE, -+ MOVE_SUBSTITUTE, -+ MOVE_DYNAMIC_PUNCH, -+ MOVE_PSYCH_UP, -+ MOVE_SNORE, -+ MOVE_ICY_WIND, -+ MOVE_ENDURE, -+ MOVE_MUD_SLAP, -+ MOVE_ICE_PUNCH, -+ MOVE_SWAGGER, -+ MOVE_SLEEP_TALK, -+ MOVE_SWIFT, -+ MOVE_THUNDER_PUNCH, -+ MOVE_FIRE_PUNCH, + MOVE_UNAVAILABLE, // This is required to determine where the array ends. +}; -#endif -``` - -_NOTE: At the top of this file, you will probably see this warning:_ -``` -// -// DO NOT MODIFY THIS FILE! It is auto-generated from tools/learnset_helpers/teachable.py` -// -``` -From version 1.9 onwards, pokeemerald-expansion includes a tool called the learnset helper, which aims to automate the generation of valid teachable moves. At the time of writing, this tool only supports generating TM and Tutor learnsets. However, in the future it may be expanded to deal with level up learnsets and egg moves. - -Ignore the warning shown above the first time you're adding your teachable moves (as otherwise the compiler will complain about the array not existing), but in the future (if you're using the learnset helper) simply edit what teachable moves your Pokémon can learn in one of the JSON files found in `tools/learnset_helpers/porymoves_files`. It doesn't really matter which one you add your new Pokémon to, as the tool pulls from all of the files in this folder. - -The learnset helper is useful if you plan on changing and/or increasing the available TMs and Tutor moves in your game. As an example, Bulbasaur learns Rage by TM in Red/Blue/Yellow, but in Emerald this TM does not exist. But since `tools/learnset_helpers/porymoves_files/rby.json` defines "MOVE_RAGE" as a TM move for Bulbasaur, that move would automatically be added to the `sBulbasaurTeachableLearnset` array if you were to add a Rage TM at any point. - -The learnset helper can be toggled on/off in `include/config/pokemon.h`: -``` -// Learnset helper toggles -#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/teachable.py using the included JSON files based on available TMs and tutors. ``` -Once more, we need to register the learnset in `gSpeciesInfo`: +Once more, we also need to register the learnset in `gSpeciesInfo`: ```diff const struct SpeciesInfo gSpeciesInfo[] = @@ -952,7 +895,7 @@ Edit `gSpeciesInfo`: { ... FOOTPRINT(Mewtwo) - .isLegendary = TRUE, + .isRestrictedLegendary = TRUE, .levelUpLearnset = sMewtwoLevelUpLearnset, .teachableLearnset = sMewtwoTeachableLearnset, .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, diff --git a/docs/tutorials/how_to_testing_system.md b/docs/tutorials/how_to_testing_system.md index e72788938b2a..6d87c9c5714f 100644 --- a/docs/tutorials/how_to_testing_system.md +++ b/docs/tutorials/how_to_testing_system.md @@ -478,6 +478,14 @@ If `subBreak` is set to `TRUE`, the test will fail unless the substitute breaks. SUB_HIT(player, subBreak: TRUE); ``` +### `CATCHING_CHANCE` +`CATCHING_CHANCE(address)` +Causes the test to fail if no catching attempt is made and then writes the computed catch chance in the `address` pointer. +``` + u32 recordedCatchChance; + CATCHING_CHANCE(&recordedCatchChance); +``` + ### `NOT` `NOT sceneCommand` Causes the test to fail if the `SCENE` command succeeds before the following command succeeds. diff --git a/docs/tutorials/how_to_trainer_back_pic.md b/docs/tutorials/how_to_trainer_back_pic.md index 5c262942ae8d..6d6f7abc45f5 100644 --- a/docs/tutorials/how_to_trainer_back_pic.md +++ b/docs/tutorials/how_to_trainer_back_pic.md @@ -49,10 +49,10 @@ So, finally, it needs to look like this: const struct TrainerBacksprite gTrainerBacksprites[] = { - TRAINER_BACK_SPRITE(TRAINER_BACK_PIC_BRENDAN, 4, gTrainerBackPic_Brendan, gTrainerPalette_Brendan, sBackAnims_Hoenn), + TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_BRENDAN, 4, gTrainerBackPic_Brendan, gTrainerPalette_Brendan, sBackAnims_Hoenn), ... - TRAINER_BACK_SPRITE(TRAINER_BACK_PIC_STEVEN, 4, gTrainerBackPic_Steven, gTrainerPalette_Steven, sBackAnims_Hoenn), -+ TRAINER_BACK_SPRITE(TRAINER_BACK_PIC_NEW_ONE, 4, gTrainerBackPic_NewOne, gTrainerBackPicPalette_NewOne, sBackAnims_Hoenn), + TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_STEVEN, 4, gTrainerBackPic_Steven, gTrainerPalette_Steven, sBackAnims_Hoenn), ++ TRAINER_BACK_SPRITE(TRAINER_PIC_BACK_NEW_ONE, 4, gTrainerBackPic_NewOne, gTrainerBackPicPalette_NewOne, sBackAnims_Hoenn), }; ``` @@ -63,14 +63,17 @@ So, finally, it needs to look like this: Finally, let's bring it all together by defining our new trainer pic in [`include/constants/trainers.h`](./include/constants/trainers.h): ```diff - #define TRAINER_BACK_PIC_WALLY 6 - #define TRAINER_BACK_PIC_STEVEN 7 -+#define TRAINER_BACK_PIC_NEW_ONE 8 + TRAINER_PIC_BACK_RUBY_SAPPHIRE_MAY, + TRAINER_PIC_BACK_WALLY, + TRAINER_PIC_BACK_STEVEN, ++ TRAINER_PIC_BACK_NEW_ONE, + TRAINER_PIC_COUNT, + TRAINER_PIC_BACK_COUNT = (TRAINER_PIC_COUNT - TRAINER_PIC_FRONT_COUNT), ``` -Remember to count the number next to the trainer pic up by one! +Remember to add new back pics after `TRAINER_PIC_FRONT_COUNT` but before `TRAINER_PIC_COUNT`! ## Usage -You can test your new trainer back pic by going to [`src/data/battle_partners.party`](./src/data/battle_partners.party) and change the `Pic` field. The syntax should match the constant (`TRAINER_BACK_PIC_NEW_ONE`) with the underscore replaced by spaces. For example: +You can test your new trainer back pic by going to [`src/data/battle_partners.party`](./src/data/battle_partners.party) and change the `Pic` field. The syntax should match the constant (`TRAINER_PIC_BACK_NEW_ONE`) with the underscore replaced by spaces. For example: ```diff === PARTNER_STEVEN === Name: STEVEN @@ -87,7 +90,7 @@ Otherwise if you use [`src/data/battle_partners.h`](./src/data/battle_partners.h { .trainerName = _("STEVEN"), .trainerClass = TRAINER_CLASS_RIVAL, -- .trainerPic = TRAINER_BACK_PIC_STEVEN, -+ .trainerPic = TRAINER_BACK_PIC_NEW_ONE, +- .trainerPic = TRAINER_PIC_BACK_STEVEN, ++ .trainerPic = TRAINER_PIC_BACK_NEW_ONE, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, ``` diff --git a/docs/tutorials/how_to_trainer_front_pic.md b/docs/tutorials/how_to_trainer_front_pic.md index 1b3d303bf99e..be664b34ab34 100644 --- a/docs/tutorials/how_to_trainer_front_pic.md +++ b/docs/tutorials/how_to_trainer_front_pic.md @@ -51,11 +51,11 @@ So, finally, it needs to look like this: const struct TrainerSprite gTrainerSprites[] = { - TRAINER_SPRITE(TRAINER_PIC_HIKER, gTrainerFrontPic_Hiker, gTrainerPalette_Hiker), - TRAINER_SPRITE(TRAINER_PIC_AQUA_GRUNT_M, gTrainerFrontPic_AquaGruntM, gTrainerPalette_AquaGruntM), + TRAINER_SPRITE(TRAINER_PIC_FRONT_HIKER, gTrainerFrontPic_Hiker, gTrainerPalette_Hiker), + TRAINER_SPRITE(TRAINER_PIC_FRONT_AQUA_GRUNT_M, gTrainerFrontPic_AquaGruntM, gTrainerPalette_AquaGruntM), ... - TRAINER_SPRITE(TRAINER_PIC_RS_MAY, gTrainerFrontPic_RubySapphireMay, gTrainerPalette_RubySapphireMay), -+ TRAINER_SPRITE(TRAINER_PIC_NEW_ONE, gTrainerFrontPic_NewOne, gTrainerPalette_NewOne), + TRAINER_SPRITE(TRAINER_PIC_FRONT_RS_MAY, gTrainerFrontPic_RubySapphireMay, gTrainerPalette_RubySapphireMay), ++ TRAINER_SPRITE(TRAINER_PIC_FRONT_NEW_ONE, gTrainerFrontPic_NewOne, gTrainerPalette_NewOne), }; ``` ### The Data @@ -63,16 +63,16 @@ So, finally, it needs to look like this: Finally, let's bring it all together by defining our new trainer pic in [`include/constants/trainers.h`](./include/constants/trainers.h): ```diff - #define TRAINER_PIC_RS_MAY 92 -+#define TRAINER_PIC_NEW_ONE 93 - - #define TRAINER_BACK_PIC_BRENDAN 0 - #define TRAINER_BACK_PIC_MAY 1 + TRAINER_PIC_FRONT_RS_MAY, ++ TRAINER_PIC_FRONT_NEW_ONE, + TRAINER_PIC_FRONT_COUNT, + TRAINER_PIC_BACK_BRENDAN = TRAINER_PIC_FRONT_COUNT, // The player back pics are assumed to alternate according to the gender values (MALE/FEMALE) + TRAINER_PIC_BACK_MAY, ``` -Remember to count the number next to the trainer pic up by one! +Remember to add new front pics before `TRAINER_PIC_FRONT_COUNT`! ## Usage -You can test your trainer type by going to [`src/data/trainers.party`](./src/data/trainers.party) and change the `Pic` field. The syntax should match the constant (`TRAINER_PIC_NEW_ONE`) with the underscore replaced by spaces. For example: +You can test your trainer type by going to [`src/data/trainers.party`](./src/data/trainers.party) and change the `Pic` field. The syntax should match the constant (`TRAINER_PIC_FRONT_NEW_ONE`) with the underscore replaced by spaces. For example: ```diff === TRAINER_BRENDAN_PLACEHOLDER === Name: BRENDAN @@ -90,8 +90,8 @@ Otherwise if you use [`src/data/trainers.h`](./src/data/trainers.h), change the { .trainerName = _("BRENDAN"), .trainerClass = TRAINER_CLASS_RS_PROTAG, -- .trainerPic = TRAINER_PIC_RS_BRENDAN, -+ .trainerPic = TRAINER_PIC_NEW_ONE, +- .trainerPic = TRAINER_PIC_FRONT_RS_BRENDAN, ++ .trainerPic = TRAINER_PIC_FRONT_NEW_ONE, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, .doubleBattle = FALSE, ``` diff --git a/docs/tutorials/img/frlg/porymap_general.png b/docs/tutorials/img/frlg/porymap_general.png new file mode 100644 index 000000000000..2b6138e61e5b Binary files /dev/null and b/docs/tutorials/img/frlg/porymap_general.png differ diff --git a/docs/tutorials/img/frlg/porymap_identifier.png b/docs/tutorials/img/frlg/porymap_identifier.png new file mode 100644 index 000000000000..cdd6f12ad54f Binary files /dev/null and b/docs/tutorials/img/frlg/porymap_identifier.png differ diff --git a/docs/tutorials/img/frlg/porymap_region_attribute.png b/docs/tutorials/img/frlg/porymap_region_attribute.png new file mode 100644 index 000000000000..9083a48a2e97 Binary files /dev/null and b/docs/tutorials/img/frlg/porymap_region_attribute.png differ diff --git a/docs/tutorials/mon_generation.md b/docs/tutorials/mon_generation.md new file mode 100644 index 000000000000..3c1bc176dde8 --- /dev/null +++ b/docs/tutorials/mon_generation.md @@ -0,0 +1,169 @@ +# Generation of struct Pokemon instances + +This document describes the ways you generate an instance of struct Pokemon through script or through code. +These Pokemon can be given to your players, be used as enemy trainer pokemon or as static wild pokemon. + +## Through script (`givemon` and `createmon`) + +### `createmon` + +`createmon` is a script command that allows you to generate a pokemon with any of the properties you might want. +It has a lot of arguments in order to offer this flexibility. +`side`, `slot`, `species` and `level` are the required arguments +`side` determines if the pokemon will be created as a player pokemon or an enemy pokemon: 0 will put the pokemon in the player party and 1 in the enemy party +`slot` determines the slot in the player or enemy party the pokemon will occupy. `slot` goes from 0 to 5 but if `side` is 0 (player pokemon), setting the slot to 6 will instead give the pokemon to player automatically putting it in the first empty slot or sending it to the PC when the party is the full. (Setting `slot` to 6 when trying to create an enemy pokemon will result in the `createmon` command being ignored) +`species` and `level` refers to the species id and the level of the pokemon you want to generate +`item`, `ball`, `nature`, `abilityNum`, `gender`, `hpEv`, `atkEv`, `defEv`, `speedEv`, `spAtkEv`, `spDefEv`, `hpIv`, `atkIv`, `defIv`, `speedIv`, `spAtkIv`, `spDefIv`, `move1`, `move2`, `move3`, `move4`, `shinyMode`, `gmaxFactor`, `teraType`, `dmaxLevel` are the optional arguments. They are pretty explicit in what they refer to but let's describe what they default to when they are not present. +`item` refers to the item the mon is holding. If the argument is missing, the mon won't be holding anything +`ball` refers to the type of ball the pokemon comes out of. This defaults to a PokeBall and if you are generating a wildmon, this will be overwritten if the pokemon is captured +`nature`, and `gender` will default to random values +`abilityNum` will default to the value corresponding to the personality they will roll (in practice, it's random but it will have correlations with other if the pokemon parameters) +`hpEv`, `atkEv`, `defEv`, `speedEv`, `spAtkEv`, `spDefEv` will default to 0 +`hpIv`, `atkIv`, `defIv`, `speedIv`, `spAtkIv`, `spDefIv` will default to `USE_RANDOM_IVS` which tell the game to roll a random IV value (between 0 and 31). If the generated species has a `perfectIVCount`, only the random values will be eligible to be perfected. +`move1`, `move2`, `move3`, `move4` will default to `MOVE_DEFAULT` which tells the game to fill the slot with the last level up move available +`shinyMode` will default to SHINY_MODE_RANDOM doing random roll(s) to check if the mon is shiny. (The other possibile values for shinyMode are SHINY_MODE_ALWAYS and SHINY_MODE_NEVER to force the pokemon to be shiny or not be shiny respectively) +`gmaxFactor` default to FALSE +`teraType` will default to the value corresponding to the personality they will roll (in practice, it's random but it will have correlations with other if the pokemon parameters) +`dmaxLevel` will deafult to 0 + +### `givemon` + +`givemon` uses the same arguments as `createmon` minus `side` and `slot`. This is because `givemon` is almost equivalent to `createmon 0 6 ...` and just gives the mon to the player after generating it. The exception being that `givemon` interacts with the abilities `Synchronize` and `Cute Charm` slightly differently than `createmon` when `nature` or `gender` are not explicitly set. + +### `setwildbattle (species:req, level:req, item=ITEM_NONE, species2=SPECIES_NONE, level2=0, item2=ITEM_NONE)` + +`setwildbattle` is a much simpler way to generate a wildmon ready for the player to fight. +It only takes 3 arguments (or 6 if you want to make it a double wild battle) +`species` and `level` refers to the species id and the level of the pokemon you want to generate +`item` refers to the item the mon is holding. If the argument is missing, the mon won't be holding anything +`species2`, `level2`, and `item2` are relate to the species, level and item of the second mon generated in case you want to make a double wild battle +The other properties will like IVs and personality will be set random just like for a regular wild battle +Mons generated with `setwildbattle` will always be considered static encounters (STATIC_WILDMON_ORIGIN) and will thus be eligible to be affected by Synchronize and Cute Charm + +### Synchronize and Cute Charm + +`nature` and `gender` also accept `NATURE_MAY_SYNCHRONIZE` and `MON_GENDER_MAY_CUTE_CHARM` respectively as arguments +`NATURE_RANDOM` and `MON_GENDER_RANDOM` always return a random nature/gender and never check for Synchronize or Cute Charm. If you want the generated mon to have a chance to receive the effcets of Synchronize or Cute Charm, you need to use `NATURE_MAY_SYNCHRONIZE` and `MON_GENDER_MAY_CUTE_CHARM` respectively for nature and gender. +When you use `NATURE_MAY_SYNCHRONIZE` or `MON_GENDER_MAY_CUTE_CHARM`, you are telling the game can check if the player has a pokemon with Synchronize or Cute Charm in the first slot of its party and roll a die to see if the nature or gender should be fixed based on the ability or rolled normally. +The mon generated also need to be of the right "origin" to be eligible for Synchronize or Cute Charm. We don't want to "synchronize" a mon belonging to a trainer or change the gender of a gift mon with Cute Charm. So if a mon is generated for the player side, it will be considered a "gift mon" (GIFTMON_ORIGIN) and if a mon is generated on the enemy side, it will be considered a static wild encounter (STATIC_WILDMON_ORIGIN). +`givemon` will default to use `NATURE_MAY_SYNCHRONIZE` and `MON_GENDER_MAY_CUTE_CHARM` because we assume you will use givemon to create "gift mons" but if you don't want it to apply in a specific script, you can explicitly use `NATURE_RANDOM` and `MON_GENDER_RANDOM` instead +`createmon` on the other hand default to `NATURE_RANDOM` and `MON_GENDER_RANDOM` so you need to explicitly use `NATURE_MAY_SYNCHRONIZE` or `MON_GENDER_MAY_CUTE_CHARM` for the generated mon to be considered a gift mon or a static wild encounter +Static encounters and Gift mons eligibility to Synchronize vary through generations in the official games so you can use the config `OW_SYNCHRONIZE_NATURE` to match your preference or you can check the `src/ow_synchronize.c` to modify the Synchronize and Cute Charm eligibility of different origins however you like + +## Through Code + +A lot of places in the game generate mons, when you start a wild encounter, when a trainer generates its party from the data in trainers.party or even when you call one of the script described in the previous section. So let's go through some of the most common functions. +Note: None of the functions described here allocate memory for the Pokemon struct, they all expect a pointer they will fill the data with. +It means they are usually called with `&gPlayerParty[index]` or `&gEnemyParty[index]` because these are places in memory reserved for Pokemon struct. + +### The basics + +To generate a mon ready for battle, you usually need to go through these steps: +- generate a personality value +- fill the generic mon structure based on species, level and personality +- set IVs and EVs +- (re-)compute stats (this step does not happen if you are generating a `struct boxPokemon` instead of `struct Pokemon`) +- set the moves + +### `GetMonPersonality` + +`GetMonPersonality` is the easiest way to make a personality value. It takes 4 arguments `species`, `gender`, `nature` and `unownLetter` then it rolls random personality values until it finds one that match all the selected criteria. +For example, if you want a personality for Wally's male Ralts, you would write: +`personality = GetMonPersonality(SPECIES_RALTS, MON_MALE, NATURE_RANDOM, RANDOM_UNOWN_LETTER);` +and if you want a personality for a brave J Unown, you would write +`personality = GetMonPersonality(SPECIES_UNOWN, MON_GENDER_RANDOM, NATURE_BRAVE, 9);` (J is the 10th letter of alphabet but for unown A starts at 0 so B is 1 and J is 9) +As you can see, you can use either a specific value or a special value `MON_GENDER_RANDOM`, `NATURE_RANDOM` or `RANDOM_UNOWN_LETTER` to tell the function to return any pokemon matching the other properties. This means, writing: +`personality = GetMonPersonality(SPECIES_X, MON_GENDER_RANDOM, NATURE_RANDOM, RANDOM_UNOWN_LETTER);` +id equivalent to +`personality = Random32();` +which is why `Random32()` is used throughout to generate a personality value in certain circumstances + +### `CreateMon` and `CreateBoxMon` + +`CreateMon` is the most basic function to create a generic Pokemon struct. It takes 5 arguments: +`mon` is a pointer to the mon struct you want to set the data for +`species` and `level` are fairly explicit +`personality` is the personality value you want to use to create your mon, it will determine a lot of your mon properties and will usually be a number that you generated by following the instructions from the previous section +`trainerID` is a special type of struct that explain how the function should set up the otId of the pokemon. Usually you will want to use one of these 3 macros for the argument: +`OTID_STRUCT_PLAYER_ID` which means the pokemon should the player otId (used for wildmon so they the get the player id when captured) +`OTID_STRUCT_PRESET(value)` which set a specific otId that you pick/write yourself +`OTID_STRUCT_RANDOM_NO_SHINY` which picks a random otId and forces the mon to not be shiny even if the random otId and chosen personality would have made the mon shiny. It is used by NPC trainers. +Both `CreateMon` and `CreateBoxMon` erase the pokemon data in the pointer before they add the new data so every value they don't set will be zero-ed in some way. This is why they are considered "base" functions. +The values set by `CreateMon` and `CreateBoxMon` are the gender, ability num, tera type and nature (based on personality); the met info (location, level and game), the original trainer name, gender and language (always set to the player even for enemy trainer mons), the starting xp (based on the xp required to reach the level the pokemon is at), the starting friendship (based on the species info) and the shinyness. +`CreateMon` and `CreateBoxMon` are very similar. In fact, the `CreateMon` function calls `CreateBoxMon` to generate the boxmon part of its structure but it also sets the level and a mail object (to an empty value) + +### Setting IVs and EVs + +Usually, you will want to use `SetBoxMonIVs(mon->box, ivs)` to set the ivs of the pokemon you are generating. The reason is that not only can you quickly set all ivs of your mon to a single value: `SetBoxMonIVs(mon->box, 15)` will set all IVs to 15. You can also use the special argument `USE_RANDOM_IVS`. When used with `USE_RANDOM_IVS`, `SetBoxMonIvs` will not only pick a random value between 0 and 31 for each stat, it will also allocate some perfect iv if the species of the mon has a perfectIvCount set in the species data. For example if you are generating a legendary with a perfectIvCount of 3, using `SetBoxMonIVs(mon->box, USE_RANDOM_IVS)` will guarantee that at least 3 IVs are set to 31 +The other way to assign IV is to use `SetMonData`, for example: +`SetMonData(mon, MON_DATA_HP_IV, 15)` +with the stats being in order `MON_DATA_HP_IV`, `MON_DATA_ATK_IV`, `MON_DATA_DEF_IV`, `MON_DATA_SPEED_IV`, `MON_DATA_SPATK_IV` and `MON_DATA_SPDEF_IV` +You can also use a loop like this: +```c +for (i = 0; i < NUM_STATS; i++) + SetMonData(mon, MON_DATA_HP_IV + i, iv_array[i]) +``` +if you happen to have an array containing the values you want but be careful about the order if you use this method +EVs default to 0 when a mon is generated with `CreateMon` or `CreateBoxMon` so you may not need to anything if you want to keep it that way. If you want to change them, there are currently no utilities to set EVs at the moment so you will need to use the `SetMonData` method as well: +`SetMonData(mon, MON_DATA_HP_EV, 252)` +The stats have the same names as the IVs with I cheange into an E : `MON_DATA_HP_EV`, `MON_DATA_ATK_EV`, `MON_DATA_DEF_EV`, `MON_DATA_SPEED_EV`, `MON_DATA_SPATK_EV` and `MON_DATA_SPDEF_EV` so the loop method works here too +```c +for (i = 0; i < NUM_STATS; i++) + SetMonData(mon, MON_DATA_HP_EV + i, ev_array[i]) +``` +Just be careful when setting IVs and EVs with SetMonData because they are no check to make sure the IV and EV values you are setting are valid and this may cause some issues. + +### `CalculateMonStats` + +After all the IVs and EVs have been set for your mon, it's important to run `CalculateMonStats(mon)`. The function only has one argument so it's pretty simple but don't forget this step or you may have some isseus + +### Setting moves + +To set a move in slot `slot`, you would need to write: +```c +enum Move move = MOVE_X; +u32 pp = GetMovePP(move); +SetMonData(mon, MON_DATA_MOVE1 + slot, &move); +SetMonData(mon, MON_DATA_PP1 + slot, &spp); +``` +where slot can be between 0 and 3 to represent the 1st to 4th move +You can also call the function `GiveMonInitialMoveset(mon)` that will give your pokemon its last 4 level-up moves available similarly to the wild pokemon you might enciunter + +## Going from 1.14 to 1.15 + +When going from 1.14 to 1.15, Expansion deleted multiple functions related to mon generation that were not used in Expansion anymore. +The following functions were deleted +```c +void CreateMonWithNature(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 nature); +void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 gender, u8 nature, u8 unownLetter); +void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId); +void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread); +void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId); +``` +If you add custom code relying on those functions, I would advise to simple recode them using the methods described in the previous section. If you follow the steps, you should be able to rewrite a function with the same effect easily. + +However the move to 1.15 also completely rewrote these two functions: +```c +void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); +void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); +``` +`CreateMon` and `CreateBoxMon` now have different arguments and do less things than their 1.14 counterparts. If you have code that used those functions, we recommend you use these legacy version of `CreateMon` and `CreateBoxMon`: +```c +void CreateMonLegacy(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId) +{ + u32 personality = hasFixedPersonality ? fixedPersonality : Random32(); + struct OriginalTrainerId otId = {otIdType, fixedOtId}; + CreateMonWithIVs(mon, species, level, personality, otId, fixedIV); + GiveMonInitialMoveset(mon); +} + +void CreateBoxMonLegacy(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId) +{ + u32 personality = hasFixedPersonality ? fixedPersonality : Random32(); + struct OriginalTrainerId otId = {otIdType, fixedOtId}; + CreateBoxMon(boxMon, species, level, personality, otId); + SetBoxMonIVs(boxMon, fixedIV); + GiveBoxMonInitialMoveset(boxMon); +} +``` +These two legacy functions use the 1.15 functions to recreate the 1.14 versions of `CreateMon` and `CreateBoxMon` with the same arguments and the same effects. Add these two legacy functions to your code then change your custom code that was relying on 1.14 `CreateMon` or `CreateBoxMon` to use `CreateMonLegacy` or `CreateBoxMonLegacy` instead and everything should work the same as before diff --git a/docs/tutorials/teachable_learnsets.md b/docs/tutorials/teachable_learnsets.md new file mode 100644 index 000000000000..31f31b18ad75 --- /dev/null +++ b/docs/tutorials/teachable_learnsets.md @@ -0,0 +1,62 @@ +### Note: This guide was written for version 1.14.0, it doesn't apply to earlier versions of expansions. This guide also assumes you are using the default P_LEARNSET_HELPER_TEACHABLE config (TRUE) + +# Generating and editing teachable learnsets + +## Basics: +When you `make`, a file will be generated in `src/data/pokemon/teachable_learnsets.h` containing the learnsets of your Pokemon. The generated learnset of a pokemon is based on 3 things, its potential moveset defined in `src/data/pokemon/all_learnables.json`, the teaching type of the species defined in the species data files, and the TMs and tutors available in your game. We will explain each of these one by one. + +### Table of Contents: + +1. [Potential Teachables] +2. [Teaching Types] + - [Default Learnset] + - [TM Illiterate] + - [All Teachables] +3. [Available Moves] + - [TMs/Hms] + - [Tutors from scripts] + - [Extra Tutors] + +## Potential Teachables + +The potential moveset of each pokemon is defined in `src/data/pokemon/all_learnables.json`. If you don't have the file yet, a version will be generated automatically after you run `make`. +On its first creation, the file is based on the list of moves a pokemon can learn in official Pokemon games. Those lists are found in `tools/learnset_helpers/porymoves_files`, if a Pokemon learned a move in any way in the game (from level-up, egg move, tm or tutor), it will be added to its teachable learnset. You can delete some of the files mix-and-match from different games list. This is justa tool to help you quickly generate a vanilla-ish etachable learnset. +After `src/data/pokemon/all_learnables.json` has been created, this file will NEVER be modified by running `make` so you don't have to worry abour your changes being reverted. However you can choose to remake the file by using a different set of game move list by running `make clean-teachables` and then running `make` again. + +## Teaching Types + +In addition to their teachable learnset described in `src/data/pokemon/all_learnables.json`, Pokemon will be able to learn additional moves based on their teaching types defined in their species data (found in `species/data/pokemon/species_info/gen_X_families.h` for vanilla Pokemon and `species/data/pokemon/species_info.h` for fakemons). There are currently three teaching types in Expansion: Default Learning, TM Illiterate and All Teahcables + +### Default Learning + +This is the default one, so if a species don't have a teaching type defined in its species data, it will will default to this. If you want to explicitly make a species this way, then add `.teachingType = DEFAULT_LEARNING` to the species data. +Default Learning mean in addtion to the moves described in its additional moveset, the Pokemon will be able to learn the universal moves (like Tera Blast or Hidden Power). Universal moves are listed in `src/data/pokemon/special_movesets.json` (there are multiple lists in the file, make sure to edit the one named "universalMoves") + +### TM Illiterate + +`.teachingType = TM_ILLITERATE` +TM Illiterate mean a pokemon will only learn move from its potential moveset and not any universal moves. If the config `P_TM_LITERACY` is set to GEN_5 or lower. Universal moves will be removed from the pokemon potential learnset. + +### All Teachables + +`.teachingType = ALL_TEACHABLES` +All Teachables mean a pokemon will be able to learn every teachable move that are present in your game whether tutor or TM similarly to Mew in official games. If you want a TM or a Tutor move to not be accesible to All Teachables pokemon, you can add it to the signature teachables list in `src/data/pokemon/special_movesets.json` (there are multiple lists in the file, make sure to edit the one named "signatureTeachables") + +So, for example, if you a remove a TM from your game, the move associated with that TM will be removed from the teachable elarnset of your pokemon. + +## Available Moves + +The teachable learnset is based on the potential moveset and the universal moves as described in the sections above but it will only be conposed of moves that are available in your game. Let's see how the code detects the moves that are available. + +### TMs/Hms + +The script detects the TMs and HMs available in your game based on the list in `include/constants/tms_hms.h`. If you add a new TM, the pokemon with that move in their potential moveset will receive that move in their teachable learnset. And if you remove a TM, the move will be deleted from your pokemon's teachable learnsets. + +### Tutors from scripts + +The script look for tutors moves in your script files, wether map scripts `/data/maps/*/scripts.inc` or other function scripts `/data/scripts/*.inc`. It looks for the pattern used for move tutors in vanilla emerald `setvar VAR_0x8005, MOVE_*`. So try to add move tutors this way if you want them to be properl detected. + +### Extra Tutors + +If you somehow add a move that can be learned in new custom ways that don't fit with the previous patterns, you can add the move to the extra tutors list in `src/data/pokemon/special_movesets.json` (there are multiple lists in the file, make sure to edit the one named "extraTutors"). This shouldn't be necessary for most users and if you use this list, remember you will need to add/remove moves from this list and the code that teaches moves. + diff --git a/docs/tutorials/vs_seeker.md b/docs/tutorials/vs_seeker.md index 90a5f3c81d74..e38dba11938c 100644 --- a/docs/tutorials/vs_seeker.md +++ b/docs/tutorials/vs_seeker.md @@ -111,5 +111,5 @@ If you want Trainers to spin once they are eligible for a rematch, their overwor * **Recharge Steps**: `VSSEEKER_RECHARGE_STEPS` is initally set to 100, but this value can be changed to any number under 256. * **Badge Requirement**: `HasAtLeastFiveBadges` is used to check if the Vs. Seeker will successfully work. You can customize the number of badges by changing `REMATCH_BADGE_COUNT` or otherwise alterting the function. -## What are the limitations of the Vs. Seeker? -The Vs. Seeker does not currently work with Gym Leaders. There is a bug filed to hopefully fix this in the future. +## How do gym leaders rematch work with Vs. Seeker? +They follow vanilla Emerald rules. You need to have set the flag `FLAG_SYS_GAME_CLEAR` by defeating Steven in Ever Grande City for the first rematch to be available. And then you need to have beaten every Gym Leader in a rematch once the second rematch is available. Then you need to beat every Gym Leader in a second rematch for the third rematch to be available, etc, etc ... diff --git a/graphics/battle_anims/sprites/monster_doll_gba.png b/graphics/battle_anims/sprites/monster_doll_gba.png new file mode 100644 index 000000000000..55706275c551 Binary files /dev/null and b/graphics/battle_anims/sprites/monster_doll_gba.png differ diff --git a/graphics/battle_anims/sprites/substitute_back_gba.png b/graphics/battle_anims/sprites/substitute_back_gba.png new file mode 100644 index 000000000000..8ea1f7ff8b77 Binary files /dev/null and b/graphics/battle_anims/sprites/substitute_back_gba.png differ diff --git a/graphics/battle_anims/sprites/substitute_gba.png b/graphics/battle_anims/sprites/substitute_gba.png new file mode 100644 index 000000000000..0b6dea85009d Binary files /dev/null and b/graphics/battle_anims/sprites/substitute_gba.png differ diff --git a/graphics/blackjack/background.pal b/graphics/blackjack/background.pal new file mode 100644 index 000000000000..48aa928227cb --- /dev/null +++ b/graphics/blackjack/background.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 239 82 +181 231 247 +255 198 156 +255 206 8 +156 148 231 +255 99 57 +140 115 214 +41 173 107 +115 90 173 +99 99 90 +173 57 0 +82 74 123 +0 123 74 +57 57 49 +0 0 0 diff --git a/graphics/blackjack/background_tiles.bin b/graphics/blackjack/background_tiles.bin new file mode 100644 index 000000000000..2b91fae74631 Binary files /dev/null and b/graphics/blackjack/background_tiles.bin differ diff --git a/graphics/blackjack/background_tiles.png b/graphics/blackjack/background_tiles.png new file mode 100644 index 000000000000..63483e0d3667 Binary files /dev/null and b/graphics/blackjack/background_tiles.png differ diff --git a/graphics/blackjack/cards.pal b/graphics/blackjack/cards.pal new file mode 100644 index 000000000000..1b8c5270c12d --- /dev/null +++ b/graphics/blackjack/cards.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 106 156 +87 81 90 +195 222 231 +147 78 108 +255 123 120 +255 255 255 +246 186 201 +120 105 141 +108 186 237 +255 230 90 +205 189 106 +171 147 204 +87 102 147 +255 255 210 +225 207 228 +0 0 0 diff --git a/graphics/blackjack/cards/clubs/cards_clubs_10.png b/graphics/blackjack/cards/clubs/cards_clubs_10.png new file mode 100644 index 000000000000..bd75f3844855 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_10.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_2.png b/graphics/blackjack/cards/clubs/cards_clubs_2.png new file mode 100644 index 000000000000..a23cf60d57eb Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_2.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_3.png b/graphics/blackjack/cards/clubs/cards_clubs_3.png new file mode 100644 index 000000000000..a0b5d5c5b6a1 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_3.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_4.png b/graphics/blackjack/cards/clubs/cards_clubs_4.png new file mode 100644 index 000000000000..7b414f31c5d0 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_4.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_5.png b/graphics/blackjack/cards/clubs/cards_clubs_5.png new file mode 100644 index 000000000000..ed5b727a6670 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_5.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_6.png b/graphics/blackjack/cards/clubs/cards_clubs_6.png new file mode 100644 index 000000000000..ff675501f8e1 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_6.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_7.png b/graphics/blackjack/cards/clubs/cards_clubs_7.png new file mode 100644 index 000000000000..a235d03c2946 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_7.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_8.png b/graphics/blackjack/cards/clubs/cards_clubs_8.png new file mode 100644 index 000000000000..10a372110221 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_8.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_9.png b/graphics/blackjack/cards/clubs/cards_clubs_9.png new file mode 100644 index 000000000000..75c9c0b811cc Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_9.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_a.png b/graphics/blackjack/cards/clubs/cards_clubs_a.png new file mode 100644 index 000000000000..d3c9366447f5 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_a.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_j.png b/graphics/blackjack/cards/clubs/cards_clubs_j.png new file mode 100644 index 000000000000..3c95b30edd80 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_j.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_k.png b/graphics/blackjack/cards/clubs/cards_clubs_k.png new file mode 100644 index 000000000000..c3d4cbe30614 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_k.png differ diff --git a/graphics/blackjack/cards/clubs/cards_clubs_q.png b/graphics/blackjack/cards/clubs/cards_clubs_q.png new file mode 100644 index 000000000000..43661e5690e2 Binary files /dev/null and b/graphics/blackjack/cards/clubs/cards_clubs_q.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_10.png b/graphics/blackjack/cards/diamonds/cards_diamonds_10.png new file mode 100644 index 000000000000..d50914161145 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_10.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_2.png b/graphics/blackjack/cards/diamonds/cards_diamonds_2.png new file mode 100644 index 000000000000..8b16119f646d Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_2.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_3.png b/graphics/blackjack/cards/diamonds/cards_diamonds_3.png new file mode 100644 index 000000000000..7d3700965a82 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_3.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_4.png b/graphics/blackjack/cards/diamonds/cards_diamonds_4.png new file mode 100644 index 000000000000..6751a08b54f2 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_4.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_5.png b/graphics/blackjack/cards/diamonds/cards_diamonds_5.png new file mode 100644 index 000000000000..fd1eb58288ec Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_5.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_6.png b/graphics/blackjack/cards/diamonds/cards_diamonds_6.png new file mode 100644 index 000000000000..62b2ed1041f1 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_6.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_7.png b/graphics/blackjack/cards/diamonds/cards_diamonds_7.png new file mode 100644 index 000000000000..4c0be435cc9f Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_7.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_8.png b/graphics/blackjack/cards/diamonds/cards_diamonds_8.png new file mode 100644 index 000000000000..c095ec246001 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_8.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_9.png b/graphics/blackjack/cards/diamonds/cards_diamonds_9.png new file mode 100644 index 000000000000..698f25438b44 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_9.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_a.png b/graphics/blackjack/cards/diamonds/cards_diamonds_a.png new file mode 100644 index 000000000000..bd338df0bffc Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_a.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_j.png b/graphics/blackjack/cards/diamonds/cards_diamonds_j.png new file mode 100644 index 000000000000..fe658e4a2620 Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_j.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_k.png b/graphics/blackjack/cards/diamonds/cards_diamonds_k.png new file mode 100644 index 000000000000..afb054d91d5c Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_k.png differ diff --git a/graphics/blackjack/cards/diamonds/cards_diamonds_q.png b/graphics/blackjack/cards/diamonds/cards_diamonds_q.png new file mode 100644 index 000000000000..6cdd0238a9ef Binary files /dev/null and b/graphics/blackjack/cards/diamonds/cards_diamonds_q.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_10.png b/graphics/blackjack/cards/hearts/cards_hearts_10.png new file mode 100644 index 000000000000..31dce19311b9 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_10.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_2.png b/graphics/blackjack/cards/hearts/cards_hearts_2.png new file mode 100644 index 000000000000..7e64314ea1de Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_2.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_3.png b/graphics/blackjack/cards/hearts/cards_hearts_3.png new file mode 100644 index 000000000000..81bc9da3fcda Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_3.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_4.png b/graphics/blackjack/cards/hearts/cards_hearts_4.png new file mode 100644 index 000000000000..9d133ee3ca8e Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_4.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_5.png b/graphics/blackjack/cards/hearts/cards_hearts_5.png new file mode 100644 index 000000000000..7f63046acd65 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_5.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_6.png b/graphics/blackjack/cards/hearts/cards_hearts_6.png new file mode 100644 index 000000000000..ad72d60f1759 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_6.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_7.png b/graphics/blackjack/cards/hearts/cards_hearts_7.png new file mode 100644 index 000000000000..22a9f5c3a7f1 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_7.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_8.png b/graphics/blackjack/cards/hearts/cards_hearts_8.png new file mode 100644 index 000000000000..f0a33308db37 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_8.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_9.png b/graphics/blackjack/cards/hearts/cards_hearts_9.png new file mode 100644 index 000000000000..b41f94afc1e3 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_9.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_a.png b/graphics/blackjack/cards/hearts/cards_hearts_a.png new file mode 100644 index 000000000000..e138bca7fcb6 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_a.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_j.png b/graphics/blackjack/cards/hearts/cards_hearts_j.png new file mode 100644 index 000000000000..e31317ce43d7 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_j.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_k.png b/graphics/blackjack/cards/hearts/cards_hearts_k.png new file mode 100644 index 000000000000..e7c2ae2f7619 Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_k.png differ diff --git a/graphics/blackjack/cards/hearts/cards_hearts_q.png b/graphics/blackjack/cards/hearts/cards_hearts_q.png new file mode 100644 index 000000000000..f0d6eb0bd49f Binary files /dev/null and b/graphics/blackjack/cards/hearts/cards_hearts_q.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_10.png b/graphics/blackjack/cards/spades/cards_spades_10.png new file mode 100644 index 000000000000..b191527f1500 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_10.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_2.png b/graphics/blackjack/cards/spades/cards_spades_2.png new file mode 100644 index 000000000000..9f43389625e4 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_2.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_3.png b/graphics/blackjack/cards/spades/cards_spades_3.png new file mode 100644 index 000000000000..2c60077facec Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_3.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_4.png b/graphics/blackjack/cards/spades/cards_spades_4.png new file mode 100644 index 000000000000..7b41d7e99bf7 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_4.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_5.png b/graphics/blackjack/cards/spades/cards_spades_5.png new file mode 100644 index 000000000000..04750e7cc787 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_5.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_6.png b/graphics/blackjack/cards/spades/cards_spades_6.png new file mode 100644 index 000000000000..05dac2fe404c Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_6.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_7.png b/graphics/blackjack/cards/spades/cards_spades_7.png new file mode 100644 index 000000000000..396cd182153a Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_7.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_8.png b/graphics/blackjack/cards/spades/cards_spades_8.png new file mode 100644 index 000000000000..a67f70045e37 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_8.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_9.png b/graphics/blackjack/cards/spades/cards_spades_9.png new file mode 100644 index 000000000000..de8ae590e747 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_9.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_a.png b/graphics/blackjack/cards/spades/cards_spades_a.png new file mode 100644 index 000000000000..7ddc2f44ebd6 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_a.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_j.png b/graphics/blackjack/cards/spades/cards_spades_j.png new file mode 100644 index 000000000000..37617e985026 Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_j.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_k.png b/graphics/blackjack/cards/spades/cards_spades_k.png new file mode 100644 index 000000000000..cd22ba5000af Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_k.png differ diff --git a/graphics/blackjack/cards/spades/cards_spades_q.png b/graphics/blackjack/cards/spades/cards_spades_q.png new file mode 100644 index 000000000000..6e21310bdd5b Binary files /dev/null and b/graphics/blackjack/cards/spades/cards_spades_q.png differ diff --git a/graphics/blackjack/cursor.pal b/graphics/blackjack/cursor.pal new file mode 100644 index 000000000000..dacc6dc98b54 --- /dev/null +++ b/graphics/blackjack/cursor.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +40 172 104 +168 56 0 +0 120 72 +154 148 226 +248 200 8 +136 112 208 +176 228 240 +248 192 152 +56 56 48 +80 72 120 +248 96 56 +112 88 168 +248 232 80 +248 252 248 +100 102 92 diff --git a/graphics/blackjack/cursor.png b/graphics/blackjack/cursor.png new file mode 100644 index 000000000000..f28e327c6722 Binary files /dev/null and b/graphics/blackjack/cursor.png differ diff --git a/graphics/blackjack/digits.pal b/graphics/blackjack/digits.pal new file mode 100644 index 000000000000..581425e1fd5d --- /dev/null +++ b/graphics/blackjack/digits.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 0 +99 99 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/blackjack/digits.png b/graphics/blackjack/digits.png new file mode 100644 index 000000000000..d35107c596a1 Binary files /dev/null and b/graphics/blackjack/digits.png differ diff --git a/graphics/blackjack/digits_dealer.pal b/graphics/blackjack/digits_dealer.pal new file mode 100644 index 000000000000..581425e1fd5d --- /dev/null +++ b/graphics/blackjack/digits_dealer.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 0 +99 99 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/blackjack/digits_dealer.png b/graphics/blackjack/digits_dealer.png new file mode 100644 index 000000000000..d35107c596a1 Binary files /dev/null and b/graphics/blackjack/digits_dealer.png differ diff --git a/graphics/blackjack/digits_player.pal b/graphics/blackjack/digits_player.pal new file mode 100644 index 000000000000..581425e1fd5d --- /dev/null +++ b/graphics/blackjack/digits_player.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 0 +99 99 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/blackjack/digits_player.png b/graphics/blackjack/digits_player.png new file mode 100644 index 000000000000..d35107c596a1 Binary files /dev/null and b/graphics/blackjack/digits_player.png differ diff --git a/graphics/blackjack/facedown.png b/graphics/blackjack/facedown.png new file mode 100644 index 000000000000..97c012e72df1 Binary files /dev/null and b/graphics/blackjack/facedown.png differ diff --git a/graphics/blackjack/option_1.png b/graphics/blackjack/option_1.png new file mode 100644 index 000000000000..17b7ff92976d Binary files /dev/null and b/graphics/blackjack/option_1.png differ diff --git a/graphics/blackjack/option_2.png b/graphics/blackjack/option_2.png new file mode 100644 index 000000000000..4e8e8c79269d Binary files /dev/null and b/graphics/blackjack/option_2.png differ diff --git a/graphics/blackjack/option_3.png b/graphics/blackjack/option_3.png new file mode 100644 index 000000000000..38402187d640 Binary files /dev/null and b/graphics/blackjack/option_3.png differ diff --git a/graphics/blackjack/popup.png b/graphics/blackjack/popup.png new file mode 100644 index 000000000000..ffcd49c79802 Binary files /dev/null and b/graphics/blackjack/popup.png differ diff --git a/graphics/block_stacker/arrow.pal b/graphics/block_stacker/arrow.pal new file mode 100644 index 000000000000..a3df3b5eb5bd --- /dev/null +++ b/graphics/block_stacker/arrow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 128 128 +248 64 64 +96 88 96 +248 32 32 +248 96 96 +88 88 88 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/arrow.png b/graphics/block_stacker/arrow.png new file mode 100644 index 000000000000..eb304bcb4b4f Binary files /dev/null and b/graphics/block_stacker/arrow.png differ diff --git a/graphics/block_stacker/bgblock.pal b/graphics/block_stacker/bgblock.pal new file mode 100644 index 000000000000..e58d63e84dac --- /dev/null +++ b/graphics/block_stacker/bgblock.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +239 247 247 +206 231 231 +255 231 99 +239 206 82 +165 198 214 +247 148 90 +156 165 173 +123 165 222 +231 123 74 +140 148 156 +90 140 206 +115 132 148 +115 123 140 +99 115 123 +82 90 107 +66 66 74 diff --git a/graphics/block_stacker/blockbgtiles.bin b/graphics/block_stacker/blockbgtiles.bin new file mode 100644 index 000000000000..f497481b03cf Binary files /dev/null and b/graphics/block_stacker/blockbgtiles.bin differ diff --git a/graphics/block_stacker/blockbgtiles.png b/graphics/block_stacker/blockbgtiles.png new file mode 100644 index 000000000000..26f160d8d45e Binary files /dev/null and b/graphics/block_stacker/blockbgtiles.png differ diff --git a/graphics/block_stacker/blocks.pal b/graphics/block_stacker/blocks.pal new file mode 100644 index 000000000000..d38594dbb238 --- /dev/null +++ b/graphics/block_stacker/blocks.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +224 208 216 +159 143 151 +135 119 127 +200 183 191 +175 159 167 +250 250 250 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/blocks.png b/graphics/block_stacker/blocks.png new file mode 100644 index 000000000000..3ca13b707de4 Binary files /dev/null and b/graphics/block_stacker/blocks.png differ diff --git a/graphics/block_stacker/commands.pal b/graphics/block_stacker/commands.pal new file mode 100644 index 000000000000..bf682ef85b0d --- /dev/null +++ b/graphics/block_stacker/commands.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +112 124 136 +248 248 248 +136 136 136 +168 168 168 +88 88 88 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/commands.png b/graphics/block_stacker/commands.png new file mode 100644 index 000000000000..881a999073bb Binary files /dev/null and b/graphics/block_stacker/commands.png differ diff --git a/graphics/block_stacker/gameover.png b/graphics/block_stacker/gameover.png new file mode 100644 index 000000000000..634d886fc553 Binary files /dev/null and b/graphics/block_stacker/gameover.png differ diff --git a/graphics/block_stacker/highlight.pal b/graphics/block_stacker/highlight.pal new file mode 100644 index 000000000000..d74cb6bee04e --- /dev/null +++ b/graphics/block_stacker/highlight.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +248 32 32 +248 64 64 +248 128 128 +248 184 184 +248 248 248 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/highlight.png b/graphics/block_stacker/highlight.png new file mode 100644 index 000000000000..41411d1590cc Binary files /dev/null and b/graphics/block_stacker/highlight.png differ diff --git a/graphics/block_stacker/keepgoing.png b/graphics/block_stacker/keepgoing.png new file mode 100644 index 000000000000..dfe64e784044 Binary files /dev/null and b/graphics/block_stacker/keepgoing.png differ diff --git a/graphics/block_stacker/lives.pal b/graphics/block_stacker/lives.pal new file mode 100644 index 000000000000..7fe7761b2e6d --- /dev/null +++ b/graphics/block_stacker/lives.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +248 88 80 +216 64 48 +248 224 96 +248 192 0 +64 224 112 +48 184 72 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/lives.png b/graphics/block_stacker/lives.png new file mode 100644 index 000000000000..3fead39d720f Binary files /dev/null and b/graphics/block_stacker/lives.png differ diff --git a/graphics/block_stacker/no.png b/graphics/block_stacker/no.png new file mode 100644 index 000000000000..7bdb2fee6b23 Binary files /dev/null and b/graphics/block_stacker/no.png differ diff --git a/graphics/block_stacker/rhydon.pal b/graphics/block_stacker/rhydon.pal new file mode 100644 index 000000000000..bcd8fc7dfd3b --- /dev/null +++ b/graphics/block_stacker/rhydon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 252 208 +144 136 104 +76 78 84 +8 8 8 +148 48 16 +208 78 56 +192 182 164 +228 206 164 +120 104 56 +248 232 192 +120 120 128 +224 224 216 +240 242 240 +168 160 132 +136 136 144 +104 96 56 diff --git a/graphics/block_stacker/rhydon.png b/graphics/block_stacker/rhydon.png new file mode 100644 index 000000000000..fbc81a623ec9 Binary files /dev/null and b/graphics/block_stacker/rhydon.png differ diff --git a/graphics/block_stacker/rhydon2.png b/graphics/block_stacker/rhydon2.png new file mode 100644 index 000000000000..f5ce129fbd7c Binary files /dev/null and b/graphics/block_stacker/rhydon2.png differ diff --git a/graphics/block_stacker/rhydonblock.pal b/graphics/block_stacker/rhydonblock.pal new file mode 100644 index 000000000000..3e61f6b93f9e --- /dev/null +++ b/graphics/block_stacker/rhydonblock.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 213 228 +110 101 106 +248 248 240 +248 232 240 +200 183 191 +135 119 127 +224 208 216 +175 159 167 +159 143 151 +80 80 88 +16 16 16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/rhydonblock.png b/graphics/block_stacker/rhydonblock.png new file mode 100644 index 000000000000..9ca4f6c4ceba Binary files /dev/null and b/graphics/block_stacker/rhydonblock.png differ diff --git a/graphics/block_stacker/start.png b/graphics/block_stacker/start.png new file mode 100644 index 000000000000..249c34e76413 Binary files /dev/null and b/graphics/block_stacker/start.png differ diff --git a/graphics/block_stacker/text.pal b/graphics/block_stacker/text.pal new file mode 100644 index 000000000000..899ca40a629d --- /dev/null +++ b/graphics/block_stacker/text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +144 40 200 +248 248 240 +140 146 152 +248 200 232 +208 72 248 +224 124 72 +248 248 135 +248 224 96 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/title.pal b/graphics/block_stacker/title.pal new file mode 100644 index 000000000000..e67154f26965 --- /dev/null +++ b/graphics/block_stacker/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +248 32 32 +248 248 248 +248 216 216 +140 146 152 +248 152 136 +224 124 72 +248 248 135 +248 224 96 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/title.png b/graphics/block_stacker/title.png new file mode 100644 index 000000000000..1160f2c44d1a Binary files /dev/null and b/graphics/block_stacker/title.png differ diff --git a/graphics/block_stacker/winner.png b/graphics/block_stacker/winner.png new file mode 100644 index 000000000000..b482213486b9 Binary files /dev/null and b/graphics/block_stacker/winner.png differ diff --git a/graphics/block_stacker/x.pal b/graphics/block_stacker/x.pal new file mode 100644 index 000000000000..a5785c7d23f4 --- /dev/null +++ b/graphics/block_stacker/x.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +159 142 150 +110 101 106 +97 87 92 +135 124 129 +248 64 64 +120 110 115 +100 112 124 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/block_stacker/x.png b/graphics/block_stacker/x.png new file mode 100644 index 000000000000..75112d5085a4 Binary files /dev/null and b/graphics/block_stacker/x.png differ diff --git a/graphics/block_stacker/yes.png b/graphics/block_stacker/yes.png new file mode 100644 index 000000000000..cb3e6f642d14 Binary files /dev/null and b/graphics/block_stacker/yes.png differ diff --git a/graphics/block_stacker/yesno.pal b/graphics/block_stacker/yesno.pal new file mode 100644 index 000000000000..a6d69dcdaa9b --- /dev/null +++ b/graphics/block_stacker/yesno.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +136 136 136 +248 248 248 +208 208 208 +88 88 88 +156 165 159 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/crash_screen/font.png b/graphics/crash_screen/font.png new file mode 100644 index 000000000000..60db49dd9c81 Binary files /dev/null and b/graphics/crash_screen/font.png differ diff --git a/graphics/crash_screen/palette.pal b/graphics/crash_screen/palette.pal new file mode 100644 index 000000000000..899f368500b2 --- /dev/null +++ b/graphics/crash_screen/palette.pal @@ -0,0 +1,5 @@ +JASC-PAL +0100 +2 +0 0 255 +255 255 255 diff --git a/graphics/credits_frlg/blastoise_1.png b/graphics/credits_frlg/blastoise_1.png new file mode 100644 index 000000000000..eb464492ea18 Binary files /dev/null and b/graphics/credits_frlg/blastoise_1.png differ diff --git a/graphics/credits_frlg/blastoise_2.png b/graphics/credits_frlg/blastoise_2.png new file mode 100644 index 000000000000..2fdae931950e Binary files /dev/null and b/graphics/credits_frlg/blastoise_2.png differ diff --git a/graphics/credits_frlg/charizard_1.png b/graphics/credits_frlg/charizard_1.png new file mode 100644 index 000000000000..d7de2a76954f Binary files /dev/null and b/graphics/credits_frlg/charizard_1.png differ diff --git a/graphics/credits_frlg/charizard_2.png b/graphics/credits_frlg/charizard_2.png new file mode 100644 index 000000000000..8d64548d6547 Binary files /dev/null and b/graphics/credits_frlg/charizard_2.png differ diff --git a/graphics/credits_frlg/copyright.bin b/graphics/credits_frlg/copyright.bin new file mode 100644 index 000000000000..8830b60c3266 Binary files /dev/null and b/graphics/credits_frlg/copyright.bin differ diff --git a/graphics/credits_frlg/copyright.png b/graphics/credits_frlg/copyright.png new file mode 100644 index 000000000000..3e5f0fac3491 Binary files /dev/null and b/graphics/credits_frlg/copyright.png differ diff --git a/graphics/credits_frlg/ground_city.png b/graphics/credits_frlg/ground_city.png new file mode 100644 index 000000000000..5b10bd69994f Binary files /dev/null and b/graphics/credits_frlg/ground_city.png differ diff --git a/graphics/credits_frlg/ground_dirt.png b/graphics/credits_frlg/ground_dirt.png new file mode 100644 index 000000000000..18e34725f85b Binary files /dev/null and b/graphics/credits_frlg/ground_dirt.png differ diff --git a/graphics/credits_frlg/ground_grass.png b/graphics/credits_frlg/ground_grass.png new file mode 100644 index 000000000000..7fa79c06adff Binary files /dev/null and b/graphics/credits_frlg/ground_grass.png differ diff --git a/graphics/credits_frlg/pikachu_1.png b/graphics/credits_frlg/pikachu_1.png new file mode 100644 index 000000000000..5af34dc5d526 Binary files /dev/null and b/graphics/credits_frlg/pikachu_1.png differ diff --git a/graphics/credits_frlg/pikachu_2.png b/graphics/credits_frlg/pikachu_2.png new file mode 100644 index 000000000000..2045dbf12073 Binary files /dev/null and b/graphics/credits_frlg/pikachu_2.png differ diff --git a/graphics/credits_frlg/player_female.png b/graphics/credits_frlg/player_female.png new file mode 100644 index 000000000000..34159416095d Binary files /dev/null and b/graphics/credits_frlg/player_female.png differ diff --git a/graphics/credits_frlg/player_male.png b/graphics/credits_frlg/player_male.png new file mode 100644 index 000000000000..ec065cdb6f6f Binary files /dev/null and b/graphics/credits_frlg/player_male.png differ diff --git a/graphics/credits_frlg/pokeball.bin b/graphics/credits_frlg/pokeball.bin new file mode 100644 index 000000000000..c072a95644a6 Binary files /dev/null and b/graphics/credits_frlg/pokeball.bin differ diff --git a/graphics/credits_frlg/pokeball.png b/graphics/credits_frlg/pokeball.png new file mode 100644 index 000000000000..b1389a64a7ab Binary files /dev/null and b/graphics/credits_frlg/pokeball.png differ diff --git a/graphics/credits_frlg/pokeball_blastoise.pal b/graphics/credits_frlg/pokeball_blastoise.pal new file mode 100644 index 000000000000..c2b4afe7ccae --- /dev/null +++ b/graphics/credits_frlg/pokeball_blastoise.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +148 197 246 +131 180 246 +106 164 246 +90 148 255 +57 98 164 +24 49 82 +172 222 246 +131 172 197 +98 131 148 +65 82 98 +32 41 49 +16 98 255 +8 65 164 +0 32 82 +0 0 0 diff --git a/graphics/credits_frlg/pokeball_charizard.pal b/graphics/credits_frlg/pokeball_charizard.pal new file mode 100644 index 000000000000..9ad2a106e497 --- /dev/null +++ b/graphics/credits_frlg/pokeball_charizard.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +230 98 90 +213 65 82 +189 32 74 +172 0 74 +115 0 49 +57 0 24 +255 131 98 +197 98 74 +148 74 57 +98 49 32 +49 24 16 +255 0 8 +164 0 0 +82 0 0 +0 0 0 diff --git a/graphics/credits_frlg/pokeball_pikachu.pal b/graphics/credits_frlg/pokeball_pikachu.pal new file mode 100644 index 000000000000..32aaf19043d6 --- /dev/null +++ b/graphics/credits_frlg/pokeball_pikachu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 230 57 +255 213 41 +255 189 16 +255 172 0 +164 115 0 +82 57 0 +255 255 82 +213 213 65 +180 180 57 +148 148 41 +106 106 32 +255 90 0 +164 57 0 +82 24 0 +0 0 0 diff --git a/graphics/credits_frlg/pokeball_venusaur.pal b/graphics/credits_frlg/pokeball_venusaur.pal new file mode 100644 index 000000000000..454209dfa3c2 --- /dev/null +++ b/graphics/credits_frlg/pokeball_venusaur.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +131 205 131 +90 164 115 +49 115 98 +16 115 123 +8 74 82 +0 32 41 +172 255 156 +131 197 123 +98 148 90 +65 98 57 +32 49 24 +16 180 0 +8 115 0 +0 57 0 +0 0 0 diff --git a/graphics/credits_frlg/rival.png b/graphics/credits_frlg/rival.png new file mode 100644 index 000000000000..ea9c61c88842 Binary files /dev/null and b/graphics/credits_frlg/rival.png differ diff --git a/graphics/credits_frlg/the_end.bin b/graphics/credits_frlg/the_end.bin new file mode 100644 index 000000000000..eea1940eee91 Binary files /dev/null and b/graphics/credits_frlg/the_end.bin differ diff --git a/graphics/credits_frlg/the_end.png b/graphics/credits_frlg/the_end.png new file mode 100644 index 000000000000..19ce2f796b38 Binary files /dev/null and b/graphics/credits_frlg/the_end.png differ diff --git a/graphics/credits_frlg/venusaur_1.png b/graphics/credits_frlg/venusaur_1.png new file mode 100644 index 000000000000..10635f1c8cbb Binary files /dev/null and b/graphics/credits_frlg/venusaur_1.png differ diff --git a/graphics/credits_frlg/venusaur_2.png b/graphics/credits_frlg/venusaur_2.png new file mode 100644 index 000000000000..1be85950801d Binary files /dev/null and b/graphics/credits_frlg/venusaur_2.png differ diff --git a/graphics/credits_frlg/venusaur_unused.png b/graphics/credits_frlg/venusaur_unused.png new file mode 100644 index 000000000000..3b1b8ea14141 Binary files /dev/null and b/graphics/credits_frlg/venusaur_unused.png differ diff --git a/graphics/credits_frlg/white_circle.bin b/graphics/credits_frlg/white_circle.bin new file mode 100644 index 000000000000..a127ba9caca2 Binary files /dev/null and b/graphics/credits_frlg/white_circle.bin differ diff --git a/graphics/credits_frlg/white_circle.pal b/graphics/credits_frlg/white_circle.pal new file mode 100644 index 000000000000..01f113381382 --- /dev/null +++ b/graphics/credits_frlg/white_circle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 diff --git a/graphics/credits_frlg/white_circle.png b/graphics/credits_frlg/white_circle.png new file mode 100644 index 000000000000..9afadd699dfc Binary files /dev/null and b/graphics/credits_frlg/white_circle.png differ diff --git a/graphics/derby/10p.png b/graphics/derby/10p.png new file mode 100644 index 000000000000..47844dfff97d Binary files /dev/null and b/graphics/derby/10p.png differ diff --git a/graphics/derby/arrow-1.png b/graphics/derby/arrow-1.png new file mode 100644 index 000000000000..ad90d682d4cd Binary files /dev/null and b/graphics/derby/arrow-1.png differ diff --git a/graphics/derby/arrow-2.png b/graphics/derby/arrow-2.png new file mode 100644 index 000000000000..45f8fb045bd1 Binary files /dev/null and b/graphics/derby/arrow-2.png differ diff --git a/graphics/derby/bet_bg.pal b/graphics/derby/bet_bg.pal new file mode 100644 index 000000000000..545828c52721 --- /dev/null +++ b/graphics/derby/bet_bg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 231 +231 231 214 +222 214 181 +165 165 165 +206 66 255 +148 41 206 +115 24 165 +82 8 123 +41 0 82 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/bet_bg_2.pal b/graphics/derby/bet_bg_2.pal new file mode 100644 index 000000000000..57a0c631aadb --- /dev/null +++ b/graphics/derby/bet_bg_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 231 +231 231 214 +222 214 181 +165 165 165 +255 123 115 +239 66 57 +214 0 0 +173 0 0 +132 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/bet_text.pal b/graphics/derby/bet_text.pal new file mode 100644 index 000000000000..9d160cda22dd --- /dev/null +++ b/graphics/derby/bet_text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +150 255 231 +80 8 120 +255 255 231 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/betmenu_interface.pal b/graphics/derby/betmenu_interface.pal new file mode 100644 index 000000000000..b6b19a10ef5a --- /dev/null +++ b/graphics/derby/betmenu_interface.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 200 106 +128 32 0 +248 80 0 +248 0 0 +222 214 181 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/betslip_bg.bin b/graphics/derby/betslip_bg.bin new file mode 100644 index 000000000000..1904c881d3c6 Binary files /dev/null and b/graphics/derby/betslip_bg.bin differ diff --git a/graphics/derby/betslip_bg.png b/graphics/derby/betslip_bg.png new file mode 100644 index 000000000000..fd94b246d97d Binary files /dev/null and b/graphics/derby/betslip_bg.png differ diff --git a/graphics/derby/betslip_bg_2.bin b/graphics/derby/betslip_bg_2.bin new file mode 100644 index 000000000000..14602f604a09 Binary files /dev/null and b/graphics/derby/betslip_bg_2.bin differ diff --git a/graphics/derby/betslip_bg_2.png b/graphics/derby/betslip_bg_2.png new file mode 100644 index 000000000000..eada17b84945 Binary files /dev/null and b/graphics/derby/betslip_bg_2.png differ diff --git a/graphics/derby/clef.pal b/graphics/derby/clef.pal new file mode 100644 index 000000000000..8a0e3f6963f5 --- /dev/null +++ b/graphics/derby/clef.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 184 248 +4 4 4 +200 128 80 +72 72 72 +200 192 192 +112 40 8 +168 96 48 +240 236 236 +128 120 112 +224 128 120 +168 160 160 +152 88 80 +176 56 40 +232 88 72 +248 156 128 +248 196 160 diff --git a/graphics/derby/clef.png b/graphics/derby/clef.png new file mode 100644 index 000000000000..1ccb23ea4a72 Binary files /dev/null and b/graphics/derby/clef.png differ diff --git a/graphics/derby/condition.pal b/graphics/derby/condition.pal new file mode 100644 index 000000000000..d5395cf3686b --- /dev/null +++ b/graphics/derby/condition.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +173 255 231 +236 152 99 +184 184 184 +248 217 142 +216 216 216 +255 232 160 +112 24 160 +231 231 214 +249 215 102 +226 109 123 +160 160 160 +248 203 118 +244 184 82 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/condition.png b/graphics/derby/condition.png new file mode 100644 index 000000000000..e0919255e525 Binary files /dev/null and b/graphics/derby/condition.png differ diff --git a/graphics/derby/condition/condition-1.png b/graphics/derby/condition/condition-1.png new file mode 100644 index 000000000000..8dc05944c8ea Binary files /dev/null and b/graphics/derby/condition/condition-1.png differ diff --git a/graphics/derby/condition/condition-2.png b/graphics/derby/condition/condition-2.png new file mode 100644 index 000000000000..a171fabd5889 Binary files /dev/null and b/graphics/derby/condition/condition-2.png differ diff --git a/graphics/derby/condition/condition-3.png b/graphics/derby/condition/condition-3.png new file mode 100644 index 000000000000..31ad25e9f0ca Binary files /dev/null and b/graphics/derby/condition/condition-3.png differ diff --git a/graphics/derby/condition/condition-4.png b/graphics/derby/condition/condition-4.png new file mode 100644 index 000000000000..e218e3bcf1e5 Binary files /dev/null and b/graphics/derby/condition/condition-4.png differ diff --git a/graphics/derby/condition/condition-5.png b/graphics/derby/condition/condition-5.png new file mode 100644 index 000000000000..0648e007d2dc Binary files /dev/null and b/graphics/derby/condition/condition-5.png differ diff --git a/graphics/derby/countdown/countdown-1.png b/graphics/derby/countdown/countdown-1.png new file mode 100644 index 000000000000..99ed9656d1dc Binary files /dev/null and b/graphics/derby/countdown/countdown-1.png differ diff --git a/graphics/derby/countdown/countdown-2.png b/graphics/derby/countdown/countdown-2.png new file mode 100644 index 000000000000..9619f5925aef Binary files /dev/null and b/graphics/derby/countdown/countdown-2.png differ diff --git a/graphics/derby/countdown/countdown-3.png b/graphics/derby/countdown/countdown-3.png new file mode 100644 index 000000000000..e65b518d6df8 Binary files /dev/null and b/graphics/derby/countdown/countdown-3.png differ diff --git a/graphics/derby/countdown/countdown.pal b/graphics/derby/countdown/countdown.pal new file mode 100644 index 000000000000..4a5d145d883d --- /dev/null +++ b/graphics/derby/countdown/countdown.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +160 252 248 +208 128 24 +224 192 48 +184 48 8 +248 248 152 +240 224 56 +200 96 16 +0 0 0 +248 250 248 +216 168 48 +248 208 128 +248 248 128 +216 72 40 +248 168 96 +248 144 64 +248 248 192 diff --git a/graphics/derby/countdown/go.png b/graphics/derby/countdown/go.png new file mode 100644 index 000000000000..35ebbf8fbe86 Binary files /dev/null and b/graphics/derby/countdown/go.png differ diff --git a/graphics/derby/credit.pal b/graphics/derby/credit.pal new file mode 100644 index 000000000000..a58cf4c160b5 --- /dev/null +++ b/graphics/derby/credit.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +200 255 255 +40 0 80 +255 255 255 +200 64 248 +132 0 0 +255 123 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/credit.png b/graphics/derby/credit.png new file mode 100644 index 000000000000..4886fe2cc576 Binary files /dev/null and b/graphics/derby/credit.png differ diff --git a/graphics/derby/creditred.png b/graphics/derby/creditred.png new file mode 100644 index 000000000000..4756ae3ee6db Binary files /dev/null and b/graphics/derby/creditred.png differ diff --git a/graphics/derby/digits.pal b/graphics/derby/digits.pal new file mode 100644 index 000000000000..2df3565ae49f --- /dev/null +++ b/graphics/derby/digits.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +167 255 255 +96 96 96 +208 208 200 +255 255 231 +248 120 112 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/digits.png b/graphics/derby/digits.png new file mode 100644 index 000000000000..6098c5be8236 Binary files /dev/null and b/graphics/derby/digits.png differ diff --git a/graphics/derby/digits_2.png b/graphics/derby/digits_2.png new file mode 100644 index 000000000000..4bce03c9b3a6 Binary files /dev/null and b/graphics/derby/digits_2.png differ diff --git a/graphics/derby/feebas_ow.png b/graphics/derby/feebas_ow.png new file mode 100644 index 000000000000..7fd932bbccb7 Binary files /dev/null and b/graphics/derby/feebas_ow.png differ diff --git a/graphics/derby/payout.png b/graphics/derby/payout.png new file mode 100644 index 000000000000..ecf285eb1bb8 Binary files /dev/null and b/graphics/derby/payout.png differ diff --git a/graphics/derby/payout/payout-1.png b/graphics/derby/payout/payout-1.png new file mode 100644 index 000000000000..6e62362ea660 Binary files /dev/null and b/graphics/derby/payout/payout-1.png differ diff --git a/graphics/derby/payout/payout-2.png b/graphics/derby/payout/payout-2.png new file mode 100644 index 000000000000..564b88c6dfee Binary files /dev/null and b/graphics/derby/payout/payout-2.png differ diff --git a/graphics/derby/payout/payout-3.png b/graphics/derby/payout/payout-3.png new file mode 100644 index 000000000000..76ec7fd2b3dc Binary files /dev/null and b/graphics/derby/payout/payout-3.png differ diff --git a/graphics/derby/payout/payout-4.png b/graphics/derby/payout/payout-4.png new file mode 100644 index 000000000000..0d14336d7ca1 Binary files /dev/null and b/graphics/derby/payout/payout-4.png differ diff --git a/graphics/derby/payout/payout-5.png b/graphics/derby/payout/payout-5.png new file mode 100644 index 000000000000..e69cbeb843c6 Binary files /dev/null and b/graphics/derby/payout/payout-5.png differ diff --git a/graphics/derby/payout/payout-6.png b/graphics/derby/payout/payout-6.png new file mode 100644 index 000000000000..de7fea1ed85f Binary files /dev/null and b/graphics/derby/payout/payout-6.png differ diff --git a/graphics/derby/payout/payout-7.png b/graphics/derby/payout/payout-7.png new file mode 100644 index 000000000000..9a2e2ba96b85 Binary files /dev/null and b/graphics/derby/payout/payout-7.png differ diff --git a/graphics/derby/pokemon_ui/ui-1.png b/graphics/derby/pokemon_ui/ui-1.png new file mode 100644 index 000000000000..6f0e45ccd962 Binary files /dev/null and b/graphics/derby/pokemon_ui/ui-1.png differ diff --git a/graphics/derby/pokemon_ui/ui-2.png b/graphics/derby/pokemon_ui/ui-2.png new file mode 100644 index 000000000000..966352cda9a4 Binary files /dev/null and b/graphics/derby/pokemon_ui/ui-2.png differ diff --git a/graphics/derby/pokemon_ui/ui-3.png b/graphics/derby/pokemon_ui/ui-3.png new file mode 100644 index 000000000000..7e94880e9e4e Binary files /dev/null and b/graphics/derby/pokemon_ui/ui-3.png differ diff --git a/graphics/derby/pokemon_ui/ui-4.png b/graphics/derby/pokemon_ui/ui-4.png new file mode 100644 index 000000000000..3a70075e1cff Binary files /dev/null and b/graphics/derby/pokemon_ui/ui-4.png differ diff --git a/graphics/derby/pokemon_ui/ui-5.png b/graphics/derby/pokemon_ui/ui-5.png new file mode 100644 index 000000000000..baea12e25779 Binary files /dev/null and b/graphics/derby/pokemon_ui/ui-5.png differ diff --git a/graphics/derby/pokemon_ui/ui-6.png b/graphics/derby/pokemon_ui/ui-6.png new file mode 100644 index 000000000000..7d68d69bc2d9 Binary files /dev/null and b/graphics/derby/pokemon_ui/ui-6.png differ diff --git a/graphics/derby/ponyta_ow.png b/graphics/derby/ponyta_ow.png new file mode 100644 index 000000000000..b2d0f57491db Binary files /dev/null and b/graphics/derby/ponyta_ow.png differ diff --git a/graphics/derby/race_bg.bin b/graphics/derby/race_bg.bin new file mode 100644 index 000000000000..9d63b6c3e001 Binary files /dev/null and b/graphics/derby/race_bg.bin differ diff --git a/graphics/derby/race_bg.png b/graphics/derby/race_bg.png new file mode 100644 index 000000000000..674a312ebfe2 Binary files /dev/null and b/graphics/derby/race_bg.png differ diff --git a/graphics/derby/racetrack_bg.pal b/graphics/derby/racetrack_bg.pal new file mode 100644 index 000000000000..327821494621 --- /dev/null +++ b/graphics/derby/racetrack_bg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +181 255 132 +165 214 198 +206 189 198 +115 198 165 +132 198 99 +148 148 165 +156 115 115 +41 173 115 +222 74 33 +57 140 49 +132 90 90 +82 82 107 +189 41 16 +57 82 0 +66 57 49 diff --git a/graphics/derby/rapidash_ow.png b/graphics/derby/rapidash_ow.png new file mode 100644 index 000000000000..5930c91c1aa2 Binary files /dev/null and b/graphics/derby/rapidash_ow.png differ diff --git a/graphics/derby/rattata_ow.png b/graphics/derby/rattata_ow.png new file mode 100644 index 000000000000..6201ed5829f4 Binary files /dev/null and b/graphics/derby/rattata_ow.png differ diff --git a/graphics/derby/selection.pal b/graphics/derby/selection.pal new file mode 100644 index 000000000000..fde1ad257503 --- /dev/null +++ b/graphics/derby/selection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +90 74 57 +80 96 40 +152 208 72 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/derby/selection.png b/graphics/derby/selection.png new file mode 100644 index 000000000000..c09ea99751c1 Binary files /dev/null and b/graphics/derby/selection.png differ diff --git a/graphics/derby/species.png b/graphics/derby/species.png new file mode 100644 index 000000000000..8f99440a846d Binary files /dev/null and b/graphics/derby/species.png differ diff --git a/graphics/derby/species_name/name-feebas.png b/graphics/derby/species_name/name-feebas.png new file mode 100644 index 000000000000..e71e965bdff7 Binary files /dev/null and b/graphics/derby/species_name/name-feebas.png differ diff --git a/graphics/derby/species_name/name-ponyta.png b/graphics/derby/species_name/name-ponyta.png new file mode 100644 index 000000000000..5464d7b52d23 Binary files /dev/null and b/graphics/derby/species_name/name-ponyta.png differ diff --git a/graphics/derby/species_name/name-rapidash.png b/graphics/derby/species_name/name-rapidash.png new file mode 100644 index 000000000000..e35f1a2def6a Binary files /dev/null and b/graphics/derby/species_name/name-rapidash.png differ diff --git a/graphics/derby/species_name/name-rattata.png b/graphics/derby/species_name/name-rattata.png new file mode 100644 index 000000000000..1621e4d95939 Binary files /dev/null and b/graphics/derby/species_name/name-rattata.png differ diff --git a/graphics/door_anims/cable_club_frlg.png b/graphics/door_anims/cable_club_frlg.png new file mode 100644 index 000000000000..0d8b53505041 Binary files /dev/null and b/graphics/door_anims/cable_club_frlg.png differ diff --git a/graphics/door_anims/cerulean.png b/graphics/door_anims/cerulean.png new file mode 100644 index 000000000000..fe7b5cdacb28 Binary files /dev/null and b/graphics/door_anims/cerulean.png differ diff --git a/graphics/door_anims/cinnabar_lab.png b/graphics/door_anims/cinnabar_lab.png new file mode 100644 index 000000000000..bf05d510d31e Binary files /dev/null and b/graphics/door_anims/cinnabar_lab.png differ diff --git a/graphics/door_anims/dept_store.png b/graphics/door_anims/dept_store.png new file mode 100644 index 000000000000..07efce86a743 Binary files /dev/null and b/graphics/door_anims/dept_store.png differ diff --git a/graphics/door_anims/dept_store_elevator.png b/graphics/door_anims/dept_store_elevator.png new file mode 100644 index 000000000000..c9c9483943a4 Binary files /dev/null and b/graphics/door_anims/dept_store_elevator.png differ diff --git a/graphics/door_anims/four_island_day_care.png b/graphics/door_anims/four_island_day_care.png new file mode 100644 index 000000000000..a92b060dc477 Binary files /dev/null and b/graphics/door_anims/four_island_day_care.png differ diff --git a/graphics/door_anims/fuchsia.png b/graphics/door_anims/fuchsia.png new file mode 100644 index 000000000000..1be60c3c26ee Binary files /dev/null and b/graphics/door_anims/fuchsia.png differ diff --git a/graphics/door_anims/general_frlg.png b/graphics/door_anims/general_frlg.png new file mode 100644 index 000000000000..0e0b67c2de34 Binary files /dev/null and b/graphics/door_anims/general_frlg.png differ diff --git a/graphics/door_anims/hideout_elevator.png b/graphics/door_anims/hideout_elevator.png new file mode 100644 index 000000000000..2483e7775e3f Binary files /dev/null and b/graphics/door_anims/hideout_elevator.png differ diff --git a/graphics/door_anims/joyful_game_corner.png b/graphics/door_anims/joyful_game_corner.png new file mode 100644 index 000000000000..a334a057e644 Binary files /dev/null and b/graphics/door_anims/joyful_game_corner.png differ diff --git a/graphics/door_anims/lavender.png b/graphics/door_anims/lavender.png new file mode 100644 index 000000000000..00ad381fe0d0 Binary files /dev/null and b/graphics/door_anims/lavender.png differ diff --git a/graphics/door_anims/oaks_lab.png b/graphics/door_anims/oaks_lab.png new file mode 100644 index 000000000000..c8bc9ebeab39 Binary files /dev/null and b/graphics/door_anims/oaks_lab.png differ diff --git a/graphics/door_anims/one_island_poke_center.png b/graphics/door_anims/one_island_poke_center.png new file mode 100644 index 000000000000..21f670f2d703 Binary files /dev/null and b/graphics/door_anims/one_island_poke_center.png differ diff --git a/graphics/door_anims/pallet.png b/graphics/door_anims/pallet.png new file mode 100644 index 000000000000..1bc68a6e7887 Binary files /dev/null and b/graphics/door_anims/pallet.png differ diff --git a/graphics/door_anims/pewter.png b/graphics/door_anims/pewter.png new file mode 100644 index 000000000000..c22f07f82a4a Binary files /dev/null and b/graphics/door_anims/pewter.png differ diff --git a/graphics/door_anims/pokemon_fan_club.png b/graphics/door_anims/pokemon_fan_club.png new file mode 100644 index 000000000000..4775d54a7b09 Binary files /dev/null and b/graphics/door_anims/pokemon_fan_club.png differ diff --git a/graphics/door_anims/rocket_warehouse.png b/graphics/door_anims/rocket_warehouse.png new file mode 100644 index 000000000000..46fa84b2d0f2 Binary files /dev/null and b/graphics/door_anims/rocket_warehouse.png differ diff --git a/graphics/door_anims/safari_zone_frlg.png b/graphics/door_anims/safari_zone_frlg.png new file mode 100644 index 000000000000..fae7fd50efd4 Binary files /dev/null and b/graphics/door_anims/safari_zone_frlg.png differ diff --git a/graphics/door_anims/saffron.png b/graphics/door_anims/saffron.png new file mode 100644 index 000000000000..3f9ca5640f0a Binary files /dev/null and b/graphics/door_anims/saffron.png differ diff --git a/graphics/door_anims/sevii_123.png b/graphics/door_anims/sevii_123.png new file mode 100644 index 000000000000..00dca20b8754 Binary files /dev/null and b/graphics/door_anims/sevii_123.png differ diff --git a/graphics/door_anims/sevii_45.png b/graphics/door_anims/sevii_45.png new file mode 100644 index 000000000000..00dca20b8754 Binary files /dev/null and b/graphics/door_anims/sevii_45.png differ diff --git a/graphics/door_anims/sevii_67.png b/graphics/door_anims/sevii_67.png new file mode 100644 index 000000000000..00dca20b8754 Binary files /dev/null and b/graphics/door_anims/sevii_67.png differ diff --git a/graphics/door_anims/silph_co.png b/graphics/door_anims/silph_co.png new file mode 100644 index 000000000000..729de5df03cf Binary files /dev/null and b/graphics/door_anims/silph_co.png differ diff --git a/graphics/door_anims/silph_co_elevator.png b/graphics/door_anims/silph_co_elevator.png new file mode 100644 index 000000000000..17d3a5ab6bf0 Binary files /dev/null and b/graphics/door_anims/silph_co_elevator.png differ diff --git a/graphics/door_anims/sliding_double.png b/graphics/door_anims/sliding_double.png new file mode 100644 index 000000000000..dc7a03bf799b Binary files /dev/null and b/graphics/door_anims/sliding_double.png differ diff --git a/graphics/door_anims/sliding_single.png b/graphics/door_anims/sliding_single.png new file mode 100644 index 000000000000..b9d489fc8c56 Binary files /dev/null and b/graphics/door_anims/sliding_single.png differ diff --git a/graphics/door_anims/ss_anne.png b/graphics/door_anims/ss_anne.png new file mode 100644 index 000000000000..c45063432eb2 Binary files /dev/null and b/graphics/door_anims/ss_anne.png differ diff --git a/graphics/door_anims/teleporter.png b/graphics/door_anims/teleporter.png new file mode 100644 index 000000000000..c3fe56b4ae86 Binary files /dev/null and b/graphics/door_anims/teleporter.png differ diff --git a/graphics/door_anims/trainer_tower_lobby_elevator.png b/graphics/door_anims/trainer_tower_lobby_elevator.png new file mode 100644 index 000000000000..23ace6b75888 Binary files /dev/null and b/graphics/door_anims/trainer_tower_lobby_elevator.png differ diff --git a/graphics/door_anims/trainer_tower_roof_elevator.png b/graphics/door_anims/trainer_tower_roof_elevator.png new file mode 100644 index 000000000000..774cedf75fbc Binary files /dev/null and b/graphics/door_anims/trainer_tower_roof_elevator.png differ diff --git a/graphics/door_anims/vermilion.png b/graphics/door_anims/vermilion.png new file mode 100644 index 000000000000..a747def4417b Binary files /dev/null and b/graphics/door_anims/vermilion.png differ diff --git a/graphics/door_anims/viridian.png b/graphics/door_anims/viridian.png new file mode 100644 index 000000000000..85333a3868b9 Binary files /dev/null and b/graphics/door_anims/viridian.png differ diff --git a/graphics/field_effects/palettes/pokeball_glow.pal b/graphics/field_effects/palettes/pokeball_glow.pal index 2dddefa5fbb8..5e2face1d4cd 100644 --- a/graphics/field_effects/palettes/pokeball_glow.pal +++ b/graphics/field_effects/palettes/pokeball_glow.pal @@ -10,10 +10,10 @@ JASC-PAL 255 0 0 255 123 123 255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +82 82 106 +123 123 123 +255 255 255 +189 230 255 +164 197 230 +156 189 213 +90 131 180 diff --git a/graphics/field_effects/pics/hof_monitor_frlg.png b/graphics/field_effects/pics/hof_monitor_frlg.png new file mode 100644 index 000000000000..1e3433a3c899 Binary files /dev/null and b/graphics/field_effects/pics/hof_monitor_frlg.png differ diff --git a/graphics/field_effects/pics/pokecenter_monitor/frlg.png b/graphics/field_effects/pics/pokecenter_monitor/frlg.png new file mode 100644 index 000000000000..54117cf6b8e6 Binary files /dev/null and b/graphics/field_effects/pics/pokecenter_monitor/frlg.png differ diff --git a/graphics/field_specials/champion_room_lighting_0.pal b/graphics/field_specials/champion_room_lighting_0.pal new file mode 100644 index 000000000000..6528f9f75f7d --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/graphics/field_specials/champion_room_lighting_1.pal b/graphics/field_specials/champion_room_lighting_1.pal new file mode 100644 index 000000000000..75dfaa19a40b --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 172 230 +41 115 205 diff --git a/graphics/field_specials/champion_room_lighting_2.pal b/graphics/field_specials/champion_room_lighting_2.pal new file mode 100644 index 000000000000..092544dec6ee --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 172 230 +41 115 205 +131 238 255 +82 172 230 diff --git a/graphics/field_specials/champion_room_lighting_3.pal b/graphics/field_specials/champion_room_lighting_3.pal new file mode 100644 index 000000000000..3b93965ad236 --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 172 230 +41 115 205 +131 238 255 +82 172 230 +82 172 230 +41 115 205 diff --git a/graphics/field_specials/champion_room_lighting_4.pal b/graphics/field_specials/champion_room_lighting_4.pal new file mode 100644 index 000000000000..be23edc23937 --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +131 238 255 +82 172 230 +82 172 230 +41 115 205 +41 115 205 +0 65 189 diff --git a/graphics/field_specials/champion_room_lighting_5.pal b/graphics/field_specials/champion_room_lighting_5.pal new file mode 100644 index 000000000000..788d0bd654c6 --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 172 230 +41 115 205 +41 115 205 +0 65 189 +0 65 189 +82 82 106 diff --git a/graphics/field_specials/champion_room_lighting_6.pal b/graphics/field_specials/champion_room_lighting_6.pal new file mode 100644 index 000000000000..8ca385f0d686 --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +41 115 205 +0 65 189 +0 65 189 +82 82 106 +82 82 106 +82 82 106 diff --git a/graphics/field_specials/champion_room_lighting_7.pal b/graphics/field_specials/champion_room_lighting_7.pal new file mode 100644 index 000000000000..63fe8e97e1aa --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +0 65 189 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/graphics/field_specials/champion_room_lighting_8.pal b/graphics/field_specials/champion_room_lighting_8.pal new file mode 100644 index 000000000000..a0763ff477a4 --- /dev/null +++ b/graphics/field_specials/champion_room_lighting_8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +131 238 255 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +172 172 98 +148 148 74 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/graphics/field_specials/deoxys_rock_0.pal b/graphics/field_specials/deoxys_rock_0.pal new file mode 100644 index 000000000000..c20bacb57bba --- /dev/null +++ b/graphics/field_specials/deoxys_rock_0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 156 197 +32 32 32 +82 82 82 +139 139 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_1.pal b/graphics/field_specials/deoxys_rock_1.pal new file mode 100644 index 000000000000..2c106a4ae33d --- /dev/null +++ b/graphics/field_specials/deoxys_rock_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 156 197 +41 32 32 +82 82 82 +139 139 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_10.pal b/graphics/field_specials/deoxys_rock_10.pal new file mode 100644 index 000000000000..6c754061136a --- /dev/null +++ b/graphics/field_specials/deoxys_rock_10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 156 197 +205 32 32 +255 82 82 +255 205 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_2.pal b/graphics/field_specials/deoxys_rock_2.pal new file mode 100644 index 000000000000..38fe7d084517 --- /dev/null +++ b/graphics/field_specials/deoxys_rock_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +49 32 32 +90 82 82 +148 148 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_3.pal b/graphics/field_specials/deoxys_rock_3.pal new file mode 100644 index 000000000000..7b7fb7c44248 --- /dev/null +++ b/graphics/field_specials/deoxys_rock_3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +65 32 32 +115 82 82 +156 148 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_4.pal b/graphics/field_specials/deoxys_rock_4.pal new file mode 100644 index 000000000000..4eda607b76ab --- /dev/null +++ b/graphics/field_specials/deoxys_rock_4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 32 32 +123 82 82 +164 156 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_5.pal b/graphics/field_specials/deoxys_rock_5.pal new file mode 100644 index 000000000000..a92bc65fdcca --- /dev/null +++ b/graphics/field_specials/deoxys_rock_5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +98 32 32 +139 82 82 +172 156 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_6.pal b/graphics/field_specials/deoxys_rock_6.pal new file mode 100644 index 000000000000..0de8519c68f7 --- /dev/null +++ b/graphics/field_specials/deoxys_rock_6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +98 32 32 +148 82 82 +180 164 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_7.pal b/graphics/field_specials/deoxys_rock_7.pal new file mode 100644 index 000000000000..ae67047d4364 --- /dev/null +++ b/graphics/field_specials/deoxys_rock_7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +106 32 32 +156 82 82 +189 164 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_8.pal b/graphics/field_specials/deoxys_rock_8.pal new file mode 100644 index 000000000000..27cf345e4c0a --- /dev/null +++ b/graphics/field_specials/deoxys_rock_8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +123 32 32 +172 82 82 +197 172 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/deoxys_rock_9.pal b/graphics/field_specials/deoxys_rock_9.pal new file mode 100644 index 000000000000..fcca0b4dedd2 --- /dev/null +++ b/graphics/field_specials/deoxys_rock_9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +131 32 32 +180 82 82 +205 172 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/field_specials/elite_four_lighting_0.pal b/graphics/field_specials/elite_four_lighting_0.pal new file mode 100644 index 000000000000..6528f9f75f7d --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/graphics/field_specials/elite_four_lighting_1.pal b/graphics/field_specials/elite_four_lighting_1.pal new file mode 100644 index 000000000000..934306488036 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +41 115 205 +82 82 106 diff --git a/graphics/field_specials/elite_four_lighting_10.pal b/graphics/field_specials/elite_four_lighting_10.pal new file mode 100644 index 000000000000..ff81da8b3a64 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_10.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +0 41 156 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +0 41 156 diff --git a/graphics/field_specials/elite_four_lighting_11.pal b/graphics/field_specials/elite_four_lighting_11.pal new file mode 100644 index 000000000000..a0763ff477a4 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_11.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +131 238 255 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +172 172 98 +148 148 74 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 +82 82 106 diff --git a/graphics/field_specials/elite_four_lighting_2.pal b/graphics/field_specials/elite_four_lighting_2.pal new file mode 100644 index 000000000000..624c69448491 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +82 82 106 +41 115 205 +131 238 255 +0 41 156 diff --git a/graphics/field_specials/elite_four_lighting_3.pal b/graphics/field_specials/elite_four_lighting_3.pal new file mode 100644 index 000000000000..fb3cdebd0b42 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +82 82 106 +41 115 205 +131 238 255 +82 172 230 +0 65 189 diff --git a/graphics/field_specials/elite_four_lighting_4.pal b/graphics/field_specials/elite_four_lighting_4.pal new file mode 100644 index 000000000000..f2c6c78afbb6 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 82 106 +41 115 205 +131 238 255 +82 172 230 +41 115 205 +41 115 205 diff --git a/graphics/field_specials/elite_four_lighting_5.pal b/graphics/field_specials/elite_four_lighting_5.pal new file mode 100644 index 000000000000..3e2c5757a019 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +41 115 205 +131 238 255 +82 172 230 +41 115 205 +0 65 189 +82 172 230 diff --git a/graphics/field_specials/elite_four_lighting_6.pal b/graphics/field_specials/elite_four_lighting_6.pal new file mode 100644 index 000000000000..84e6e811ae06 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +131 238 255 +82 172 230 +41 115 205 +0 65 189 +0 41 156 +131 238 255 diff --git a/graphics/field_specials/elite_four_lighting_7.pal b/graphics/field_specials/elite_four_lighting_7.pal new file mode 100644 index 000000000000..f49f8ef995f6 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +82 172 230 +41 115 205 +0 65 189 +0 41 156 +82 82 106 +90 180 238 diff --git a/graphics/field_specials/elite_four_lighting_8.pal b/graphics/field_specials/elite_four_lighting_8.pal new file mode 100644 index 000000000000..538ebf789a50 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +41 115 205 +0 65 189 +0 41 156 +82 82 106 +82 82 106 +41 115 205 diff --git a/graphics/field_specials/elite_four_lighting_9.pal b/graphics/field_specials/elite_four_lighting_9.pal new file mode 100644 index 000000000000..49b9d85b6fb2 --- /dev/null +++ b/graphics/field_specials/elite_four_lighting_9.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 82 106 +123 123 123 +255 74 0 +255 213 131 +230 164 98 +197 115 74 +164 82 65 +255 255 180 +189 189 115 +0 65 189 +0 41 156 +82 82 106 +82 82 106 +82 82 106 +0 65 189 diff --git a/graphics/flappybird/arcade-screen.bin b/graphics/flappybird/arcade-screen.bin new file mode 100644 index 000000000000..bf09e4610065 Binary files /dev/null and b/graphics/flappybird/arcade-screen.bin differ diff --git a/graphics/flappybird/arcade-screen.pal b/graphics/flappybird/arcade-screen.pal new file mode 100644 index 000000000000..cf917c889655 --- /dev/null +++ b/graphics/flappybird/arcade-screen.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 231 115 +140 148 156 +99 115 123 +66 66 74 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/flappybird/arcade-screen.png b/graphics/flappybird/arcade-screen.png new file mode 100644 index 000000000000..f1d0c58a1752 Binary files /dev/null and b/graphics/flappybird/arcade-screen.png differ diff --git a/graphics/flappybird/bottomleft.png b/graphics/flappybird/bottomleft.png new file mode 100644 index 000000000000..6e9061c7b3de Binary files /dev/null and b/graphics/flappybird/bottomleft.png differ diff --git a/graphics/flappybird/butterfree-hitbox.pal b/graphics/flappybird/butterfree-hitbox.pal new file mode 100644 index 000000000000..c1e54ee9b8dd --- /dev/null +++ b/graphics/flappybird/butterfree-hitbox.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +161 0 0 +255 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/flappybird/butterfree-hitbox.png b/graphics/flappybird/butterfree-hitbox.png new file mode 100644 index 000000000000..4fe9df3b6849 Binary files /dev/null and b/graphics/flappybird/butterfree-hitbox.png differ diff --git a/graphics/flappybird/butterfree.pal b/graphics/flappybird/butterfree.pal new file mode 100644 index 000000000000..372ba54ec183 --- /dev/null +++ b/graphics/flappybird/butterfree.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +128 0 128 +116 132 128 +144 32 16 +248 196 104 +72 74 100 +144 64 32 +248 128 72 +180 202 200 +52 54 72 +176 180 192 +48 12 4 +92 120 124 +248 120 80 +236 240 236 +124 172 148 +228 86 48 diff --git a/graphics/flappybird/butterfree.png b/graphics/flappybird/butterfree.png new file mode 100644 index 000000000000..b870573c1213 Binary files /dev/null and b/graphics/flappybird/butterfree.png differ diff --git a/graphics/flappybird/damage.png b/graphics/flappybird/damage.png new file mode 100644 index 000000000000..aeccaa93d8ce Binary files /dev/null and b/graphics/flappybird/damage.png differ diff --git a/graphics/flappybird/digits.png b/graphics/flappybird/digits.png new file mode 100644 index 000000000000..afb8bbc5606a Binary files /dev/null and b/graphics/flappybird/digits.png differ diff --git a/graphics/flappybird/flap.pal b/graphics/flappybird/flap.pal new file mode 100644 index 000000000000..dc4e14c0df5f --- /dev/null +++ b/graphics/flappybird/flap.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +248 208 0 +136 136 136 +168 168 168 +248 248 248 +0 0 0 +120 120 120 +88 88 88 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/flappybird/flap.png b/graphics/flappybird/flap.png new file mode 100644 index 000000000000..0ea410959dd3 Binary files /dev/null and b/graphics/flappybird/flap.png differ diff --git a/graphics/flappybird/flappy-bg.bin b/graphics/flappybird/flappy-bg.bin new file mode 100644 index 000000000000..79fc2ddff77f Binary files /dev/null and b/graphics/flappybird/flappy-bg.bin differ diff --git a/graphics/flappybird/flappy-bg.pal b/graphics/flappybird/flappy-bg.pal new file mode 100644 index 000000000000..83b58ce4c1fb --- /dev/null +++ b/graphics/flappybird/flappy-bg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +239 247 231 +214 231 222 +173 222 231 +198 231 115 +206 206 222 +206 206 189 +132 206 239 +165 198 173 +156 214 99 +173 181 165 +165 189 99 +132 181 181 +156 156 173 +123 173 82 +115 156 189 +132 132 115 diff --git a/graphics/flappybird/flappy-bg.png b/graphics/flappybird/flappy-bg.png new file mode 100644 index 000000000000..051371cb1a8d Binary files /dev/null and b/graphics/flappybird/flappy-bg.png differ diff --git a/graphics/flappybird/flappy-fg.bin b/graphics/flappybird/flappy-fg.bin new file mode 100644 index 000000000000..538cdad870b2 Binary files /dev/null and b/graphics/flappybird/flappy-fg.bin differ diff --git a/graphics/flappybird/flappy-fg.pal b/graphics/flappybird/flappy-fg.pal new file mode 100644 index 000000000000..d191141dc5d4 --- /dev/null +++ b/graphics/flappybird/flappy-fg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +140 247 115 +214 189 181 +198 173 140 +115 214 99 +173 156 140 +90 189 74 +165 132 107 +148 115 90 +57 165 57 +74 140 66 +123 107 90 +222 222 206 +115 82 57 +24 115 24 +8 90 8 diff --git a/graphics/flappybird/flappy-fg.png b/graphics/flappybird/flappy-fg.png new file mode 100644 index 000000000000..05e734f20ab6 Binary files /dev/null and b/graphics/flappybird/flappy-fg.png differ diff --git a/graphics/flappybird/gameover.png b/graphics/flappybird/gameover.png new file mode 100644 index 000000000000..05bdb5be4315 Binary files /dev/null and b/graphics/flappybird/gameover.png differ diff --git a/graphics/flappybird/hiscore.png b/graphics/flappybird/hiscore.png new file mode 100644 index 000000000000..a4437a811ab3 Binary files /dev/null and b/graphics/flappybird/hiscore.png differ diff --git a/graphics/flappybird/one.png b/graphics/flappybird/one.png new file mode 100644 index 000000000000..f7cb22c8ac35 Binary files /dev/null and b/graphics/flappybird/one.png differ diff --git a/graphics/flappybird/score.png b/graphics/flappybird/score.png new file mode 100644 index 000000000000..138695345820 Binary files /dev/null and b/graphics/flappybird/score.png differ diff --git a/graphics/flappybird/score2.png b/graphics/flappybird/score2.png new file mode 100644 index 000000000000..044185c01ccd Binary files /dev/null and b/graphics/flappybird/score2.png differ diff --git a/graphics/flappybird/start.png b/graphics/flappybird/start.png new file mode 100644 index 000000000000..88d26e4cf113 Binary files /dev/null and b/graphics/flappybird/start.png differ diff --git a/graphics/flappybird/text.pal b/graphics/flappybird/text.pal new file mode 100644 index 000000000000..d6ebe18236be --- /dev/null +++ b/graphics/flappybird/text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +56 160 248 +248 40 192 +248 248 240 +140 146 152 +248 200 232 +248 184 184 +224 124 72 +248 248 135 +248 224 96 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/flappybird/three.png b/graphics/flappybird/three.png new file mode 100644 index 000000000000..ebd9bfa0cb76 Binary files /dev/null and b/graphics/flappybird/three.png differ diff --git a/graphics/flappybird/topleft.png b/graphics/flappybird/topleft.png new file mode 100644 index 000000000000..f5299677ec4f Binary files /dev/null and b/graphics/flappybird/topleft.png differ diff --git a/graphics/flappybird/trail.pal b/graphics/flappybird/trail.pal new file mode 100644 index 000000000000..3891f7c7deb8 --- /dev/null +++ b/graphics/flappybird/trail.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +34 177 76 +8 200 96 +88 248 152 +168 248 200 +248 248 248 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/flappybird/trail.png b/graphics/flappybird/trail.png new file mode 100644 index 000000000000..6331df876954 Binary files /dev/null and b/graphics/flappybird/trail.png differ diff --git a/graphics/flappybird/two.png b/graphics/flappybird/two.png new file mode 100644 index 000000000000..35ff7041ed7d Binary files /dev/null and b/graphics/flappybird/two.png differ diff --git a/graphics/fonts/down_arrow_3.png b/graphics/fonts/down_arrow_3.png new file mode 100644 index 000000000000..6345eacfb74c Binary files /dev/null and b/graphics/fonts/down_arrow_3.png differ diff --git a/graphics/fonts/down_arrow_4.png b/graphics/fonts/down_arrow_4.png new file mode 100644 index 000000000000..b6cba25f36a8 Binary files /dev/null and b/graphics/fonts/down_arrow_4.png differ diff --git a/graphics/gacha/arrows.png b/graphics/gacha/arrows.png new file mode 100644 index 000000000000..816572740664 Binary files /dev/null and b/graphics/gacha/arrows.png differ diff --git a/graphics/gacha/belossom.pal b/graphics/gacha/belossom.pal new file mode 100644 index 000000000000..7b0591a623ec --- /dev/null +++ b/graphics/gacha/belossom.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +156 213 74 +115 172 49 +82 98 41 +230 230 106 +180 180 57 +131 131 24 +82 197 49 +57 139 0 +16 90 16 +246 106 0 +213 32 0 +131 0 0 +164 164 164 +16 16 16 diff --git a/graphics/gacha/belossom.png b/graphics/gacha/belossom.png new file mode 100644 index 000000000000..414322cf229e Binary files /dev/null and b/graphics/gacha/belossom.png differ diff --git a/graphics/gacha/bg_basic.pal b/graphics/gacha/bg_basic.pal new file mode 100644 index 000000000000..da8779b1d2cf --- /dev/null +++ b/graphics/gacha/bg_basic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 239 231 +255 222 206 +255 198 198 +255 181 181 +189 181 189 +247 148 148 +214 132 132 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/bg_great.pal b/graphics/gacha/bg_great.pal new file mode 100644 index 000000000000..58037e4193b9 --- /dev/null +++ b/graphics/gacha/bg_great.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +208 244 240 +168 236 240 +136 216 248 +72 192 248 +189 181 189 +48 180 248 +0 116 176 +255 99 57 +140 140 132 +8 104 240 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/bg_left.bin b/graphics/gacha/bg_left.bin new file mode 100644 index 000000000000..8ba77ad605d2 Binary files /dev/null and b/graphics/gacha/bg_left.bin differ diff --git a/graphics/gacha/bg_left.png b/graphics/gacha/bg_left.png new file mode 100644 index 000000000000..d03b2720afa1 Binary files /dev/null and b/graphics/gacha/bg_left.png differ diff --git a/graphics/gacha/bg_master.pal b/graphics/gacha/bg_master.pal new file mode 100644 index 000000000000..e17328689940 --- /dev/null +++ b/graphics/gacha/bg_master.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +224 224 224 +224 216 224 +180 178 192 +152 152 184 +189 181 189 +136 128 168 +88 72 104 +255 99 57 +140 140 132 +56 48 104 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/bg_middle.bin b/graphics/gacha/bg_middle.bin new file mode 100644 index 000000000000..048217f65917 Binary files /dev/null and b/graphics/gacha/bg_middle.bin differ diff --git a/graphics/gacha/bg_middle.png b/graphics/gacha/bg_middle.png new file mode 100644 index 000000000000..e35a7f90fdfd Binary files /dev/null and b/graphics/gacha/bg_middle.png differ diff --git a/graphics/gacha/bg_mon.bin b/graphics/gacha/bg_mon.bin new file mode 100644 index 000000000000..269b1d24709d Binary files /dev/null and b/graphics/gacha/bg_mon.bin differ diff --git a/graphics/gacha/bg_mon.pal b/graphics/gacha/bg_mon.pal new file mode 100644 index 000000000000..4b0812f09403 --- /dev/null +++ b/graphics/gacha/bg_mon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/gacha/bg_mon.png b/graphics/gacha/bg_mon.png new file mode 100644 index 000000000000..1556f972ad8f Binary files /dev/null and b/graphics/gacha/bg_mon.png differ diff --git a/graphics/gacha/bg_right.bin b/graphics/gacha/bg_right.bin new file mode 100644 index 000000000000..8ba77ad605d2 Binary files /dev/null and b/graphics/gacha/bg_right.bin differ diff --git a/graphics/gacha/bg_right.png b/graphics/gacha/bg_right.png new file mode 100644 index 000000000000..1a79873ca16b Binary files /dev/null and b/graphics/gacha/bg_right.png differ diff --git a/graphics/gacha/bg_ultra.pal b/graphics/gacha/bg_ultra.pal new file mode 100644 index 000000000000..b57a43f027d6 --- /dev/null +++ b/graphics/gacha/bg_ultra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +240 224 192 +232 208 160 +204 164 92 +184 136 56 +189 181 189 +160 112 40 +136 100 64 +255 99 57 +140 140 132 +136 100 64 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/digital_text.pal b/graphics/gacha/digital_text.pal new file mode 100644 index 000000000000..30c3f4c9f6f6 --- /dev/null +++ b/graphics/gacha/digital_text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 128 +240 148 148 +96 96 88 +248 216 200 +168 56 0 +248 96 56 +152 28 16 +184 180 184 +136 136 128 +60 60 52 +248 236 224 +208 132 128 +248 176 176 +248 250 248 +248 192 192 +192 68 24 diff --git a/graphics/gacha/digital_text.png b/graphics/gacha/digital_text.png new file mode 100644 index 000000000000..458098c32b75 Binary files /dev/null and b/graphics/gacha/digital_text.png differ diff --git a/graphics/gacha/elekid.pal b/graphics/gacha/elekid.pal new file mode 100644 index 000000000000..01074c089962 --- /dev/null +++ b/graphics/gacha/elekid.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +88 188 232 +0 0 0 +248 242 40 +255 255 255 +157 150 34 +67 67 43 +173 35 63 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/gacha/elekid.png b/graphics/gacha/elekid.png new file mode 100644 index 000000000000..3f7bf6a14dfd Binary files /dev/null and b/graphics/gacha/elekid.png differ diff --git a/graphics/gacha/hoppip.pal b/graphics/gacha/hoppip.pal new file mode 100644 index 000000000000..5784941176b5 --- /dev/null +++ b/graphics/gacha/hoppip.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 156 115 +255 98 82 +213 65 16 +164 16 0 +255 0 255 +131 230 57 +98 205 57 +65 164 32 +32 98 16 +255 0 255 +255 255 82 +246 197 0 +255 0 255 +16 16 16 diff --git a/graphics/gacha/hoppip.png b/graphics/gacha/hoppip.png new file mode 100644 index 000000000000..8fc8ca74ca8c Binary files /dev/null and b/graphics/gacha/hoppip.png differ diff --git a/graphics/gacha/input_numbers.pal b/graphics/gacha/input_numbers.pal new file mode 100644 index 000000000000..f00c2b089651 --- /dev/null +++ b/graphics/gacha/input_numbers.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +40 40 40 +248 55 76 +255 255 255 +75 75 75 +37 37 37 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/gacha/input_numbers.png b/graphics/gacha/input_numbers.png new file mode 100644 index 000000000000..ee32a79de538 Binary files /dev/null and b/graphics/gacha/input_numbers.png differ diff --git a/graphics/gacha/knob.pal b/graphics/gacha/knob.pal new file mode 100644 index 000000000000..def3c1e96e74 --- /dev/null +++ b/graphics/gacha/knob.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 128 +240 148 148 +96 96 88 +255 213 123 +168 56 0 +248 96 56 +152 28 16 +184 180 184 +136 136 128 +60 60 52 +248 236 224 +208 132 128 +248 176 176 +248 250 248 +248 192 192 +192 68 24 diff --git a/graphics/gacha/knob.png b/graphics/gacha/knob.png new file mode 100644 index 000000000000..b9da33339104 Binary files /dev/null and b/graphics/gacha/knob.png differ diff --git a/graphics/gacha/lottery.pal b/graphics/gacha/lottery.pal new file mode 100644 index 000000000000..30c3f4c9f6f6 --- /dev/null +++ b/graphics/gacha/lottery.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 128 +240 148 148 +96 96 88 +248 216 200 +168 56 0 +248 96 56 +152 28 16 +184 180 184 +136 136 128 +60 60 52 +248 236 224 +208 132 128 +248 176 176 +248 250 248 +248 192 192 +192 68 24 diff --git a/graphics/gacha/lottery_japan.png b/graphics/gacha/lottery_japan.png new file mode 100644 index 000000000000..c9d3859d77b7 Binary files /dev/null and b/graphics/gacha/lottery_japan.png differ diff --git a/graphics/gacha/menu2_basic.pal b/graphics/gacha/menu2_basic.pal new file mode 100644 index 000000000000..55390857e762 --- /dev/null +++ b/graphics/gacha/menu2_basic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +255 239 231 +255 222 206 +255 198 198 +255 181 181 +255 255 255 +247 148 148 +214 132 132 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu2_great.pal b/graphics/gacha/menu2_great.pal new file mode 100644 index 000000000000..fdcf143a916d --- /dev/null +++ b/graphics/gacha/menu2_great.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +208 244 240 +168 236 240 +136 216 248 +72 192 248 +255 255 255 +48 180 248 +0 116 176 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu2_master.pal b/graphics/gacha/menu2_master.pal new file mode 100644 index 000000000000..0321fbe91379 --- /dev/null +++ b/graphics/gacha/menu2_master.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +224 224 224 +224 216 224 +180 178 192 +152 152 184 +255 255 255 +136 128 168 +88 72 104 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu2_ultra.pal b/graphics/gacha/menu2_ultra.pal new file mode 100644 index 000000000000..2374be2c3429 --- /dev/null +++ b/graphics/gacha/menu2_ultra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +240 224 192 +232 208 160 +204 164 92 +184 136 56 +255 255 255 +160 112 40 +136 100 64 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu_1.png b/graphics/gacha/menu_1.png new file mode 100644 index 000000000000..fab2c6f05a7d Binary files /dev/null and b/graphics/gacha/menu_1.png differ diff --git a/graphics/gacha/menu_2.png b/graphics/gacha/menu_2.png new file mode 100644 index 000000000000..8297572910f9 Binary files /dev/null and b/graphics/gacha/menu_2.png differ diff --git a/graphics/gacha/menu_basic.pal b/graphics/gacha/menu_basic.pal new file mode 100644 index 000000000000..55390857e762 --- /dev/null +++ b/graphics/gacha/menu_basic.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +255 239 231 +255 222 206 +255 198 198 +255 181 181 +255 255 255 +247 148 148 +214 132 132 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu_great.pal b/graphics/gacha/menu_great.pal new file mode 100644 index 000000000000..fdcf143a916d --- /dev/null +++ b/graphics/gacha/menu_great.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +208 244 240 +168 236 240 +136 216 248 +72 192 248 +255 255 255 +48 180 248 +0 116 176 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu_master.pal b/graphics/gacha/menu_master.pal new file mode 100644 index 000000000000..0321fbe91379 --- /dev/null +++ b/graphics/gacha/menu_master.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +224 224 224 +224 216 224 +180 178 192 +152 152 184 +255 255 255 +136 128 168 +88 72 104 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/menu_ultra.pal b/graphics/gacha/menu_ultra.pal new file mode 100644 index 000000000000..2374be2c3429 --- /dev/null +++ b/graphics/gacha/menu_ultra.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 181 189 +240 224 192 +232 208 160 +204 164 92 +184 136 56 +255 255 255 +160 112 40 +136 100 64 +255 99 57 +140 140 132 +255 66 66 +198 66 24 +99 99 90 +173 57 0 +156 24 16 +57 57 49 diff --git a/graphics/gacha/numbers.pal b/graphics/gacha/numbers.pal new file mode 100644 index 000000000000..f00c2b089651 --- /dev/null +++ b/graphics/gacha/numbers.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +40 40 40 +248 55 76 +255 255 255 +75 75 75 +37 37 37 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/gacha/numbers.png b/graphics/gacha/numbers.png new file mode 100644 index 000000000000..ee32a79de538 Binary files /dev/null and b/graphics/gacha/numbers.png differ diff --git a/graphics/gacha/phanpy.pal b/graphics/gacha/phanpy.pal new file mode 100644 index 000000000000..57ca810fad73 --- /dev/null +++ b/graphics/gacha/phanpy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +172 213 238 +156 189 238 +98 148 197 +82 82 148 +255 0 255 +255 172 139 +246 106 82 +189 57 49 +131 0 0 +255 0 255 +255 0 255 +213 213 213 +139 139 139 +16 16 16 diff --git a/graphics/gacha/phanpy.png b/graphics/gacha/phanpy.png new file mode 100644 index 000000000000..30f268a73105 Binary files /dev/null and b/graphics/gacha/phanpy.png differ diff --git a/graphics/gacha/pressA.png b/graphics/gacha/pressA.png new file mode 100644 index 000000000000..58fd1ca5ef7c Binary files /dev/null and b/graphics/gacha/pressA.png differ diff --git a/graphics/gacha/press_a.pal b/graphics/gacha/press_a.pal new file mode 100644 index 000000000000..d371a217e8bc --- /dev/null +++ b/graphics/gacha/press_a.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 128 +240 148 148 +96 96 88 +208 244 240 +168 56 0 +248 96 56 +152 28 16 +184 180 184 +136 136 128 +60 60 52 +248 216 200 +208 132 128 +248 176 176 +248 250 248 +248 192 192 +192 68 24 diff --git a/graphics/gacha/teddiursa.pal b/graphics/gacha/teddiursa.pal new file mode 100644 index 000000000000..11192e2c047e --- /dev/null +++ b/graphics/gacha/teddiursa.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 197 115 +197 164 82 +164 131 57 +123 98 24 +90 65 0 +255 246 164 +255 213 123 +213 172 82 +255 0 255 +255 0 255 +222 222 222 +180 180 189 +106 106 123 +16 16 16 diff --git a/graphics/gacha/teddiursa.png b/graphics/gacha/teddiursa.png new file mode 100644 index 000000000000..20a205117487 Binary files /dev/null and b/graphics/gacha/teddiursa.png differ diff --git a/graphics/intro_frlg/copyright.bin b/graphics/intro_frlg/copyright.bin new file mode 100644 index 000000000000..2e48c59b40b8 Binary files /dev/null and b/graphics/intro_frlg/copyright.bin differ diff --git a/graphics/intro_frlg/copyright.pal b/graphics/intro_frlg/copyright.pal new file mode 100644 index 000000000000..4219d4394771 --- /dev/null +++ b/graphics/intro_frlg/copyright.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 32 32 +24 57 57 +49 82 82 +82 106 106 +106 131 131 +139 156 156 +164 180 180 +197 205 205 +222 230 230 +255 255 255 diff --git a/graphics/intro_frlg/copyright.png b/graphics/intro_frlg/copyright.png new file mode 100644 index 000000000000..ff320806ecad Binary files /dev/null and b/graphics/intro_frlg/copyright.png differ diff --git a/graphics/intro_frlg/game_freak/bg.bin b/graphics/intro_frlg/game_freak/bg.bin new file mode 100644 index 000000000000..2fbac69de7b6 Binary files /dev/null and b/graphics/intro_frlg/game_freak/bg.bin differ diff --git a/graphics/intro_frlg/game_freak/bg.pal b/graphics/intro_frlg/game_freak/bg.pal new file mode 100644 index 000000000000..6ca1f007c877 --- /dev/null +++ b/graphics/intro_frlg/game_freak/bg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +24 41 74 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 82 82 +180 180 180 +255 255 255 diff --git a/graphics/intro_frlg/game_freak/bg.png b/graphics/intro_frlg/game_freak/bg.png new file mode 100644 index 000000000000..6dd63c6d6e04 Binary files /dev/null and b/graphics/intro_frlg/game_freak/bg.png differ diff --git a/graphics/intro_frlg/game_freak/game_freak.png b/graphics/intro_frlg/game_freak/game_freak.png new file mode 100644 index 000000000000..6dbf123e3dc1 Binary files /dev/null and b/graphics/intro_frlg/game_freak/game_freak.png differ diff --git a/graphics/intro_frlg/game_freak/logo.png b/graphics/intro_frlg/game_freak/logo.png new file mode 100644 index 000000000000..99131c4eff51 Binary files /dev/null and b/graphics/intro_frlg/game_freak/logo.png differ diff --git a/graphics/intro_frlg/game_freak/presents.png b/graphics/intro_frlg/game_freak/presents.png new file mode 100644 index 000000000000..7f631f8ecfc9 Binary files /dev/null and b/graphics/intro_frlg/game_freak/presents.png differ diff --git a/graphics/intro_frlg/game_freak/sparkles.pal b/graphics/intro_frlg/game_freak/sparkles.pal new file mode 100644 index 000000000000..ace266f9b6a6 --- /dev/null +++ b/graphics/intro_frlg/game_freak/sparkles.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 32 +0 0 74 +0 0 115 +24 24 123 +49 49 139 +82 82 156 +106 106 172 +139 139 189 +164 164 205 +197 197 222 +222 222 238 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/intro_frlg/game_freak/sparkles_big.png b/graphics/intro_frlg/game_freak/sparkles_big.png new file mode 100644 index 000000000000..a0fcfd7b6174 Binary files /dev/null and b/graphics/intro_frlg/game_freak/sparkles_big.png differ diff --git a/graphics/intro_frlg/game_freak/sparkles_small.png b/graphics/intro_frlg/game_freak/sparkles_small.png new file mode 100644 index 000000000000..b57006c7b828 Binary files /dev/null and b/graphics/intro_frlg/game_freak/sparkles_small.png differ diff --git a/graphics/intro_frlg/game_freak/star.png b/graphics/intro_frlg/game_freak/star.png new file mode 100644 index 000000000000..79784c7c5822 Binary files /dev/null and b/graphics/intro_frlg/game_freak/star.png differ diff --git a/graphics/intro_frlg/gengar.pal b/graphics/intro_frlg/gengar.pal new file mode 100644 index 000000000000..79d5689842e6 --- /dev/null +++ b/graphics/intro_frlg/gengar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 222 205 +255 255 255 +222 222 222 +123 123 123 +255 0 255 +255 0 255 +255 0 255 +65 41 74 +255 180 123 +238 98 74 +205 57 32 +197 131 180 +164 98 148 +131 65 123 +90 57 90 +16 16 16 diff --git a/graphics/intro_frlg/nidorino.pal b/graphics/intro_frlg/nidorino.pal new file mode 100644 index 000000000000..53a2c5c2b64c --- /dev/null +++ b/graphics/intro_frlg/nidorino.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 222 205 +255 106 82 +222 65 41 +180 24 0 +57 238 189 +82 205 156 +0 164 115 +255 255 255 +255 0 255 +222 180 205 +189 131 189 +139 90 148 +106 57 98 +205 205 222 +131 131 131 +16 16 16 diff --git a/graphics/intro_frlg/scene_1/bg.bin b/graphics/intro_frlg/scene_1/bg.bin new file mode 100644 index 000000000000..fd7aef605297 Binary files /dev/null and b/graphics/intro_frlg/scene_1/bg.bin differ diff --git a/graphics/intro_frlg/scene_1/bg.png b/graphics/intro_frlg/scene_1/bg.png new file mode 100644 index 000000000000..0665222d5ac8 Binary files /dev/null and b/graphics/intro_frlg/scene_1/bg.png differ diff --git a/graphics/intro_frlg/scene_1/grass.bin b/graphics/intro_frlg/scene_1/grass.bin new file mode 100644 index 000000000000..c81ca17d13d7 Binary files /dev/null and b/graphics/intro_frlg/scene_1/grass.bin differ diff --git a/graphics/intro_frlg/scene_1/grass.png b/graphics/intro_frlg/scene_1/grass.png new file mode 100644 index 000000000000..425963af20e2 Binary files /dev/null and b/graphics/intro_frlg/scene_1/grass.png differ diff --git a/graphics/intro_frlg/scene_2/bg.bin b/graphics/intro_frlg/scene_2/bg.bin new file mode 100644 index 000000000000..aea2053b37cd Binary files /dev/null and b/graphics/intro_frlg/scene_2/bg.bin differ diff --git a/graphics/intro_frlg/scene_2/bg.pal b/graphics/intro_frlg/scene_2/bg.pal new file mode 100644 index 000000000000..3567f4cfff8f --- /dev/null +++ b/graphics/intro_frlg/scene_2/bg.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +131 238 115 +82 189 74 +57 164 57 +115 213 98 +16 123 16 +164 255 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 148 0 +164 222 98 +0 0 0 +82 98 115 +98 189 123 +139 156 172 +65 139 98 +238 246 246 +106 172 57 +189 189 213 +148 213 82 +106 180 41 +164 131 41 +115 98 49 +82 74 57 +222 222 230 +32 65 90 +24 115 65 +0 0 0 +156 230 156 +131 205 148 +106 180 131 +65 139 98 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/intro_frlg/scene_2/bg.png b/graphics/intro_frlg/scene_2/bg.png new file mode 100644 index 000000000000..a0b3df803d12 Binary files /dev/null and b/graphics/intro_frlg/scene_2/bg.png differ diff --git a/graphics/intro_frlg/scene_2/gengar.png b/graphics/intro_frlg/scene_2/gengar.png new file mode 100644 index 000000000000..319206e2c857 Binary files /dev/null and b/graphics/intro_frlg/scene_2/gengar.png differ diff --git a/graphics/intro_frlg/scene_2/gengar_close.bin b/graphics/intro_frlg/scene_2/gengar_close.bin new file mode 100644 index 000000000000..3a6ca935114f Binary files /dev/null and b/graphics/intro_frlg/scene_2/gengar_close.bin differ diff --git a/graphics/intro_frlg/scene_2/gengar_close.png b/graphics/intro_frlg/scene_2/gengar_close.png new file mode 100644 index 000000000000..9878b9bcacbc Binary files /dev/null and b/graphics/intro_frlg/scene_2/gengar_close.png differ diff --git a/graphics/intro_frlg/scene_2/nidorino.png b/graphics/intro_frlg/scene_2/nidorino.png new file mode 100644 index 000000000000..7b490a384512 Binary files /dev/null and b/graphics/intro_frlg/scene_2/nidorino.png differ diff --git a/graphics/intro_frlg/scene_2/nidorino_close.bin b/graphics/intro_frlg/scene_2/nidorino_close.bin new file mode 100644 index 000000000000..37b2b07d8f74 Binary files /dev/null and b/graphics/intro_frlg/scene_2/nidorino_close.bin differ diff --git a/graphics/intro_frlg/scene_2/nidorino_close.pal b/graphics/intro_frlg/scene_2/nidorino_close.pal new file mode 100644 index 000000000000..8e13fe902a7e --- /dev/null +++ b/graphics/intro_frlg/scene_2/nidorino_close.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 123 41 +65 148 90 +49 115 74 +106 57 98 +49 115 98 +82 205 156 +49 164 115 +255 255 255 +106 189 115 +90 41 82 +222 180 205 +189 131 189 +139 90 148 +205 205 222 +131 131 131 +16 16 16 diff --git a/graphics/intro_frlg/scene_2/nidorino_close.png b/graphics/intro_frlg/scene_2/nidorino_close.png new file mode 100644 index 000000000000..b800c9a240a4 Binary files /dev/null and b/graphics/intro_frlg/scene_2/nidorino_close.png differ diff --git a/graphics/intro_frlg/scene_2/plants.bin b/graphics/intro_frlg/scene_2/plants.bin new file mode 100644 index 000000000000..32cd439b8696 Binary files /dev/null and b/graphics/intro_frlg/scene_2/plants.bin differ diff --git a/graphics/intro_frlg/scene_2/plants.png b/graphics/intro_frlg/scene_2/plants.png new file mode 100644 index 000000000000..dce86264f889 Binary files /dev/null and b/graphics/intro_frlg/scene_2/plants.png differ diff --git a/graphics/intro_frlg/scene_3/bg.bin b/graphics/intro_frlg/scene_3/bg.bin new file mode 100644 index 000000000000..6a70c1dc0b10 Binary files /dev/null and b/graphics/intro_frlg/scene_3/bg.bin differ diff --git a/graphics/intro_frlg/scene_3/bg.pal b/graphics/intro_frlg/scene_3/bg.pal new file mode 100644 index 000000000000..5c34c44c80da --- /dev/null +++ b/graphics/intro_frlg/scene_3/bg.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +82 98 115 +98 189 123 +139 156 172 +65 139 98 +238 246 246 +106 172 57 +189 189 213 +148 213 82 +106 180 41 +164 131 41 +115 98 49 +82 74 57 +222 222 230 +32 65 90 +24 115 65 +0 0 0 +164 238 139 +57 148 57 +131 213 115 +156 230 156 +131 205 148 +106 180 131 +65 139 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 0 0 diff --git a/graphics/intro_frlg/scene_3/bg.png b/graphics/intro_frlg/scene_3/bg.png new file mode 100644 index 000000000000..8ba8577acf6c Binary files /dev/null and b/graphics/intro_frlg/scene_3/bg.png differ diff --git a/graphics/intro_frlg/scene_3/gengar_anim.bin b/graphics/intro_frlg/scene_3/gengar_anim.bin new file mode 100644 index 000000000000..6e02db72d01f Binary files /dev/null and b/graphics/intro_frlg/scene_3/gengar_anim.bin differ diff --git a/graphics/intro_frlg/scene_3/gengar_anim.png b/graphics/intro_frlg/scene_3/gengar_anim.png new file mode 100644 index 000000000000..d339ca80fde5 Binary files /dev/null and b/graphics/intro_frlg/scene_3/gengar_anim.png differ diff --git a/graphics/intro_frlg/scene_3/gengar_static.png b/graphics/intro_frlg/scene_3/gengar_static.png new file mode 100644 index 000000000000..9a13053110c7 Binary files /dev/null and b/graphics/intro_frlg/scene_3/gengar_static.png differ diff --git a/graphics/intro_frlg/scene_3/grass.png b/graphics/intro_frlg/scene_3/grass.png new file mode 100644 index 000000000000..751cf1f3d85b Binary files /dev/null and b/graphics/intro_frlg/scene_3/grass.png differ diff --git a/graphics/intro_frlg/scene_3/nidorino.png b/graphics/intro_frlg/scene_3/nidorino.png new file mode 100644 index 000000000000..7d2f0ff2ea5f Binary files /dev/null and b/graphics/intro_frlg/scene_3/nidorino.png differ diff --git a/graphics/intro_frlg/scene_3/recoil_dust.png b/graphics/intro_frlg/scene_3/recoil_dust.png new file mode 100644 index 000000000000..4fd9d0fbf836 Binary files /dev/null and b/graphics/intro_frlg/scene_3/recoil_dust.png differ diff --git a/graphics/intro_frlg/scene_3/swipe.png b/graphics/intro_frlg/scene_3/swipe.png new file mode 100644 index 000000000000..a990a99f0c03 Binary files /dev/null and b/graphics/intro_frlg/scene_3/swipe.png differ diff --git a/graphics/items/icon_palettes/absolite_z.pal b/graphics/items/icon_palettes/absolite_z.pal new file mode 100644 index 000000000000..2583388e8121 --- /dev/null +++ b/graphics/items/icon_palettes/absolite_z.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +37 78 119 +219 46 118 +14 52 76 +123 155 188 +232 123 169 +24 66 98 +255 255 255 +46 97 149 +122 143 156 +78 50 89 +186 39 100 +49 49 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/barbaracite.pal b/graphics/items/icon_palettes/barbaracite.pal new file mode 100644 index 000000000000..c7c82cb29356 --- /dev/null +++ b/graphics/items/icon_palettes/barbaracite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +143 148 158 +219 96 94 +221 234 175 +86 86 86 +216 220 229 +232 155 153 +119 121 126 +255 255 255 +194 200 214 +162 162 162 +127 89 88 +160 69 69 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/baxcalibrite.pal b/graphics/items/icon_palettes/baxcalibrite.pal new file mode 100644 index 000000000000..123cbb198501 --- /dev/null +++ b/graphics/items/icon_palettes/baxcalibrite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +42 70 89 +162 145 224 +234 55 69 +200 240 240 +137 154 166 +196 185 235 +158 194 200 +255 255 255 +68 95 114 +224 246 246 +188 210 234 +116 104 160 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/chandelurite.pal b/graphics/items/icon_palettes/chandelurite.pal new file mode 100644 index 000000000000..f1c375884825 --- /dev/null +++ b/graphics/items/icon_palettes/chandelurite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +76 76 76 +197 213 213 +255 242 145 +134 107 229 +150 150 150 +218 228 228 +119 101 185 +255 255 255 +89 89 89 +188 173 240 +153 140 223 +154 165 165 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/chesnaughtite.pal b/graphics/items/icon_palettes/chesnaughtite.pal new file mode 100644 index 000000000000..4ccbd3820905 --- /dev/null +++ b/graphics/items/icon_palettes/chesnaughtite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +91 124 52 +127 99 81 +247 219 170 +212 221 212 +175 204 140 +174 157 145 +185 206 168 +255 255 255 +128 175 73 +231 236 231 +185 182 170 +96 75 62 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/chimechite.pal b/graphics/items/icon_palettes/chimechite.pal new file mode 100644 index 000000000000..d6bc0f72259a --- /dev/null +++ b/graphics/items/icon_palettes/chimechite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +180 65 90 +197 230 255 +65 74 106 +255 213 90 +249 146 172 +218 239 255 +255 215 90 +255 255 255 +246 82 123 +255 231 164 +236 218 141 +106 148 180 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/clefablite.pal b/graphics/items/icon_palettes/clefablite.pal new file mode 100644 index 000000000000..12cd86ae0236 --- /dev/null +++ b/graphics/items/icon_palettes/clefablite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +158 91 116 +222 98 98 +245 208 208 +255 197 180 +228 172 197 +234 156 156 +241 173 174 +255 255 255 +213 123 164 +255 237 237 +207 162 203 +173 78 78 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/crabominite.pal b/graphics/items/icon_palettes/crabominite.pal new file mode 100644 index 000000000000..bd2cd2582ddf --- /dev/null +++ b/graphics/items/icon_palettes/crabominite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +48 153 188 +83 89 123 +255 250 179 +248 248 248 +148 224 237 +147 150 172 +196 234 241 +255 255 255 +85 206 227 +251 251 251 +196 198 208 +61 58 90 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/darkranite.pal b/graphics/items/icon_palettes/darkranite.pal new file mode 100644 index 000000000000..8db7f298d04a --- /dev/null +++ b/graphics/items/icon_palettes/darkranite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +201 201 201 +255 91 230 +99 99 99 +73 73 73 +243 243 243 +255 152 239 +124 124 124 +255 255 255 +237 237 237 +155 155 155 +130 78 122 +219 78 198 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/delphoxite.pal b/graphics/items/icon_palettes/delphoxite.pal new file mode 100644 index 000000000000..48b85244e7ff --- /dev/null +++ b/graphics/items/icon_palettes/delphoxite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +158 75 67 +255 221 122 +232 232 232 +110 109 106 +214 152 146 +255 233 171 +135 103 98 +255 255 255 +191 91 82 +175 174 173 +155 144 111 +204 175 97 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/dragalgite.pal b/graphics/items/icon_palettes/dragalgite.pal new file mode 100644 index 000000000000..b13cf07ba933 --- /dev/null +++ b/graphics/items/icon_palettes/dragalgite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +89 64 50 +219 83 101 +172 173 95 +135 80 138 +157 140 130 +232 147 158 +123 77 112 +255 255 255 +99 72 56 +189 158 190 +161 80 126 +183 69 84 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/dragoninite.pal b/graphics/items/icon_palettes/dragoninite.pal new file mode 100644 index 000000000000..ef0edd496c7c --- /dev/null +++ b/graphics/items/icon_palettes/dragoninite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +216 196 140 +32 164 123 +175 88 80 +206 141 72 +251 236 196 +115 197 172 +219 167 100 +255 255 255 +249 226 162 +255 209 163 +151 148 88 +29 117 87 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/drampanite.pal b/graphics/items/icon_palettes/drampanite.pal new file mode 100644 index 000000000000..0766fd6693b8 --- /dev/null +++ b/graphics/items/icon_palettes/drampanite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +66 66 66 +90 164 164 +216 216 216 +86 111 137 +145 145 145 +151 197 197 +84 101 119 +255 255 255 +81 81 81 +162 175 190 +87 127 145 +71 130 130 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/eelektrossite.pal b/graphics/items/icon_palettes/eelektrossite.pal new file mode 100644 index 000000000000..0e31757924da --- /dev/null +++ b/graphics/items/icon_palettes/eelektrossite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +32 98 115 +234 218 136 +222 115 82 +214 214 214 +140 175 184 +241 231 180 +169 187 191 +255 255 255 +72 128 142 +232 232 232 +220 215 189 +188 172 88 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/emboarite.pal b/graphics/items/icon_palettes/emboarite.pal new file mode 100644 index 000000000000..78baba790fbf --- /dev/null +++ b/graphics/items/icon_palettes/emboarite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +71 71 71 +238 189 8 +234 113 60 +219 96 94 +148 148 148 +244 213 100 +177 92 91 +255 255 255 +86 86 86 +235 167 166 +224 125 67 +186 147 7 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/excadrite.pal b/graphics/items/icon_palettes/excadrite.pal new file mode 100644 index 000000000000..b9028ea3e8b4 --- /dev/null +++ b/graphics/items/icon_palettes/excadrite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +90 74 65 +188 88 88 +238 131 123 +164 164 164 +166 153 147 +212 150 150 +148 142 138 +255 255 255 +114 94 83 +205 205 205 +171 140 140 +160 69 69 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/falinksite.pal b/graphics/items/icon_palettes/falinksite.pal new file mode 100644 index 000000000000..5b345bba253f --- /dev/null +++ b/graphics/items/icon_palettes/falinksite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +186 67 67 +71 71 71 +61 134 191 +255 205 53 +243 148 148 +139 139 139 +249 167 63 +255 255 255 +237 85 85 +255 227 144 +197 162 58 +51 51 51 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/feraligite.pal b/graphics/items/icon_palettes/feraligite.pal new file mode 100644 index 000000000000..e91106f26897 --- /dev/null +++ b/graphics/items/icon_palettes/feraligite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +186 63 69 +244 233 171 +78 99 137 +90 180 246 +249 146 151 +248 241 202 +138 149 197 +255 255 255 +246 82 90 +164 213 250 +138 196 222 +191 182 133 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/floettite.pal b/graphics/items/icon_palettes/floettite.pal new file mode 100644 index 000000000000..9dac4eff47ed --- /dev/null +++ b/graphics/items/icon_palettes/floettite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +186 100 100 +91 122 183 +232 232 232 +102 97 97 +255 180 180 +152 171 209 +150 109 109 +255 255 255 +255 137 137 +171 168 168 +98 104 123 +73 98 147 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/froslassite.pal b/graphics/items/icon_palettes/froslassite.pal new file mode 100644 index 000000000000..55faaf1315c6 --- /dev/null +++ b/graphics/items/icon_palettes/froslassite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +141 156 186 +129 86 163 +197 41 32 +115 180 213 +218 223 234 +175 148 197 +140 187 215 +255 255 255 +197 205 222 +178 213 231 +119 150 197 +101 67 127 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/garchompite_z.pal b/graphics/items/icon_palettes/garchompite_z.pal new file mode 100644 index 000000000000..164e7864eea5 --- /dev/null +++ b/graphics/items/icon_palettes/garchompite_z.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +193 49 9 +224 255 255 +255 207 92 +72 68 97 +239 133 101 +235 255 255 +121 66 70 +255 255 255 +231 62 11 +154 152 168 +99 104 123 +161 183 183 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/glimmoranite.pal b/graphics/items/icon_palettes/glimmoranite.pal new file mode 100644 index 000000000000..66ac65fcc35a --- /dev/null +++ b/graphics/items/icon_palettes/glimmoranite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +65 150 139 +38 43 107 +112 79 221 +50 83 214 +153 235 201 +118 121 162 +63 127 200 +255 255 255 +93 224 170 +142 160 232 +69 81 216 +36 39 55 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/golisopite.pal b/graphics/items/icon_palettes/golisopite.pal new file mode 100644 index 000000000000..fdf20d351305 --- /dev/null +++ b/graphics/items/icon_palettes/golisopite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +132 40 134 +92 99 94 +255 250 179 +115 122 128 +211 130 214 +152 157 153 +137 101 147 +255 255 255 +186 57 191 +178 181 185 +107 114 117 +61 58 90 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/golurkite.pal b/graphics/items/icon_palettes/golurkite.pal new file mode 100644 index 000000000000..4fee50f39ff2 --- /dev/null +++ b/graphics/items/icon_palettes/golurkite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +222 205 148 +148 115 180 +41 123 139 +131 197 205 +255 244 197 +187 167 207 +169 209 192 +255 255 255 +255 238 164 +186 223 227 +136 171 197 +123 98 164 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/greninjite.pal b/graphics/items/icon_palettes/greninjite.pal new file mode 100644 index 000000000000..123819aae5bb --- /dev/null +++ b/graphics/items/icon_palettes/greninjite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +71 71 71 +242 121 141 +255 240 166 +114 192 216 +148 148 148 +246 170 183 +105 158 175 +255 255 255 +86 86 86 +177 220 233 +154 169 192 +188 94 110 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/hawluchanite.pal b/graphics/items/icon_palettes/hawluchanite.pal new file mode 100644 index 000000000000..711e0bc7722e --- /dev/null +++ b/graphics/items/icon_palettes/hawluchanite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +109 160 142 +239 165 95 +99 99 99 +216 80 102 +180 221 206 +244 198 154 +190 117 125 +255 255 255 +136 201 178 +233 158 171 +223 106 99 +186 128 74 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/heatranite.pal b/graphics/items/icon_palettes/heatranite.pal new file mode 100644 index 000000000000..1635e147d5e0 --- /dev/null +++ b/graphics/items/icon_palettes/heatranite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +163 163 163 +255 167 2 +255 221 2 +206 46 14 +221 221 221 +255 199 96 +204 94 72 +255 255 255 +201 201 201 +228 140 122 +221 83 10 +219 143 2 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/lucarionite_z.pal b/graphics/items/icon_palettes/lucarionite_z.pal new file mode 100644 index 000000000000..6a9d79884e86 --- /dev/null +++ b/graphics/items/icon_palettes/lucarionite_z.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +62 135 151 +174 189 194 +90 93 98 +227 235 138 +135 192 201 +204 213 216 +175 210 148 +255 255 255 +64 156 170 +239 244 190 +210 220 155 +164 164 165 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/magearnite.pal b/graphics/items/icon_palettes/magearnite.pal new file mode 100644 index 000000000000..9975ca582ec4 --- /dev/null +++ b/graphics/items/icon_palettes/magearnite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +186 154 80 +255 152 237 +248 248 248 +181 36 57 +252 239 196 +255 190 243 +202 97 89 +255 255 255 +251 231 162 +214 134 146 +204 72 113 +231 128 215 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/malamarite.pal b/graphics/items/icon_palettes/malamarite.pal new file mode 100644 index 000000000000..87f8174044ac --- /dev/null +++ b/graphics/items/icon_palettes/malamarite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +193 91 142 +126 212 229 +255 242 178 +133 92 153 +244 165 205 +174 228 238 +166 98 160 +255 255 255 +239 112 176 +188 165 199 +130 129 176 +102 171 183 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/meganiumite.pal b/graphics/items/icon_palettes/meganiumite.pal new file mode 100644 index 000000000000..958381daef45 --- /dev/null +++ b/graphics/items/icon_palettes/meganiumite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +173 81 96 +246 164 193 +255 229 238 +156 201 110 +255 130 151 +249 197 216 +187 155 103 +255 255 255 +255 57 90 +200 225 175 +184 189 136 +206 121 152 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/meowsticite.pal b/graphics/items/icon_palettes/meowsticite.pal new file mode 100644 index 000000000000..d28318293029 --- /dev/null +++ b/graphics/items/icon_palettes/meowsticite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +191 191 191 +255 229 79 +127 245 245 +54 95 179 +250 250 250 +221 203 115 +114 143 200 +255 255 255 +248 248 248 +144 167 213 +117 137 147 +201 173 32 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/pyroarite.pal b/graphics/items/icon_palettes/pyroarite.pal new file mode 100644 index 000000000000..a4af89367980 --- /dev/null +++ b/graphics/items/icon_palettes/pyroarite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +191 147 36 +99 94 92 +96 175 150 +226 90 74 +248 219 145 +157 153 152 +231 123 75 +255 255 255 +244 198 80 +239 164 155 +186 91 79 +68 65 64 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/raichunite_x.pal b/graphics/items/icon_palettes/raichunite_x.pal new file mode 100644 index 000000000000..6fdcb82fd5ef --- /dev/null +++ b/graphics/items/icon_palettes/raichunite_x.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +156 82 0 +197 32 24 +246 230 82 +135 135 141 +192 146 95 +189 178 79 +255 255 255 +65 65 74 +250 241 160 +208 219 128 +114 57 0 +49 49 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/raichunite_y.pal b/graphics/items/icon_palettes/raichunite_y.pal new file mode 100644 index 000000000000..5f6f45ab5d4b --- /dev/null +++ b/graphics/items/icon_palettes/raichunite_y.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +201 175 72 +115 65 49 +57 57 65 +246 172 41 +255 234 151 +167 135 125 +248 187 56 +255 255 255 +255 222 90 +250 209 137 +204 138 43 +81 45 35 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/scolipite.pal b/graphics/items/icon_palettes/scolipite.pal new file mode 100644 index 000000000000..655a9e914dff --- /dev/null +++ b/graphics/items/icon_palettes/scolipite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +120 66 132 +85 97 127 +87 186 204 +150 121 183 +191 142 185 +148 155 174 +150 106 170 +255 255 255 +153 76 144 +197 181 215 +129 113 165 +65 74 98 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/scovillainite.pal b/graphics/items/icon_palettes/scovillainite.pal new file mode 100644 index 000000000000..e16c9393c85e --- /dev/null +++ b/graphics/items/icon_palettes/scovillainite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +60 80 66 +239 81 49 +105 171 123 +139 162 145 +244 145 125 +94 150 109 +255 255 255 +71 107 81 +153 173 159 +147 142 99 +162 52 36 +49 49 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/scraftinite.pal b/graphics/items/icon_palettes/scraftinite.pal new file mode 100644 index 000000000000..25147242b54e --- /dev/null +++ b/graphics/items/icon_palettes/scraftinite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +183 118 71 +193 81 92 +98 98 98 +206 206 206 +236 186 150 +216 145 152 +212 187 168 +255 255 255 +226 146 88 +228 228 228 +201 166 170 +145 40 51 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/skarmorite.pal b/graphics/items/icon_palettes/skarmorite.pal new file mode 100644 index 000000000000..a282eb6a841d --- /dev/null +++ b/graphics/items/icon_palettes/skarmorite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +48 68 102 +238 90 98 +78 99 137 +242 195 26 +135 151 179 +244 151 156 +186 162 60 +255 255 255 +64 90 135 +247 222 129 +240 162 48 +173 65 73 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/staraptite.pal b/graphics/items/icon_palettes/staraptite.pal new file mode 100644 index 000000000000..f3a11b99d959 --- /dev/null +++ b/graphics/items/icon_palettes/staraptite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +212 80 53 +88 79 71 +251 176 3 +199 190 188 +251 155 130 +150 144 139 +214 160 146 +255 255 255 +249 96 56 +224 219 218 +164 155 151 +63 49 37 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/starminite.pal b/graphics/items/icon_palettes/starminite.pal new file mode 100644 index 000000000000..7fc8260792d0 --- /dev/null +++ b/graphics/items/icon_palettes/starminite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +148 115 65 +205 32 90 +90 82 156 +139 115 189 +244 218 141 +223 115 151 +170 140 152 +255 255 255 +238 197 74 +218 211 234 +159 88 157 +139 16 82 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/tatsugirinite.pal b/graphics/items/icon_palettes/tatsugirinite.pal new file mode 100644 index 000000000000..7ace4bfa0fc8 --- /dev/null +++ b/graphics/items/icon_palettes/tatsugirinite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +215 181 6 +255 73 122 +255 104 43 +0 221 98 +255 234 95 +234 141 151 +80 221 67 +255 255 255 +255 222 0 +115 236 168 +80 184 80 +222 74 90 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/victreebelite.pal b/graphics/items/icon_palettes/victreebelite.pal new file mode 100644 index 000000000000..581b7182c3c0 --- /dev/null +++ b/graphics/items/icon_palettes/victreebelite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +88 163 125 +238 139 82 +238 213 106 +182 218 172 +244 182 146 +206 207 111 +255 255 255 +139 197 123 +255 237 237 +238 189 98 +198 107 107 +49 49 49 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/zeraorite.pal b/graphics/items/icon_palettes/zeraorite.pal new file mode 100644 index 000000000000..010f2562ec96 --- /dev/null +++ b/graphics/items/icon_palettes/zeraorite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +198 182 75 +128 197 230 +99 99 99 +73 73 73 +244 232 151 +175 218 239 +124 118 78 +255 255 255 +238 219 90 +155 155 155 +90 111 122 +105 162 188 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/zygardite.pal b/graphics/items/icon_palettes/zygardite.pal new file mode 100644 index 000000000000..8c748b191b27 --- /dev/null +++ b/graphics/items/icon_palettes/zygardite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 128 +140 165 64 +234 103 107 +93 110 183 +86 71 72 +204 224 144 +241 159 162 +113 113 74 +255 255 255 +175 207 79 +162 153 154 +132 81 82 +186 81 85 +49 49 49 +0 0 0 +0 0 0 diff --git a/graphics/items/icons/absolite_z.png b/graphics/items/icons/absolite_z.png new file mode 100644 index 000000000000..a1a44e195c26 Binary files /dev/null and b/graphics/items/icons/absolite_z.png differ diff --git a/graphics/items/icons/barbaracite.png b/graphics/items/icons/barbaracite.png new file mode 100644 index 000000000000..8390dd2fbed7 Binary files /dev/null and b/graphics/items/icons/barbaracite.png differ diff --git a/graphics/items/icons/baxcalibrite.png b/graphics/items/icons/baxcalibrite.png new file mode 100644 index 000000000000..f0e60a38f51f Binary files /dev/null and b/graphics/items/icons/baxcalibrite.png differ diff --git a/graphics/items/icons/chandelurite.png b/graphics/items/icons/chandelurite.png new file mode 100644 index 000000000000..a1803e51a29a Binary files /dev/null and b/graphics/items/icons/chandelurite.png differ diff --git a/graphics/items/icons/chesnaughtite.png b/graphics/items/icons/chesnaughtite.png new file mode 100644 index 000000000000..bb227bb6e1a7 Binary files /dev/null and b/graphics/items/icons/chesnaughtite.png differ diff --git a/graphics/items/icons/chimechite.png b/graphics/items/icons/chimechite.png new file mode 100644 index 000000000000..5332faaa2e7a Binary files /dev/null and b/graphics/items/icons/chimechite.png differ diff --git a/graphics/items/icons/clefablite.png b/graphics/items/icons/clefablite.png new file mode 100644 index 000000000000..8579d8b7d483 Binary files /dev/null and b/graphics/items/icons/clefablite.png differ diff --git a/graphics/items/icons/crabominite.png b/graphics/items/icons/crabominite.png new file mode 100644 index 000000000000..801257485d9f Binary files /dev/null and b/graphics/items/icons/crabominite.png differ diff --git a/graphics/items/icons/darkranite.png b/graphics/items/icons/darkranite.png new file mode 100644 index 000000000000..b6360d27f19c Binary files /dev/null and b/graphics/items/icons/darkranite.png differ diff --git a/graphics/items/icons/delphoxite.png b/graphics/items/icons/delphoxite.png new file mode 100644 index 000000000000..99800d386626 Binary files /dev/null and b/graphics/items/icons/delphoxite.png differ diff --git a/graphics/items/icons/dragalgite.png b/graphics/items/icons/dragalgite.png new file mode 100644 index 000000000000..1b0fcba0de06 Binary files /dev/null and b/graphics/items/icons/dragalgite.png differ diff --git a/graphics/items/icons/dragoninite.png b/graphics/items/icons/dragoninite.png new file mode 100644 index 000000000000..41680911ffd8 Binary files /dev/null and b/graphics/items/icons/dragoninite.png differ diff --git a/graphics/items/icons/drampanite.png b/graphics/items/icons/drampanite.png new file mode 100644 index 000000000000..5a735ec1f00c Binary files /dev/null and b/graphics/items/icons/drampanite.png differ diff --git a/graphics/items/icons/eelektrossite.png b/graphics/items/icons/eelektrossite.png new file mode 100644 index 000000000000..170c4a188af1 Binary files /dev/null and b/graphics/items/icons/eelektrossite.png differ diff --git a/graphics/items/icons/emboarite.png b/graphics/items/icons/emboarite.png new file mode 100644 index 000000000000..d90d7eb5f30d Binary files /dev/null and b/graphics/items/icons/emboarite.png differ diff --git a/graphics/items/icons/excadrite.png b/graphics/items/icons/excadrite.png new file mode 100644 index 000000000000..4c2c1c840ed3 Binary files /dev/null and b/graphics/items/icons/excadrite.png differ diff --git a/graphics/items/icons/falinksite.png b/graphics/items/icons/falinksite.png new file mode 100644 index 000000000000..3553cf5b781a Binary files /dev/null and b/graphics/items/icons/falinksite.png differ diff --git a/graphics/items/icons/feraligite.png b/graphics/items/icons/feraligite.png new file mode 100644 index 000000000000..4e1eb3fad576 Binary files /dev/null and b/graphics/items/icons/feraligite.png differ diff --git a/graphics/items/icons/floettite.png b/graphics/items/icons/floettite.png new file mode 100644 index 000000000000..9561e6e2b225 Binary files /dev/null and b/graphics/items/icons/floettite.png differ diff --git a/graphics/items/icons/froslassite.png b/graphics/items/icons/froslassite.png new file mode 100644 index 000000000000..57e99c2e92c4 Binary files /dev/null and b/graphics/items/icons/froslassite.png differ diff --git a/graphics/items/icons/garchompite_z.png b/graphics/items/icons/garchompite_z.png new file mode 100644 index 000000000000..f54ad283976a Binary files /dev/null and b/graphics/items/icons/garchompite_z.png differ diff --git a/graphics/items/icons/glimmoranite.png b/graphics/items/icons/glimmoranite.png new file mode 100644 index 000000000000..5cd9c4434158 Binary files /dev/null and b/graphics/items/icons/glimmoranite.png differ diff --git a/graphics/items/icons/golisopite.png b/graphics/items/icons/golisopite.png new file mode 100644 index 000000000000..c992f2310e4a Binary files /dev/null and b/graphics/items/icons/golisopite.png differ diff --git a/graphics/items/icons/golurkite.png b/graphics/items/icons/golurkite.png new file mode 100644 index 000000000000..a2d7144a5baa Binary files /dev/null and b/graphics/items/icons/golurkite.png differ diff --git a/graphics/items/icons/greninjite.png b/graphics/items/icons/greninjite.png new file mode 100644 index 000000000000..a0628ced6d66 Binary files /dev/null and b/graphics/items/icons/greninjite.png differ diff --git a/graphics/items/icons/hawluchanite.png b/graphics/items/icons/hawluchanite.png new file mode 100644 index 000000000000..aee4eadd700b Binary files /dev/null and b/graphics/items/icons/hawluchanite.png differ diff --git a/graphics/items/icons/heatranite.png b/graphics/items/icons/heatranite.png new file mode 100644 index 000000000000..d7424803ab0b Binary files /dev/null and b/graphics/items/icons/heatranite.png differ diff --git a/graphics/items/icons/lucarionite_z.png b/graphics/items/icons/lucarionite_z.png new file mode 100644 index 000000000000..754da37e578a Binary files /dev/null and b/graphics/items/icons/lucarionite_z.png differ diff --git a/graphics/items/icons/magearnite.png b/graphics/items/icons/magearnite.png new file mode 100644 index 000000000000..ad7869cf88da Binary files /dev/null and b/graphics/items/icons/magearnite.png differ diff --git a/graphics/items/icons/malamarite.png b/graphics/items/icons/malamarite.png new file mode 100644 index 000000000000..545d66f8e6d5 Binary files /dev/null and b/graphics/items/icons/malamarite.png differ diff --git a/graphics/items/icons/meganiumite.png b/graphics/items/icons/meganiumite.png new file mode 100644 index 000000000000..9081146a5f2b Binary files /dev/null and b/graphics/items/icons/meganiumite.png differ diff --git a/graphics/items/icons/meowsticite.png b/graphics/items/icons/meowsticite.png new file mode 100644 index 000000000000..bf52f4c6add8 Binary files /dev/null and b/graphics/items/icons/meowsticite.png differ diff --git a/graphics/items/icons/pyroarite.png b/graphics/items/icons/pyroarite.png new file mode 100644 index 000000000000..1aa121a0ac7d Binary files /dev/null and b/graphics/items/icons/pyroarite.png differ diff --git a/graphics/items/icons/raichunite_x.png b/graphics/items/icons/raichunite_x.png new file mode 100644 index 000000000000..03f35d78321a Binary files /dev/null and b/graphics/items/icons/raichunite_x.png differ diff --git a/graphics/items/icons/raichunite_y.png b/graphics/items/icons/raichunite_y.png new file mode 100644 index 000000000000..0da13f6e70eb Binary files /dev/null and b/graphics/items/icons/raichunite_y.png differ diff --git a/graphics/items/icons/scolipite.png b/graphics/items/icons/scolipite.png new file mode 100644 index 000000000000..58d7c717e1fc Binary files /dev/null and b/graphics/items/icons/scolipite.png differ diff --git a/graphics/items/icons/scovillainite.png b/graphics/items/icons/scovillainite.png new file mode 100644 index 000000000000..6f746c1f5c0f Binary files /dev/null and b/graphics/items/icons/scovillainite.png differ diff --git a/graphics/items/icons/scraftinite.png b/graphics/items/icons/scraftinite.png new file mode 100644 index 000000000000..0979b5660d80 Binary files /dev/null and b/graphics/items/icons/scraftinite.png differ diff --git a/graphics/items/icons/skarmorite.png b/graphics/items/icons/skarmorite.png new file mode 100644 index 000000000000..edafe7fba5f9 Binary files /dev/null and b/graphics/items/icons/skarmorite.png differ diff --git a/graphics/items/icons/staraptite.png b/graphics/items/icons/staraptite.png new file mode 100644 index 000000000000..229f8aad6c82 Binary files /dev/null and b/graphics/items/icons/staraptite.png differ diff --git a/graphics/items/icons/starminite.png b/graphics/items/icons/starminite.png new file mode 100644 index 000000000000..1474a0f5cdc3 Binary files /dev/null and b/graphics/items/icons/starminite.png differ diff --git a/graphics/items/icons/tatsugirinite.png b/graphics/items/icons/tatsugirinite.png new file mode 100644 index 000000000000..442f67aef6c1 Binary files /dev/null and b/graphics/items/icons/tatsugirinite.png differ diff --git a/graphics/items/icons/victreebelite.png b/graphics/items/icons/victreebelite.png new file mode 100644 index 000000000000..01d7871fb39b Binary files /dev/null and b/graphics/items/icons/victreebelite.png differ diff --git a/graphics/items/icons/zeraorite.png b/graphics/items/icons/zeraorite.png new file mode 100644 index 000000000000..fb45158972a3 Binary files /dev/null and b/graphics/items/icons/zeraorite.png differ diff --git a/graphics/items/icons/zygardite.png b/graphics/items/icons/zygardite.png new file mode 100644 index 000000000000..0d0dc7fcf95c Binary files /dev/null and b/graphics/items/icons/zygardite.png differ diff --git a/graphics/map_preview/altering_cave/tilemap.bin b/graphics/map_preview/altering_cave/tilemap.bin new file mode 100644 index 000000000000..e097a2a13cda Binary files /dev/null and b/graphics/map_preview/altering_cave/tilemap.bin differ diff --git a/graphics/map_preview/altering_cave/tiles.png b/graphics/map_preview/altering_cave/tiles.png new file mode 100644 index 000000000000..29b90475c3fa Binary files /dev/null and b/graphics/map_preview/altering_cave/tiles.png differ diff --git a/graphics/map_preview/berry_forest/tilemap.bin b/graphics/map_preview/berry_forest/tilemap.bin new file mode 100644 index 000000000000..678eff8f99e8 Binary files /dev/null and b/graphics/map_preview/berry_forest/tilemap.bin differ diff --git a/graphics/map_preview/berry_forest/tiles.png b/graphics/map_preview/berry_forest/tiles.png new file mode 100644 index 000000000000..51fced11c790 Binary files /dev/null and b/graphics/map_preview/berry_forest/tiles.png differ diff --git a/graphics/map_preview/cerulean_cave/tilemap.bin b/graphics/map_preview/cerulean_cave/tilemap.bin new file mode 100644 index 000000000000..71f2bff2eac0 Binary files /dev/null and b/graphics/map_preview/cerulean_cave/tilemap.bin differ diff --git a/graphics/map_preview/cerulean_cave/tiles.png b/graphics/map_preview/cerulean_cave/tiles.png new file mode 100644 index 000000000000..20fa05c49cd2 Binary files /dev/null and b/graphics/map_preview/cerulean_cave/tiles.png differ diff --git a/graphics/map_preview/digletts_cave/tilemap.bin b/graphics/map_preview/digletts_cave/tilemap.bin new file mode 100644 index 000000000000..50e29738316c Binary files /dev/null and b/graphics/map_preview/digletts_cave/tilemap.bin differ diff --git a/graphics/map_preview/digletts_cave/tiles.png b/graphics/map_preview/digletts_cave/tiles.png new file mode 100644 index 000000000000..e42544456db2 Binary files /dev/null and b/graphics/map_preview/digletts_cave/tiles.png differ diff --git a/graphics/map_preview/dotted_hole/tilemap.bin b/graphics/map_preview/dotted_hole/tilemap.bin new file mode 100644 index 000000000000..08e5278b6024 Binary files /dev/null and b/graphics/map_preview/dotted_hole/tilemap.bin differ diff --git a/graphics/map_preview/dotted_hole/tiles.png b/graphics/map_preview/dotted_hole/tiles.png new file mode 100644 index 000000000000..07f8cdb89e6a Binary files /dev/null and b/graphics/map_preview/dotted_hole/tiles.png differ diff --git a/graphics/map_preview/icefall_cave/tilemap.bin b/graphics/map_preview/icefall_cave/tilemap.bin new file mode 100644 index 000000000000..3a067c7262a9 Binary files /dev/null and b/graphics/map_preview/icefall_cave/tilemap.bin differ diff --git a/graphics/map_preview/icefall_cave/tiles.png b/graphics/map_preview/icefall_cave/tiles.png new file mode 100644 index 000000000000..5b6be5b5af06 Binary files /dev/null and b/graphics/map_preview/icefall_cave/tiles.png differ diff --git a/graphics/map_preview/lost_cave/tilemap.bin b/graphics/map_preview/lost_cave/tilemap.bin new file mode 100644 index 000000000000..160ab9c5a999 Binary files /dev/null and b/graphics/map_preview/lost_cave/tilemap.bin differ diff --git a/graphics/map_preview/lost_cave/tiles.png b/graphics/map_preview/lost_cave/tiles.png new file mode 100644 index 000000000000..ab72a86cb99c Binary files /dev/null and b/graphics/map_preview/lost_cave/tiles.png differ diff --git a/graphics/map_preview/monean_chamber/tilemap.bin b/graphics/map_preview/monean_chamber/tilemap.bin new file mode 100644 index 000000000000..90549f14b92d Binary files /dev/null and b/graphics/map_preview/monean_chamber/tilemap.bin differ diff --git a/graphics/map_preview/monean_chamber/tiles.png b/graphics/map_preview/monean_chamber/tiles.png new file mode 100644 index 000000000000..ca23b6ecfdd4 Binary files /dev/null and b/graphics/map_preview/monean_chamber/tiles.png differ diff --git a/graphics/map_preview/mt_ember/tilemap.bin b/graphics/map_preview/mt_ember/tilemap.bin new file mode 100644 index 000000000000..75b6a7d67fce Binary files /dev/null and b/graphics/map_preview/mt_ember/tilemap.bin differ diff --git a/graphics/map_preview/mt_ember/tiles.png b/graphics/map_preview/mt_ember/tiles.png new file mode 100644 index 000000000000..542038e3cd23 Binary files /dev/null and b/graphics/map_preview/mt_ember/tiles.png differ diff --git a/graphics/map_preview/mt_moon/tilemap.bin b/graphics/map_preview/mt_moon/tilemap.bin new file mode 100644 index 000000000000..59860715a967 Binary files /dev/null and b/graphics/map_preview/mt_moon/tilemap.bin differ diff --git a/graphics/map_preview/mt_moon/tiles.png b/graphics/map_preview/mt_moon/tiles.png new file mode 100644 index 000000000000..31c3581981c4 Binary files /dev/null and b/graphics/map_preview/mt_moon/tiles.png differ diff --git a/graphics/map_preview/pokemon_mansion/tilemap.bin b/graphics/map_preview/pokemon_mansion/tilemap.bin new file mode 100644 index 000000000000..2d97bc7d2798 Binary files /dev/null and b/graphics/map_preview/pokemon_mansion/tilemap.bin differ diff --git a/graphics/map_preview/pokemon_mansion/tiles.png b/graphics/map_preview/pokemon_mansion/tiles.png new file mode 100644 index 000000000000..e09d8e62ccda Binary files /dev/null and b/graphics/map_preview/pokemon_mansion/tiles.png differ diff --git a/graphics/map_preview/pokemon_tower/tilemap.bin b/graphics/map_preview/pokemon_tower/tilemap.bin new file mode 100644 index 000000000000..503007939ab5 Binary files /dev/null and b/graphics/map_preview/pokemon_tower/tilemap.bin differ diff --git a/graphics/map_preview/pokemon_tower/tiles.png b/graphics/map_preview/pokemon_tower/tiles.png new file mode 100644 index 000000000000..7bc8274c11f7 Binary files /dev/null and b/graphics/map_preview/pokemon_tower/tiles.png differ diff --git a/graphics/map_preview/power_plant/tilemap.bin b/graphics/map_preview/power_plant/tilemap.bin new file mode 100644 index 000000000000..4e7b314ea105 Binary files /dev/null and b/graphics/map_preview/power_plant/tilemap.bin differ diff --git a/graphics/map_preview/power_plant/tiles.png b/graphics/map_preview/power_plant/tiles.png new file mode 100644 index 000000000000..345b80d0196c Binary files /dev/null and b/graphics/map_preview/power_plant/tiles.png differ diff --git a/graphics/map_preview/rock_tunnel/tilemap.bin b/graphics/map_preview/rock_tunnel/tilemap.bin new file mode 100644 index 000000000000..9d274fa87d36 Binary files /dev/null and b/graphics/map_preview/rock_tunnel/tilemap.bin differ diff --git a/graphics/map_preview/rock_tunnel/tiles.png b/graphics/map_preview/rock_tunnel/tiles.png new file mode 100644 index 000000000000..2e078ff1edf5 Binary files /dev/null and b/graphics/map_preview/rock_tunnel/tiles.png differ diff --git a/graphics/map_preview/rocket_hideout/tilemap.bin b/graphics/map_preview/rocket_hideout/tilemap.bin new file mode 100644 index 000000000000..59e715a08fad Binary files /dev/null and b/graphics/map_preview/rocket_hideout/tilemap.bin differ diff --git a/graphics/map_preview/rocket_hideout/tiles.png b/graphics/map_preview/rocket_hideout/tiles.png new file mode 100644 index 000000000000..e302418e6be5 Binary files /dev/null and b/graphics/map_preview/rocket_hideout/tiles.png differ diff --git a/graphics/map_preview/rocket_warehouse/tilemap.bin b/graphics/map_preview/rocket_warehouse/tilemap.bin new file mode 100644 index 000000000000..ecd0bbb2dbf1 Binary files /dev/null and b/graphics/map_preview/rocket_warehouse/tilemap.bin differ diff --git a/graphics/map_preview/rocket_warehouse/tiles.png b/graphics/map_preview/rocket_warehouse/tiles.png new file mode 100644 index 000000000000..ea8a3d2d37d6 Binary files /dev/null and b/graphics/map_preview/rocket_warehouse/tiles.png differ diff --git a/graphics/map_preview/safari_zone/tilemap.bin b/graphics/map_preview/safari_zone/tilemap.bin new file mode 100644 index 000000000000..afed891422b8 Binary files /dev/null and b/graphics/map_preview/safari_zone/tilemap.bin differ diff --git a/graphics/map_preview/safari_zone/tiles.png b/graphics/map_preview/safari_zone/tiles.png new file mode 100644 index 000000000000..ccf1d87a5f2f Binary files /dev/null and b/graphics/map_preview/safari_zone/tiles.png differ diff --git a/graphics/map_preview/seafoam_islands/tilemap.bin b/graphics/map_preview/seafoam_islands/tilemap.bin new file mode 100644 index 000000000000..77a8f5afbc7a Binary files /dev/null and b/graphics/map_preview/seafoam_islands/tilemap.bin differ diff --git a/graphics/map_preview/seafoam_islands/tiles.png b/graphics/map_preview/seafoam_islands/tiles.png new file mode 100644 index 000000000000..73e0c016111b Binary files /dev/null and b/graphics/map_preview/seafoam_islands/tiles.png differ diff --git a/graphics/map_preview/silph_co/tilemap.bin b/graphics/map_preview/silph_co/tilemap.bin new file mode 100644 index 000000000000..156a652e6986 Binary files /dev/null and b/graphics/map_preview/silph_co/tilemap.bin differ diff --git a/graphics/map_preview/silph_co/tiles.png b/graphics/map_preview/silph_co/tiles.png new file mode 100644 index 000000000000..06256bf27d91 Binary files /dev/null and b/graphics/map_preview/silph_co/tiles.png differ diff --git a/graphics/map_preview/victory_road/tilemap.bin b/graphics/map_preview/victory_road/tilemap.bin new file mode 100644 index 000000000000..1fa44494c668 Binary files /dev/null and b/graphics/map_preview/victory_road/tilemap.bin differ diff --git a/graphics/map_preview/victory_road/tiles.png b/graphics/map_preview/victory_road/tiles.png new file mode 100644 index 000000000000..157b03b1662e Binary files /dev/null and b/graphics/map_preview/victory_road/tiles.png differ diff --git a/graphics/map_preview/viridian_forest/tilemap.bin b/graphics/map_preview/viridian_forest/tilemap.bin new file mode 100644 index 000000000000..fa30d65d31c2 Binary files /dev/null and b/graphics/map_preview/viridian_forest/tilemap.bin differ diff --git a/graphics/map_preview/viridian_forest/tiles.png b/graphics/map_preview/viridian_forest/tiles.png new file mode 100644 index 000000000000..80ea098e6143 Binary files /dev/null and b/graphics/map_preview/viridian_forest/tiles.png differ diff --git a/graphics/misc/emoticons.png b/graphics/misc/emoticons.png new file mode 100644 index 000000000000..43cb818dab33 Binary files /dev/null and b/graphics/misc/emoticons.png differ diff --git a/graphics/misc/hall_of_fame.png b/graphics/misc/hall_of_fame.png new file mode 100644 index 000000000000..769ca4b35353 Binary files /dev/null and b/graphics/misc/hall_of_fame.png differ diff --git a/graphics/naming_screen/rival.png b/graphics/naming_screen/rival.png new file mode 100644 index 000000000000..b69dadcc47f5 Binary files /dev/null and b/graphics/naming_screen/rival.png differ diff --git a/graphics/oak_speech/bg_tiles.png b/graphics/oak_speech/bg_tiles.png new file mode 100644 index 000000000000..80af31b5299c Binary files /dev/null and b/graphics/oak_speech/bg_tiles.png differ diff --git a/graphics/oak_speech/controls_guide_page_2.bin b/graphics/oak_speech/controls_guide_page_2.bin new file mode 100644 index 000000000000..6d3cd42f1281 Binary files /dev/null and b/graphics/oak_speech/controls_guide_page_2.bin differ diff --git a/graphics/oak_speech/controls_guide_page_3.bin b/graphics/oak_speech/controls_guide_page_3.bin new file mode 100644 index 000000000000..24805c96e2fb Binary files /dev/null and b/graphics/oak_speech/controls_guide_page_3.bin differ diff --git a/graphics/oak_speech/leaf/pal.pal b/graphics/oak_speech/leaf/pal.pal new file mode 100644 index 000000000000..feb1214a160e --- /dev/null +++ b/graphics/oak_speech/leaf/pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 238 205 +246 205 180 +213 164 148 +172 131 106 +106 74 65 +205 164 139 +164 123 98 +115 74 49 +74 41 16 +222 222 222 +180 180 180 +131 131 131 +82 82 90 +41 41 49 +255 255 255 +0 0 0 +131 189 213 +106 156 180 +82 131 156 +49 90 115 +32 65 90 +0 0 255 +255 255 189 +222 222 82 +172 172 57 +98 98 0 +213 131 123 +189 106 98 +164 82 74 +139 57 49 +98 24 16 diff --git a/graphics/oak_speech/leaf/pic.png b/graphics/oak_speech/leaf/pic.png new file mode 100644 index 000000000000..d71e38ca256c Binary files /dev/null and b/graphics/oak_speech/leaf/pic.png differ diff --git a/graphics/oak_speech/oak/pal.pal b/graphics/oak_speech/oak/pal.pal new file mode 100644 index 000000000000..a0b648b2b540 --- /dev/null +++ b/graphics/oak_speech/oak/pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 230 205 +222 189 156 +197 148 115 +106 74 65 +238 222 148 +205 189 115 +172 156 90 +139 123 65 +98 90 49 +255 0 255 +205 205 222 +123 131 156 +57 74 106 +255 255 255 +0 0 0 +0 0 255 +172 148 222 +131 115 172 +82 65 115 +230 222 180 +205 197 156 +180 172 139 +164 156 123 +123 115 90 +82 57 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/oak_speech/oak/pic.png b/graphics/oak_speech/oak/pic.png new file mode 100644 index 000000000000..2fb9cc863f48 Binary files /dev/null and b/graphics/oak_speech/oak/pic.png differ diff --git a/graphics/oak_speech/oak_speech_bg.bin b/graphics/oak_speech/oak_speech_bg.bin new file mode 100644 index 000000000000..64374cd24b55 Binary files /dev/null and b/graphics/oak_speech/oak_speech_bg.bin differ diff --git a/graphics/oak_speech/oak_speech_bg.png b/graphics/oak_speech/oak_speech_bg.png new file mode 100644 index 000000000000..4980199ef266 Binary files /dev/null and b/graphics/oak_speech/oak_speech_bg.png differ diff --git a/graphics/oak_speech/pikachu_intro/body.png b/graphics/oak_speech/pikachu_intro/body.png new file mode 100644 index 000000000000..71644c355c34 Binary files /dev/null and b/graphics/oak_speech/pikachu_intro/body.png differ diff --git a/graphics/oak_speech/pikachu_intro/ears.png b/graphics/oak_speech/pikachu_intro/ears.png new file mode 100644 index 000000000000..e85cbfa9c04b Binary files /dev/null and b/graphics/oak_speech/pikachu_intro/ears.png differ diff --git a/graphics/oak_speech/pikachu_intro/eyes.png b/graphics/oak_speech/pikachu_intro/eyes.png new file mode 100644 index 000000000000..5e2fd80c024d Binary files /dev/null and b/graphics/oak_speech/pikachu_intro/eyes.png differ diff --git a/graphics/oak_speech/pikachu_intro/pikachu.pal b/graphics/oak_speech/pikachu_intro/pikachu.pal new file mode 100644 index 000000000000..4d2e92c74cf6 --- /dev/null +++ b/graphics/oak_speech/pikachu_intro/pikachu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +255 255 255 +255 246 106 +246 213 0 +238 172 0 +197 139 0 +131 82 0 +255 0 255 +255 0 255 +180 180 180 +255 74 74 +230 0 0 +180 0 0 +106 106 106 +16 16 16 +255 0 255 diff --git a/graphics/oak_speech/pikachu_intro/tilemap.bin b/graphics/oak_speech/pikachu_intro/tilemap.bin new file mode 100644 index 000000000000..ad1c8216c7af --- /dev/null +++ b/graphics/oak_speech/pikachu_intro/tilemap.bin @@ -0,0 +1,2 @@ +^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^                                ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ` a b c d e f   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (p q r s t u v   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` g h i j k l m   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (w x y z { | }   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` n o   ` ~    + \ No newline at end of file diff --git a/graphics/oak_speech/platform.pal b/graphics/oak_speech/platform.pal new file mode 100644 index 000000000000..4fb339128176 --- /dev/null +++ b/graphics/oak_speech/platform.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 189 164 +65 139 131 +82 148 139 +106 164 156 +131 180 172 +156 197 189 +180 213 205 +205 230 222 +230 246 238 +0 0 0 +255 0 255 +139 189 164 +156 205 172 +180 222 197 +205 238 222 +115 172 156 diff --git a/graphics/oak_speech/platform.png b/graphics/oak_speech/platform.png new file mode 100644 index 000000000000..2c8e425d215e Binary files /dev/null and b/graphics/oak_speech/platform.png differ diff --git a/graphics/oak_speech/red/pal.pal b/graphics/oak_speech/red/pal.pal new file mode 100644 index 000000000000..7eec09831452 --- /dev/null +++ b/graphics/oak_speech/red/pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 230 205 +222 189 156 +197 148 131 +148 106 90 +106 74 65 +205 164 139 +164 123 98 +115 74 49 +82 65 32 +222 222 222 +180 180 180 +131 131 131 +82 82 90 +57 57 65 +255 255 255 +0 0 0 +131 189 213 +106 156 180 +82 131 156 +49 90 115 +32 65 90 +0 0 255 +238 238 74 +205 205 49 +164 164 32 +98 98 0 +213 131 123 +189 106 98 +164 82 74 +139 57 49 +98 24 16 diff --git a/graphics/oak_speech/red/pic.png b/graphics/oak_speech/red/pic.png new file mode 100644 index 000000000000..0f24d0f59643 Binary files /dev/null and b/graphics/oak_speech/red/pic.png differ diff --git a/graphics/oak_speech/rival/pal.pal b/graphics/oak_speech/rival/pal.pal new file mode 100644 index 000000000000..8240527a6430 --- /dev/null +++ b/graphics/oak_speech/rival/pal.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 230 205 +222 189 156 +197 148 115 +106 74 65 +238 189 74 +213 156 57 +189 123 41 +139 82 41 +164 123 106 +222 222 222 +197 197 197 +139 139 139 +98 98 98 +65 65 65 +255 255 255 +0 0 0 +180 148 180 +139 106 139 +106 74 106 +82 49 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +246 131 131 +205 82 82 diff --git a/graphics/oak_speech/rival/pic.png b/graphics/oak_speech/rival/pic.png new file mode 100644 index 000000000000..ed31011d2189 Binary files /dev/null and b/graphics/oak_speech/rival/pic.png differ diff --git a/graphics/object_events/palettes/meteorite.pal b/graphics/object_events/palettes/meteorite.pal new file mode 100644 index 000000000000..c20bacb57bba --- /dev/null +++ b/graphics/object_events/palettes/meteorite.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 156 197 +32 32 32 +82 82 82 +139 139 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/object_events/palettes/npc_blue.pal b/graphics/object_events/palettes/npc_blue.pal new file mode 100644 index 000000000000..c62e8ce063b6 --- /dev/null +++ b/graphics/object_events/palettes/npc_blue.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +246 189 148 +222 148 115 +123 65 65 +255 222 74 +213 172 32 +131 98 0 +164 139 238 +106 82 189 +65 57 98 +238 115 65 +172 65 57 +74 49 49 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_blue_reflection.pal b/graphics/object_events/palettes/npc_blue_reflection.pal new file mode 100644 index 000000000000..9fdd95ccc6d5 --- /dev/null +++ b/graphics/object_events/palettes/npc_blue_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +255 255 139 +246 230 65 +238 197 32 +197 222 238 +156 180 230 +131 148 205 +255 197 139 +246 156 106 +205 115 90 +255 255 255 +82 82 82 diff --git a/graphics/object_events/palettes/npc_green.pal b/graphics/object_events/palettes/npc_green.pal new file mode 100644 index 000000000000..0c60b08a5b8b --- /dev/null +++ b/graphics/object_events/palettes/npc_green.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +246 189 148 +222 148 115 +123 65 65 +222 189 65 +164 131 32 +82 82 32 +131 205 49 +57 139 0 +32 65 16 +222 148 189 +164 74 131 +82 32 65 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_green_reflection.pal b/graphics/object_events/palettes/npc_green_reflection.pal new file mode 100644 index 000000000000..ae24bbfe4c90 --- /dev/null +++ b/graphics/object_events/palettes/npc_green_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +238 222 98 +222 197 74 +197 172 65 +164 238 148 +131 205 123 +106 172 74 +246 156 213 +213 131 189 +189 115 148 +255 255 255 +82 82 82 diff --git a/graphics/object_events/palettes/npc_pink.pal b/graphics/object_events/palettes/npc_pink.pal new file mode 100644 index 000000000000..e245ba013a74 --- /dev/null +++ b/graphics/object_events/palettes/npc_pink.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +246 189 148 +222 148 115 +123 65 65 +255 164 180 +213 106 123 +139 65 82 +148 197 238 +98 131 205 +57 57 74 +197 197 213 +139 139 148 +74 74 90 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_pink_reflection.pal b/graphics/object_events/palettes/npc_pink_reflection.pal new file mode 100644 index 000000000000..d0e386c7c432 --- /dev/null +++ b/graphics/object_events/palettes/npc_pink_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +255 222 238 +255 180 205 +238 164 172 +205 255 255 +180 230 255 +123 164 213 +222 222 230 +180 180 180 +139 139 148 +255 255 255 +82 82 82 diff --git a/graphics/object_events/palettes/npc_white.pal b/graphics/object_events/palettes/npc_white.pal new file mode 100644 index 000000000000..1646e805e636 --- /dev/null +++ b/graphics/object_events/palettes/npc_white.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +246 189 148 +222 148 115 +123 65 65 +205 172 98 +123 115 65 +57 57 24 +230 106 74 +148 57 41 +82 16 0 +197 197 213 +139 139 148 +74 74 90 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_white_reflection.pal b/graphics/object_events/palettes/npc_white_reflection.pal new file mode 100644 index 000000000000..ae8272ec4ccf --- /dev/null +++ b/graphics/object_events/palettes/npc_white_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +230 205 131 +205 180 106 +164 139 65 +255 197 139 +246 156 106 +205 115 90 +222 222 230 +180 180 180 +139 139 148 +255 255 255 +82 82 82 diff --git a/graphics/object_events/palettes/player_frlg.pal b/graphics/object_events/palettes/player_frlg.pal new file mode 100644 index 000000000000..3097a6556d93 --- /dev/null +++ b/graphics/object_events/palettes/player_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 123 164 +172 123 65 +255 197 148 +222 148 115 +123 65 65 +65 65 213 +57 57 123 +115 164 197 +106 41 41 +238 238 255 +180 180 213 +255 106 74 +197 57 57 +255 222 90 +189 156 57 +0 0 0 diff --git a/graphics/object_events/palettes/player_reflection_frlg.pal b/graphics/object_events/palettes/player_reflection_frlg.pal new file mode 100644 index 000000000000..5537faa0fa63 --- /dev/null +++ b/graphics/object_events/palettes/player_reflection_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 255 246 +238 189 180 +255 255 230 +255 230 197 +205 148 148 +123 164 238 +115 131 197 +172 213 255 +172 123 98 +255 255 255 +222 222 255 +255 230 172 +255 172 172 +255 255 172 +230 205 115 +82 82 82 diff --git a/graphics/object_events/palettes/seagallop.pal b/graphics/object_events/palettes/seagallop.pal new file mode 100644 index 000000000000..c25501332d0d --- /dev/null +++ b/graphics/object_events/palettes/seagallop.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 123 180 +238 246 255 +222 230 238 +189 205 230 +156 164 189 +139 139 156 +98 98 123 +57 57 106 +197 98 98 +172 65 106 +32 74 156 +197 148 0 +246 213 24 +222 238 255 +255 255 255 +74 106 139 diff --git a/graphics/object_events/palettes/ss_anne.pal b/graphics/object_events/palettes/ss_anne.pal new file mode 100644 index 000000000000..cf19fedfaca3 --- /dev/null +++ b/graphics/object_events/palettes/ss_anne.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +57 115 180 +49 131 197 +65 65 82 +139 106 57 +32 82 139 +189 90 32 +222 156 49 +246 205 74 +172 148 90 +82 82 106 +213 213 238 +106 106 139 +131 139 172 +205 180 123 +255 255 255 +16 16 24 diff --git a/graphics/object_events/pics/misc/birth_island_stone_frlg.png b/graphics/object_events/pics/misc/birth_island_stone_frlg.png new file mode 100644 index 000000000000..706049ee0258 Binary files /dev/null and b/graphics/object_events/pics/misc/birth_island_stone_frlg.png differ diff --git a/graphics/object_events/pics/misc/breakable_rock_frlg.png b/graphics/object_events/pics/misc/breakable_rock_frlg.png new file mode 100644 index 000000000000..2ba3a997859b Binary files /dev/null and b/graphics/object_events/pics/misc/breakable_rock_frlg.png differ diff --git a/graphics/object_events/pics/misc/clipboard.png b/graphics/object_events/pics/misc/clipboard.png new file mode 100644 index 000000000000..d5cef50ea795 Binary files /dev/null and b/graphics/object_events/pics/misc/clipboard.png differ diff --git a/graphics/object_events/pics/misc/cuttable_tree_frlg.png b/graphics/object_events/pics/misc/cuttable_tree_frlg.png new file mode 100644 index 000000000000..be22aeaed27a Binary files /dev/null and b/graphics/object_events/pics/misc/cuttable_tree_frlg.png differ diff --git a/graphics/object_events/pics/misc/fossil_frlg.png b/graphics/object_events/pics/misc/fossil_frlg.png new file mode 100644 index 000000000000..2e87e553a3d4 Binary files /dev/null and b/graphics/object_events/pics/misc/fossil_frlg.png differ diff --git a/graphics/object_events/pics/misc/gym_sign.png b/graphics/object_events/pics/misc/gym_sign.png new file mode 100644 index 000000000000..537e9b7181a0 Binary files /dev/null and b/graphics/object_events/pics/misc/gym_sign.png differ diff --git a/graphics/object_events/pics/misc/lapras_doll.png b/graphics/object_events/pics/misc/lapras_doll.png new file mode 100644 index 000000000000..e0d216fb3938 Binary files /dev/null and b/graphics/object_events/pics/misc/lapras_doll.png differ diff --git a/graphics/object_events/pics/misc/old_amber.png b/graphics/object_events/pics/misc/old_amber.png new file mode 100644 index 000000000000..82d7d9424ae2 Binary files /dev/null and b/graphics/object_events/pics/misc/old_amber.png differ diff --git a/graphics/object_events/pics/misc/pokedex.png b/graphics/object_events/pics/misc/pokedex.png new file mode 100644 index 000000000000..9089df95920c Binary files /dev/null and b/graphics/object_events/pics/misc/pokedex.png differ diff --git a/graphics/object_events/pics/misc/pushable_boulder_frlg.png b/graphics/object_events/pics/misc/pushable_boulder_frlg.png new file mode 100644 index 000000000000..2f594708f8ab Binary files /dev/null and b/graphics/object_events/pics/misc/pushable_boulder_frlg.png differ diff --git a/graphics/object_events/pics/misc/ruby.png b/graphics/object_events/pics/misc/ruby.png new file mode 100644 index 000000000000..099670aa30e0 Binary files /dev/null and b/graphics/object_events/pics/misc/ruby.png differ diff --git a/graphics/object_events/pics/misc/sapphire.png b/graphics/object_events/pics/misc/sapphire.png new file mode 100644 index 000000000000..97a278aa5917 Binary files /dev/null and b/graphics/object_events/pics/misc/sapphire.png differ diff --git a/graphics/object_events/pics/misc/seagallop.png b/graphics/object_events/pics/misc/seagallop.png new file mode 100644 index 000000000000..a28a5ab9a9ff Binary files /dev/null and b/graphics/object_events/pics/misc/seagallop.png differ diff --git a/graphics/object_events/pics/misc/sign.png b/graphics/object_events/pics/misc/sign.png new file mode 100644 index 000000000000..c255ad15aa29 Binary files /dev/null and b/graphics/object_events/pics/misc/sign.png differ diff --git a/graphics/object_events/pics/misc/ss_anne.png b/graphics/object_events/pics/misc/ss_anne.png new file mode 100644 index 000000000000..0331e4440905 Binary files /dev/null and b/graphics/object_events/pics/misc/ss_anne.png differ diff --git a/graphics/object_events/pics/misc/surf_blob.png b/graphics/object_events/pics/misc/surf_blob.png new file mode 100644 index 000000000000..82aa7a09c4ea Binary files /dev/null and b/graphics/object_events/pics/misc/surf_blob.png differ diff --git a/graphics/object_events/pics/misc/town_map.png b/graphics/object_events/pics/misc/town_map.png new file mode 100644 index 000000000000..1afb1921ee16 Binary files /dev/null and b/graphics/object_events/pics/misc/town_map.png differ diff --git a/graphics/object_events/pics/misc/wooden_sign.png b/graphics/object_events/pics/misc/wooden_sign.png new file mode 100644 index 000000000000..2717cf7a9511 Binary files /dev/null and b/graphics/object_events/pics/misc/wooden_sign.png differ diff --git a/graphics/object_events/pics/people/agatha.png b/graphics/object_events/pics/people/agatha.png new file mode 100644 index 000000000000..23c3f408b40a Binary files /dev/null and b/graphics/object_events/pics/people/agatha.png differ diff --git a/graphics/object_events/pics/people/balding_man.png b/graphics/object_events/pics/people/balding_man.png new file mode 100644 index 000000000000..7a700408cffe Binary files /dev/null and b/graphics/object_events/pics/people/balding_man.png differ diff --git a/graphics/object_events/pics/people/battle_girl.png b/graphics/object_events/pics/people/battle_girl.png new file mode 100644 index 000000000000..7388424b89d5 Binary files /dev/null and b/graphics/object_events/pics/people/battle_girl.png differ diff --git a/graphics/object_events/pics/people/beauty_frlg.png b/graphics/object_events/pics/people/beauty_frlg.png new file mode 100644 index 000000000000..3874cf9ed1ba Binary files /dev/null and b/graphics/object_events/pics/people/beauty_frlg.png differ diff --git a/graphics/object_events/pics/people/biker.png b/graphics/object_events/pics/people/biker.png new file mode 100644 index 000000000000..ba9ccdd7038e Binary files /dev/null and b/graphics/object_events/pics/people/biker.png differ diff --git a/graphics/object_events/pics/people/bill.png b/graphics/object_events/pics/people/bill.png new file mode 100644 index 000000000000..cbb0ad0c93f4 Binary files /dev/null and b/graphics/object_events/pics/people/bill.png differ diff --git a/graphics/object_events/pics/people/blackbelt.png b/graphics/object_events/pics/people/blackbelt.png new file mode 100644 index 000000000000..7c1aa1d92629 Binary files /dev/null and b/graphics/object_events/pics/people/blackbelt.png differ diff --git a/graphics/object_events/pics/people/blaine.png b/graphics/object_events/pics/people/blaine.png new file mode 100644 index 000000000000..1b54307e9d9c Binary files /dev/null and b/graphics/object_events/pics/people/blaine.png differ diff --git a/graphics/object_events/pics/people/blue.png b/graphics/object_events/pics/people/blue.png new file mode 100644 index 000000000000..80cd7518a1e5 Binary files /dev/null and b/graphics/object_events/pics/people/blue.png differ diff --git a/graphics/object_events/pics/people/boy.png b/graphics/object_events/pics/people/boy.png new file mode 100644 index 000000000000..bb13ed6c0a9c Binary files /dev/null and b/graphics/object_events/pics/people/boy.png differ diff --git a/graphics/object_events/pics/people/brock.png b/graphics/object_events/pics/people/brock.png new file mode 100644 index 000000000000..156f7478ee19 Binary files /dev/null and b/graphics/object_events/pics/people/brock.png differ diff --git a/graphics/object_events/pics/people/bruno.png b/graphics/object_events/pics/people/bruno.png new file mode 100644 index 000000000000..c4b823c3fe9d Binary files /dev/null and b/graphics/object_events/pics/people/bruno.png differ diff --git a/graphics/object_events/pics/people/bug_catcher_frlg.png b/graphics/object_events/pics/people/bug_catcher_frlg.png new file mode 100644 index 000000000000..329f0f9aecad Binary files /dev/null and b/graphics/object_events/pics/people/bug_catcher_frlg.png differ diff --git a/graphics/object_events/pics/people/cable_club_receptionist.png b/graphics/object_events/pics/people/cable_club_receptionist.png new file mode 100644 index 000000000000..54f915e881f4 Binary files /dev/null and b/graphics/object_events/pics/people/cable_club_receptionist.png differ diff --git a/graphics/object_events/pics/people/camper_frlg.png b/graphics/object_events/pics/people/camper_frlg.png new file mode 100644 index 000000000000..d0a0cf5b619a Binary files /dev/null and b/graphics/object_events/pics/people/camper_frlg.png differ diff --git a/graphics/object_events/pics/people/captain.png b/graphics/object_events/pics/people/captain.png new file mode 100644 index 000000000000..21e1b8f7da02 Binary files /dev/null and b/graphics/object_events/pics/people/captain.png differ diff --git a/graphics/object_events/pics/people/celio.png b/graphics/object_events/pics/people/celio.png new file mode 100644 index 000000000000..549546217933 Binary files /dev/null and b/graphics/object_events/pics/people/celio.png differ diff --git a/graphics/object_events/pics/people/channeler.png b/graphics/object_events/pics/people/channeler.png new file mode 100644 index 000000000000..efaa5cfc0bc1 Binary files /dev/null and b/graphics/object_events/pics/people/channeler.png differ diff --git a/graphics/object_events/pics/people/chef.png b/graphics/object_events/pics/people/chef.png new file mode 100644 index 000000000000..a8e726d37cf3 Binary files /dev/null and b/graphics/object_events/pics/people/chef.png differ diff --git a/graphics/object_events/pics/people/clerk.png b/graphics/object_events/pics/people/clerk.png new file mode 100644 index 000000000000..d883102c9e6a Binary files /dev/null and b/graphics/object_events/pics/people/clerk.png differ diff --git a/graphics/object_events/pics/people/cooltrainer_f.png b/graphics/object_events/pics/people/cooltrainer_f.png new file mode 100644 index 000000000000..7cddcfdc148f Binary files /dev/null and b/graphics/object_events/pics/people/cooltrainer_f.png differ diff --git a/graphics/object_events/pics/people/cooltrainer_m.png b/graphics/object_events/pics/people/cooltrainer_m.png new file mode 100644 index 000000000000..6555b1c00cea Binary files /dev/null and b/graphics/object_events/pics/people/cooltrainer_m.png differ diff --git a/graphics/object_events/pics/people/daisy.png b/graphics/object_events/pics/people/daisy.png new file mode 100644 index 000000000000..3fad24b03e3b Binary files /dev/null and b/graphics/object_events/pics/people/daisy.png differ diff --git a/graphics/object_events/pics/people/erika.png b/graphics/object_events/pics/people/erika.png new file mode 100644 index 000000000000..774f00cbb758 Binary files /dev/null and b/graphics/object_events/pics/people/erika.png differ diff --git a/graphics/object_events/pics/people/fat_man_frlg.png b/graphics/object_events/pics/people/fat_man_frlg.png new file mode 100644 index 000000000000..76dd076588ed Binary files /dev/null and b/graphics/object_events/pics/people/fat_man_frlg.png differ diff --git a/graphics/object_events/pics/people/fisher.png b/graphics/object_events/pics/people/fisher.png new file mode 100644 index 000000000000..d160e85e6988 Binary files /dev/null and b/graphics/object_events/pics/people/fisher.png differ diff --git a/graphics/object_events/pics/people/gba_kid.png b/graphics/object_events/pics/people/gba_kid.png new file mode 100644 index 000000000000..1e695d12094c Binary files /dev/null and b/graphics/object_events/pics/people/gba_kid.png differ diff --git a/graphics/object_events/pics/people/gentleman_frlg.png b/graphics/object_events/pics/people/gentleman_frlg.png new file mode 100644 index 000000000000..195a779b6b5e Binary files /dev/null and b/graphics/object_events/pics/people/gentleman_frlg.png differ diff --git a/graphics/object_events/pics/people/giovanni.png b/graphics/object_events/pics/people/giovanni.png new file mode 100644 index 000000000000..9db59fdaf4be Binary files /dev/null and b/graphics/object_events/pics/people/giovanni.png differ diff --git a/graphics/object_events/pics/people/gym_guy.png b/graphics/object_events/pics/people/gym_guy.png new file mode 100644 index 000000000000..4a6bea315f88 Binary files /dev/null and b/graphics/object_events/pics/people/gym_guy.png differ diff --git a/graphics/object_events/pics/people/hiker_frlg.png b/graphics/object_events/pics/people/hiker_frlg.png new file mode 100644 index 000000000000..76ba62db3354 Binary files /dev/null and b/graphics/object_events/pics/people/hiker_frlg.png differ diff --git a/graphics/object_events/pics/people/koga.png b/graphics/object_events/pics/people/koga.png new file mode 100644 index 000000000000..f53968c8650e Binary files /dev/null and b/graphics/object_events/pics/people/koga.png differ diff --git a/graphics/object_events/pics/people/lance.png b/graphics/object_events/pics/people/lance.png new file mode 100644 index 000000000000..51c9508e0b7c Binary files /dev/null and b/graphics/object_events/pics/people/lance.png differ diff --git a/graphics/object_events/pics/people/lass_frlg.png b/graphics/object_events/pics/people/lass_frlg.png new file mode 100644 index 000000000000..26fac268516c Binary files /dev/null and b/graphics/object_events/pics/people/lass_frlg.png differ diff --git a/graphics/object_events/pics/people/leaf/green_bike.png b/graphics/object_events/pics/people/leaf/green_bike.png new file mode 100644 index 000000000000..25958e1e5d7a Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_bike.png differ diff --git a/graphics/object_events/pics/people/leaf/green_fish.png b/graphics/object_events/pics/people/leaf/green_fish.png new file mode 100644 index 000000000000..29c142b18fe0 Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_fish.png differ diff --git a/graphics/object_events/pics/people/leaf/green_item.png b/graphics/object_events/pics/people/leaf/green_item.png new file mode 100644 index 000000000000..b554d08500df Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_item.png differ diff --git a/graphics/object_events/pics/people/leaf/green_normal.png b/graphics/object_events/pics/people/leaf/green_normal.png new file mode 100644 index 000000000000..31ad04085392 Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_normal.png differ diff --git a/graphics/object_events/pics/people/leaf/green_surf.png b/graphics/object_events/pics/people/leaf/green_surf.png new file mode 100644 index 000000000000..a4042a4d29e6 Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_surf.png differ diff --git a/graphics/object_events/pics/people/leaf/green_surf_run.png b/graphics/object_events/pics/people/leaf/green_surf_run.png new file mode 100644 index 000000000000..30db5b193451 Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_surf_run.png differ diff --git a/graphics/object_events/pics/people/leaf/green_vs_seeker_bike.png b/graphics/object_events/pics/people/leaf/green_vs_seeker_bike.png new file mode 100644 index 000000000000..c23f5208173d Binary files /dev/null and b/graphics/object_events/pics/people/leaf/green_vs_seeker_bike.png differ diff --git a/graphics/object_events/pics/people/little_boy_frlg.png b/graphics/object_events/pics/people/little_boy_frlg.png new file mode 100644 index 000000000000..c145d37ef0a9 Binary files /dev/null and b/graphics/object_events/pics/people/little_boy_frlg.png differ diff --git a/graphics/object_events/pics/people/little_girl_frlg.png b/graphics/object_events/pics/people/little_girl_frlg.png new file mode 100644 index 000000000000..523d8db7d1d1 Binary files /dev/null and b/graphics/object_events/pics/people/little_girl_frlg.png differ diff --git a/graphics/object_events/pics/people/lorelei.png b/graphics/object_events/pics/people/lorelei.png new file mode 100644 index 000000000000..e7b8f9dd91db Binary files /dev/null and b/graphics/object_events/pics/people/lorelei.png differ diff --git a/graphics/object_events/pics/people/lt_surge.png b/graphics/object_events/pics/people/lt_surge.png new file mode 100644 index 000000000000..6ebb4ebb851b Binary files /dev/null and b/graphics/object_events/pics/people/lt_surge.png differ diff --git a/graphics/object_events/pics/people/man.png b/graphics/object_events/pics/people/man.png new file mode 100644 index 000000000000..2e39946dd090 Binary files /dev/null and b/graphics/object_events/pics/people/man.png differ diff --git a/graphics/object_events/pics/people/mg_deliveryman.png b/graphics/object_events/pics/people/mg_deliveryman.png new file mode 100644 index 000000000000..ad5e02b5762d Binary files /dev/null and b/graphics/object_events/pics/people/mg_deliveryman.png differ diff --git a/graphics/object_events/pics/people/misty.png b/graphics/object_events/pics/people/misty.png new file mode 100644 index 000000000000..7411bafd2525 Binary files /dev/null and b/graphics/object_events/pics/people/misty.png differ diff --git a/graphics/object_events/pics/people/mom_frlg.png b/graphics/object_events/pics/people/mom_frlg.png new file mode 100644 index 000000000000..b5d6c18e7b88 Binary files /dev/null and b/graphics/object_events/pics/people/mom_frlg.png differ diff --git a/graphics/object_events/pics/people/mr_fuji.png b/graphics/object_events/pics/people/mr_fuji.png new file mode 100644 index 000000000000..37bd5500e8dc Binary files /dev/null and b/graphics/object_events/pics/people/mr_fuji.png differ diff --git a/graphics/object_events/pics/people/nurse_frlg.png b/graphics/object_events/pics/people/nurse_frlg.png new file mode 100644 index 000000000000..56c61882866d Binary files /dev/null and b/graphics/object_events/pics/people/nurse_frlg.png differ diff --git a/graphics/object_events/pics/people/old_man_1.png b/graphics/object_events/pics/people/old_man_1.png new file mode 100644 index 000000000000..ca9c1f5afbe8 Binary files /dev/null and b/graphics/object_events/pics/people/old_man_1.png differ diff --git a/graphics/object_events/pics/people/old_man_2.png b/graphics/object_events/pics/people/old_man_2.png new file mode 100644 index 000000000000..8ed16d9ed125 Binary files /dev/null and b/graphics/object_events/pics/people/old_man_2.png differ diff --git a/graphics/object_events/pics/people/old_man_lying_down.png b/graphics/object_events/pics/people/old_man_lying_down.png new file mode 100644 index 000000000000..05a775388317 Binary files /dev/null and b/graphics/object_events/pics/people/old_man_lying_down.png differ diff --git a/graphics/object_events/pics/people/old_woman_frlg.png b/graphics/object_events/pics/people/old_woman_frlg.png new file mode 100644 index 000000000000..454ae3c14b21 Binary files /dev/null and b/graphics/object_events/pics/people/old_woman_frlg.png differ diff --git a/graphics/object_events/pics/people/picnicker_frlg.png b/graphics/object_events/pics/people/picnicker_frlg.png new file mode 100644 index 000000000000..c04b34bb0c1a Binary files /dev/null and b/graphics/object_events/pics/people/picnicker_frlg.png differ diff --git a/graphics/object_events/pics/people/policeman.png b/graphics/object_events/pics/people/policeman.png new file mode 100644 index 000000000000..6515eaad77b0 Binary files /dev/null and b/graphics/object_events/pics/people/policeman.png differ diff --git a/graphics/object_events/pics/people/prof_oak.png b/graphics/object_events/pics/people/prof_oak.png new file mode 100644 index 000000000000..037b0f966880 Binary files /dev/null and b/graphics/object_events/pics/people/prof_oak.png differ diff --git a/graphics/object_events/pics/people/red/red_bike.png b/graphics/object_events/pics/people/red/red_bike.png new file mode 100644 index 000000000000..fca60266aded Binary files /dev/null and b/graphics/object_events/pics/people/red/red_bike.png differ diff --git a/graphics/object_events/pics/people/red/red_fish.png b/graphics/object_events/pics/people/red/red_fish.png new file mode 100644 index 000000000000..57a64d0e526d Binary files /dev/null and b/graphics/object_events/pics/people/red/red_fish.png differ diff --git a/graphics/object_events/pics/people/red/red_item.png b/graphics/object_events/pics/people/red/red_item.png new file mode 100644 index 000000000000..a462ec469180 Binary files /dev/null and b/graphics/object_events/pics/people/red/red_item.png differ diff --git a/graphics/object_events/pics/people/red/red_normal.png b/graphics/object_events/pics/people/red/red_normal.png new file mode 100644 index 000000000000..377224e2f5c6 Binary files /dev/null and b/graphics/object_events/pics/people/red/red_normal.png differ diff --git a/graphics/object_events/pics/people/red/red_surf.png b/graphics/object_events/pics/people/red/red_surf.png new file mode 100644 index 000000000000..7686de04be3e Binary files /dev/null and b/graphics/object_events/pics/people/red/red_surf.png differ diff --git a/graphics/object_events/pics/people/red/red_surf_run.png b/graphics/object_events/pics/people/red/red_surf_run.png new file mode 100644 index 000000000000..f4473bbae05b Binary files /dev/null and b/graphics/object_events/pics/people/red/red_surf_run.png differ diff --git a/graphics/object_events/pics/people/red/red_vs_seeker_bike.png b/graphics/object_events/pics/people/red/red_vs_seeker_bike.png new file mode 100644 index 000000000000..f0a607af3f74 Binary files /dev/null and b/graphics/object_events/pics/people/red/red_vs_seeker_bike.png differ diff --git a/graphics/object_events/pics/people/rich_boy_frlg.png b/graphics/object_events/pics/people/rich_boy_frlg.png new file mode 100644 index 000000000000..0cde8673870d Binary files /dev/null and b/graphics/object_events/pics/people/rich_boy_frlg.png differ diff --git a/graphics/object_events/pics/people/rocker.png b/graphics/object_events/pics/people/rocker.png new file mode 100644 index 000000000000..20246423c5e6 Binary files /dev/null and b/graphics/object_events/pics/people/rocker.png differ diff --git a/graphics/object_events/pics/people/rocket_f.png b/graphics/object_events/pics/people/rocket_f.png new file mode 100644 index 000000000000..f650d37a8825 Binary files /dev/null and b/graphics/object_events/pics/people/rocket_f.png differ diff --git a/graphics/object_events/pics/people/rocket_m.png b/graphics/object_events/pics/people/rocket_m.png new file mode 100644 index 000000000000..7b1130802b36 Binary files /dev/null and b/graphics/object_events/pics/people/rocket_m.png differ diff --git a/graphics/object_events/pics/people/rs_brendan.png b/graphics/object_events/pics/people/rs_brendan.png new file mode 100644 index 000000000000..22e4775ab97e Binary files /dev/null and b/graphics/object_events/pics/people/rs_brendan.png differ diff --git a/graphics/object_events/pics/people/rs_may.png b/graphics/object_events/pics/people/rs_may.png new file mode 100644 index 000000000000..e3b591b46f92 Binary files /dev/null and b/graphics/object_events/pics/people/rs_may.png differ diff --git a/graphics/object_events/pics/people/sabrina.png b/graphics/object_events/pics/people/sabrina.png new file mode 100644 index 000000000000..e9ba5b3fa2fd Binary files /dev/null and b/graphics/object_events/pics/people/sabrina.png differ diff --git a/graphics/object_events/pics/people/sailor_frlg.png b/graphics/object_events/pics/people/sailor_frlg.png new file mode 100644 index 000000000000..fb20f3d418aa Binary files /dev/null and b/graphics/object_events/pics/people/sailor_frlg.png differ diff --git a/graphics/object_events/pics/people/scientist.png b/graphics/object_events/pics/people/scientist.png new file mode 100644 index 000000000000..9ea707eea440 Binary files /dev/null and b/graphics/object_events/pics/people/scientist.png differ diff --git a/graphics/object_events/pics/people/sitting_boy.png b/graphics/object_events/pics/people/sitting_boy.png new file mode 100644 index 000000000000..00a26639319e Binary files /dev/null and b/graphics/object_events/pics/people/sitting_boy.png differ diff --git a/graphics/object_events/pics/people/super_nerd.png b/graphics/object_events/pics/people/super_nerd.png new file mode 100644 index 000000000000..bddfe2cc987d Binary files /dev/null and b/graphics/object_events/pics/people/super_nerd.png differ diff --git a/graphics/object_events/pics/people/swimmer_f_land.png b/graphics/object_events/pics/people/swimmer_f_land.png new file mode 100644 index 000000000000..5253dc909d10 Binary files /dev/null and b/graphics/object_events/pics/people/swimmer_f_land.png differ diff --git a/graphics/object_events/pics/people/swimmer_f_water.png b/graphics/object_events/pics/people/swimmer_f_water.png new file mode 100644 index 000000000000..664bfc6fff0e Binary files /dev/null and b/graphics/object_events/pics/people/swimmer_f_water.png differ diff --git a/graphics/object_events/pics/people/swimmer_m_land.png b/graphics/object_events/pics/people/swimmer_m_land.png new file mode 100644 index 000000000000..b5e4208227d8 Binary files /dev/null and b/graphics/object_events/pics/people/swimmer_m_land.png differ diff --git a/graphics/object_events/pics/people/swimmer_m_water.png b/graphics/object_events/pics/people/swimmer_m_water.png new file mode 100644 index 000000000000..2a1a111cafe1 Binary files /dev/null and b/graphics/object_events/pics/people/swimmer_m_water.png differ diff --git a/graphics/object_events/pics/people/teachy_tv_host.png b/graphics/object_events/pics/people/teachy_tv_host.png new file mode 100644 index 000000000000..f4588e9f87e9 Binary files /dev/null and b/graphics/object_events/pics/people/teachy_tv_host.png differ diff --git a/graphics/object_events/pics/people/trainer_tower_dude.png b/graphics/object_events/pics/people/trainer_tower_dude.png new file mode 100644 index 000000000000..ea267aba1c99 Binary files /dev/null and b/graphics/object_events/pics/people/trainer_tower_dude.png differ diff --git a/graphics/object_events/pics/people/tuber_f_frlg.png b/graphics/object_events/pics/people/tuber_f_frlg.png new file mode 100644 index 000000000000..3ba1422917a7 Binary files /dev/null and b/graphics/object_events/pics/people/tuber_f_frlg.png differ diff --git a/graphics/object_events/pics/people/tuber_m_land.png b/graphics/object_events/pics/people/tuber_m_land.png new file mode 100644 index 000000000000..c9a903e778e6 Binary files /dev/null and b/graphics/object_events/pics/people/tuber_m_land.png differ diff --git a/graphics/object_events/pics/people/tuber_m_water.png b/graphics/object_events/pics/people/tuber_m_water.png new file mode 100644 index 000000000000..0b0adfbf4a39 Binary files /dev/null and b/graphics/object_events/pics/people/tuber_m_water.png differ diff --git a/graphics/object_events/pics/people/union_room_receptionist.png b/graphics/object_events/pics/people/union_room_receptionist.png new file mode 100644 index 000000000000..78596e6f96af Binary files /dev/null and b/graphics/object_events/pics/people/union_room_receptionist.png differ diff --git a/graphics/object_events/pics/people/woman_1_frlg.png b/graphics/object_events/pics/people/woman_1_frlg.png new file mode 100644 index 000000000000..73fef57d09f6 Binary files /dev/null and b/graphics/object_events/pics/people/woman_1_frlg.png differ diff --git a/graphics/object_events/pics/people/woman_2_frlg.png b/graphics/object_events/pics/people/woman_2_frlg.png new file mode 100644 index 000000000000..1242f1fb92e1 Binary files /dev/null and b/graphics/object_events/pics/people/woman_2_frlg.png differ diff --git a/graphics/object_events/pics/people/woman_3_frlg.png b/graphics/object_events/pics/people/woman_3_frlg.png new file mode 100644 index 000000000000..753d0e7f715f Binary files /dev/null and b/graphics/object_events/pics/people/woman_3_frlg.png differ diff --git a/graphics/object_events/pics/people/worker_f.png b/graphics/object_events/pics/people/worker_f.png new file mode 100644 index 000000000000..d6f592e3df37 Binary files /dev/null and b/graphics/object_events/pics/people/worker_f.png differ diff --git a/graphics/object_events/pics/people/worker_m.png b/graphics/object_events/pics/people/worker_m.png new file mode 100644 index 000000000000..4a9aef4406e4 Binary files /dev/null and b/graphics/object_events/pics/people/worker_m.png differ diff --git a/graphics/object_events/pics/people/youngster_frlg.png b/graphics/object_events/pics/people/youngster_frlg.png new file mode 100644 index 000000000000..6c44de413053 Binary files /dev/null and b/graphics/object_events/pics/people/youngster_frlg.png differ diff --git a/graphics/object_events/pics/pokemon_old/articuno.png b/graphics/object_events/pics/pokemon_old/articuno.png new file mode 100644 index 000000000000..c062c60224a4 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/articuno.png differ diff --git a/graphics/object_events/pics/pokemon_old/celebi.png b/graphics/object_events/pics/pokemon_old/celebi.png new file mode 100644 index 000000000000..743a072d2395 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/celebi.png differ diff --git a/graphics/object_events/pics/pokemon_old/chansey.png b/graphics/object_events/pics/pokemon_old/chansey.png new file mode 100644 index 000000000000..f726385e313b Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/chansey.png differ diff --git a/graphics/object_events/pics/pokemon_old/clefairy.png b/graphics/object_events/pics/pokemon_old/clefairy.png new file mode 100644 index 000000000000..9d19a965125d Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/clefairy.png differ diff --git a/graphics/object_events/pics/pokemon_old/cubone.png b/graphics/object_events/pics/pokemon_old/cubone.png new file mode 100644 index 000000000000..a545655c66ff Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/cubone.png differ diff --git a/graphics/object_events/pics/pokemon_old/deoxys_a.png b/graphics/object_events/pics/pokemon_old/deoxys_a.png new file mode 100644 index 000000000000..741668a5770e Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/deoxys_a.png differ diff --git a/graphics/object_events/pics/pokemon_old/deoxys_d.png b/graphics/object_events/pics/pokemon_old/deoxys_d.png new file mode 100644 index 000000000000..236ac6b538f1 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/deoxys_d.png differ diff --git a/graphics/object_events/pics/pokemon_old/deoxys_n.png b/graphics/object_events/pics/pokemon_old/deoxys_n.png new file mode 100644 index 000000000000..2cb74e4bb9e6 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/deoxys_n.png differ diff --git a/graphics/object_events/pics/pokemon_old/doduo.png b/graphics/object_events/pics/pokemon_old/doduo.png new file mode 100644 index 000000000000..de751d31951b Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/doduo.png differ diff --git a/graphics/object_events/pics/pokemon_old/entei.png b/graphics/object_events/pics/pokemon_old/entei.png new file mode 100644 index 000000000000..c646f7bcea93 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/entei.png differ diff --git a/graphics/object_events/pics/pokemon_old/fearow.png b/graphics/object_events/pics/pokemon_old/fearow.png new file mode 100644 index 000000000000..905c00904128 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/fearow.png differ diff --git a/graphics/object_events/pics/pokemon_old/jigglypuff.png b/graphics/object_events/pics/pokemon_old/jigglypuff.png new file mode 100644 index 000000000000..392e6c376c53 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/jigglypuff.png differ diff --git a/graphics/object_events/pics/pokemon_old/kabuto.png b/graphics/object_events/pics/pokemon_old/kabuto.png new file mode 100644 index 000000000000..f0d7eea254d0 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/kabuto.png differ diff --git a/graphics/object_events/pics/pokemon_old/kangaskhan.png b/graphics/object_events/pics/pokemon_old/kangaskhan.png new file mode 100644 index 000000000000..cb54d68e0b79 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/kangaskhan.png differ diff --git a/graphics/object_events/pics/pokemon_old/lapras.png b/graphics/object_events/pics/pokemon_old/lapras.png new file mode 100644 index 000000000000..382214434028 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/lapras.png differ diff --git a/graphics/object_events/pics/pokemon_old/machoke.png b/graphics/object_events/pics/pokemon_old/machoke.png new file mode 100644 index 000000000000..6ca59cd2986f Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/machoke.png differ diff --git a/graphics/object_events/pics/pokemon_old/machop.png b/graphics/object_events/pics/pokemon_old/machop.png new file mode 100644 index 000000000000..c1ed7783c38d Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/machop.png differ diff --git a/graphics/object_events/pics/pokemon_old/meowth.png b/graphics/object_events/pics/pokemon_old/meowth.png new file mode 100644 index 000000000000..1bb43750555b Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/meowth.png differ diff --git a/graphics/object_events/pics/pokemon_old/mewtwo.png b/graphics/object_events/pics/pokemon_old/mewtwo.png new file mode 100644 index 000000000000..a587d78a9a20 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/mewtwo.png differ diff --git a/graphics/object_events/pics/pokemon_old/moltres.png b/graphics/object_events/pics/pokemon_old/moltres.png new file mode 100644 index 000000000000..d9b6a0b685a1 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/moltres.png differ diff --git a/graphics/object_events/pics/pokemon_old/nidoran_f.png b/graphics/object_events/pics/pokemon_old/nidoran_f.png new file mode 100644 index 000000000000..c58f6b90d620 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/nidoran_f.png differ diff --git a/graphics/object_events/pics/pokemon_old/nidoran_m.png b/graphics/object_events/pics/pokemon_old/nidoran_m.png new file mode 100644 index 000000000000..ff5100acfc2b Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/nidoran_m.png differ diff --git a/graphics/object_events/pics/pokemon_old/nidorino.png b/graphics/object_events/pics/pokemon_old/nidorino.png new file mode 100644 index 000000000000..de86d7ea2228 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/nidorino.png differ diff --git a/graphics/object_events/pics/pokemon_old/omanyte.png b/graphics/object_events/pics/pokemon_old/omanyte.png new file mode 100644 index 000000000000..20c5ade4d3e0 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/omanyte.png differ diff --git a/graphics/object_events/pics/pokemon_old/pidgeot.png b/graphics/object_events/pics/pokemon_old/pidgeot.png new file mode 100644 index 000000000000..ce69c0aabfd2 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/pidgeot.png differ diff --git a/graphics/object_events/pics/pokemon_old/pidgey.png b/graphics/object_events/pics/pokemon_old/pidgey.png new file mode 100644 index 000000000000..4671157225bc Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/pidgey.png differ diff --git a/graphics/object_events/pics/pokemon_old/pikachu_frlg.png b/graphics/object_events/pics/pokemon_old/pikachu_frlg.png new file mode 100644 index 000000000000..03b4a1481a12 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/pikachu_frlg.png differ diff --git a/graphics/object_events/pics/pokemon_old/poliwrath.png b/graphics/object_events/pics/pokemon_old/poliwrath.png new file mode 100644 index 000000000000..20092214222a Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/poliwrath.png differ diff --git a/graphics/object_events/pics/pokemon_old/psyduck.png b/graphics/object_events/pics/pokemon_old/psyduck.png new file mode 100644 index 000000000000..c3d35325ff7b Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/psyduck.png differ diff --git a/graphics/object_events/pics/pokemon_old/raikou.png b/graphics/object_events/pics/pokemon_old/raikou.png new file mode 100644 index 000000000000..727d674e87ee Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/raikou.png differ diff --git a/graphics/object_events/pics/pokemon_old/seel.png b/graphics/object_events/pics/pokemon_old/seel.png new file mode 100644 index 000000000000..23a6597f5728 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/seel.png differ diff --git a/graphics/object_events/pics/pokemon_old/slowbro.png b/graphics/object_events/pics/pokemon_old/slowbro.png new file mode 100644 index 000000000000..221a185a24c2 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/slowbro.png differ diff --git a/graphics/object_events/pics/pokemon_old/slowpoke.png b/graphics/object_events/pics/pokemon_old/slowpoke.png new file mode 100644 index 000000000000..fd9274f6bdb7 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/slowpoke.png differ diff --git a/graphics/object_events/pics/pokemon_old/snorlax.png b/graphics/object_events/pics/pokemon_old/snorlax.png new file mode 100644 index 000000000000..b8affc19b374 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/snorlax.png differ diff --git a/graphics/object_events/pics/pokemon_old/spearow.png b/graphics/object_events/pics/pokemon_old/spearow.png new file mode 100644 index 000000000000..f27077751b10 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/spearow.png differ diff --git a/graphics/object_events/pics/pokemon_old/suicune.png b/graphics/object_events/pics/pokemon_old/suicune.png new file mode 100644 index 000000000000..f471416e67ae Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/suicune.png differ diff --git a/graphics/object_events/pics/pokemon_old/voltorb.png b/graphics/object_events/pics/pokemon_old/voltorb.png new file mode 100644 index 000000000000..7cc03e093e8c Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/voltorb.png differ diff --git a/graphics/object_events/pics/pokemon_old/wigglytuff.png b/graphics/object_events/pics/pokemon_old/wigglytuff.png new file mode 100644 index 000000000000..18f4abef40a3 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/wigglytuff.png differ diff --git a/graphics/object_events/pics/pokemon_old/zapdos.png b/graphics/object_events/pics/pokemon_old/zapdos.png new file mode 100644 index 000000000000..58dfd65fa4c6 Binary files /dev/null and b/graphics/object_events/pics/pokemon_old/zapdos.png differ diff --git a/graphics/pachinko/LevelCollision/Level_01.bin b/graphics/pachinko/LevelCollision/Level_01.bin new file mode 100644 index 000000000000..416a26cf1e92 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_01.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_02.bin b/graphics/pachinko/LevelCollision/Level_02.bin new file mode 100644 index 000000000000..843de630e4c5 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_02.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_03.bin b/graphics/pachinko/LevelCollision/Level_03.bin new file mode 100644 index 000000000000..ed54e8b19311 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_03.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_04.bin b/graphics/pachinko/LevelCollision/Level_04.bin new file mode 100644 index 000000000000..90a6140ddae8 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_04.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_05.bin b/graphics/pachinko/LevelCollision/Level_05.bin new file mode 100644 index 000000000000..01949c59279a Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_05.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_06.bin b/graphics/pachinko/LevelCollision/Level_06.bin new file mode 100644 index 000000000000..768467ba3298 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_06.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_07.bin b/graphics/pachinko/LevelCollision/Level_07.bin new file mode 100644 index 000000000000..f3f780a2214b Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_07.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_08.bin b/graphics/pachinko/LevelCollision/Level_08.bin new file mode 100644 index 000000000000..cc9acee22133 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_08.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_09.bin b/graphics/pachinko/LevelCollision/Level_09.bin new file mode 100644 index 000000000000..26bedc5353f6 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_09.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_10.bin b/graphics/pachinko/LevelCollision/Level_10.bin new file mode 100644 index 000000000000..6487b278a687 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_10.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_11.bin b/graphics/pachinko/LevelCollision/Level_11.bin new file mode 100644 index 000000000000..35457dd1907e Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_11.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_12.bin b/graphics/pachinko/LevelCollision/Level_12.bin new file mode 100644 index 000000000000..a3431655a82b Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_12.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_13.bin b/graphics/pachinko/LevelCollision/Level_13.bin new file mode 100644 index 000000000000..5cd6e51e214c Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_13.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_14.bin b/graphics/pachinko/LevelCollision/Level_14.bin new file mode 100644 index 000000000000..6a2393ad425a Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_14.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_15.bin b/graphics/pachinko/LevelCollision/Level_15.bin new file mode 100644 index 000000000000..614b5cba37c7 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_15.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_16.bin b/graphics/pachinko/LevelCollision/Level_16.bin new file mode 100644 index 000000000000..77ae6d88ee81 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_16.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_17.bin b/graphics/pachinko/LevelCollision/Level_17.bin new file mode 100644 index 000000000000..0336dc7552dd Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_17.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_18.bin b/graphics/pachinko/LevelCollision/Level_18.bin new file mode 100644 index 000000000000..2c9ad815cdff Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_18.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_19.bin b/graphics/pachinko/LevelCollision/Level_19.bin new file mode 100644 index 000000000000..0d07d9a7e34b Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_19.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_20.bin b/graphics/pachinko/LevelCollision/Level_20.bin new file mode 100644 index 000000000000..2c3b1b7bc195 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_20.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_21.bin b/graphics/pachinko/LevelCollision/Level_21.bin new file mode 100644 index 000000000000..90c3f901ab5c Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_21.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_22.bin b/graphics/pachinko/LevelCollision/Level_22.bin new file mode 100644 index 000000000000..740875ba7856 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_22.bin differ diff --git a/graphics/pachinko/LevelCollision/Level_23.bin b/graphics/pachinko/LevelCollision/Level_23.bin new file mode 100644 index 000000000000..05a4fd25ffc3 Binary files /dev/null and b/graphics/pachinko/LevelCollision/Level_23.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_01.bin b/graphics/pachinko/LevelTilemaps/Level_01.bin new file mode 100644 index 000000000000..73c13bb4af00 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_01.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_02.bin b/graphics/pachinko/LevelTilemaps/Level_02.bin new file mode 100644 index 000000000000..870dbb782acf Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_02.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_03.bin b/graphics/pachinko/LevelTilemaps/Level_03.bin new file mode 100644 index 000000000000..880390f7073c Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_03.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_04.bin b/graphics/pachinko/LevelTilemaps/Level_04.bin new file mode 100644 index 000000000000..d3766261f75e Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_04.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_05.bin b/graphics/pachinko/LevelTilemaps/Level_05.bin new file mode 100644 index 000000000000..4eb738212842 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_05.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_06.bin b/graphics/pachinko/LevelTilemaps/Level_06.bin new file mode 100644 index 000000000000..5328e493884b Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_06.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_07.bin b/graphics/pachinko/LevelTilemaps/Level_07.bin new file mode 100644 index 000000000000..049fac645c33 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_07.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_08.bin b/graphics/pachinko/LevelTilemaps/Level_08.bin new file mode 100644 index 000000000000..b082507fc650 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_08.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_09.bin b/graphics/pachinko/LevelTilemaps/Level_09.bin new file mode 100644 index 000000000000..ebb31f58c814 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_09.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_10.bin b/graphics/pachinko/LevelTilemaps/Level_10.bin new file mode 100644 index 000000000000..190ef0171864 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_10.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_11.bin b/graphics/pachinko/LevelTilemaps/Level_11.bin new file mode 100644 index 000000000000..d47f8e2a0fae Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_11.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_12.bin b/graphics/pachinko/LevelTilemaps/Level_12.bin new file mode 100644 index 000000000000..93209c94600c Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_12.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_13.bin b/graphics/pachinko/LevelTilemaps/Level_13.bin new file mode 100644 index 000000000000..b6dd0bf1f783 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_13.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_14.bin b/graphics/pachinko/LevelTilemaps/Level_14.bin new file mode 100644 index 000000000000..30d92e1dde27 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_14.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_15.bin b/graphics/pachinko/LevelTilemaps/Level_15.bin new file mode 100644 index 000000000000..278c9dc0ceb0 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_15.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_16.bin b/graphics/pachinko/LevelTilemaps/Level_16.bin new file mode 100644 index 000000000000..47cc5d6be7ea Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_16.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_17.bin b/graphics/pachinko/LevelTilemaps/Level_17.bin new file mode 100644 index 000000000000..c0687325cf10 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_17.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_18.bin b/graphics/pachinko/LevelTilemaps/Level_18.bin new file mode 100644 index 000000000000..df5d540f4965 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_18.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_19.bin b/graphics/pachinko/LevelTilemaps/Level_19.bin new file mode 100644 index 000000000000..425b656604bd Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_19.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_20.bin b/graphics/pachinko/LevelTilemaps/Level_20.bin new file mode 100644 index 000000000000..5abbe8416bf9 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_20.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_21.bin b/graphics/pachinko/LevelTilemaps/Level_21.bin new file mode 100644 index 000000000000..93ff98558f59 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_21.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_22.bin b/graphics/pachinko/LevelTilemaps/Level_22.bin new file mode 100644 index 000000000000..f98aba222daf Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_22.bin differ diff --git a/graphics/pachinko/LevelTilemaps/Level_23.bin b/graphics/pachinko/LevelTilemaps/Level_23.bin new file mode 100644 index 000000000000..5b646555bc14 Binary files /dev/null and b/graphics/pachinko/LevelTilemaps/Level_23.bin differ diff --git a/graphics/pachinko/arrow.pal b/graphics/pachinko/arrow.pal new file mode 100644 index 000000000000..8a11a121c776 --- /dev/null +++ b/graphics/pachinko/arrow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +40 216 136 +144 32 0 +248 112 112 +96 104 96 +88 80 64 +248 56 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pachinko/arrow.png b/graphics/pachinko/arrow.png new file mode 100644 index 000000000000..87ed3bb92993 Binary files /dev/null and b/graphics/pachinko/arrow.png differ diff --git a/graphics/pachinko/bg_indexed.pal b/graphics/pachinko/bg_indexed.pal new file mode 100644 index 000000000000..14ab78f1e02d --- /dev/null +++ b/graphics/pachinko/bg_indexed.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +247 247 247 +255 255 57 +231 222 231 +255 206 66 +181 173 181 +198 173 123 +66 239 123 +49 214 132 +173 140 90 +57 189 123 +41 173 132 +49 156 115 +115 115 123 +132 115 74 +82 123 99 +90 82 66 diff --git a/graphics/pachinko/bgtiles.png b/graphics/pachinko/bgtiles.png new file mode 100644 index 000000000000..df932b7d9349 Binary files /dev/null and b/graphics/pachinko/bgtiles.png differ diff --git a/graphics/pachinko/collisionmap.bin b/graphics/pachinko/collisionmap.bin new file mode 100644 index 000000000000..416a26cf1e92 Binary files /dev/null and b/graphics/pachinko/collisionmap.bin differ diff --git a/graphics/pachinko/gameover.pal b/graphics/pachinko/gameover.pal new file mode 100644 index 000000000000..31d24155b6cf --- /dev/null +++ b/graphics/pachinko/gameover.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +137 17 164 +174 174 0 +255 9 0 +59 59 0 +255 255 0 +255 255 255 +138 134 138 +0 0 0 +255 77 0 +4 8 0 +255 224 0 +101 105 23 +83 35 101 +200 196 200 +255 147 0 +62 0 89 diff --git a/graphics/pachinko/gameover.png b/graphics/pachinko/gameover.png new file mode 100644 index 000000000000..8d4f8b05f684 Binary files /dev/null and b/graphics/pachinko/gameover.png differ diff --git a/graphics/pachinko/input_numbers.pal b/graphics/pachinko/input_numbers.pal new file mode 100644 index 000000000000..6707ca45b813 --- /dev/null +++ b/graphics/pachinko/input_numbers.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +40 40 40 +248 55 76 +255 255 255 +255 206 66 +255 255 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pachinko/input_numbers.png b/graphics/pachinko/input_numbers.png new file mode 100644 index 000000000000..fc94b3c33953 Binary files /dev/null and b/graphics/pachinko/input_numbers.png differ diff --git a/graphics/pachinko/lives.pal b/graphics/pachinko/lives.pal new file mode 100644 index 000000000000..2204516f59f9 --- /dev/null +++ b/graphics/pachinko/lives.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +40 216 136 +148 49 0 +255 80 64 +88 80 64 +238 49 0 +96 104 96 +247 255 242 +192 168 192 +232 216 232 +136 152 144 +112 112 120 +168 168 168 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pachinko/lives.png b/graphics/pachinko/lives.png new file mode 100644 index 000000000000..a5f4f6feb48f Binary files /dev/null and b/graphics/pachinko/lives.png differ diff --git a/graphics/pachinko/multiplier.pal b/graphics/pachinko/multiplier.pal new file mode 100644 index 000000000000..07e41edefa61 --- /dev/null +++ b/graphics/pachinko/multiplier.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +136 152 144 +168 168 168 +152 152 152 +96 104 96 +112 112 120 +224 48 96 +104 8 184 +144 16 152 +255 255 255 +184 32 128 +255 75 122 +216 216 216 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pachinko/multiplier.png b/graphics/pachinko/multiplier.png new file mode 100644 index 000000000000..f0ed5a1d50eb Binary files /dev/null and b/graphics/pachinko/multiplier.png differ diff --git a/graphics/pachinko/newlevel.pal b/graphics/pachinko/newlevel.pal new file mode 100644 index 000000000000..ea265aa5ac4d --- /dev/null +++ b/graphics/pachinko/newlevel.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +40 216 136 +88 80 64 +96 104 96 +144 16 152 +224 48 96 +48 8 16 +255 75 122 +208 208 232 +104 8 184 +248 248 248 +184 32 128 +248 152 136 +248 200 64 +248 248 56 +0 0 0 +0 0 0 diff --git a/graphics/pachinko/newlevel.png b/graphics/pachinko/newlevel.png new file mode 100644 index 000000000000..ec6dd1e75f2c Binary files /dev/null and b/graphics/pachinko/newlevel.png differ diff --git a/graphics/pachinko/pachinkobg1.bin b/graphics/pachinko/pachinkobg1.bin new file mode 100644 index 000000000000..73c13bb4af00 Binary files /dev/null and b/graphics/pachinko/pachinkobg1.bin differ diff --git a/graphics/pachinko/speed.pal b/graphics/pachinko/speed.pal new file mode 100644 index 000000000000..427c01818538 --- /dev/null +++ b/graphics/pachinko/speed.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +192 168 192 +247 255 242 +64 120 88 +88 80 64 +123 123 123 +148 230 65 +205 255 115 +248 248 56 +248 200 64 +255 156 82 +238 49 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pachinko/speed.png b/graphics/pachinko/speed.png new file mode 100644 index 000000000000..9b6a6863b4d0 Binary files /dev/null and b/graphics/pachinko/speed.png differ diff --git a/graphics/pachinko/spider.pal b/graphics/pachinko/spider.pal new file mode 100644 index 000000000000..acb58dcca2c7 --- /dev/null +++ b/graphics/pachinko/spider.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 95 255 +189 189 189 +247 255 242 +123 123 123 +82 123 41 +49 82 16 +148 230 65 +16 16 16 +98 189 32 +205 255 115 +148 123 49 +255 255 90 +180 164 49 +148 49 0 +255 156 82 +238 49 0 diff --git a/graphics/pachinko/spider.png b/graphics/pachinko/spider.png new file mode 100644 index 000000000000..c4c7496060ed Binary files /dev/null and b/graphics/pachinko/spider.png differ diff --git a/graphics/pachinko/title.pal b/graphics/pachinko/title.pal new file mode 100644 index 000000000000..726879284286 --- /dev/null +++ b/graphics/pachinko/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +110 64 122 +118 155 8 +60 75 37 +255 0 5 +132 246 27 +213 207 213 +167 160 167 +225 173 6 +20 7 25 +35 43 25 +103 117 5 +255 243 9 +112 106 112 +108 194 16 +243 236 243 +78 32 90 diff --git a/graphics/pachinko/title.png b/graphics/pachinko/title.png new file mode 100644 index 000000000000..2132718f6edf Binary files /dev/null and b/graphics/pachinko/title.png differ diff --git a/graphics/pachinko/win.pal b/graphics/pachinko/win.pal new file mode 100644 index 000000000000..b960d1dd5fc5 --- /dev/null +++ b/graphics/pachinko/win.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +108 34 134 +167 143 0 +69 63 0 +255 227 0 +203 192 203 +118 121 125 +81 47 87 +24 31 15 +116 100 0 +236 232 236 +159 159 159 +85 88 91 +62 19 74 +211 179 0 +46 54 51 +13 4 18 diff --git a/graphics/pachinko/win.png b/graphics/pachinko/win.png new file mode 100644 index 000000000000..37addf69f97b Binary files /dev/null and b/graphics/pachinko/win.png differ diff --git a/graphics/pinball/ball_pokeball.png b/graphics/pinball/ball_pokeball.png new file mode 100644 index 000000000000..273f981b8219 Binary files /dev/null and b/graphics/pinball/ball_pokeball.png differ diff --git a/graphics/pinball/bg_collision_map_diglett.bin b/graphics/pinball/bg_collision_map_diglett.bin new file mode 100644 index 000000000000..6c8fdf228299 Binary files /dev/null and b/graphics/pinball/bg_collision_map_diglett.bin differ diff --git a/graphics/pinball/bg_collision_map_diglett_entrance.bin b/graphics/pinball/bg_collision_map_diglett_entrance.bin new file mode 100644 index 000000000000..26d5afa0ffbb Binary files /dev/null and b/graphics/pinball/bg_collision_map_diglett_entrance.bin differ diff --git a/graphics/pinball/bg_collision_map_gengar.bin b/graphics/pinball/bg_collision_map_gengar.bin new file mode 100644 index 000000000000..11d37dbf8420 Binary files /dev/null and b/graphics/pinball/bg_collision_map_gengar.bin differ diff --git a/graphics/pinball/bg_collision_map_gengar_entrance.bin b/graphics/pinball/bg_collision_map_gengar_entrance.bin new file mode 100644 index 000000000000..f276e982620c Binary files /dev/null and b/graphics/pinball/bg_collision_map_gengar_entrance.bin differ diff --git a/graphics/pinball/bg_collision_map_meowth.bin b/graphics/pinball/bg_collision_map_meowth.bin new file mode 100644 index 000000000000..6289f10f9ae3 Binary files /dev/null and b/graphics/pinball/bg_collision_map_meowth.bin differ diff --git a/graphics/pinball/bg_collision_map_meowth_entrance.bin b/graphics/pinball/bg_collision_map_meowth_entrance.bin new file mode 100644 index 000000000000..28b8daa11fe7 Binary files /dev/null and b/graphics/pinball/bg_collision_map_meowth_entrance.bin differ diff --git a/graphics/pinball/bg_collision_map_seel.bin b/graphics/pinball/bg_collision_map_seel.bin new file mode 100644 index 000000000000..404dccd21604 Binary files /dev/null and b/graphics/pinball/bg_collision_map_seel.bin differ diff --git a/graphics/pinball/bg_collision_map_seel_entrance.bin b/graphics/pinball/bg_collision_map_seel_entrance.bin new file mode 100644 index 000000000000..aecbdfccc13c Binary files /dev/null and b/graphics/pinball/bg_collision_map_seel_entrance.bin differ diff --git a/graphics/pinball/bg_collision_masks_diglett.png b/graphics/pinball/bg_collision_masks_diglett.png new file mode 100644 index 000000000000..c017f1ba20d9 Binary files /dev/null and b/graphics/pinball/bg_collision_masks_diglett.png differ diff --git a/graphics/pinball/bg_collision_masks_gengar.png b/graphics/pinball/bg_collision_masks_gengar.png new file mode 100644 index 000000000000..6d8fe2b08157 Binary files /dev/null and b/graphics/pinball/bg_collision_masks_gengar.png differ diff --git a/graphics/pinball/bg_collision_masks_meowth.png b/graphics/pinball/bg_collision_masks_meowth.png new file mode 100644 index 000000000000..e7dcdee41379 Binary files /dev/null and b/graphics/pinball/bg_collision_masks_meowth.png differ diff --git a/graphics/pinball/bg_collision_masks_seel.png b/graphics/pinball/bg_collision_masks_seel.png new file mode 100644 index 000000000000..e7dcdee41379 Binary files /dev/null and b/graphics/pinball/bg_collision_masks_seel.png differ diff --git a/graphics/pinball/bg_cover_tiles.png b/graphics/pinball/bg_cover_tiles.png new file mode 100644 index 000000000000..b0331435760f Binary files /dev/null and b/graphics/pinball/bg_cover_tiles.png differ diff --git a/graphics/pinball/bg_tilemap_cover.bin b/graphics/pinball/bg_tilemap_cover.bin new file mode 100644 index 000000000000..9618f128c37c Binary files /dev/null and b/graphics/pinball/bg_tilemap_cover.bin differ diff --git a/graphics/pinball/bg_tilemap_diglett.bin b/graphics/pinball/bg_tilemap_diglett.bin new file mode 100644 index 000000000000..a4325d8ed5ca Binary files /dev/null and b/graphics/pinball/bg_tilemap_diglett.bin differ diff --git a/graphics/pinball/bg_tilemap_gengar.bin b/graphics/pinball/bg_tilemap_gengar.bin new file mode 100644 index 000000000000..a53faf193784 Binary files /dev/null and b/graphics/pinball/bg_tilemap_gengar.bin differ diff --git a/graphics/pinball/bg_tilemap_meowth.bin b/graphics/pinball/bg_tilemap_meowth.bin new file mode 100644 index 000000000000..bbe3bc643b88 Binary files /dev/null and b/graphics/pinball/bg_tilemap_meowth.bin differ diff --git a/graphics/pinball/bg_tilemap_seel.bin b/graphics/pinball/bg_tilemap_seel.bin new file mode 100644 index 000000000000..5caf15ccfd45 Binary files /dev/null and b/graphics/pinball/bg_tilemap_seel.bin differ diff --git a/graphics/pinball/bg_tiles_diglett.png b/graphics/pinball/bg_tiles_diglett.png new file mode 100644 index 000000000000..5b473842e001 Binary files /dev/null and b/graphics/pinball/bg_tiles_diglett.png differ diff --git a/graphics/pinball/bg_tiles_gengar.pal b/graphics/pinball/bg_tiles_gengar.pal new file mode 100644 index 000000000000..2e652162f5e7 --- /dev/null +++ b/graphics/pinball/bg_tiles_gengar.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +16 64 64 +96 140 112 +96 96 120 +128 184 136 +32 88 88 +160 136 112 +192 192 168 +64 72 104 +144 144 136 +32 100 96 +128 104 104 +208 208 192 +40 64 72 +88 72 80 +56 108 88 +40 76 64 diff --git a/graphics/pinball/bg_tiles_gengar.png b/graphics/pinball/bg_tiles_gengar.png new file mode 100644 index 000000000000..23579262cba8 Binary files /dev/null and b/graphics/pinball/bg_tiles_gengar.png differ diff --git a/graphics/pinball/bg_tiles_meowth.png b/graphics/pinball/bg_tiles_meowth.png new file mode 100644 index 000000000000..036779f1041f Binary files /dev/null and b/graphics/pinball/bg_tiles_meowth.png differ diff --git a/graphics/pinball/bg_tiles_seel.png b/graphics/pinball/bg_tiles_seel.png new file mode 100644 index 000000000000..445df918c17f Binary files /dev/null and b/graphics/pinball/bg_tiles_seel.png differ diff --git a/graphics/pinball/dugtrio_animation.png b/graphics/pinball/dugtrio_animation.png new file mode 100644 index 000000000000..cf8508df3e18 Binary files /dev/null and b/graphics/pinball/dugtrio_animation.png differ diff --git a/graphics/pinball/flipper.png b/graphics/pinball/flipper.png new file mode 100644 index 000000000000..a020c144d6c8 Binary files /dev/null and b/graphics/pinball/flipper.png differ diff --git a/graphics/pinball/flipper_left_masks_minigame.png b/graphics/pinball/flipper_left_masks_minigame.png new file mode 100644 index 000000000000..c248cb452180 Binary files /dev/null and b/graphics/pinball/flipper_left_masks_minigame.png differ diff --git a/graphics/pinball/flipper_right_masks_minigame.png b/graphics/pinball/flipper_right_masks_minigame.png new file mode 100644 index 000000000000..d17ba0f5f3d9 Binary files /dev/null and b/graphics/pinball/flipper_right_masks_minigame.png differ diff --git a/graphics/pinball/gastly_animation.png b/graphics/pinball/gastly_animation.png new file mode 100644 index 000000000000..a18f0def4720 Binary files /dev/null and b/graphics/pinball/gastly_animation.png differ diff --git a/graphics/pinball/gengar_animation.png b/graphics/pinball/gengar_animation.png new file mode 100644 index 000000000000..c966789ed312 Binary files /dev/null and b/graphics/pinball/gengar_animation.png differ diff --git a/graphics/pinball/haunter_animation.png b/graphics/pinball/haunter_animation.png new file mode 100644 index 000000000000..c50b2e8d6be7 Binary files /dev/null and b/graphics/pinball/haunter_animation.png differ diff --git a/graphics/pinball/input_numbers.png b/graphics/pinball/input_numbers.png new file mode 100644 index 000000000000..0e97c62a5241 Binary files /dev/null and b/graphics/pinball/input_numbers.png differ diff --git a/graphics/pinball/meowth_animation.png b/graphics/pinball/meowth_animation.png new file mode 100644 index 000000000000..c09c86f6f256 Binary files /dev/null and b/graphics/pinball/meowth_animation.png differ diff --git a/graphics/pinball/meowth_jewel_animation.png b/graphics/pinball/meowth_jewel_animation.png new file mode 100644 index 000000000000..3b7ba32207ae Binary files /dev/null and b/graphics/pinball/meowth_jewel_animation.png differ diff --git a/graphics/pinball/meowth_jewel_multipliers.pal b/graphics/pinball/meowth_jewel_multipliers.pal new file mode 100644 index 000000000000..083320e2b54b --- /dev/null +++ b/graphics/pinball/meowth_jewel_multipliers.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +66 66 66 +214 173 66 +255 239 49 +255 255 255 +255 156 198 +255 206 231 +222 57 24 +247 148 74 +66 107 239 +165 181 247 +74 148 115 +140 222 173 +200 216 248 +0 0 0 +0 0 0 diff --git a/graphics/pinball/meowth_jewel_multipliers.png b/graphics/pinball/meowth_jewel_multipliers.png new file mode 100644 index 000000000000..87b903e0fdfe Binary files /dev/null and b/graphics/pinball/meowth_jewel_multipliers.png differ diff --git a/graphics/pinball/meowth_sparkle.pal b/graphics/pinball/meowth_sparkle.pal new file mode 100644 index 000000000000..1c8530b598cd --- /dev/null +++ b/graphics/pinball/meowth_sparkle.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +200 216 248 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pinball/meowth_sparkle.png b/graphics/pinball/meowth_sparkle.png new file mode 100644 index 000000000000..3ff5b8341ad7 Binary files /dev/null and b/graphics/pinball/meowth_sparkle.png differ diff --git a/graphics/pinball/seel_animation.png b/graphics/pinball/seel_animation.png new file mode 100644 index 000000000000..4f6fa92d354f Binary files /dev/null and b/graphics/pinball/seel_animation.png differ diff --git a/graphics/pinball/seel_multipliers.png b/graphics/pinball/seel_multipliers.png new file mode 100644 index 000000000000..b39871436ba0 Binary files /dev/null and b/graphics/pinball/seel_multipliers.png differ diff --git a/graphics/pinball/seel_sparkle.png b/graphics/pinball/seel_sparkle.png new file mode 100644 index 000000000000..ea172e61cc00 Binary files /dev/null and b/graphics/pinball/seel_sparkle.png differ diff --git a/graphics/pinball/timer_digits.png b/graphics/pinball/timer_digits.png new file mode 100644 index 000000000000..4c03bd9cb8b4 Binary files /dev/null and b/graphics/pinball/timer_digits.png differ diff --git a/graphics/pokedex/region_map_kanto.bin b/graphics/pokedex/region_map_kanto.bin new file mode 100644 index 000000000000..360d050076d4 Binary files /dev/null and b/graphics/pokedex/region_map_kanto.bin differ diff --git a/graphics/pokedex/region_map_kanto.pal b/graphics/pokedex/region_map_kanto.pal new file mode 100644 index 000000000000..1c7dd62c5586 --- /dev/null +++ b/graphics/pokedex/region_map_kanto.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +247 239 140 +239 231 115 +231 222 165 +255 222 49 +247 214 82 +206 206 206 +173 247 57 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +115 231 33 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 206 8 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokedex/region_map_kanto.png b/graphics/pokedex/region_map_kanto.png new file mode 100644 index 000000000000..238257f29c6b Binary files /dev/null and b/graphics/pokedex/region_map_kanto.png differ diff --git a/graphics/pokedex/region_map_sevii123.bin b/graphics/pokedex/region_map_sevii123.bin new file mode 100644 index 000000000000..dbe6e4284964 Binary files /dev/null and b/graphics/pokedex/region_map_sevii123.bin differ diff --git a/graphics/pokedex/region_map_sevii123.pal b/graphics/pokedex/region_map_sevii123.pal new file mode 100644 index 000000000000..0d6ffb558f22 --- /dev/null +++ b/graphics/pokedex/region_map_sevii123.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +239 231 115 +231 222 165 +255 222 49 +247 214 82 +206 206 206 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 206 8 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokedex/region_map_sevii123.png b/graphics/pokedex/region_map_sevii123.png new file mode 100644 index 000000000000..6753c61cbdc0 Binary files /dev/null and b/graphics/pokedex/region_map_sevii123.png differ diff --git a/graphics/pokedex/region_map_sevii45.bin b/graphics/pokedex/region_map_sevii45.bin new file mode 100644 index 000000000000..252a1bd80060 Binary files /dev/null and b/graphics/pokedex/region_map_sevii45.bin differ diff --git a/graphics/pokedex/region_map_sevii45.pal b/graphics/pokedex/region_map_sevii45.pal new file mode 100644 index 000000000000..02e46997dcf2 --- /dev/null +++ b/graphics/pokedex/region_map_sevii45.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +231 222 165 +255 222 49 +206 206 206 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokedex/region_map_sevii45.png b/graphics/pokedex/region_map_sevii45.png new file mode 100644 index 000000000000..5028286dd898 Binary files /dev/null and b/graphics/pokedex/region_map_sevii45.png differ diff --git a/graphics/pokedex/region_map_sevii67.bin b/graphics/pokedex/region_map_sevii67.bin new file mode 100644 index 000000000000..74810bfcc245 Binary files /dev/null and b/graphics/pokedex/region_map_sevii67.bin differ diff --git a/graphics/pokedex/region_map_sevii67.pal b/graphics/pokedex/region_map_sevii67.pal new file mode 100644 index 000000000000..161d0e87bc7d --- /dev/null +++ b/graphics/pokedex/region_map_sevii67.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +231 222 165 +255 222 49 +247 214 82 +206 206 206 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 206 8 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokedex/region_map_sevii67.png b/graphics/pokedex/region_map_sevii67.png new file mode 100644 index 000000000000..7a69bf50637c Binary files /dev/null and b/graphics/pokedex/region_map_sevii67.png differ diff --git a/graphics/pokemon/archeops/overworld.png b/graphics/pokemon/archeops/overworld.png index 6d8faa6597a2..8ce62207a2f2 100644 Binary files a/graphics/pokemon/archeops/overworld.png and b/graphics/pokemon/archeops/overworld.png differ diff --git a/graphics/pokemon/archeops/overworld_normal.pal b/graphics/pokemon/archeops/overworld_normal.pal index 772efa0e1cac..cc9c4dd1bf45 100644 --- a/graphics/pokemon/archeops/overworld_normal.pal +++ b/graphics/pokemon/archeops/overworld_normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -16 48 104 -48 80 152 -187 76 72 -212 214 224 -240 200 96 0 0 0 +255 255 255 +116 49 59 +173 69 77 +213 100 96 +128 87 54 +195 148 76 +240 200 96 +16 48 104 +52 84 181 48 128 240 -187 76 72 +15 70 74 +29 111 101 16 160 144 -16 48 104 -66 75 64 -240 200 96 -0 0 0 -0 0 0 -0 0 0 +255 0 0 diff --git a/graphics/pokemon/archeops/overworld_shiny.pal b/graphics/pokemon/archeops/overworld_shiny.pal index 92931a6ccaef..721761719670 100644 --- a/graphics/pokemon/archeops/overworld_shiny.pal +++ b/graphics/pokemon/archeops/overworld_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -8 64 48 -8 111 95 -216 101 35 -220 220 240 -248 176 96 -0 1 0 -16 160 144 -158 72 47 -48 128 240 -48 80 152 -113 61 35 -241 200 100 -0 0 0 -0 0 0 0 0 0 +255 255 255 +116 49 59 +173 69 77 +213 100 96 +128 66 54 +195 114 76 +240 159 96 +10 39 30 +47 115 103 +29 188 132 +32 68 123 +51 112 155 +32 135 211 +255 0 0 diff --git a/graphics/pokemon/barbaracle/mega/icon.png b/graphics/pokemon/barbaracle/mega/icon.png new file mode 100644 index 000000000000..dc805291910f Binary files /dev/null and b/graphics/pokemon/barbaracle/mega/icon.png differ diff --git a/graphics/pokemon/basculin/white_striped/anim_front.png b/graphics/pokemon/basculin/white_striped/anim_front.png index ed4c68034718..7e5267a9e6b9 100644 Binary files a/graphics/pokemon/basculin/white_striped/anim_front.png and b/graphics/pokemon/basculin/white_striped/anim_front.png differ diff --git a/graphics/pokemon/basculin/white_striped/back.png b/graphics/pokemon/basculin/white_striped/back.png index d8faa1575d9e..5605656a0c18 100644 Binary files a/graphics/pokemon/basculin/white_striped/back.png and b/graphics/pokemon/basculin/white_striped/back.png differ diff --git a/graphics/pokemon/basculin/white_striped/normal.pal b/graphics/pokemon/basculin/white_striped/normal.pal index 5e82d654d3eb..636a1bca4819 100644 --- a/graphics/pokemon/basculin/white_striped/normal.pal +++ b/graphics/pokemon/basculin/white_striped/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 80 80 -8 8 8 +240 240 240 224 224 224 160 160 160 -32 48 56 -16 16 16 -64 80 80 -120 168 168 -168 216 224 +72 80 80 +0 0 0 64 160 80 -0 64 32 40 112 48 -0 0 0 +0 64 32 +64 80 80 +32 48 56 +16 16 16 +211 235 233 +166 216 216 0 0 0 0 0 0 diff --git a/graphics/pokemon/basculin/white_striped/shiny.pal b/graphics/pokemon/basculin/white_striped/shiny.pal index 766d07db7e25..76c9db8c59d3 100644 --- a/graphics/pokemon/basculin/white_striped/shiny.pal +++ b/graphics/pokemon/basculin/white_striped/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +240 240 240 +251 251 216 +186 186 148 72 80 80 -8 8 8 -224 224 224 -160 160 160 -32 48 56 -16 16 16 -64 80 80 -120 168 168 -168 216 224 +0 0 0 120 168 56 -40 64 0 80 112 40 -0 0 0 +40 64 0 +64 80 80 +32 48 56 +16 16 16 +211 235 233 +166 216 216 0 0 0 0 0 0 diff --git a/graphics/pokemon/baxcalibur/mega/icon.png b/graphics/pokemon/baxcalibur/mega/icon.png new file mode 100644 index 000000000000..faf7ebb5aec4 Binary files /dev/null and b/graphics/pokemon/baxcalibur/mega/icon.png differ diff --git a/graphics/pokemon/castform/sunny/overworld.png b/graphics/pokemon/castform/sunny/overworld.png index adafc6de76d6..977a3b2041f2 100644 Binary files a/graphics/pokemon/castform/sunny/overworld.png and b/graphics/pokemon/castform/sunny/overworld.png differ diff --git a/graphics/pokemon/castform/sunny/overworld_normal.pal b/graphics/pokemon/castform/sunny/overworld_normal.pal index 5f4c2ae5f099..f7bc725ad531 100644 --- a/graphics/pokemon/castform/sunny/overworld_normal.pal +++ b/graphics/pokemon/castform/sunny/overworld_normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 255 163 233 +240 240 240 8 8 8 -121 79 32 -240 232 168 -224 184 112 -200 128 48 +64 64 80 146 54 13 253 126 69 -0 0 0 224 96 30 -231 105 40 +121 79 32 +200 128 48 +224 184 112 +194 176 143 +232 219 195 239 220 65 -64 64 80 -240 240 240 -197 197 148 -0 0 0 +240 232 168 +255 0 0 +255 0 210 diff --git a/graphics/pokemon/castform/sunny/overworld_shiny.pal b/graphics/pokemon/castform/sunny/overworld_shiny.pal index 7b6e2f1fb8cc..5fec03977c53 100644 --- a/graphics/pokemon/castform/sunny/overworld_shiny.pal +++ b/graphics/pokemon/castform/sunny/overworld_shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -144 208 208 +255 163 233 +234 209 213 8 8 8 -121 79 32 -240 232 168 -224 184 112 -200 128 48 -137 21 24 -241 81 85 -0 0 0 -211 43 42 -218 53 52 -255 160 108 64 64 80 -240 240 240 -197 197 148 -0 0 0 +85 23 18 +209 68 57 +156 54 42 +121 79 32 +206 99 42 +228 163 108 +188 134 139 +227 184 188 +243 164 143 +253 217 221 +255 0 0 +255 0 222 diff --git a/graphics/pokemon/chandelure/mega/back.png b/graphics/pokemon/chandelure/mega/back.png new file mode 100644 index 000000000000..037c3167ad64 Binary files /dev/null and b/graphics/pokemon/chandelure/mega/back.png differ diff --git a/graphics/pokemon/chandelure/mega/front.png b/graphics/pokemon/chandelure/mega/front.png new file mode 100644 index 000000000000..7041d7538770 Binary files /dev/null and b/graphics/pokemon/chandelure/mega/front.png differ diff --git a/graphics/pokemon/chandelure/mega/icon.png b/graphics/pokemon/chandelure/mega/icon.png new file mode 100644 index 000000000000..3930267f0be0 Binary files /dev/null and b/graphics/pokemon/chandelure/mega/icon.png differ diff --git a/graphics/pokemon/chandelure/mega/normal.pal b/graphics/pokemon/chandelure/mega/normal.pal new file mode 100644 index 000000000000..16718d47ef3b --- /dev/null +++ b/graphics/pokemon/chandelure/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +48 46 46 +75 75 76 +255 242 0 +228 196 63 +185 134 77 +74 61 142 +102 100 183 +123 139 139 +16 16 16 +237 224 186 +137 185 229 +184 213 242 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/chandelure/mega/shiny.pal b/graphics/pokemon/chandelure/mega/shiny.pal new file mode 100644 index 000000000000..9adba570a10a --- /dev/null +++ b/graphics/pokemon/chandelure/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +49 57 41 +90 106 90 +230 106 164 +197 207 218 +114 125 146 +189 82 24 +255 139 16 +123 139 139 +16 16 16 +243 245 248 +244 197 115 +197 246 197 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/chesnaught/mega/back.png b/graphics/pokemon/chesnaught/mega/back.png new file mode 100644 index 000000000000..2bf5853a2e7f Binary files /dev/null and b/graphics/pokemon/chesnaught/mega/back.png differ diff --git a/graphics/pokemon/chesnaught/mega/front.png b/graphics/pokemon/chesnaught/mega/front.png new file mode 100644 index 000000000000..44d040e4d2fa Binary files /dev/null and b/graphics/pokemon/chesnaught/mega/front.png differ diff --git a/graphics/pokemon/chesnaught/mega/icon.png b/graphics/pokemon/chesnaught/mega/icon.png new file mode 100644 index 000000000000..497b2f380647 Binary files /dev/null and b/graphics/pokemon/chesnaught/mega/icon.png differ diff --git a/graphics/pokemon/chesnaught/mega/normal.pal b/graphics/pokemon/chesnaught/mega/normal.pal new file mode 100644 index 000000000000..27878f4fe7d0 --- /dev/null +++ b/graphics/pokemon/chesnaught/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +105 16 16 +41 66 11 +77 110 28 +158 31 55 +217 43 75 +143 125 96 +112 166 32 +202 159 16 +249 212 70 +133 137 133 +181 189 181 +194 179 139 +16 16 16 +242 235 207 +255 255 255 diff --git a/graphics/pokemon/chesnaught/mega/shiny.pal b/graphics/pokemon/chesnaught/mega/shiny.pal new file mode 100644 index 000000000000..e2615802c9e6 --- /dev/null +++ b/graphics/pokemon/chesnaught/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +126 40 12 +56 29 8 +97 38 24 +188 78 3 +240 104 0 +53 81 36 +128 50 40 +202 159 16 +249 212 70 +118 84 67 +184 134 88 +79 111 39 +16 16 16 +110 161 51 +228 184 136 diff --git a/graphics/pokemon/chimecho/mega/icon.png b/graphics/pokemon/chimecho/mega/icon.png new file mode 100644 index 000000000000..d2b5d96924f4 Binary files /dev/null and b/graphics/pokemon/chimecho/mega/icon.png differ diff --git a/graphics/pokemon/clefable/mega/icon.png b/graphics/pokemon/clefable/mega/icon.png new file mode 100644 index 000000000000..92f157ff46e7 Binary files /dev/null and b/graphics/pokemon/clefable/mega/icon.png differ diff --git a/graphics/pokemon/darkrai/mega/icon.png b/graphics/pokemon/darkrai/mega/icon.png new file mode 100644 index 000000000000..d5e2afe26675 Binary files /dev/null and b/graphics/pokemon/darkrai/mega/icon.png differ diff --git a/graphics/pokemon/deerling/autumn/overworld.png b/graphics/pokemon/deerling/autumn/overworld.png index eda763b62191..414a9001a0df 100644 Binary files a/graphics/pokemon/deerling/autumn/overworld.png and b/graphics/pokemon/deerling/autumn/overworld.png differ diff --git a/graphics/pokemon/deerling/autumn/overworld_normal.pal b/graphics/pokemon/deerling/autumn/overworld_normal.pal index ea85feef5ee0..8efa2c7d4fa9 100644 --- a/graphics/pokemon/deerling/autumn/overworld_normal.pal +++ b/graphics/pokemon/deerling/autumn/overworld_normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 -18 32 11 -216 145 19 -63 33 13 -132 91 14 -246 236 65 -246 228 194 -206 164 103 -63 33 13 -216 145 19 -99 99 99 -62 62 66 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +24 40 16 +73 73 77 +110 110 110 +142 102 19 +201 171 66 +247 238 76 +211 172 114 +247 231 200 +79 68 49 +162 97 68 +211 141 66 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/autumn/overworld_shiny.pal b/graphics/pokemon/deerling/autumn/overworld_shiny.pal index e49a9a7f7a83..d6dce3387fd1 100644 --- a/graphics/pokemon/deerling/autumn/overworld_shiny.pal +++ b/graphics/pokemon/deerling/autumn/overworld_shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 -18 32 11 -232 128 24 -128 72 16 -160 112 32 -248 208 240 -246 228 194 -206 164 103 -63 33 13 -216 145 19 -99 99 99 -62 62 66 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +24 40 16 +73 73 77 +110 110 110 +181 119 185 +233 177 226 +253 213 241 +211 172 114 +247 231 200 +79 68 49 +162 97 68 +211 141 66 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/overworld.png b/graphics/pokemon/deerling/overworld.png index e2bfd0d9d32c..8ae5bdd3c4ce 100644 Binary files a/graphics/pokemon/deerling/overworld.png and b/graphics/pokemon/deerling/overworld.png differ diff --git a/graphics/pokemon/deerling/overworld_normal.pal b/graphics/pokemon/deerling/overworld_normal.pal index f5fd58d7c477..d4cbaedaf697 100644 --- a/graphics/pokemon/deerling/overworld_normal.pal +++ b/graphics/pokemon/deerling/overworld_normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 24 40 16 -240 129 184 -102 56 100 +73 73 77 +110 110 110 142 102 19 +201 171 66 247 238 76 -194 96 140 -220 154 25 -194 96 140 -247 231 200 211 172 114 -110 110 110 -73 73 77 -0 0 0 -0 0 0 -0 0 0 +247 231 200 +102 56 100 +194 96 140 +240 129 184 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/overworld_shiny.pal b/graphics/pokemon/deerling/overworld_shiny.pal index 5517152271a4..bb3d829cf35b 100644 --- a/graphics/pokemon/deerling/overworld_shiny.pal +++ b/graphics/pokemon/deerling/overworld_shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 24 40 16 -248 152 168 -136 64 64 -142 102 19 -248 208 240 -176 104 104 -248 152 232 -194 96 140 -247 231 200 -211 172 114 -110 110 110 73 73 77 -0 0 0 -0 0 0 -0 0 0 +110 110 110 +181 119 185 +233 177 226 +253 213 241 +211 172 114 +247 231 200 +102 56 100 +194 96 140 +240 129 184 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/summer/overworld.png b/graphics/pokemon/deerling/summer/overworld.png index fcbc6a19fad2..414a9001a0df 100644 Binary files a/graphics/pokemon/deerling/summer/overworld.png and b/graphics/pokemon/deerling/summer/overworld.png differ diff --git a/graphics/pokemon/deerling/summer/overworld_normal.pal b/graphics/pokemon/deerling/summer/overworld_normal.pal index 12c0a070e034..9a16ed51fe61 100644 --- a/graphics/pokemon/deerling/summer/overworld_normal.pal +++ b/graphics/pokemon/deerling/summer/overworld_normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 -18 32 11 -63 168 40 -35 61 29 -132 91 14 -246 236 65 -43 97 38 -216 145 19 -246 228 194 -206 164 103 -99 99 99 -62 62 66 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +24 40 16 +73 73 77 +110 110 110 +142 102 19 +201 171 66 +247 238 76 +211 172 114 +247 231 200 +23 33 25 +66 96 62 +118 184 52 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/summer/overworld_shiny.pal b/graphics/pokemon/deerling/summer/overworld_shiny.pal index 0c6f48254ac5..416750f0c518 100644 --- a/graphics/pokemon/deerling/summer/overworld_shiny.pal +++ b/graphics/pokemon/deerling/summer/overworld_shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 -18 32 11 -64 176 64 -35 61 29 -132 91 14 -248 208 240 -48 120 64 -248 152 232 -246 228 194 -206 164 103 -99 99 99 -62 62 66 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +24 40 16 +73 73 77 +110 110 110 +181 119 185 +233 177 226 +253 213 241 +211 172 114 +247 231 200 +23 33 25 +66 96 62 +118 184 52 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/winter/overworld.png b/graphics/pokemon/deerling/winter/overworld.png index 0b619b55ac4c..414a9001a0df 100644 Binary files a/graphics/pokemon/deerling/winter/overworld.png and b/graphics/pokemon/deerling/winter/overworld.png differ diff --git a/graphics/pokemon/deerling/winter/overworld_normal.pal b/graphics/pokemon/deerling/winter/overworld_normal.pal index 0c74439bd505..cf85bd05b215 100644 --- a/graphics/pokemon/deerling/winter/overworld_normal.pal +++ b/graphics/pokemon/deerling/winter/overworld_normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 -18 32 11 -134 102 61 -37 26 13 -132 91 14 -246 236 65 -35 61 29 -102 61 36 -216 145 19 -134 102 61 -246 228 194 -206 164 103 -99 99 99 -62 62 66 -0 0 0 -0 0 0 +24 40 16 +73 73 77 +110 110 110 +142 102 19 +201 171 66 +247 238 76 +211 172 114 +247 231 200 +68 60 60 +131 115 99 +164 139 113 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/deerling/winter/overworld_shiny.pal b/graphics/pokemon/deerling/winter/overworld_shiny.pal index 1628855ed136..50c642109b6f 100644 --- a/graphics/pokemon/deerling/winter/overworld_shiny.pal +++ b/graphics/pokemon/deerling/winter/overworld_shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 -18 32 11 -168 128 96 -37 26 13 -132 91 14 -248 208 240 -35 61 29 -120 80 72 -248 152 232 -134 102 61 -246 228 194 -206 164 103 -99 99 99 -62 62 66 -0 0 0 -0 0 0 +24 40 16 +73 73 77 +110 110 110 +181 119 185 +233 177 226 +253 213 241 +211 172 114 +247 231 200 +68 60 60 +131 115 99 +164 139 113 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/delphox/mega/back.png b/graphics/pokemon/delphox/mega/back.png new file mode 100644 index 000000000000..8289c05de55a Binary files /dev/null and b/graphics/pokemon/delphox/mega/back.png differ diff --git a/graphics/pokemon/delphox/mega/front.png b/graphics/pokemon/delphox/mega/front.png new file mode 100644 index 000000000000..03252028c839 Binary files /dev/null and b/graphics/pokemon/delphox/mega/front.png differ diff --git a/graphics/pokemon/delphox/mega/icon.png b/graphics/pokemon/delphox/mega/icon.png new file mode 100644 index 000000000000..4a8e8beac169 Binary files /dev/null and b/graphics/pokemon/delphox/mega/icon.png differ diff --git a/graphics/pokemon/delphox/mega/normal.pal b/graphics/pokemon/delphox/mega/normal.pal new file mode 100644 index 000000000000..e6d44e33ca33 --- /dev/null +++ b/graphics/pokemon/delphox/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +57 33 58 +115 40 32 +104 61 53 +88 51 89 +174 61 50 +129 101 40 +249 90 38 +236 38 100 +152 98 80 +222 176 72 +255 218 90 +255 231 113 +190 190 190 +16 16 16 +251 251 251 diff --git a/graphics/pokemon/delphox/mega/shiny.pal b/graphics/pokemon/delphox/mega/shiny.pal new file mode 100644 index 000000000000..879c41f35f67 --- /dev/null +++ b/graphics/pokemon/delphox/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +77 72 108 +116 52 70 +106 86 85 +121 113 142 +181 74 92 +70 78 83 +251 111 99 +236 38 100 +143 116 118 +152 152 152 +202 202 202 +255 231 113 +190 190 190 +16 16 16 +251 251 251 diff --git a/graphics/pokemon/dragalge/mega/back.png b/graphics/pokemon/dragalge/mega/back.png new file mode 100644 index 000000000000..f9375f463875 Binary files /dev/null and b/graphics/pokemon/dragalge/mega/back.png differ diff --git a/graphics/pokemon/dragalge/mega/front.png b/graphics/pokemon/dragalge/mega/front.png new file mode 100644 index 000000000000..09c63b667b77 Binary files /dev/null and b/graphics/pokemon/dragalge/mega/front.png differ diff --git a/graphics/pokemon/dragalge/mega/icon.png b/graphics/pokemon/dragalge/mega/icon.png new file mode 100644 index 000000000000..053f6e22a332 Binary files /dev/null and b/graphics/pokemon/dragalge/mega/icon.png differ diff --git a/graphics/pokemon/dragalge/mega/normal.pal b/graphics/pokemon/dragalge/mega/normal.pal new file mode 100644 index 000000000000..ba78c8fb6673 --- /dev/null +++ b/graphics/pokemon/dragalge/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +61 17 9 +94 42 28 +81 79 36 +165 33 55 +158 78 56 +234 51 69 +226 68 94 +147 144 82 +82 57 128 +112 55 136 +130 77 193 +163 65 205 +16 16 16 +243 241 245 +0 0 0 diff --git a/graphics/pokemon/dragalge/mega/shiny.pal b/graphics/pokemon/dragalge/mega/shiny.pal new file mode 100644 index 000000000000..be978d9b47e9 --- /dev/null +++ b/graphics/pokemon/dragalge/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +63 10 56 +91 27 78 +147 118 60 +50 104 41 +140 56 124 +234 51 69 +86 156 74 +218 198 82 +82 57 128 +82 92 137 +130 77 193 +135 150 193 +16 16 16 +243 241 245 +0 0 0 diff --git a/graphics/pokemon/dragonite/mega/icon.png b/graphics/pokemon/dragonite/mega/icon.png new file mode 100644 index 000000000000..88b57f95bf85 Binary files /dev/null and b/graphics/pokemon/dragonite/mega/icon.png differ diff --git a/graphics/pokemon/drampa/mega/icon.png b/graphics/pokemon/drampa/mega/icon.png new file mode 100644 index 000000000000..adc7b77b965e Binary files /dev/null and b/graphics/pokemon/drampa/mega/icon.png differ diff --git a/graphics/pokemon/eelektross/mega/icon.png b/graphics/pokemon/eelektross/mega/icon.png new file mode 100644 index 000000000000..85f06a8f709d Binary files /dev/null and b/graphics/pokemon/eelektross/mega/icon.png differ diff --git a/graphics/pokemon/emboar/mega/icon.png b/graphics/pokemon/emboar/mega/icon.png new file mode 100644 index 000000000000..a40be81ed2d8 Binary files /dev/null and b/graphics/pokemon/emboar/mega/icon.png differ diff --git a/graphics/pokemon/excadrill/mega/icon.png b/graphics/pokemon/excadrill/mega/icon.png new file mode 100644 index 000000000000..02f331756a84 Binary files /dev/null and b/graphics/pokemon/excadrill/mega/icon.png differ diff --git a/graphics/pokemon/falinks/mega/back.png b/graphics/pokemon/falinks/mega/back.png new file mode 100644 index 000000000000..b064f53172a6 Binary files /dev/null and b/graphics/pokemon/falinks/mega/back.png differ diff --git a/graphics/pokemon/falinks/mega/front.png b/graphics/pokemon/falinks/mega/front.png new file mode 100644 index 000000000000..9b823431bdef Binary files /dev/null and b/graphics/pokemon/falinks/mega/front.png differ diff --git a/graphics/pokemon/falinks/mega/icon.png b/graphics/pokemon/falinks/mega/icon.png new file mode 100644 index 000000000000..0633d16214b6 Binary files /dev/null and b/graphics/pokemon/falinks/mega/icon.png differ diff --git a/graphics/pokemon/falinks/mega/normal.pal b/graphics/pokemon/falinks/mega/normal.pal new file mode 100644 index 000000000000..b8e1aee82c91 --- /dev/null +++ b/graphics/pokemon/falinks/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +55 60 51 +115 61 34 +80 84 73 +191 38 38 +240 47 47 +194 162 50 +249 209 62 +31 136 192 +121 227 247 +16 16 16 +255 226 138 +196 196 196 +225 255 252 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/falinks/mega/shiny.pal b/graphics/pokemon/falinks/mega/shiny.pal new file mode 100644 index 000000000000..c9ae0019a886 --- /dev/null +++ b/graphics/pokemon/falinks/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +55 60 51 +122 58 40 +80 84 73 +200 161 18 +246 216 0 +148 88 57 +187 115 78 +31 136 192 +121 227 247 +16 16 16 +206 153 122 +196 196 196 +225 255 252 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/feraligatr/mega/back.png b/graphics/pokemon/feraligatr/mega/back.png new file mode 100644 index 000000000000..b8a5dc80948a Binary files /dev/null and b/graphics/pokemon/feraligatr/mega/back.png differ diff --git a/graphics/pokemon/feraligatr/mega/front.png b/graphics/pokemon/feraligatr/mega/front.png new file mode 100644 index 000000000000..5e80afef27ff Binary files /dev/null and b/graphics/pokemon/feraligatr/mega/front.png differ diff --git a/graphics/pokemon/feraligatr/mega/icon.png b/graphics/pokemon/feraligatr/mega/icon.png new file mode 100644 index 000000000000..752617f2d4e6 Binary files /dev/null and b/graphics/pokemon/feraligatr/mega/icon.png differ diff --git a/graphics/pokemon/feraligatr/mega/normal.pal b/graphics/pokemon/feraligatr/mega/normal.pal new file mode 100644 index 000000000000..4ed9494c553c --- /dev/null +++ b/graphics/pokemon/feraligatr/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +120 40 40 +112 88 40 +24 88 120 +180 61 67 +240 80 88 +192 168 112 +248 184 112 +64 152 168 +96 200 232 +248 160 136 +16 16 16 +240 216 152 +152 232 240 +192 192 192 +248 248 248 diff --git a/graphics/pokemon/feraligatr/mega/shiny.pal b/graphics/pokemon/feraligatr/mega/shiny.pal new file mode 100644 index 000000000000..058b69d7f3f7 --- /dev/null +++ b/graphics/pokemon/feraligatr/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +24 40 136 +112 88 40 +0 112 96 +55 83 155 +72 120 248 +192 168 112 +248 184 112 +64 152 168 +96 200 232 +144 176 248 +16 16 16 +240 216 152 +152 232 240 +192 192 192 +248 248 248 diff --git a/graphics/pokemon/floette/mega/icon.png b/graphics/pokemon/floette/mega/icon.png new file mode 100644 index 000000000000..bc7f35926da2 Binary files /dev/null and b/graphics/pokemon/floette/mega/icon.png differ diff --git a/graphics/pokemon/froslass/mega/icon.png b/graphics/pokemon/froslass/mega/icon.png new file mode 100644 index 000000000000..32f6ccaabc40 Binary files /dev/null and b/graphics/pokemon/froslass/mega/icon.png differ diff --git a/graphics/pokemon/ghost/front.png b/graphics/pokemon/ghost/front.png new file mode 100644 index 000000000000..55a0e3608496 Binary files /dev/null and b/graphics/pokemon/ghost/front.png differ diff --git a/graphics/pokemon/glimmora/mega/back.png b/graphics/pokemon/glimmora/mega/back.png new file mode 100644 index 000000000000..a22dbfb67f77 Binary files /dev/null and b/graphics/pokemon/glimmora/mega/back.png differ diff --git a/graphics/pokemon/glimmora/mega/front.png b/graphics/pokemon/glimmora/mega/front.png new file mode 100644 index 000000000000..840fc7d00ccc Binary files /dev/null and b/graphics/pokemon/glimmora/mega/front.png differ diff --git a/graphics/pokemon/glimmora/mega/icon.png b/graphics/pokemon/glimmora/mega/icon.png new file mode 100644 index 000000000000..2052c772e211 Binary files /dev/null and b/graphics/pokemon/glimmora/mega/icon.png differ diff --git a/graphics/pokemon/glimmora/mega/normal.pal b/graphics/pokemon/glimmora/mega/normal.pal new file mode 100644 index 000000000000..fb5df9f58225 --- /dev/null +++ b/graphics/pokemon/glimmora/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +46 49 92 +21 26 97 +48 70 122 +35 86 122 +29 53 143 +80 86 160 +40 98 214 +225 117 145 +50 149 154 +122 152 189 +81 159 247 +98 249 219 +162 134 178 +16 16 16 +132 128 226 diff --git a/graphics/pokemon/glimmora/mega/shiny.pal b/graphics/pokemon/glimmora/mega/shiny.pal new file mode 100644 index 000000000000..93f79204fd7d --- /dev/null +++ b/graphics/pokemon/glimmora/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +29 40 82 +36 76 133 +48 70 122 +35 86 122 +65 143 199 +48 68 137 +87 222 219 +225 117 145 +99 191 188 +122 152 189 +171 245 240 +217 255 247 +97 120 214 +16 16 16 +62 114 221 diff --git a/graphics/pokemon/golisopod/mega/icon.png b/graphics/pokemon/golisopod/mega/icon.png new file mode 100644 index 000000000000..83cce09995b3 Binary files /dev/null and b/graphics/pokemon/golisopod/mega/icon.png differ diff --git a/graphics/pokemon/greninja/mega/back.png b/graphics/pokemon/greninja/mega/back.png new file mode 100644 index 000000000000..a46f10f3bfdb Binary files /dev/null and b/graphics/pokemon/greninja/mega/back.png differ diff --git a/graphics/pokemon/greninja/mega/front.png b/graphics/pokemon/greninja/mega/front.png new file mode 100644 index 000000000000..2b99f2111000 Binary files /dev/null and b/graphics/pokemon/greninja/mega/front.png differ diff --git a/graphics/pokemon/greninja/mega/icon.png b/graphics/pokemon/greninja/mega/icon.png new file mode 100644 index 000000000000..808d79979fbd Binary files /dev/null and b/graphics/pokemon/greninja/mega/icon.png differ diff --git a/graphics/pokemon/greninja/mega/normal.pal b/graphics/pokemon/greninja/mega/normal.pal new file mode 100644 index 000000000000..f037915590a6 --- /dev/null +++ b/graphics/pokemon/greninja/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +38 31 35 +65 54 61 +27 42 89 +82 75 79 +128 51 64 +191 76 96 +191 177 105 +35 81 142 +46 73 153 +246 120 144 +37 160 186 +71 204 233 +191 191 191 +16 16 16 +254 254 254 diff --git a/graphics/pokemon/greninja/mega/shiny.pal b/graphics/pokemon/greninja/mega/shiny.pal new file mode 100644 index 000000000000..8771e326c8f3 --- /dev/null +++ b/graphics/pokemon/greninja/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +38 31 35 +65 54 61 +19 25 36 +82 75 79 +115 23 23 +179 36 36 +76 88 97 +21 98 149 +44 53 71 +229 69 69 +77 148 200 +102 217 255 +191 191 191 +16 16 16 +254 254 254 diff --git a/graphics/pokemon/hawlucha/mega/icon.png b/graphics/pokemon/hawlucha/mega/icon.png new file mode 100644 index 000000000000..4fe62a457e44 Binary files /dev/null and b/graphics/pokemon/hawlucha/mega/icon.png differ diff --git a/graphics/pokemon/joltik/overworld.png b/graphics/pokemon/joltik/overworld.png index 1a94172c2993..8e1dbc88a150 100644 Binary files a/graphics/pokemon/joltik/overworld.png and b/graphics/pokemon/joltik/overworld.png differ diff --git a/graphics/pokemon/joltik/overworld_normal.pal b/graphics/pokemon/joltik/overworld_normal.pal index 28d37d4ea595..4f7abf847285 100644 --- a/graphics/pokemon/joltik/overworld_normal.pal +++ b/graphics/pokemon/joltik/overworld_normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 0 0 0 +57 42 14 +111 84 31 199 164 5 -104 71 5 245 218 55 -69 46 0 -18 33 55 -40 79 191 +28 45 99 87 95 227 -185 126 0 -218 218 236 -11 11 11 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +245 245 247 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/joltik/overworld_shiny.pal b/graphics/pokemon/joltik/overworld_shiny.pal index 93966ce506e7..4d5501cf348a 100644 --- a/graphics/pokemon/joltik/overworld_shiny.pal +++ b/graphics/pokemon/joltik/overworld_shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 +15 152 208 160 0 0 0 -184 184 24 -96 96 8 -216 224 80 -69 46 0 -18 33 55 -56 24 88 -184 72 216 -185 126 0 -218 218 236 -11 11 11 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +56 57 14 +108 111 31 +170 179 4 +217 237 12 +38 28 43 +159 83 175 +255 255 255 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/leavanny/overworld.png b/graphics/pokemon/leavanny/overworld.png index 6e5e2b474d35..f159cf4dc9b8 100644 Binary files a/graphics/pokemon/leavanny/overworld.png and b/graphics/pokemon/leavanny/overworld.png differ diff --git a/graphics/pokemon/lucario/mega_z/icon.png b/graphics/pokemon/lucario/mega_z/icon.png new file mode 100644 index 000000000000..c7537d3b550b Binary files /dev/null and b/graphics/pokemon/lucario/mega_z/icon.png differ diff --git a/graphics/pokemon/magearna/mega/icon.png b/graphics/pokemon/magearna/mega/icon.png new file mode 100644 index 000000000000..f2425930be0a Binary files /dev/null and b/graphics/pokemon/magearna/mega/icon.png differ diff --git a/graphics/pokemon/magearna/original_color/mega/icon.png b/graphics/pokemon/magearna/original_color/mega/icon.png new file mode 100644 index 000000000000..73372d8ca700 Binary files /dev/null and b/graphics/pokemon/magearna/original_color/mega/icon.png differ diff --git a/graphics/pokemon/malamar/mega/icon.png b/graphics/pokemon/malamar/mega/icon.png new file mode 100644 index 000000000000..43e3862ad2d8 Binary files /dev/null and b/graphics/pokemon/malamar/mega/icon.png differ diff --git a/graphics/pokemon/manaphy/egg_sprite.png b/graphics/pokemon/manaphy/egg_sprite.png new file mode 100644 index 000000000000..529cb311f81e Binary files /dev/null and b/graphics/pokemon/manaphy/egg_sprite.png differ diff --git a/graphics/pokemon/manaphy/hatch.png b/graphics/pokemon/manaphy/hatch.png new file mode 100644 index 000000000000..bd448347774e Binary files /dev/null and b/graphics/pokemon/manaphy/hatch.png differ diff --git a/graphics/pokemon/manaphy/icon_egg.png b/graphics/pokemon/manaphy/icon_egg.png new file mode 100644 index 000000000000..8f8947e1b625 Binary files /dev/null and b/graphics/pokemon/manaphy/icon_egg.png differ diff --git a/graphics/pokemon/mareanie/overworld.png b/graphics/pokemon/mareanie/overworld.png index d608833c703b..35c9173e302c 100644 Binary files a/graphics/pokemon/mareanie/overworld.png and b/graphics/pokemon/mareanie/overworld.png differ diff --git a/graphics/pokemon/mareanie/overworld_normal.pal b/graphics/pokemon/mareanie/overworld_normal.pal index 4cba6f123639..5b572425d472 100644 --- a/graphics/pokemon/mareanie/overworld_normal.pal +++ b/graphics/pokemon/mareanie/overworld_normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -255 255 255 -228 193 86 -120 197 206 +175 218 176 +16 16 16 +77 58 85 +136 92 152 +166 125 197 179 144 188 +43 76 101 +84 148 186 +120 197 206 +122 82 12 185 155 70 -166 161 169 +228 193 86 85 169 83 -69 114 171 -169 107 215 -147 69 175 -87 76 40 -77 58 85 -43 76 101 -16 16 16 -0 0 0 -0 0 0 +166 161 169 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/mareanie/overworld_shiny.pal b/graphics/pokemon/mareanie/overworld_shiny.pal index 6b6569dd3365..8b6269e8c513 100644 --- a/graphics/pokemon/mareanie/overworld_shiny.pal +++ b/graphics/pokemon/mareanie/overworld_shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -255 255 255 -228 193 86 -232 104 160 -179 144 188 +175 218 176 +16 16 16 +91 52 72 +204 134 107 +232 165 156 +226 191 172 +120 39 63 +186 70 43 +234 108 113 +122 82 12 185 155 70 +228 193 86 +215 73 32 166 161 169 -85 169 83 -192 56 112 -240 104 80 -208 56 80 -87 76 40 -128 40 48 -43 76 101 -16 16 16 -0 0 0 -0 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/meganium/mega/icon.png b/graphics/pokemon/meganium/mega/icon.png new file mode 100644 index 000000000000..5fad3c5a42a3 Binary files /dev/null and b/graphics/pokemon/meganium/mega/icon.png differ diff --git a/graphics/pokemon/mimikyu/back.png b/graphics/pokemon/mimikyu/back.png index 557789a6b6e3..41c8f3b0e3fa 100644 Binary files a/graphics/pokemon/mimikyu/back.png and b/graphics/pokemon/mimikyu/back.png differ diff --git a/graphics/pokemon/mimikyu/busted/back.png b/graphics/pokemon/mimikyu/busted/back.png index e0b3719792cc..663260b74125 100644 Binary files a/graphics/pokemon/mimikyu/busted/back.png and b/graphics/pokemon/mimikyu/busted/back.png differ diff --git a/graphics/pokemon/pyroar/mega/back.png b/graphics/pokemon/pyroar/mega/back.png new file mode 100644 index 000000000000..ec305f3ccb05 Binary files /dev/null and b/graphics/pokemon/pyroar/mega/back.png differ diff --git a/graphics/pokemon/pyroar/mega/front.png b/graphics/pokemon/pyroar/mega/front.png new file mode 100644 index 000000000000..08504e0fbf99 Binary files /dev/null and b/graphics/pokemon/pyroar/mega/front.png differ diff --git a/graphics/pokemon/pyroar/mega/icon.png b/graphics/pokemon/pyroar/mega/icon.png new file mode 100644 index 000000000000..56bf1b43c444 Binary files /dev/null and b/graphics/pokemon/pyroar/mega/icon.png differ diff --git a/graphics/pokemon/pyroar/mega/normal.pal b/graphics/pokemon/pyroar/mega/normal.pal new file mode 100644 index 000000000000..165fe6ef21ef --- /dev/null +++ b/graphics/pokemon/pyroar/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +32 24 24 +56 40 48 +112 0 0 +96 72 40 +88 72 64 +178 45 30 +224 64 48 +178 135 35 +176 128 80 +232 176 112 +255 210 89 +4 169 195 +16 16 16 +248 216 168 +255 255 255 diff --git a/graphics/pokemon/pyroar/mega/shiny.pal b/graphics/pokemon/pyroar/mega/shiny.pal new file mode 100644 index 000000000000..661b21628806 --- /dev/null +++ b/graphics/pokemon/pyroar/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +65 55 48 +96 81 70 +121 116 111 +96 72 56 +141 122 95 +196 193 187 +240 239 236 +203 176 29 +168 136 96 +224 192 144 +254 234 90 +184 64 40 +16 16 16 +248 216 168 +255 255 255 diff --git a/graphics/pokemon/raichu/mega_x/back.png b/graphics/pokemon/raichu/mega_x/back.png new file mode 100644 index 000000000000..e59daf5d7713 Binary files /dev/null and b/graphics/pokemon/raichu/mega_x/back.png differ diff --git a/graphics/pokemon/raichu/mega_x/front.png b/graphics/pokemon/raichu/mega_x/front.png new file mode 100644 index 000000000000..04d5f37f4ebc Binary files /dev/null and b/graphics/pokemon/raichu/mega_x/front.png differ diff --git a/graphics/pokemon/raichu/mega_x/icon.png b/graphics/pokemon/raichu/mega_x/icon.png new file mode 100644 index 000000000000..fbc1a296e76a Binary files /dev/null and b/graphics/pokemon/raichu/mega_x/icon.png differ diff --git a/graphics/pokemon/raichu/mega_x/normal.pal b/graphics/pokemon/raichu/mega_x/normal.pal new file mode 100644 index 000000000000..d2b53029d586 --- /dev/null +++ b/graphics/pokemon/raichu/mega_x/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +24 24 24 +48 40 32 +64 64 56 +192 32 24 +156 82 0 +136 64 48 +176 96 64 +224 88 64 +222 148 0 +228 154 41 +246 189 32 +251 247 77 +246 230 82 +16 16 16 +248 248 248 diff --git a/graphics/pokemon/raichu/mega_x/shiny.pal b/graphics/pokemon/raichu/mega_x/shiny.pal new file mode 100644 index 000000000000..8c704f5ace52 --- /dev/null +++ b/graphics/pokemon/raichu/mega_x/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +24 24 24 +48 40 32 +64 64 56 +217 177 19 +122 51 44 +105 70 35 +139 98 16 +255 222 90 +180 77 65 +228 154 41 +222 123 49 +251 247 77 +246 172 41 +16 16 16 +248 248 248 diff --git a/graphics/pokemon/raichu/mega_y/icon.png b/graphics/pokemon/raichu/mega_y/icon.png new file mode 100644 index 000000000000..260bca75db19 Binary files /dev/null and b/graphics/pokemon/raichu/mega_y/icon.png differ diff --git a/graphics/pokemon/scolipede/mega/back.png b/graphics/pokemon/scolipede/mega/back.png new file mode 100644 index 000000000000..6c28bf79d505 Binary files /dev/null and b/graphics/pokemon/scolipede/mega/back.png differ diff --git a/graphics/pokemon/scolipede/mega/front.png b/graphics/pokemon/scolipede/mega/front.png new file mode 100644 index 000000000000..a0d76ad671ca Binary files /dev/null and b/graphics/pokemon/scolipede/mega/front.png differ diff --git a/graphics/pokemon/scolipede/mega/icon.png b/graphics/pokemon/scolipede/mega/icon.png new file mode 100644 index 000000000000..21938766e941 Binary files /dev/null and b/graphics/pokemon/scolipede/mega/icon.png differ diff --git a/graphics/pokemon/scolipede/mega/normal.pal b/graphics/pokemon/scolipede/mega/normal.pal new file mode 100644 index 000000000000..1c12ca01ae63 --- /dev/null +++ b/graphics/pokemon/scolipede/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +33 41 48 +70 0 4 +125 0 73 +109 17 71 +61 68 88 +188 0 91 +164 3 121 +58 173 124 +217 170 56 +121 125 154 +211 56 192 +82 244 171 +168 165 176 +16 16 16 +178 236 190 diff --git a/graphics/pokemon/scolipede/mega/shiny.pal b/graphics/pokemon/scolipede/mega/shiny.pal new file mode 100644 index 000000000000..5053525573f7 --- /dev/null +++ b/graphics/pokemon/scolipede/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +32 28 35 +91 13 27 +145 0 31 +40 115 104 +46 39 52 +191 56 51 +83 188 175 +131 64 201 +162 210 121 +74 65 84 +113 255 239 +178 114 243 +105 93 120 +16 16 16 +184 213 247 diff --git a/graphics/pokemon/scrafty/mega/icon.png b/graphics/pokemon/scrafty/mega/icon.png new file mode 100644 index 000000000000..d1e9a6017b31 Binary files /dev/null and b/graphics/pokemon/scrafty/mega/icon.png differ diff --git a/graphics/pokemon/skarmory/mega/back.png b/graphics/pokemon/skarmory/mega/back.png new file mode 100644 index 000000000000..815bc0eb7f0e Binary files /dev/null and b/graphics/pokemon/skarmory/mega/back.png differ diff --git a/graphics/pokemon/skarmory/mega/front.png b/graphics/pokemon/skarmory/mega/front.png new file mode 100644 index 000000000000..2d03d3ca2f24 Binary files /dev/null and b/graphics/pokemon/skarmory/mega/front.png differ diff --git a/graphics/pokemon/skarmory/mega/icon.png b/graphics/pokemon/skarmory/mega/icon.png new file mode 100644 index 000000000000..ab3ab3c285cc Binary files /dev/null and b/graphics/pokemon/skarmory/mega/icon.png differ diff --git a/graphics/pokemon/skarmory/mega/normal.pal b/graphics/pokemon/skarmory/mega/normal.pal new file mode 100644 index 000000000000..fb71beef4f45 --- /dev/null +++ b/graphics/pokemon/skarmory/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +34 36 45 +35 34 54 +92 50 38 +60 62 77 +48 62 87 +161 23 10 +230 75 59 +189 120 64 +248 187 5 +255 239 91 +102 107 153 +93 111 161 +16 16 16 +255 250 177 +255 255 255 diff --git a/graphics/pokemon/skarmory/mega/shiny.pal b/graphics/pokemon/skarmory/mega/shiny.pal new file mode 100644 index 000000000000..ec26e13b7d37 --- /dev/null +++ b/graphics/pokemon/skarmory/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +61 141 33 +50 35 33 +82 74 32 +90 197 57 +94 75 62 +161 23 10 +230 75 59 +164 148 123 +197 180 156 +230 222 180 +142 234 130 +170 138 117 +16 16 16 +238 238 205 +255 255 255 diff --git a/graphics/pokemon/staraptor/mega/back.png b/graphics/pokemon/staraptor/mega/back.png new file mode 100644 index 000000000000..db8a6867baee Binary files /dev/null and b/graphics/pokemon/staraptor/mega/back.png differ diff --git a/graphics/pokemon/staraptor/mega/front.png b/graphics/pokemon/staraptor/mega/front.png new file mode 100644 index 000000000000..dd0fa1e64c04 Binary files /dev/null and b/graphics/pokemon/staraptor/mega/front.png differ diff --git a/graphics/pokemon/staraptor/mega/normal.pal b/graphics/pokemon/staraptor/mega/normal.pal new file mode 100644 index 000000000000..9de39621dc17 --- /dev/null +++ b/graphics/pokemon/staraptor/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +55 51 55 +94 84 83 +150 82 37 +156 65 65 +246 82 65 +208 133 32 +252 189 44 +208 168 89 +141 130 129 +190 181 179 +16 16 16 +255 245 128 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/staraptor/mega/shiny.pal b/graphics/pokemon/staraptor/mega/shiny.pal new file mode 100644 index 000000000000..18bb5e7b4b42 --- /dev/null +++ b/graphics/pokemon/staraptor/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +71 53 50 +113 84 79 +156 98 32 +63 58 118 +75 87 194 +213 156 0 +252 189 44 +208 168 89 +187 159 147 +231 214 203 +16 16 16 +255 245 128 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/starmie/mega/icon.png b/graphics/pokemon/starmie/mega/icon.png new file mode 100644 index 000000000000..b46072810b92 Binary files /dev/null and b/graphics/pokemon/starmie/mega/icon.png differ diff --git a/graphics/pokemon/tatsugiri/droopy/mega/icon.png b/graphics/pokemon/tatsugiri/droopy/mega/icon.png new file mode 100644 index 000000000000..6c4629045c80 Binary files /dev/null and b/graphics/pokemon/tatsugiri/droopy/mega/icon.png differ diff --git a/graphics/pokemon/tatsugiri/mega/icon.png b/graphics/pokemon/tatsugiri/mega/icon.png new file mode 100644 index 000000000000..84f5e08851a4 Binary files /dev/null and b/graphics/pokemon/tatsugiri/mega/icon.png differ diff --git a/graphics/pokemon/tatsugiri/stretchy/mega/icon.png b/graphics/pokemon/tatsugiri/stretchy/mega/icon.png new file mode 100644 index 000000000000..fcf08eb615b2 Binary files /dev/null and b/graphics/pokemon/tatsugiri/stretchy/mega/icon.png differ diff --git a/graphics/pokemon/toxapex/overworld.png b/graphics/pokemon/toxapex/overworld.png index 2f8a61a72d14..49680f4e2c51 100644 Binary files a/graphics/pokemon/toxapex/overworld.png and b/graphics/pokemon/toxapex/overworld.png differ diff --git a/graphics/pokemon/toxapex/overworld_shiny.pal b/graphics/pokemon/toxapex/overworld_shiny.pal index a7aa04de738f..eebdd9763d15 100644 --- a/graphics/pokemon/toxapex/overworld_shiny.pal +++ b/graphics/pokemon/toxapex/overworld_shiny.pal @@ -1,10 +1,10 @@ JASC-PAL 0100 16 -255 255 255 +129 201 163 217 210 97 208 112 136 -79 158 72 +210 94 50 184 64 88 234 129 66 144 56 56 diff --git a/graphics/pokemon/toxel/overworld.png b/graphics/pokemon/toxel/overworld.png index bfc91d819780..519cc693a740 100644 Binary files a/graphics/pokemon/toxel/overworld.png and b/graphics/pokemon/toxel/overworld.png differ diff --git a/graphics/pokemon/toxel/overworld_normal.pal b/graphics/pokemon/toxel/overworld_normal.pal index 43b6ce52bd2e..b80c00c1ef08 100644 --- a/graphics/pokemon/toxel/overworld_normal.pal +++ b/graphics/pokemon/toxel/overworld_normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -252 0 20 -52 40 56 -88 88 88 -152 120 164 -24 12 32 -252 252 252 -116 84 128 0 0 0 -156 92 188 -192 188 188 -104 52 128 +0 0 0 +76 52 88 +131 73 159 +170 113 198 96 96 140 +142 110 157 +188 170 197 +235 162 217 +192 188 188 248 248 248 -0 0 0 -0 0 0 -0 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/toxel/overworld_shiny.pal b/graphics/pokemon/toxel/overworld_shiny.pal index ab75d21ddafa..faa56a365cc6 100644 --- a/graphics/pokemon/toxel/overworld_shiny.pal +++ b/graphics/pokemon/toxel/overworld_shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -252 0 20 -49 41 57 -90 90 90 -156 123 164 -41 16 24 -255 255 255 -115 82 131 -0 0 0 -197 90 131 -197 189 189 -148 57 90 -98 98 139 -255 255 255 -0 0 0 0 0 0 0 0 0 +79 44 96 +209 74 100 +239 128 150 +96 96 140 +132 76 171 +179 139 208 +235 162 217 +192 188 188 +248 248 248 +255 0 0 +255 0 0 +255 0 0 +255 0 0 +255 0 0 diff --git a/graphics/pokemon/tsareena/overworld.png b/graphics/pokemon/tsareena/overworld.png index 0f7f8724e130..d1e5be8d6636 100644 Binary files a/graphics/pokemon/tsareena/overworld.png and b/graphics/pokemon/tsareena/overworld.png differ diff --git a/graphics/pokemon/tsareena/overworld_normal.pal b/graphics/pokemon/tsareena/overworld_normal.pal index 262496ab5709..55b1a789976d 100644 --- a/graphics/pokemon/tsareena/overworld_normal.pal +++ b/graphics/pokemon/tsareena/overworld_normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -255 255 255 -241 241 241 -232 230 95 -159 211 116 -197 197 197 -125 185 77 -114 172 67 +149 204 178 +0 0 0 +44 64 27 +63 93 38 93 140 55 -137 137 137 +114 172 67 +159 211 116 +232 230 95 209 97 140 -196 71 119 -63 93 38 -174 58 103 115 35 66 -44 64 27 -0 0 0 +174 58 103 +196 71 119 +87 72 110 +197 197 197 +241 241 241 +255 0 0 diff --git a/graphics/pokemon/tsareena/overworld_shiny.pal b/graphics/pokemon/tsareena/overworld_shiny.pal index c05e30b3453a..77c5cd603b36 100644 --- a/graphics/pokemon/tsareena/overworld_shiny.pal +++ b/graphics/pokemon/tsareena/overworld_shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -255 255 255 -248 240 184 -232 95 199 -216 160 232 -200 192 128 -176 104 200 -152 88 200 -152 0 208 -137 137 137 -209 97 140 -196 71 119 -112 56 144 -174 58 103 -115 35 66 -44 64 27 +149 204 178 0 0 0 +70 55 92 +88 69 118 +119 91 160 +142 118 178 +187 169 214 +114 89 141 +219 133 166 +150 46 86 +197 81 126 +207 106 145 +87 72 110 +193 188 79 +229 228 171 +255 0 0 diff --git a/graphics/pokemon/victreebel/mega/back.png b/graphics/pokemon/victreebel/mega/back.png new file mode 100644 index 000000000000..4d942f951a35 Binary files /dev/null and b/graphics/pokemon/victreebel/mega/back.png differ diff --git a/graphics/pokemon/victreebel/mega/front.png b/graphics/pokemon/victreebel/mega/front.png new file mode 100644 index 000000000000..0c2c7befdb06 Binary files /dev/null and b/graphics/pokemon/victreebel/mega/front.png differ diff --git a/graphics/pokemon/victreebel/mega/icon.png b/graphics/pokemon/victreebel/mega/icon.png new file mode 100644 index 000000000000..81446df499ff Binary files /dev/null and b/graphics/pokemon/victreebel/mega/icon.png differ diff --git a/graphics/pokemon/victreebel/mega/normal.pal b/graphics/pokemon/victreebel/mega/normal.pal new file mode 100644 index 000000000000..e8398f5b9a19 --- /dev/null +++ b/graphics/pokemon/victreebel/mega/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +16 98 57 +98 82 41 +164 123 49 +199 65 102 +74 164 123 +237 153 81 +222 189 82 +139 197 123 +238 213 106 +245 238 99 +243 126 182 +16 16 16 +246 238 148 +189 197 197 +255 255 255 diff --git a/graphics/pokemon/victreebel/mega/shiny.pal b/graphics/pokemon/victreebel/mega/shiny.pal new file mode 100644 index 000000000000..937e57beb077 --- /dev/null +++ b/graphics/pokemon/victreebel/mega/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +98 83 47 +79 70 43 +132 118 72 +86 33 197 +164 148 90 +237 153 81 +180 230 57 +197 180 90 +222 255 90 +245 238 99 +117 73 248 +16 16 16 +230 255 131 +189 197 197 +255 255 255 diff --git a/graphics/pokemon/zeraora/mega/icon.png b/graphics/pokemon/zeraora/mega/icon.png new file mode 100644 index 000000000000..69ca51f3d1eb Binary files /dev/null and b/graphics/pokemon/zeraora/mega/icon.png differ diff --git a/graphics/pokemon/zygarde/mega/icon.png b/graphics/pokemon/zygarde/mega/icon.png new file mode 100644 index 000000000000..842b073d8706 Binary files /dev/null and b/graphics/pokemon/zygarde/mega/icon.png differ diff --git a/graphics/pokenav/region_map/leaf_icon.pal b/graphics/pokenav/region_map/leaf_icon.pal new file mode 100644 index 000000000000..27436be9202f --- /dev/null +++ b/graphics/pokenav/region_map/leaf_icon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +172 123 65 +255 197 148 +222 148 115 +123 65 65 +65 65 213 +57 57 123 +115 164 197 +106 41 41 +238 238 255 +180 180 213 +255 106 74 +197 57 57 +255 222 90 +189 156 57 +0 0 0 diff --git a/graphics/pokenav/region_map/leaf_icon.png b/graphics/pokenav/region_map/leaf_icon.png new file mode 100644 index 000000000000..879634e70940 Binary files /dev/null and b/graphics/pokenav/region_map/leaf_icon.png differ diff --git a/graphics/pokenav/region_map/map_kanto.bin b/graphics/pokenav/region_map/map_kanto.bin new file mode 100644 index 000000000000..da4eac7227fb Binary files /dev/null and b/graphics/pokenav/region_map/map_kanto.bin differ diff --git a/graphics/pokenav/region_map/map_kanto.pal b/graphics/pokenav/region_map/map_kanto.pal new file mode 100644 index 000000000000..1c7dd62c5586 --- /dev/null +++ b/graphics/pokenav/region_map/map_kanto.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +247 239 140 +239 231 115 +231 222 165 +255 222 49 +247 214 82 +206 206 206 +173 247 57 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +115 231 33 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 206 8 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokenav/region_map/map_kanto.png b/graphics/pokenav/region_map/map_kanto.png new file mode 100644 index 000000000000..b02e073039c1 Binary files /dev/null and b/graphics/pokenav/region_map/map_kanto.png differ diff --git a/graphics/pokenav/region_map/map_sevii_123.bin b/graphics/pokenav/region_map/map_sevii_123.bin new file mode 100644 index 000000000000..c67b6e8ba1d3 Binary files /dev/null and b/graphics/pokenav/region_map/map_sevii_123.bin differ diff --git a/graphics/pokenav/region_map/map_sevii_123.pal b/graphics/pokenav/region_map/map_sevii_123.pal new file mode 100644 index 000000000000..0d6ffb558f22 --- /dev/null +++ b/graphics/pokenav/region_map/map_sevii_123.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +239 231 115 +231 222 165 +255 222 49 +247 214 82 +206 206 206 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 206 8 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokenav/region_map/map_sevii_123.png b/graphics/pokenav/region_map/map_sevii_123.png new file mode 100644 index 000000000000..d0a16275712b Binary files /dev/null and b/graphics/pokenav/region_map/map_sevii_123.png differ diff --git a/graphics/pokenav/region_map/map_sevii_45.bin b/graphics/pokenav/region_map/map_sevii_45.bin new file mode 100644 index 000000000000..5275a3e0263a Binary files /dev/null and b/graphics/pokenav/region_map/map_sevii_45.bin differ diff --git a/graphics/pokenav/region_map/map_sevii_45.pal b/graphics/pokenav/region_map/map_sevii_45.pal new file mode 100644 index 000000000000..02e46997dcf2 --- /dev/null +++ b/graphics/pokenav/region_map/map_sevii_45.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +231 222 165 +255 222 49 +206 206 206 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokenav/region_map/map_sevii_45.png b/graphics/pokenav/region_map/map_sevii_45.png new file mode 100644 index 000000000000..4c55e1e70392 Binary files /dev/null and b/graphics/pokenav/region_map/map_sevii_45.png differ diff --git a/graphics/pokenav/region_map/map_sevii_67.bin b/graphics/pokenav/region_map/map_sevii_67.bin new file mode 100644 index 000000000000..8589bb6c29cc Binary files /dev/null and b/graphics/pokenav/region_map/map_sevii_67.bin differ diff --git a/graphics/pokenav/region_map/map_sevii_67.pal b/graphics/pokenav/region_map/map_sevii_67.pal new file mode 100644 index 000000000000..161d0e87bc7d --- /dev/null +++ b/graphics/pokenav/region_map/map_sevii_67.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +255 0 255 +255 255 255 +247 247 239 +231 222 165 +255 222 49 +247 214 82 +206 206 206 +156 214 255 +206 206 148 +239 189 57 +165 181 255 +255 173 16 +165 173 173 +231 165 0 +90 173 231 +189 156 41 +82 206 8 +82 148 214 +57 173 8 +115 115 99 +255 57 16 +99 99 99 +24 132 8 +148 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokenav/region_map/map_sevii_67.png b/graphics/pokenav/region_map/map_sevii_67.png new file mode 100644 index 000000000000..49cbb1ae126e Binary files /dev/null and b/graphics/pokenav/region_map/map_sevii_67.png differ diff --git a/graphics/pokenav/region_map/red_icon.pal b/graphics/pokenav/region_map/red_icon.pal new file mode 100644 index 000000000000..27436be9202f --- /dev/null +++ b/graphics/pokenav/region_map/red_icon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +172 123 65 +255 197 148 +222 148 115 +123 65 65 +65 65 213 +57 57 123 +115 164 197 +106 41 41 +238 238 255 +180 180 213 +255 106 74 +197 57 57 +255 222 90 +189 156 57 +0 0 0 diff --git a/graphics/pokenav/region_map/red_icon.png b/graphics/pokenav/region_map/red_icon.png new file mode 100644 index 000000000000..7ba4998c5e56 Binary files /dev/null and b/graphics/pokenav/region_map/red_icon.png differ diff --git a/graphics/rogue_voltorbflip/Raw/gameboard.png b/graphics/rogue_voltorbflip/Raw/gameboard.png new file mode 100644 index 000000000000..fa361e4f69fd Binary files /dev/null and b/graphics/rogue_voltorbflip/Raw/gameboard.png differ diff --git a/graphics/rogue_voltorbflip/Raw/pal.pal b/graphics/rogue_voltorbflip/Raw/pal.pal new file mode 100644 index 000000000000..24a673aea432 --- /dev/null +++ b/graphics/rogue_voltorbflip/Raw/pal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +214 122 245 +24 118 129 +158 26 26 +255 255 255 +197 32 32 +48 148 213 +224 62 62 +140 140 140 +184 184 184 +235 145 0 +255 186 46 +0 0 0 +207 207 207 +253 193 13 +49 213 74 +70 11 11 diff --git a/graphics/rogue_voltorbflip/Raw/sprites.png b/graphics/rogue_voltorbflip/Raw/sprites.png new file mode 100644 index 000000000000..4346da36b495 Binary files /dev/null and b/graphics/rogue_voltorbflip/Raw/sprites.png differ diff --git a/graphics/rogue_voltorbflip/coins.pal b/graphics/rogue_voltorbflip/coins.pal new file mode 100644 index 000000000000..7ce7a057e526 --- /dev/null +++ b/graphics/rogue_voltorbflip/coins.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +132 255 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/rogue_voltorbflip/coins.png b/graphics/rogue_voltorbflip/coins.png new file mode 100644 index 000000000000..b5a9ee23d41c Binary files /dev/null and b/graphics/rogue_voltorbflip/coins.png differ diff --git a/graphics/rogue_voltorbflip/digits.pal b/graphics/rogue_voltorbflip/digits.pal new file mode 100644 index 000000000000..7ce7a057e526 --- /dev/null +++ b/graphics/rogue_voltorbflip/digits.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +132 255 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/rogue_voltorbflip/digits.png b/graphics/rogue_voltorbflip/digits.png new file mode 100644 index 000000000000..cabe7870b792 Binary files /dev/null and b/graphics/rogue_voltorbflip/digits.png differ diff --git a/graphics/rogue_voltorbflip/gameboard.bin b/graphics/rogue_voltorbflip/gameboard.bin new file mode 100644 index 000000000000..c9c88b9e7e3b Binary files /dev/null and b/graphics/rogue_voltorbflip/gameboard.bin differ diff --git a/graphics/rogue_voltorbflip/gameboard.png b/graphics/rogue_voltorbflip/gameboard.png new file mode 100644 index 000000000000..5ce6b5314037 Binary files /dev/null and b/graphics/rogue_voltorbflip/gameboard.png differ diff --git a/graphics/rogue_voltorbflip/sprites.png b/graphics/rogue_voltorbflip/sprites.png new file mode 100644 index 000000000000..0a28ca5f213c Binary files /dev/null and b/graphics/rogue_voltorbflip/sprites.png differ diff --git a/graphics/seagallop/eb_tilemap.bin b/graphics/seagallop/eb_tilemap.bin new file mode 100644 index 000000000000..2f912fb18ea0 Binary files /dev/null and b/graphics/seagallop/eb_tilemap.bin differ diff --git a/graphics/seagallop/ferry_and_wake.pal b/graphics/seagallop/ferry_and_wake.pal new file mode 100644 index 000000000000..c25501332d0d --- /dev/null +++ b/graphics/seagallop/ferry_and_wake.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 123 180 +238 246 255 +222 230 238 +189 205 230 +156 164 189 +139 139 156 +98 98 123 +57 57 106 +197 98 98 +172 65 106 +32 74 156 +197 148 0 +246 213 24 +222 238 255 +255 255 255 +74 106 139 diff --git a/graphics/seagallop/ferry_sprite.png b/graphics/seagallop/ferry_sprite.png new file mode 100644 index 000000000000..cc06fbffa679 Binary files /dev/null and b/graphics/seagallop/ferry_sprite.png differ diff --git a/graphics/seagallop/wake.png b/graphics/seagallop/wake.png new file mode 100644 index 000000000000..a5ff28c6e6a6 Binary files /dev/null and b/graphics/seagallop/wake.png differ diff --git a/graphics/seagallop/water.png b/graphics/seagallop/water.png new file mode 100644 index 000000000000..ccf64591ad6f Binary files /dev/null and b/graphics/seagallop/water.png differ diff --git a/graphics/seagallop/wb_tilemap.bin b/graphics/seagallop/wb_tilemap.bin new file mode 100644 index 000000000000..a3c27d319002 Binary files /dev/null and b/graphics/seagallop/wb_tilemap.bin differ diff --git a/graphics/snake/berry.pal b/graphics/snake/berry.pal new file mode 100644 index 000000000000..6cc91d730cf9 --- /dev/null +++ b/graphics/snake/berry.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 255 255 +66 66 66 +239 239 239 +156 156 230 +115 115 189 +255 255 255 +140 247 214 +99 214 173 +255 214 58 +247 173 58 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/snake/berry1.png b/graphics/snake/berry1.png new file mode 100644 index 000000000000..4ed872859054 Binary files /dev/null and b/graphics/snake/berry1.png differ diff --git a/graphics/snake/berry2.png b/graphics/snake/berry2.png new file mode 100644 index 000000000000..3bd9836bb91d Binary files /dev/null and b/graphics/snake/berry2.png differ diff --git a/graphics/snake/berry3.png b/graphics/snake/berry3.png new file mode 100644 index 000000000000..be4a85aaff5d Binary files /dev/null and b/graphics/snake/berry3.png differ diff --git a/graphics/snake/bg.pal b/graphics/snake/bg.pal new file mode 100644 index 000000000000..ec4e1bc96090 --- /dev/null +++ b/graphics/snake/bg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 247 140 +222 222 222 +214 214 156 +222 198 107 +173 165 173 +140 148 156 +148 148 115 +148 132 140 +123 115 123 +123 107 115 +99 115 123 +107 99 107 +90 82 90 +66 66 74 +66 57 57 diff --git a/graphics/snake/digits.pal b/graphics/snake/digits.pal new file mode 100644 index 000000000000..581425e1fd5d --- /dev/null +++ b/graphics/snake/digits.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 0 +99 99 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/snake/digits.png b/graphics/snake/digits.png new file mode 100644 index 000000000000..a15ade978860 Binary files /dev/null and b/graphics/snake/digits.png differ diff --git a/graphics/snake/gameover.png b/graphics/snake/gameover.png new file mode 100644 index 000000000000..dd286daefc2e Binary files /dev/null and b/graphics/snake/gameover.png differ diff --git a/graphics/snake/menu.pal b/graphics/snake/menu.pal new file mode 100644 index 000000000000..90d1a1b75f9e --- /dev/null +++ b/graphics/snake/menu.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +174 174 174 +102 106 109 +78 86 93 +100 112 124 +140 146 152 +53 56 59 +219 219 219 +64 68 72 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/snake/menu.png b/graphics/snake/menu.png new file mode 100644 index 000000000000..ad79651b2adf Binary files /dev/null and b/graphics/snake/menu.png differ diff --git a/graphics/snake/onix-body-2.png b/graphics/snake/onix-body-2.png new file mode 100644 index 000000000000..701653991d9b Binary files /dev/null and b/graphics/snake/onix-body-2.png differ diff --git a/graphics/snake/onix-body-3.png b/graphics/snake/onix-body-3.png new file mode 100644 index 000000000000..d8ae0ba5b3f8 Binary files /dev/null and b/graphics/snake/onix-body-3.png differ diff --git a/graphics/snake/onix-body-4.png b/graphics/snake/onix-body-4.png new file mode 100644 index 000000000000..da0657b4f768 Binary files /dev/null and b/graphics/snake/onix-body-4.png differ diff --git a/graphics/snake/onix-body.png b/graphics/snake/onix-body.png new file mode 100644 index 000000000000..18eaa8aca6fb Binary files /dev/null and b/graphics/snake/onix-body.png differ diff --git a/graphics/snake/onix-head.png b/graphics/snake/onix-head.png new file mode 100644 index 000000000000..efe6f9935b04 Binary files /dev/null and b/graphics/snake/onix-head.png differ diff --git a/graphics/snake/onix.pal b/graphics/snake/onix.pal new file mode 100644 index 000000000000..155aac8f1caf --- /dev/null +++ b/graphics/snake/onix.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 0 255 +0 0 0 +222 213 213 +169 155 155 +48 48 48 +73 68 68 +24 24 24 +189 180 180 +124 114 114 +131 123 123 +246 238 238 +219 199 199 +82 74 74 +71 71 71 +128 128 128 +43 38 38 diff --git a/graphics/snake/snake-bg.bin b/graphics/snake/snake-bg.bin new file mode 100644 index 000000000000..25dd9c9b8c82 Binary files /dev/null and b/graphics/snake/snake-bg.bin differ diff --git a/graphics/snake/snake-bg.png b/graphics/snake/snake-bg.png new file mode 100644 index 000000000000..fb88f9083280 Binary files /dev/null and b/graphics/snake/snake-bg.png differ diff --git a/graphics/snake/start.png b/graphics/snake/start.png new file mode 100644 index 000000000000..3a9d4ccc1585 Binary files /dev/null and b/graphics/snake/start.png differ diff --git a/graphics/snake/text.pal b/graphics/snake/text.pal new file mode 100644 index 000000000000..899ca40a629d --- /dev/null +++ b/graphics/snake/text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +240 0 255 +144 40 200 +248 248 240 +140 146 152 +248 200 232 +208 72 248 +224 124 72 +248 248 135 +248 224 96 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/ss_anne/smoke.png b/graphics/ss_anne/smoke.png new file mode 100644 index 000000000000..5560247873a1 Binary files /dev/null and b/graphics/ss_anne/smoke.png differ diff --git a/graphics/ss_anne/wake.png b/graphics/ss_anne/wake.png new file mode 100644 index 000000000000..b7ce6763fba3 Binary files /dev/null and b/graphics/ss_anne/wake.png differ diff --git a/graphics/text_window/std.png b/graphics/text_window/std.png new file mode 100644 index 000000000000..ed43f0c4adab Binary files /dev/null and b/graphics/text_window/std.png differ diff --git a/graphics/title_screen_frlg/blank_sprite.png b/graphics/title_screen_frlg/blank_sprite.png new file mode 100644 index 000000000000..6377d7608225 Binary files /dev/null and b/graphics/title_screen_frlg/blank_sprite.png differ diff --git a/graphics/title_screen_frlg/border_bg.png b/graphics/title_screen_frlg/border_bg.png new file mode 100644 index 000000000000..895457c3cbf4 Binary files /dev/null and b/graphics/title_screen_frlg/border_bg.png differ diff --git a/graphics/title_screen_frlg/copyright_press_start.bin b/graphics/title_screen_frlg/copyright_press_start.bin new file mode 100644 index 000000000000..9bab57cc0507 Binary files /dev/null and b/graphics/title_screen_frlg/copyright_press_start.bin differ diff --git a/graphics/title_screen_frlg/copyright_press_start.png b/graphics/title_screen_frlg/copyright_press_start.png new file mode 100644 index 000000000000..0b4e6901590c Binary files /dev/null and b/graphics/title_screen_frlg/copyright_press_start.png differ diff --git a/graphics/title_screen_frlg/firered/background.pal b/graphics/title_screen_frlg/firered/background.pal new file mode 100644 index 000000000000..f7f14d45df52 --- /dev/null +++ b/graphics/title_screen_frlg/firered/background.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 139 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +65 180 164 +139 0 0 +172 24 0 +213 57 0 +255 90 0 diff --git a/graphics/title_screen_frlg/firered/blank_flames.png b/graphics/title_screen_frlg/firered/blank_flames.png new file mode 100644 index 000000000000..f4f030a5b39a Binary files /dev/null and b/graphics/title_screen_frlg/firered/blank_flames.png differ diff --git a/graphics/title_screen_frlg/firered/border_bg.bin b/graphics/title_screen_frlg/firered/border_bg.bin new file mode 100644 index 000000000000..375fbeb7a5b2 --- /dev/null +++ b/graphics/title_screen_frlg/firered/border_bg.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/graphics/title_screen_frlg/firered/box_art_mon.bin b/graphics/title_screen_frlg/firered/box_art_mon.bin new file mode 100644 index 000000000000..0c309689e252 Binary files /dev/null and b/graphics/title_screen_frlg/firered/box_art_mon.bin differ diff --git a/graphics/title_screen_frlg/firered/box_art_mon.pal b/graphics/title_screen_frlg/firered/box_art_mon.pal new file mode 100644 index 000000000000..0832e8306668 --- /dev/null +++ b/graphics/title_screen_frlg/firered/box_art_mon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +82 205 180 +255 0 255 +255 0 255 +255 0 255 +32 0 0 +49 0 0 +65 0 0 +90 0 0 +123 32 0 +156 32 0 +180 49 0 +205 65 0 +222 90 0 +230 123 0 diff --git a/graphics/title_screen_frlg/firered/box_art_mon.png b/graphics/title_screen_frlg/firered/box_art_mon.png new file mode 100644 index 000000000000..c9a0dc8eb90d Binary files /dev/null and b/graphics/title_screen_frlg/firered/box_art_mon.png differ diff --git a/graphics/title_screen_frlg/firered/flames.png b/graphics/title_screen_frlg/firered/flames.png new file mode 100644 index 000000000000..2581482fd521 Binary files /dev/null and b/graphics/title_screen_frlg/firered/flames.png differ diff --git a/graphics/title_screen_frlg/firered/game_title_logo.bin b/graphics/title_screen_frlg/firered/game_title_logo.bin new file mode 100644 index 000000000000..2987c5cfa518 Binary files /dev/null and b/graphics/title_screen_frlg/firered/game_title_logo.bin differ diff --git a/graphics/title_screen_frlg/firered/game_title_logo.pal b/graphics/title_screen_frlg/firered/game_title_logo.pal new file mode 100644 index 000000000000..48c7947618fe --- /dev/null +++ b/graphics/title_screen_frlg/firered/game_title_logo.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 255 41 +0 0 0 +255 238 16 +246 222 41 +246 238 246 +255 246 24 +246 246 41 +246 246 246 +246 255 255 +255 246 255 +32 0 255 +106 65 156 +32 0 238 +246 222 24 +246 222 32 +255 238 41 +255 238 49 +255 255 16 +255 255 24 +255 255 246 +255 255 255 +123 106 156 +24 41 32 +32 32 74 +32 0 230 +115 82 164 +16 0 246 +106 82 172 +246 238 32 +255 230 24 +246 230 41 +246 238 41 +246 230 49 +246 238 49 +255 246 32 +255 246 41 +255 255 32 +255 255 41 +32 24 32 +32 32 41 +197 156 41 +197 164 41 +156 156 156 +164 164 156 +172 172 172 +180 189 180 +41 0 230 +189 189 189 +197 189 189 +197 197 197 +205 205 213 +8 8 197 +246 230 24 +246 230 32 +255 238 24 +255 238 32 +32 32 32 +32 41 32 +41 32 32 +41 41 32 +49 32 32 +49 41 32 +41 32 41 +49 32 41 +24 41 41 +32 32 90 +16 24 106 +24 32 98 +41 32 82 +41 32 98 +41 41 82 +41 41 98 +0 0 115 +8 8 131 +32 24 115 +32 24 131 +32 41 115 +41 41 115 +32 41 131 +41 41 131 +57 41 41 +57 41 49 +57 49 41 +57 57 57 +65 41 41 +74 41 41 +65 57 57 +74 57 57 +57 74 74 +65 65 74 +82 74 82 +82 57 131 +82 90 82 +90 90 90 +90 98 98 +98 98 106 +115 106 106 +131 98 115 +139 98 106 +139 115 98 +180 139 57 +172 131 65 +156 115 90 +156 131 82 +115 82 139 +123 82 131 +115 98 131 +131 98 123 +115 123 123 +123 123 131 +139 131 139 +148 123 131 +205 172 24 +213 172 16 +205 164 32 +213 172 32 +222 189 24 +230 189 16 +213 189 32 +222 189 32 +230 205 24 +230 205 32 +230 213 32 +238 222 32 +180 148 57 +189 156 49 +180 148 74 +180 172 90 +156 148 123 +139 148 139 +164 148 115 +172 156 106 +197 156 49 +205 180 49 +197 172 90 +205 189 82 +222 205 49 +230 222 49 +205 205 74 +222 213 65 +49 0 230 +213 213 213 +222 230 230 +222 230 230 +255 0 246 +255 0 255 +16 8 197 +16 16 189 +32 16 164 +41 16 164 +32 16 180 +41 16 189 +8 8 205 +8 16 205 +24 8 213 +24 16 205 +41 8 213 +41 16 213 +49 8 213 +57 16 213 +16 8 230 +24 8 230 +24 16 230 +24 24 230 +8 8 246 +8 16 246 +16 8 246 +16 16 246 +32 8 230 +32 16 230 +32 8 238 +32 8 246 +41 8 230 +41 16 230 +49 16 230 +49 8 238 +32 32 156 +24 32 172 +41 41 156 +41 32 164 +74 49 180 +82 49 172 +82 65 164 +90 74 164 +24 32 189 +57 41 189 +41 32 213 +57 32 213 +74 41 189 +90 57 189 +74 49 197 +74 41 205 +49 49 49 +197 197 197 +189 189 189 +156 156 156 +172 172 172 +139 139 139 +115 115 115 +255 255 255 +16 16 16 +98 98 98 +246 246 246 +82 82 82 +230 230 230 +213 213 213 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/title_screen_frlg/firered/game_title_logo.png b/graphics/title_screen_frlg/firered/game_title_logo.png new file mode 100644 index 000000000000..9d9cd68f18f2 Binary files /dev/null and b/graphics/title_screen_frlg/firered/game_title_logo.png differ diff --git a/graphics/title_screen_frlg/firered/slash.pal b/graphics/title_screen_frlg/firered/slash.pal new file mode 100644 index 000000000000..7a29ab72cda6 --- /dev/null +++ b/graphics/title_screen_frlg/firered/slash.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 205 180 +189 197 205 +164 164 172 +123 131 131 +213 213 222 +255 246 74 +255 213 32 +164 131 24 +246 164 24 +131 90 16 +106 98 90 +65 57 41 +230 82 16 +205 41 0 +139 8 8 +246 246 246 diff --git a/graphics/title_screen_frlg/leafgreen/background.pal b/graphics/title_screen_frlg/leafgreen/background.pal new file mode 100644 index 000000000000..83a644193e11 --- /dev/null +++ b/graphics/title_screen_frlg/leafgreen/background.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 90 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +230 123 90 +0 123 0 +16 148 32 +41 180 65 +65 213 98 diff --git a/graphics/title_screen_frlg/leafgreen/border_bg.bin b/graphics/title_screen_frlg/leafgreen/border_bg.bin new file mode 100644 index 000000000000..108680bc3f59 --- /dev/null +++ b/graphics/title_screen_frlg/leafgreen/border_bg.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/graphics/title_screen_frlg/leafgreen/box_art_mon.bin b/graphics/title_screen_frlg/leafgreen/box_art_mon.bin new file mode 100644 index 000000000000..666c158cab6e Binary files /dev/null and b/graphics/title_screen_frlg/leafgreen/box_art_mon.bin differ diff --git a/graphics/title_screen_frlg/leafgreen/box_art_mon.pal b/graphics/title_screen_frlg/leafgreen/box_art_mon.pal new file mode 100644 index 000000000000..2d8915888f01 --- /dev/null +++ b/graphics/title_screen_frlg/leafgreen/box_art_mon.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 148 98 +0 0 0 +246 148 98 +255 0 255 +255 0 255 +255 0 255 +0 32 32 +0 49 41 +0 65 49 +0 82 57 +16 98 74 +24 115 90 +41 148 115 +74 180 139 +98 205 156 +131 230 172 diff --git a/graphics/title_screen_frlg/leafgreen/box_art_mon.png b/graphics/title_screen_frlg/leafgreen/box_art_mon.png new file mode 100644 index 000000000000..f496b62a8ba4 Binary files /dev/null and b/graphics/title_screen_frlg/leafgreen/box_art_mon.png differ diff --git a/graphics/title_screen_frlg/leafgreen/game_title_logo.bin b/graphics/title_screen_frlg/leafgreen/game_title_logo.bin new file mode 100644 index 000000000000..6ce2f1b91687 Binary files /dev/null and b/graphics/title_screen_frlg/leafgreen/game_title_logo.bin differ diff --git a/graphics/title_screen_frlg/leafgreen/game_title_logo.pal b/graphics/title_screen_frlg/leafgreen/game_title_logo.pal new file mode 100644 index 000000000000..7a87d6ae026a --- /dev/null +++ b/graphics/title_screen_frlg/leafgreen/game_title_logo.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 255 41 +0 0 0 +255 238 16 +246 222 41 +246 238 246 +255 246 24 +246 246 41 +246 246 246 +246 255 255 +255 246 255 +32 0 255 +106 65 156 +32 0 238 +246 222 24 +246 222 32 +255 238 41 +255 238 49 +255 255 16 +255 255 24 +255 255 246 +255 255 255 +123 106 156 +24 41 32 +32 32 74 +32 0 230 +115 82 164 +16 0 246 +106 82 172 +246 238 32 +255 230 24 +246 230 41 +246 238 41 +246 230 49 +246 238 49 +255 246 32 +255 246 41 +255 255 32 +255 255 41 +32 24 32 +32 32 41 +197 156 41 +197 164 41 +156 156 156 +164 164 156 +172 172 172 +180 189 180 +41 0 230 +189 189 189 +197 189 189 +197 197 197 +205 205 213 +8 8 197 +246 230 24 +246 230 32 +255 238 24 +255 238 32 +32 32 32 +32 41 32 +41 32 32 +41 41 32 +49 32 32 +49 41 32 +41 32 41 +49 32 41 +24 41 41 +32 32 90 +16 24 106 +24 32 98 +41 32 82 +41 32 98 +41 41 82 +41 41 98 +0 0 115 +8 8 131 +32 24 115 +32 24 131 +32 41 115 +41 41 115 +32 41 131 +41 41 131 +57 41 41 +57 41 49 +57 49 41 +57 57 57 +65 41 41 +74 41 41 +65 57 57 +74 57 57 +57 74 74 +65 65 74 +82 74 82 +82 57 131 +82 90 82 +90 90 90 +90 98 98 +98 98 106 +115 106 106 +131 98 115 +139 98 106 +139 115 98 +180 139 57 +172 131 65 +156 115 90 +156 131 82 +115 82 139 +123 82 131 +115 98 131 +131 98 123 +115 123 123 +123 123 131 +139 131 139 +148 123 131 +205 172 24 +213 172 16 +205 164 32 +213 172 32 +222 189 24 +230 189 16 +213 189 32 +222 189 32 +230 205 24 +230 205 32 +230 213 32 +238 222 32 +180 148 57 +189 156 49 +180 148 74 +180 172 90 +156 148 123 +139 148 139 +164 148 115 +172 156 106 +197 156 49 +205 180 49 +197 172 90 +205 189 82 +222 205 49 +230 222 49 +205 205 74 +222 213 65 +49 0 230 +213 213 213 +222 230 230 +222 230 230 +255 0 246 +255 0 255 +16 8 197 +16 16 189 +32 16 164 +41 16 164 +32 16 180 +41 16 189 +8 8 205 +8 16 205 +24 8 213 +24 16 205 +41 8 213 +41 16 213 +49 8 213 +57 16 213 +16 8 230 +24 8 230 +24 16 230 +24 24 230 +8 8 246 +8 16 246 +16 8 246 +16 16 246 +32 8 230 +32 16 230 +32 8 238 +32 8 246 +41 8 230 +41 16 230 +49 16 230 +49 8 238 +32 32 156 +24 32 172 +41 41 156 +41 32 164 +74 49 180 +82 49 172 +82 65 164 +90 74 164 +24 32 189 +57 41 189 +41 32 213 +57 32 213 +74 41 189 +90 57 189 +74 49 197 +74 41 205 +205 205 205 +41 41 41 +189 189 189 +172 172 172 +246 246 246 +123 123 123 +156 156 156 +139 139 139 +238 238 238 +16 16 16 +98 98 98 +82 82 82 +222 222 222 +57 57 57 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/title_screen_frlg/leafgreen/game_title_logo.png b/graphics/title_screen_frlg/leafgreen/game_title_logo.png new file mode 100644 index 000000000000..c347381212cd Binary files /dev/null and b/graphics/title_screen_frlg/leafgreen/game_title_logo.png differ diff --git a/graphics/title_screen_frlg/leafgreen/leaves.png b/graphics/title_screen_frlg/leafgreen/leaves.png new file mode 100644 index 000000000000..0887ab78e12d Binary files /dev/null and b/graphics/title_screen_frlg/leafgreen/leaves.png differ diff --git a/graphics/title_screen_frlg/leafgreen/slash.pal b/graphics/title_screen_frlg/leafgreen/slash.pal new file mode 100644 index 000000000000..4b0df85f29ce --- /dev/null +++ b/graphics/title_screen_frlg/leafgreen/slash.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 213 +172 180 197 +49 57 65 +115 123 131 +246 246 246 +57 82 82 +90 115 115 +123 131 123 +49 74 57 +16 32 24 +0 82 0 +32 82 24 +16 98 0 +57 164 16 +90 222 24 +189 255 8 diff --git a/graphics/title_screen_frlg/leafgreen/streak.png b/graphics/title_screen_frlg/leafgreen/streak.png new file mode 100644 index 000000000000..8a66474c2699 Binary files /dev/null and b/graphics/title_screen_frlg/leafgreen/streak.png differ diff --git a/graphics/title_screen_frlg/slash.png b/graphics/title_screen_frlg/slash.png new file mode 100644 index 000000000000..5df5716a5cfc Binary files /dev/null and b/graphics/title_screen_frlg/slash.png differ diff --git a/graphics/title_screen_frlg/unused1.bin b/graphics/title_screen_frlg/unused1.bin new file mode 100644 index 000000000000..54748ea04292 Binary files /dev/null and b/graphics/title_screen_frlg/unused1.bin differ diff --git a/graphics/title_screen_frlg/unused2.bin b/graphics/title_screen_frlg/unused2.bin new file mode 100644 index 000000000000..932da7b46f91 Binary files /dev/null and b/graphics/title_screen_frlg/unused2.bin differ diff --git a/graphics/title_screen_frlg/unused3.bin b/graphics/title_screen_frlg/unused3.bin new file mode 100644 index 000000000000..7271feda42d3 Binary files /dev/null and b/graphics/title_screen_frlg/unused3.bin differ diff --git a/graphics/title_screen_frlg/unused4.bin b/graphics/title_screen_frlg/unused4.bin new file mode 100644 index 000000000000..f983e37a53a7 Binary files /dev/null and b/graphics/title_screen_frlg/unused4.bin differ diff --git a/graphics/title_screen_frlg/unused5.bin b/graphics/title_screen_frlg/unused5.bin new file mode 100644 index 000000000000..bba7a0909c0d Binary files /dev/null and b/graphics/title_screen_frlg/unused5.bin differ diff --git a/graphics/title_screen_frlg/unused6.bin b/graphics/title_screen_frlg/unused6.bin new file mode 100644 index 000000000000..9e13c930b182 Binary files /dev/null and b/graphics/title_screen_frlg/unused6.bin differ diff --git a/graphics/trainers/back_pics/old_man.png b/graphics/trainers/back_pics/old_man.png new file mode 100644 index 000000000000..07793a1be2bd Binary files /dev/null and b/graphics/trainers/back_pics/old_man.png differ diff --git a/graphics/trainers/back_pics/pokedude.png b/graphics/trainers/back_pics/pokedude.png new file mode 100644 index 000000000000..6f2f543a41d3 Binary files /dev/null and b/graphics/trainers/back_pics/pokedude.png differ diff --git a/graphics/trainers/front_pics/aroma_lady_frlg.png b/graphics/trainers/front_pics/aroma_lady_frlg.png new file mode 100644 index 000000000000..3bb53e99157c Binary files /dev/null and b/graphics/trainers/front_pics/aroma_lady_frlg.png differ diff --git a/graphics/trainers/front_pics/beauty_frlg.png b/graphics/trainers/front_pics/beauty_frlg.png new file mode 100644 index 000000000000..595d0bf1ef70 Binary files /dev/null and b/graphics/trainers/front_pics/beauty_frlg.png differ diff --git a/graphics/trainers/front_pics/biker_frlg.png b/graphics/trainers/front_pics/biker_frlg.png new file mode 100644 index 000000000000..e8c23dfc7f49 Binary files /dev/null and b/graphics/trainers/front_pics/biker_frlg.png differ diff --git a/graphics/trainers/front_pics/bird_keeper_frlg.png b/graphics/trainers/front_pics/bird_keeper_frlg.png new file mode 100644 index 000000000000..2e29f2446a20 Binary files /dev/null and b/graphics/trainers/front_pics/bird_keeper_frlg.png differ diff --git a/graphics/trainers/front_pics/black_belt_frlg.png b/graphics/trainers/front_pics/black_belt_frlg.png new file mode 100644 index 000000000000..a433cb406c8a Binary files /dev/null and b/graphics/trainers/front_pics/black_belt_frlg.png differ diff --git a/graphics/trainers/front_pics/bug_catcher_frlg.png b/graphics/trainers/front_pics/bug_catcher_frlg.png new file mode 100644 index 000000000000..3bb8f8d8aa03 Binary files /dev/null and b/graphics/trainers/front_pics/bug_catcher_frlg.png differ diff --git a/graphics/trainers/front_pics/burglar_frlg.png b/graphics/trainers/front_pics/burglar_frlg.png new file mode 100644 index 000000000000..5b68df0ee08e Binary files /dev/null and b/graphics/trainers/front_pics/burglar_frlg.png differ diff --git a/graphics/trainers/front_pics/camper_frlg.png b/graphics/trainers/front_pics/camper_frlg.png new file mode 100644 index 000000000000..d150b02f6cb2 Binary files /dev/null and b/graphics/trainers/front_pics/camper_frlg.png differ diff --git a/graphics/trainers/front_pics/champion_rival_frlg.png b/graphics/trainers/front_pics/champion_rival_frlg.png new file mode 100644 index 000000000000..18f166dd595a Binary files /dev/null and b/graphics/trainers/front_pics/champion_rival_frlg.png differ diff --git a/graphics/trainers/front_pics/champion_steven_frlg.png b/graphics/trainers/front_pics/champion_steven_frlg.png new file mode 100644 index 000000000000..a322cbe5a5b1 Binary files /dev/null and b/graphics/trainers/front_pics/champion_steven_frlg.png differ diff --git a/graphics/trainers/front_pics/channeler_frlg.png b/graphics/trainers/front_pics/channeler_frlg.png new file mode 100644 index 000000000000..79ba41f8a501 Binary files /dev/null and b/graphics/trainers/front_pics/channeler_frlg.png differ diff --git a/graphics/trainers/front_pics/collector_frlg.png b/graphics/trainers/front_pics/collector_frlg.png new file mode 100644 index 000000000000..15187ce1c846 Binary files /dev/null and b/graphics/trainers/front_pics/collector_frlg.png differ diff --git a/graphics/trainers/front_pics/cool_couple_frlg.png b/graphics/trainers/front_pics/cool_couple_frlg.png new file mode 100644 index 000000000000..735d22fc7225 Binary files /dev/null and b/graphics/trainers/front_pics/cool_couple_frlg.png differ diff --git a/graphics/trainers/front_pics/cool_trainer_f_frlg.png b/graphics/trainers/front_pics/cool_trainer_f_frlg.png new file mode 100644 index 000000000000..ca5d24f60c48 Binary files /dev/null and b/graphics/trainers/front_pics/cool_trainer_f_frlg.png differ diff --git a/graphics/trainers/front_pics/cool_trainer_m_frlg.png b/graphics/trainers/front_pics/cool_trainer_m_frlg.png new file mode 100644 index 000000000000..509f37fcb1ed Binary files /dev/null and b/graphics/trainers/front_pics/cool_trainer_m_frlg.png differ diff --git a/graphics/trainers/front_pics/crush_girl_frlg.png b/graphics/trainers/front_pics/crush_girl_frlg.png new file mode 100644 index 000000000000..b35dea83d959 Binary files /dev/null and b/graphics/trainers/front_pics/crush_girl_frlg.png differ diff --git a/graphics/trainers/front_pics/crush_kin_frlg.png b/graphics/trainers/front_pics/crush_kin_frlg.png new file mode 100644 index 000000000000..062ac4a7521f Binary files /dev/null and b/graphics/trainers/front_pics/crush_kin_frlg.png differ diff --git a/graphics/trainers/front_pics/cue_ball_frlg.png b/graphics/trainers/front_pics/cue_ball_frlg.png new file mode 100644 index 000000000000..98a6eebaa38e Binary files /dev/null and b/graphics/trainers/front_pics/cue_ball_frlg.png differ diff --git a/graphics/trainers/front_pics/cycling_triathlete_f_frlg.png b/graphics/trainers/front_pics/cycling_triathlete_f_frlg.png new file mode 100644 index 000000000000..b5c2662b3682 Binary files /dev/null and b/graphics/trainers/front_pics/cycling_triathlete_f_frlg.png differ diff --git a/graphics/trainers/front_pics/cycling_triathlete_m_frlg.png b/graphics/trainers/front_pics/cycling_triathlete_m_frlg.png new file mode 100644 index 000000000000..b2f55f0fc082 Binary files /dev/null and b/graphics/trainers/front_pics/cycling_triathlete_m_frlg.png differ diff --git a/graphics/trainers/front_pics/dragon_tamer_frlg.png b/graphics/trainers/front_pics/dragon_tamer_frlg.png new file mode 100644 index 000000000000..285f2207c9fc Binary files /dev/null and b/graphics/trainers/front_pics/dragon_tamer_frlg.png differ diff --git a/graphics/trainers/front_pics/elite_four_agatha_frlg.png b/graphics/trainers/front_pics/elite_four_agatha_frlg.png new file mode 100644 index 000000000000..b647b4fc4d7d Binary files /dev/null and b/graphics/trainers/front_pics/elite_four_agatha_frlg.png differ diff --git a/graphics/trainers/front_pics/elite_four_bruno_frlg.png b/graphics/trainers/front_pics/elite_four_bruno_frlg.png new file mode 100644 index 000000000000..9902bcb4b5cd Binary files /dev/null and b/graphics/trainers/front_pics/elite_four_bruno_frlg.png differ diff --git a/graphics/trainers/front_pics/elite_four_lance_frlg.png b/graphics/trainers/front_pics/elite_four_lance_frlg.png new file mode 100644 index 000000000000..ff55baed98e7 Binary files /dev/null and b/graphics/trainers/front_pics/elite_four_lance_frlg.png differ diff --git a/graphics/trainers/front_pics/elite_four_lorelei_frlg.png b/graphics/trainers/front_pics/elite_four_lorelei_frlg.png new file mode 100644 index 000000000000..c8109d61ab04 Binary files /dev/null and b/graphics/trainers/front_pics/elite_four_lorelei_frlg.png differ diff --git a/graphics/trainers/front_pics/engineer_frlg.png b/graphics/trainers/front_pics/engineer_frlg.png new file mode 100644 index 000000000000..82e51e00632c Binary files /dev/null and b/graphics/trainers/front_pics/engineer_frlg.png differ diff --git a/graphics/trainers/front_pics/expert_f_frlg.png b/graphics/trainers/front_pics/expert_f_frlg.png new file mode 100644 index 000000000000..5f69c2de6408 Binary files /dev/null and b/graphics/trainers/front_pics/expert_f_frlg.png differ diff --git a/graphics/trainers/front_pics/expert_m_frlg.png b/graphics/trainers/front_pics/expert_m_frlg.png new file mode 100644 index 000000000000..1c53bf71f0d8 Binary files /dev/null and b/graphics/trainers/front_pics/expert_m_frlg.png differ diff --git a/graphics/trainers/front_pics/fisherman_frlg.png b/graphics/trainers/front_pics/fisherman_frlg.png new file mode 100644 index 000000000000..5aa6d4aa35db Binary files /dev/null and b/graphics/trainers/front_pics/fisherman_frlg.png differ diff --git a/graphics/trainers/front_pics/gamer_frlg.png b/graphics/trainers/front_pics/gamer_frlg.png new file mode 100644 index 000000000000..74c24a9ad2fe Binary files /dev/null and b/graphics/trainers/front_pics/gamer_frlg.png differ diff --git a/graphics/trainers/front_pics/gentleman_frlg.png b/graphics/trainers/front_pics/gentleman_frlg.png new file mode 100644 index 000000000000..c62aadb16461 Binary files /dev/null and b/graphics/trainers/front_pics/gentleman_frlg.png differ diff --git a/graphics/trainers/front_pics/guitarist_frlg.png b/graphics/trainers/front_pics/guitarist_frlg.png new file mode 100644 index 000000000000..477f76bdce86 Binary files /dev/null and b/graphics/trainers/front_pics/guitarist_frlg.png differ diff --git a/graphics/trainers/front_pics/hex_maniac_frlg.png b/graphics/trainers/front_pics/hex_maniac_frlg.png new file mode 100644 index 000000000000..8d66b47941a5 Binary files /dev/null and b/graphics/trainers/front_pics/hex_maniac_frlg.png differ diff --git a/graphics/trainers/front_pics/hiker_frlg.png b/graphics/trainers/front_pics/hiker_frlg.png new file mode 100644 index 000000000000..41deedf8af97 Binary files /dev/null and b/graphics/trainers/front_pics/hiker_frlg.png differ diff --git a/graphics/trainers/front_pics/interviewer_frlg.png b/graphics/trainers/front_pics/interviewer_frlg.png new file mode 100644 index 000000000000..ff2f9ca542ff Binary files /dev/null and b/graphics/trainers/front_pics/interviewer_frlg.png differ diff --git a/graphics/trainers/front_pics/juggler_frlg.png b/graphics/trainers/front_pics/juggler_frlg.png new file mode 100644 index 000000000000..745e76dd4c4a Binary files /dev/null and b/graphics/trainers/front_pics/juggler_frlg.png differ diff --git a/graphics/trainers/front_pics/kindler_frlg.png b/graphics/trainers/front_pics/kindler_frlg.png new file mode 100644 index 000000000000..01deeb1d9e3b Binary files /dev/null and b/graphics/trainers/front_pics/kindler_frlg.png differ diff --git a/graphics/trainers/front_pics/lady_frlg.png b/graphics/trainers/front_pics/lady_frlg.png new file mode 100644 index 000000000000..2f3d2be0377e Binary files /dev/null and b/graphics/trainers/front_pics/lady_frlg.png differ diff --git a/graphics/trainers/front_pics/lass_frlg.png b/graphics/trainers/front_pics/lass_frlg.png new file mode 100644 index 000000000000..888d627404af Binary files /dev/null and b/graphics/trainers/front_pics/lass_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_blaine_frlg.png b/graphics/trainers/front_pics/leader_blaine_frlg.png new file mode 100644 index 000000000000..05d71edfce38 Binary files /dev/null and b/graphics/trainers/front_pics/leader_blaine_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_brock_frlg.png b/graphics/trainers/front_pics/leader_brock_frlg.png new file mode 100644 index 000000000000..2eeaf2d6d0da Binary files /dev/null and b/graphics/trainers/front_pics/leader_brock_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_erika_frlg.png b/graphics/trainers/front_pics/leader_erika_frlg.png new file mode 100644 index 000000000000..210ec51c9f0d Binary files /dev/null and b/graphics/trainers/front_pics/leader_erika_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_giovanni_frlg.png b/graphics/trainers/front_pics/leader_giovanni_frlg.png new file mode 100644 index 000000000000..09f8dd334682 Binary files /dev/null and b/graphics/trainers/front_pics/leader_giovanni_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_koga_frlg.png b/graphics/trainers/front_pics/leader_koga_frlg.png new file mode 100644 index 000000000000..790f56f4a920 Binary files /dev/null and b/graphics/trainers/front_pics/leader_koga_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_lt_surge_frlg.png b/graphics/trainers/front_pics/leader_lt_surge_frlg.png new file mode 100644 index 000000000000..87940b30dec2 Binary files /dev/null and b/graphics/trainers/front_pics/leader_lt_surge_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_misty_frlg.png b/graphics/trainers/front_pics/leader_misty_frlg.png new file mode 100644 index 000000000000..22ca5aaa576d Binary files /dev/null and b/graphics/trainers/front_pics/leader_misty_frlg.png differ diff --git a/graphics/trainers/front_pics/leader_sabrina_frlg.png b/graphics/trainers/front_pics/leader_sabrina_frlg.png new file mode 100644 index 000000000000..81a491fe96db Binary files /dev/null and b/graphics/trainers/front_pics/leader_sabrina_frlg.png differ diff --git a/graphics/trainers/front_pics/painter_frlg.png b/graphics/trainers/front_pics/painter_frlg.png new file mode 100644 index 000000000000..e8dfa555fbab Binary files /dev/null and b/graphics/trainers/front_pics/painter_frlg.png differ diff --git a/graphics/trainers/front_pics/parasol_lady_frlg.png b/graphics/trainers/front_pics/parasol_lady_frlg.png new file mode 100644 index 000000000000..088d4d76eb33 Binary files /dev/null and b/graphics/trainers/front_pics/parasol_lady_frlg.png differ diff --git a/graphics/trainers/front_pics/picnicker_frlg.png b/graphics/trainers/front_pics/picnicker_frlg.png new file mode 100644 index 000000000000..7d87be9ad4e5 Binary files /dev/null and b/graphics/trainers/front_pics/picnicker_frlg.png differ diff --git a/graphics/trainers/front_pics/pokefan_f_frlg.png b/graphics/trainers/front_pics/pokefan_f_frlg.png new file mode 100644 index 000000000000..4d4f9cffe826 Binary files /dev/null and b/graphics/trainers/front_pics/pokefan_f_frlg.png differ diff --git a/graphics/trainers/front_pics/pokefan_m_frlg.png b/graphics/trainers/front_pics/pokefan_m_frlg.png new file mode 100644 index 000000000000..a6dc4a18ea7a Binary files /dev/null and b/graphics/trainers/front_pics/pokefan_m_frlg.png differ diff --git a/graphics/trainers/front_pics/pokemaniac_frlg.png b/graphics/trainers/front_pics/pokemaniac_frlg.png new file mode 100644 index 000000000000..61422329c633 Binary files /dev/null and b/graphics/trainers/front_pics/pokemaniac_frlg.png differ diff --git a/graphics/trainers/front_pics/pokemon_breeder_frlg.png b/graphics/trainers/front_pics/pokemon_breeder_frlg.png new file mode 100644 index 000000000000..35ff34854634 Binary files /dev/null and b/graphics/trainers/front_pics/pokemon_breeder_frlg.png differ diff --git a/graphics/trainers/front_pics/pokemon_ranger_f_frlg.png b/graphics/trainers/front_pics/pokemon_ranger_f_frlg.png new file mode 100644 index 000000000000..382fb2a1445a Binary files /dev/null and b/graphics/trainers/front_pics/pokemon_ranger_f_frlg.png differ diff --git a/graphics/trainers/front_pics/pokemon_ranger_m_frlg.png b/graphics/trainers/front_pics/pokemon_ranger_m_frlg.png new file mode 100644 index 000000000000..a85efa3d3db7 Binary files /dev/null and b/graphics/trainers/front_pics/pokemon_ranger_m_frlg.png differ diff --git a/graphics/trainers/front_pics/professor_oak_frlg.png b/graphics/trainers/front_pics/professor_oak_frlg.png new file mode 100644 index 000000000000..5e2a19aed8c0 Binary files /dev/null and b/graphics/trainers/front_pics/professor_oak_frlg.png differ diff --git a/graphics/trainers/front_pics/psychic_f_frlg.png b/graphics/trainers/front_pics/psychic_f_frlg.png new file mode 100644 index 000000000000..328028ea7e29 Binary files /dev/null and b/graphics/trainers/front_pics/psychic_f_frlg.png differ diff --git a/graphics/trainers/front_pics/psychic_m_frlg.png b/graphics/trainers/front_pics/psychic_m_frlg.png new file mode 100644 index 000000000000..a0a6b5ad8172 Binary files /dev/null and b/graphics/trainers/front_pics/psychic_m_frlg.png differ diff --git a/graphics/trainers/front_pics/rich_boy_frlg.png b/graphics/trainers/front_pics/rich_boy_frlg.png new file mode 100644 index 000000000000..c0404a44e4c1 Binary files /dev/null and b/graphics/trainers/front_pics/rich_boy_frlg.png differ diff --git a/graphics/trainers/front_pics/rival_early_frlg.png b/graphics/trainers/front_pics/rival_early_frlg.png new file mode 100644 index 000000000000..75022cef7ab3 Binary files /dev/null and b/graphics/trainers/front_pics/rival_early_frlg.png differ diff --git a/graphics/trainers/front_pics/rival_late_frlg.png b/graphics/trainers/front_pics/rival_late_frlg.png new file mode 100644 index 000000000000..822ac12c4f16 Binary files /dev/null and b/graphics/trainers/front_pics/rival_late_frlg.png differ diff --git a/graphics/trainers/front_pics/rocker_frlg.png b/graphics/trainers/front_pics/rocker_frlg.png new file mode 100644 index 000000000000..9fa7345200c0 Binary files /dev/null and b/graphics/trainers/front_pics/rocker_frlg.png differ diff --git a/graphics/trainers/front_pics/rocket_grunt_f_frlg.png b/graphics/trainers/front_pics/rocket_grunt_f_frlg.png new file mode 100644 index 000000000000..3593ef115441 Binary files /dev/null and b/graphics/trainers/front_pics/rocket_grunt_f_frlg.png differ diff --git a/graphics/trainers/front_pics/rocket_grunt_m_frlg.png b/graphics/trainers/front_pics/rocket_grunt_m_frlg.png new file mode 100644 index 000000000000..de95d378dd72 Binary files /dev/null and b/graphics/trainers/front_pics/rocket_grunt_m_frlg.png differ diff --git a/graphics/trainers/front_pics/ruin_maniac_frlg.png b/graphics/trainers/front_pics/ruin_maniac_frlg.png new file mode 100644 index 000000000000..ad9d0492c0d5 Binary files /dev/null and b/graphics/trainers/front_pics/ruin_maniac_frlg.png differ diff --git a/graphics/trainers/front_pics/running_triathlete_f_frlg.png b/graphics/trainers/front_pics/running_triathlete_f_frlg.png new file mode 100644 index 000000000000..29297cc82d20 Binary files /dev/null and b/graphics/trainers/front_pics/running_triathlete_f_frlg.png differ diff --git a/graphics/trainers/front_pics/running_triathlete_m_frlg.png b/graphics/trainers/front_pics/running_triathlete_m_frlg.png new file mode 100644 index 000000000000..7fe34330f99e Binary files /dev/null and b/graphics/trainers/front_pics/running_triathlete_m_frlg.png differ diff --git a/graphics/trainers/front_pics/sailor_frlg.png b/graphics/trainers/front_pics/sailor_frlg.png new file mode 100644 index 000000000000..2ef90d0a26fc Binary files /dev/null and b/graphics/trainers/front_pics/sailor_frlg.png differ diff --git a/graphics/trainers/front_pics/school_kid_f_frlg.png b/graphics/trainers/front_pics/school_kid_f_frlg.png new file mode 100644 index 000000000000..9107a43737bc Binary files /dev/null and b/graphics/trainers/front_pics/school_kid_f_frlg.png differ diff --git a/graphics/trainers/front_pics/school_kid_m_frlg.png b/graphics/trainers/front_pics/school_kid_m_frlg.png new file mode 100644 index 000000000000..614f99ae13b8 Binary files /dev/null and b/graphics/trainers/front_pics/school_kid_m_frlg.png differ diff --git a/graphics/trainers/front_pics/scientist_frlg.png b/graphics/trainers/front_pics/scientist_frlg.png new file mode 100644 index 000000000000..78f7e6e8267e Binary files /dev/null and b/graphics/trainers/front_pics/scientist_frlg.png differ diff --git a/graphics/trainers/front_pics/sis_and_bro_frlg.png b/graphics/trainers/front_pics/sis_and_bro_frlg.png new file mode 100644 index 000000000000..1477547d33d7 Binary files /dev/null and b/graphics/trainers/front_pics/sis_and_bro_frlg.png differ diff --git a/graphics/trainers/front_pics/sr_and_jr_frlg.png b/graphics/trainers/front_pics/sr_and_jr_frlg.png new file mode 100644 index 000000000000..124637452bba Binary files /dev/null and b/graphics/trainers/front_pics/sr_and_jr_frlg.png differ diff --git a/graphics/trainers/front_pics/super_nerd_frlg.png b/graphics/trainers/front_pics/super_nerd_frlg.png new file mode 100644 index 000000000000..ed22b6bfa37d Binary files /dev/null and b/graphics/trainers/front_pics/super_nerd_frlg.png differ diff --git a/graphics/trainers/front_pics/swimmer_f_frlg.png b/graphics/trainers/front_pics/swimmer_f_frlg.png new file mode 100644 index 000000000000..a0fdb7d1e7af Binary files /dev/null and b/graphics/trainers/front_pics/swimmer_f_frlg.png differ diff --git a/graphics/trainers/front_pics/swimmer_m_frlg.png b/graphics/trainers/front_pics/swimmer_m_frlg.png new file mode 100644 index 000000000000..af545f09c0e3 Binary files /dev/null and b/graphics/trainers/front_pics/swimmer_m_frlg.png differ diff --git a/graphics/trainers/front_pics/swimming_triathlete_f_frlg.png b/graphics/trainers/front_pics/swimming_triathlete_f_frlg.png new file mode 100644 index 000000000000..808c1c1c7738 Binary files /dev/null and b/graphics/trainers/front_pics/swimming_triathlete_f_frlg.png differ diff --git a/graphics/trainers/front_pics/swimming_triathlete_m_frlg.png b/graphics/trainers/front_pics/swimming_triathlete_m_frlg.png new file mode 100644 index 000000000000..f649d004514f Binary files /dev/null and b/graphics/trainers/front_pics/swimming_triathlete_m_frlg.png differ diff --git a/graphics/trainers/front_pics/tamer_frlg.png b/graphics/trainers/front_pics/tamer_frlg.png new file mode 100644 index 000000000000..b26a2ec78702 Binary files /dev/null and b/graphics/trainers/front_pics/tamer_frlg.png differ diff --git a/graphics/trainers/front_pics/tuber_f_frlg.png b/graphics/trainers/front_pics/tuber_f_frlg.png new file mode 100644 index 000000000000..3ecd0ced3bea Binary files /dev/null and b/graphics/trainers/front_pics/tuber_f_frlg.png differ diff --git a/graphics/trainers/front_pics/tuber_m_frlg.png b/graphics/trainers/front_pics/tuber_m_frlg.png new file mode 100644 index 000000000000..19182aa59ddc Binary files /dev/null and b/graphics/trainers/front_pics/tuber_m_frlg.png differ diff --git a/graphics/trainers/front_pics/twins_frlg.png b/graphics/trainers/front_pics/twins_frlg.png new file mode 100644 index 000000000000..6e513e79a5ab Binary files /dev/null and b/graphics/trainers/front_pics/twins_frlg.png differ diff --git a/graphics/trainers/front_pics/wally_frlg.png b/graphics/trainers/front_pics/wally_frlg.png new file mode 100644 index 000000000000..76338eb4d323 Binary files /dev/null and b/graphics/trainers/front_pics/wally_frlg.png differ diff --git a/graphics/trainers/front_pics/young_couple_frlg.png b/graphics/trainers/front_pics/young_couple_frlg.png new file mode 100644 index 000000000000..be9fc5d2c16b Binary files /dev/null and b/graphics/trainers/front_pics/young_couple_frlg.png differ diff --git a/graphics/trainers/front_pics/youngster_frlg.png b/graphics/trainers/front_pics/youngster_frlg.png new file mode 100644 index 000000000000..6971259cc3e3 Binary files /dev/null and b/graphics/trainers/front_pics/youngster_frlg.png differ diff --git a/graphics/trainers/palettes/aroma_lady_frlg.pal b/graphics/trainers/palettes/aroma_lady_frlg.pal new file mode 100644 index 000000000000..416c9763f956 --- /dev/null +++ b/graphics/trainers/palettes/aroma_lady_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 230 148 +16 16 16 +255 230 205 +238 189 148 +197 148 106 +106 74 74 +246 189 197 +222 131 148 +189 106 131 +246 246 255 +230 230 255 +197 197 230 +156 148 180 +98 90 123 +148 106 106 +156 197 197 diff --git a/graphics/trainers/palettes/beauty_frlg.pal b/graphics/trainers/palettes/beauty_frlg.pal new file mode 100644 index 000000000000..3578daf5e627 --- /dev/null +++ b/graphics/trainers/palettes/beauty_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +230 222 148 +197 180 98 +139 123 57 +230 123 115 +213 74 65 +74 74 90 +131 131 197 +156 156 222 +213 222 246 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/biker_frlg.pal b/graphics/trainers/palettes/biker_frlg.pal new file mode 100644 index 000000000000..90b2a33884d6 --- /dev/null +++ b/graphics/trainers/palettes/biker_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +205 139 115 +123 90 82 +222 222 230 +180 197 213 +139 156 172 +74 98 123 +49 65 82 +156 131 82 +82 57 41 +230 106 90 +180 115 106 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/bird_keeper_frlg.pal b/graphics/trainers/palettes/bird_keeper_frlg.pal new file mode 100644 index 000000000000..d25b706360a3 --- /dev/null +++ b/graphics/trainers/palettes/bird_keeper_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +205 148 115 +123 90 82 +49 90 139 +106 164 222 +74 131 180 +32 74 82 +246 131 115 +222 98 98 +222 189 131 +172 139 106 +205 222 255 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/black_belt_frlg.pal b/graphics/trainers/palettes/black_belt_frlg.pal new file mode 100644 index 000000000000..869e5d8df48b --- /dev/null +++ b/graphics/trainers/palettes/black_belt_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 205 189 +222 172 148 +172 131 106 +90 65 49 +148 131 123 +106 90 82 +82 90 115 +49 57 82 +205 189 189 +189 164 164 +156 139 139 +255 98 90 +197 65 65 +246 230 230 +0 0 0 diff --git a/graphics/trainers/palettes/bug_catcher_frlg.pal b/graphics/trainers/palettes/bug_catcher_frlg.pal new file mode 100644 index 000000000000..5c47db2d6aae --- /dev/null +++ b/graphics/trainers/palettes/bug_catcher_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +189 49 57 +238 222 148 +189 172 115 +65 82 131 +98 164 222 +49 123 156 +131 139 164 +180 189 213 +213 222 230 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/bug_maniac_frlg.pal b/graphics/trainers/palettes/bug_maniac_frlg.pal new file mode 100644 index 000000000000..2aa32917922e --- /dev/null +++ b/graphics/trainers/palettes/bug_maniac_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +49 123 156 +49 65 131 +65 74 74 +222 222 164 +197 197 139 +205 213 213 +156 139 74 +98 164 222 +106 115 115 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/burglar_frlg.pal b/graphics/trainers/palettes/burglar_frlg.pal new file mode 100644 index 000000000000..9a9a7d8a675a --- /dev/null +++ b/graphics/trainers/palettes/burglar_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 230 156 +16 16 16 +255 222 205 +238 180 148 +197 139 106 +106 90 90 +230 230 246 +205 205 230 +180 180 213 +131 131 164 +65 82 98 +189 172 98 +156 139 90 +197 197 156 +156 156 115 +115 115 74 diff --git a/graphics/trainers/palettes/camper_frlg.pal b/graphics/trainers/palettes/camper_frlg.pal new file mode 100644 index 000000000000..29120f6f7934 --- /dev/null +++ b/graphics/trainers/palettes/camper_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +164 238 156 +139 205 106 +106 164 65 +32 82 32 +205 205 213 +115 115 148 +41 57 90 +230 106 139 +189 65 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/champion_rival_frlg.pal b/graphics/trainers/palettes/champion_rival_frlg.pal new file mode 100644 index 000000000000..fa9ae905b397 --- /dev/null +++ b/graphics/trainers/palettes/champion_rival_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +222 164 74 +197 123 8 +49 65 82 +205 139 255 +115 82 131 +156 106 172 +106 123 131 +197 205 180 +213 82 90 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/channeler_frlg.pal b/graphics/trainers/palettes/channeler_frlg.pal new file mode 100644 index 000000000000..97e0eaf11732 --- /dev/null +++ b/graphics/trainers/palettes/channeler_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +98 131 123 +49 82 74 +222 205 238 +115 115 148 +41 57 90 +180 172 205 +197 65 82 +148 32 49 +98 0 16 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/collector_frlg.pal b/graphics/trainers/palettes/collector_frlg.pal new file mode 100644 index 000000000000..d4d9221e2a34 --- /dev/null +++ b/graphics/trainers/palettes/collector_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +197 139 115 +123 90 82 +106 139 189 +65 98 148 +32 74 123 +255 98 90 +197 65 65 +213 222 230 +131 74 65 +115 123 131 +164 172 180 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/cool_couple_frlg.pal b/graphics/trainers/palettes/cool_couple_frlg.pal new file mode 100644 index 000000000000..71ec5e47a9a1 --- /dev/null +++ b/graphics/trainers/palettes/cool_couple_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +205 139 115 +123 90 82 +222 222 230 +164 180 189 +74 98 123 +205 164 255 +156 115 205 +115 74 164 +238 131 98 +205 57 82 +172 32 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/cool_trainer_f_frlg.pal b/graphics/trainers/palettes/cool_trainer_f_frlg.pal new file mode 100644 index 000000000000..71ec5e47a9a1 --- /dev/null +++ b/graphics/trainers/palettes/cool_trainer_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +205 139 115 +123 90 82 +222 222 230 +164 180 189 +74 98 123 +205 164 255 +156 115 205 +115 74 164 +238 131 98 +205 57 82 +172 32 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/cool_trainer_m_frlg.pal b/graphics/trainers/palettes/cool_trainer_m_frlg.pal new file mode 100644 index 000000000000..71ec5e47a9a1 --- /dev/null +++ b/graphics/trainers/palettes/cool_trainer_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +205 139 115 +123 90 82 +222 222 230 +164 180 189 +74 98 123 +205 164 255 +156 115 205 +115 74 164 +238 131 98 +205 57 82 +172 32 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/crush_girl_frlg.pal b/graphics/trainers/palettes/crush_girl_frlg.pal new file mode 100644 index 000000000000..0374dfdda437 --- /dev/null +++ b/graphics/trainers/palettes/crush_girl_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +115 164 106 +57 90 65 +90 123 156 +65 74 98 +205 189 189 +148 197 131 +255 164 82 +230 106 0 +180 57 57 +246 230 230 +0 0 0 diff --git a/graphics/trainers/palettes/crush_kin_frlg.pal b/graphics/trainers/palettes/crush_kin_frlg.pal new file mode 100644 index 000000000000..e68e19944260 --- /dev/null +++ b/graphics/trainers/palettes/crush_kin_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +148 131 123 +106 90 82 +90 123 156 +65 74 98 +205 189 189 +189 164 164 +255 164 82 +230 106 0 +180 57 57 +246 230 230 +0 0 0 diff --git a/graphics/trainers/palettes/cue_ball_frlg.pal b/graphics/trainers/palettes/cue_ball_frlg.pal new file mode 100644 index 000000000000..ac22488a92b3 --- /dev/null +++ b/graphics/trainers/palettes/cue_ball_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +205 139 115 +148 98 82 +222 222 230 +180 197 213 +139 172 213 +98 139 180 +57 82 115 +205 180 180 +98 82 65 +180 156 156 +148 115 106 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/cycling_triathlete_f_frlg.pal b/graphics/trainers/palettes/cycling_triathlete_f_frlg.pal new file mode 100644 index 000000000000..b72bb3011f3c --- /dev/null +++ b/graphics/trainers/palettes/cycling_triathlete_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +57 41 57 +57 74 106 +131 131 156 +139 156 238 +115 131 205 +98 106 172 +205 197 255 +230 90 65 +189 74 41 +139 74 82 +255 255 255 +0 0 24 diff --git a/graphics/trainers/palettes/cycling_triathlete_m_frlg.pal b/graphics/trainers/palettes/cycling_triathlete_m_frlg.pal new file mode 100644 index 000000000000..9255a4a94a4b --- /dev/null +++ b/graphics/trainers/palettes/cycling_triathlete_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +238 189 139 +189 148 115 +139 106 82 +57 41 57 +115 90 106 +156 131 156 +156 213 255 +106 164 222 +82 131 197 +205 197 255 +230 90 65 +189 74 41 +139 74 82 +255 255 255 +0 0 24 diff --git a/graphics/trainers/palettes/dragon_tamer_frlg.pal b/graphics/trainers/palettes/dragon_tamer_frlg.pal new file mode 100644 index 000000000000..545c55b74b83 --- /dev/null +++ b/graphics/trainers/palettes/dragon_tamer_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +74 57 49 +164 57 246 +123 49 172 +131 139 148 +255 98 90 +197 65 65 +213 222 230 +74 74 65 +255 205 106 +213 172 74 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/elite_four_agatha_frlg.pal b/graphics/trainers/palettes/elite_four_agatha_frlg.pal new file mode 100644 index 000000000000..fd631fc250ac --- /dev/null +++ b/graphics/trainers/palettes/elite_four_agatha_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 238 +246 230 205 +230 189 156 +189 148 123 +115 90 82 +115 65 82 +164 74 90 +213 106 131 +90 82 65 +139 123 90 +189 197 139 +230 230 189 +156 164 156 +205 205 222 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/elite_four_bruno_frlg.pal b/graphics/trainers/palettes/elite_four_bruno_frlg.pal new file mode 100644 index 000000000000..cc85be7ca055 --- /dev/null +++ b/graphics/trainers/palettes/elite_four_bruno_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +238 213 189 +213 172 148 +164 131 106 +90 65 49 +115 123 139 +106 90 82 +82 90 115 +49 57 82 +205 189 189 +180 164 164 +139 131 131 +255 139 90 +197 65 65 +246 230 230 +0 0 0 diff --git a/graphics/trainers/palettes/elite_four_lance_frlg.pal b/graphics/trainers/palettes/elite_four_lance_frlg.pal new file mode 100644 index 000000000000..7240c86c87c5 --- /dev/null +++ b/graphics/trainers/palettes/elite_four_lance_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 238 +255 230 205 +230 189 148 +205 156 123 +106 74 74 +57 57 90 +90 90 131 +123 123 164 +172 74 65 +197 90 74 +230 106 90 +139 106 90 +246 148 123 +172 172 180 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/elite_four_lorelei_frlg.pal b/graphics/trainers/palettes/elite_four_lorelei_frlg.pal new file mode 100644 index 000000000000..5ddc425106a0 --- /dev/null +++ b/graphics/trainers/palettes/elite_four_lorelei_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +205 139 115 +123 90 82 +213 213 222 +65 74 82 +205 164 255 +156 115 205 +238 172 90 +148 148 164 +90 98 115 +230 115 90 +180 41 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/engineer_frlg.pal b/graphics/trainers/palettes/engineer_frlg.pal new file mode 100644 index 000000000000..3cfd1a3f060b --- /dev/null +++ b/graphics/trainers/palettes/engineer_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 238 164 +16 16 16 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +74 74 115 +255 255 255 +172 180 197 +115 123 172 +197 148 65 +230 98 98 +197 57 57 +255 222 82 +222 180 74 +139 115 57 diff --git a/graphics/trainers/palettes/expert_f_frlg.pal b/graphics/trainers/palettes/expert_f_frlg.pal new file mode 100644 index 000000000000..2fa5f52020ea --- /dev/null +++ b/graphics/trainers/palettes/expert_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +180 180 172 +90 131 189 +65 90 139 +57 57 57 +213 222 230 +139 139 131 +189 156 90 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/expert_m_frlg.pal b/graphics/trainers/palettes/expert_m_frlg.pal new file mode 100644 index 000000000000..2fa5f52020ea --- /dev/null +++ b/graphics/trainers/palettes/expert_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +180 180 172 +90 131 189 +65 90 139 +57 57 57 +213 222 230 +139 139 131 +189 156 90 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/fisherman_frlg.pal b/graphics/trainers/palettes/fisherman_frlg.pal new file mode 100644 index 000000000000..c3140cabe02e --- /dev/null +++ b/graphics/trainers/palettes/fisherman_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +65 65 106 +98 98 131 +213 172 82 +172 131 74 +205 205 222 +164 164 189 +49 49 74 +246 123 49 +189 106 49 +238 238 255 +0 0 24 diff --git a/graphics/trainers/palettes/gamer_frlg.pal b/graphics/trainers/palettes/gamer_frlg.pal new file mode 100644 index 000000000000..a65a7a331e75 --- /dev/null +++ b/graphics/trainers/palettes/gamer_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +222 180 148 +189 139 106 +98 57 65 +156 172 230 +123 139 205 +82 98 164 +49 65 98 +230 213 131 +189 172 106 +156 131 82 +131 123 148 +205 205 222 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/gentleman_frlg.pal b/graphics/trainers/palettes/gentleman_frlg.pal new file mode 100644 index 000000000000..1205b3e2f724 --- /dev/null +++ b/graphics/trainers/palettes/gentleman_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +189 139 106 +98 65 57 +164 148 131 +123 106 98 +82 74 65 +41 41 32 +213 213 205 +180 180 172 +148 148 139 +197 156 49 +139 115 24 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/guitarist_frlg.pal b/graphics/trainers/palettes/guitarist_frlg.pal new file mode 100644 index 000000000000..74e59e81993c --- /dev/null +++ b/graphics/trainers/palettes/guitarist_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +172 172 164 +139 131 131 +106 98 98 +65 57 57 +255 238 156 +255 197 90 +205 180 148 +255 98 90 +189 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/hex_maniac_frlg.pal b/graphics/trainers/palettes/hex_maniac_frlg.pal new file mode 100644 index 000000000000..549d7fac938b --- /dev/null +++ b/graphics/trainers/palettes/hex_maniac_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +164 123 156 +139 90 131 +106 65 106 +74 41 74 +213 222 230 +189 205 213 +205 57 82 +115 41 65 +180 49 74 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/hiker_frlg.pal b/graphics/trainers/palettes/hiker_frlg.pal new file mode 100644 index 000000000000..a5635888435c --- /dev/null +++ b/graphics/trainers/palettes/hiker_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +148 148 148 +98 98 98 +131 197 205 +98 164 172 +172 131 49 +131 98 41 +131 123 82 +205 189 123 +172 164 115 +213 205 213 +0 0 24 diff --git a/graphics/trainers/palettes/juggler_frlg.pal b/graphics/trainers/palettes/juggler_frlg.pal new file mode 100644 index 000000000000..4e620be6b1e1 --- /dev/null +++ b/graphics/trainers/palettes/juggler_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 238 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +74 74 98 +106 90 164 +156 123 205 +98 123 57 +123 180 90 +172 213 90 +205 106 65 +123 123 148 +189 197 205 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/kindler_frlg.pal b/graphics/trainers/palettes/kindler_frlg.pal new file mode 100644 index 000000000000..af6adf7e876e --- /dev/null +++ b/graphics/trainers/palettes/kindler_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +115 82 65 +246 246 230 +222 222 189 +180 180 139 +123 115 74 +172 213 246 +115 180 205 +57 123 139 +255 82 57 +255 156 90 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/lady_frlg.pal b/graphics/trainers/palettes/lady_frlg.pal new file mode 100644 index 000000000000..aebf744e9a20 --- /dev/null +++ b/graphics/trainers/palettes/lady_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 222 +238 197 180 +172 115 115 +98 90 74 +74 82 131 +213 222 230 +246 180 74 +205 131 74 +222 98 123 +148 164 180 +131 197 238 +82 164 205 +74 131 189 +255 255 255 +0 0 24 diff --git a/graphics/trainers/palettes/lass_frlg.pal b/graphics/trainers/palettes/lass_frlg.pal new file mode 100644 index 000000000000..8494030c5cf8 --- /dev/null +++ b/graphics/trainers/palettes/lass_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 238 +255 222 205 +238 180 148 +197 139 106 +123 90 82 +205 98 82 +65 74 115 +65 106 164 +65 172 213 +90 65 57 +156 98 57 +213 139 74 +172 180 197 +213 222 238 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_blaine_frlg.pal b/graphics/trainers/palettes/leader_blaine_frlg.pal new file mode 100644 index 000000000000..27f6e173c936 --- /dev/null +++ b/graphics/trainers/palettes/leader_blaine_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 189 106 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +82 74 74 +148 139 74 +205 189 65 +213 106 74 +255 156 106 +74 74 90 +115 123 156 +156 164 189 +213 213 238 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_brock_frlg.pal b/graphics/trainers/palettes/leader_brock_frlg.pal new file mode 100644 index 000000000000..ae8076a24c69 --- /dev/null +++ b/graphics/trainers/palettes/leader_brock_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +213 148 115 +123 90 82 +123 156 98 +90 115 74 +230 164 82 +172 106 24 +197 148 115 +172 197 139 +74 74 82 +213 213 222 +123 131 131 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_erika_frlg.pal b/graphics/trainers/palettes/leader_erika_frlg.pal new file mode 100644 index 000000000000..c503b2180b01 --- /dev/null +++ b/graphics/trainers/palettes/leader_erika_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +238 189 156 +197 148 123 +106 74 74 +255 255 197 +222 222 115 +189 197 205 +115 131 156 +82 82 82 +156 156 49 +180 90 90 +246 123 115 +205 106 98 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_giovanni_frlg.pal b/graphics/trainers/palettes/leader_giovanni_frlg.pal new file mode 100644 index 000000000000..3ed4f87b82cb --- /dev/null +++ b/graphics/trainers/palettes/leader_giovanni_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 222 205 +205 180 148 +172 131 98 +123 90 82 +205 115 205 +164 82 115 +222 172 90 +213 213 222 +49 57 57 +164 180 189 +98 115 123 +74 82 82 +148 164 172 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_koga_frlg.pal b/graphics/trainers/palettes/leader_koga_frlg.pal new file mode 100644 index 000000000000..1844a131c0e7 --- /dev/null +++ b/graphics/trainers/palettes/leader_koga_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +205 139 115 +123 90 82 +180 197 230 +115 131 115 +74 90 65 +139 156 172 +74 98 123 +49 65 57 +255 156 106 +230 115 90 +180 41 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_lt_surge_frlg.pal b/graphics/trainers/palettes/leader_lt_surge_frlg.pal new file mode 100644 index 000000000000..e125b40d3dd4 --- /dev/null +++ b/graphics/trainers/palettes/leader_lt_surge_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +255 213 123 +197 164 90 +164 222 106 +106 164 49 +65 123 8 +16 74 0 +82 106 156 +131 131 131 +82 82 82 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_misty_frlg.pal b/graphics/trainers/palettes/leader_misty_frlg.pal new file mode 100644 index 000000000000..86853c95c1e1 --- /dev/null +++ b/graphics/trainers/palettes/leader_misty_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 222 238 +255 222 205 +238 180 148 +213 148 115 +123 90 82 +164 106 82 +205 115 82 +255 189 115 +74 82 156 +98 115 246 +74 65 106 +222 222 246 +255 0 255 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/leader_sabrina_frlg.pal b/graphics/trainers/palettes/leader_sabrina_frlg.pal new file mode 100644 index 000000000000..01901952bf5e --- /dev/null +++ b/graphics/trainers/palettes/leader_sabrina_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 189 156 +16 16 16 +255 255 255 +238 164 156 +205 106 98 +172 65 57 +156 180 205 +123 139 180 +82 98 139 +205 205 205 +255 222 205 +123 90 82 +222 148 115 +213 180 131 +238 180 148 +255 230 131 diff --git a/graphics/trainers/palettes/old_man_back_pic_frlg.pal b/graphics/trainers/palettes/old_man_back_pic_frlg.pal new file mode 100644 index 000000000000..85cf9ff8daa4 --- /dev/null +++ b/graphics/trainers/palettes/old_man_back_pic_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 238 213 +230 197 164 +189 148 115 +106 90 65 +222 213 238 +156 148 172 +115 106 131 +189 180 205 +197 139 57 +148 106 32 +156 131 106 +222 205 156 +189 172 139 +238 230 246 +0 0 0 diff --git a/graphics/trainers/palettes/painter_frlg.pal b/graphics/trainers/palettes/painter_frlg.pal new file mode 100644 index 000000000000..31246f7cdda4 --- /dev/null +++ b/graphics/trainers/palettes/painter_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +205 148 115 +123 90 82 +164 172 197 +90 98 148 +49 57 82 +41 57 98 +222 230 238 +255 164 123 +106 197 90 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/parasol_lady_frlg.pal b/graphics/trainers/palettes/parasol_lady_frlg.pal new file mode 100644 index 000000000000..dc5c6f67fd38 --- /dev/null +++ b/graphics/trainers/palettes/parasol_lady_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +123 82 65 +90 131 189 +65 90 139 +41 65 98 +255 98 90 +197 65 65 +255 156 106 +131 74 65 +255 205 106 +213 172 74 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/picnicker_frlg.pal b/graphics/trainers/palettes/picnicker_frlg.pal new file mode 100644 index 000000000000..476bcfaf6be9 --- /dev/null +++ b/graphics/trainers/palettes/picnicker_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +197 139 106 +106 74 74 +164 238 156 +139 205 106 +106 164 65 +32 82 32 +205 205 213 +115 115 148 +41 57 90 +230 106 139 +189 65 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokedude_back_pic_frlg.pal b/graphics/trainers/palettes/pokedude_back_pic_frlg.pal new file mode 100644 index 000000000000..56a86d9800ec --- /dev/null +++ b/graphics/trainers/palettes/pokedude_back_pic_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 222 197 +213 180 156 +189 148 123 +123 98 82 +222 213 238 +156 148 172 +115 106 131 +189 180 205 +106 148 205 +65 115 164 +41 57 123 +82 74 98 +172 106 98 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokefan_f_frlg.pal b/graphics/trainers/palettes/pokefan_f_frlg.pal new file mode 100644 index 000000000000..09728f0052a1 --- /dev/null +++ b/graphics/trainers/palettes/pokefan_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +90 172 189 +65 123 180 +255 0 255 +32 57 82 +197 205 213 +180 139 90 +131 90 41 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokefan_m_frlg.pal b/graphics/trainers/palettes/pokefan_m_frlg.pal new file mode 100644 index 000000000000..1d1f48875068 --- /dev/null +++ b/graphics/trainers/palettes/pokefan_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +222 189 148 +197 156 115 +156 123 82 +49 57 49 +230 90 41 +131 172 222 +172 49 32 +82 123 172 +255 238 74 +213 189 41 +205 205 213 +98 98 74 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokemaniac_frlg.pal b/graphics/trainers/palettes/pokemaniac_frlg.pal new file mode 100644 index 000000000000..2a41e2be4b6f --- /dev/null +++ b/graphics/trainers/palettes/pokemaniac_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 213 197 +222 172 139 +197 139 115 +123 90 82 +222 222 230 +180 197 213 +139 156 172 +74 98 123 +49 65 90 +106 49 24 +255 180 106 +238 131 65 +180 106 49 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokemon_breeder_frlg.pal b/graphics/trainers/palettes/pokemon_breeder_frlg.pal new file mode 100644 index 000000000000..bfc59e3af051 --- /dev/null +++ b/graphics/trainers/palettes/pokemon_breeder_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 189 148 +189 148 106 +123 98 82 +123 205 106 +32 98 65 +197 90 74 +131 148 172 +213 222 230 +74 164 82 +238 172 82 +222 148 123 +189 148 57 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokemon_ranger_f_frlg.pal b/graphics/trainers/palettes/pokemon_ranger_f_frlg.pal new file mode 100644 index 000000000000..4134bfc22c36 --- /dev/null +++ b/graphics/trainers/palettes/pokemon_ranger_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +230 189 148 +189 139 106 +139 106 82 +82 49 49 +131 139 172 +98 106 131 +49 57 82 +189 189 197 +255 205 65 +246 148 82 +205 106 74 +131 74 49 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/pokemon_ranger_m_frlg.pal b/graphics/trainers/palettes/pokemon_ranger_m_frlg.pal new file mode 100644 index 000000000000..4134bfc22c36 --- /dev/null +++ b/graphics/trainers/palettes/pokemon_ranger_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +230 189 148 +189 139 106 +139 106 82 +82 49 49 +131 139 172 +98 106 131 +49 57 82 +189 189 197 +255 205 65 +246 148 82 +205 106 74 +131 74 49 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/professor_oak_frlg.pal b/graphics/trainers/palettes/professor_oak_frlg.pal new file mode 100644 index 000000000000..eb6f2f18bc9b --- /dev/null +++ b/graphics/trainers/palettes/professor_oak_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +139 156 164 +205 164 205 +164 123 164 +82 82 57 +213 213 222 +123 123 82 +115 115 115 +197 189 131 +156 156 90 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/psychic_f_frlg.pal b/graphics/trainers/palettes/psychic_f_frlg.pal new file mode 100644 index 000000000000..101d2285e465 --- /dev/null +++ b/graphics/trainers/palettes/psychic_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 189 172 +197 148 131 +123 90 82 +57 82 106 +57 123 164 +98 172 205 +106 57 115 +156 98 148 +205 139 180 +205 172 98 +238 213 90 +255 172 213 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/psychic_m_frlg.pal b/graphics/trainers/palettes/psychic_m_frlg.pal new file mode 100644 index 000000000000..101d2285e465 --- /dev/null +++ b/graphics/trainers/palettes/psychic_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 189 172 +197 148 131 +123 90 82 +57 82 106 +57 123 164 +98 172 205 +106 57 115 +156 98 148 +205 139 180 +205 172 98 +238 213 90 +255 172 213 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/rich_boy_frlg.pal b/graphics/trainers/palettes/rich_boy_frlg.pal new file mode 100644 index 000000000000..1ebb77204458 --- /dev/null +++ b/graphics/trainers/palettes/rich_boy_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +90 131 189 +65 90 139 +41 65 98 +49 41 65 +213 222 230 +255 230 98 +222 180 90 +156 123 115 +115 82 90 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/rival_early_frlg.pal b/graphics/trainers/palettes/rival_early_frlg.pal new file mode 100644 index 000000000000..fa9ae905b397 --- /dev/null +++ b/graphics/trainers/palettes/rival_early_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +222 164 74 +197 123 8 +49 65 82 +205 139 255 +115 82 131 +156 106 172 +106 123 131 +197 205 180 +213 82 90 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/rival_late_frlg.pal b/graphics/trainers/palettes/rival_late_frlg.pal new file mode 100644 index 000000000000..fa9ae905b397 --- /dev/null +++ b/graphics/trainers/palettes/rival_late_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +222 164 74 +197 123 8 +49 65 82 +205 139 255 +115 82 131 +156 106 172 +106 123 131 +197 205 180 +213 82 90 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/rocker_frlg.pal b/graphics/trainers/palettes/rocker_frlg.pal new file mode 100644 index 000000000000..fa2321fabe97 --- /dev/null +++ b/graphics/trainers/palettes/rocker_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +230 197 156 +197 156 115 +123 98 82 +123 164 189 +82 123 148 +205 222 205 +139 65 49 +172 172 197 +65 82 90 +189 213 255 +255 131 98 +197 131 82 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/rocket_grunt_f_frlg.pal b/graphics/trainers/palettes/rocket_grunt_f_frlg.pal new file mode 100644 index 000000000000..18a2b433ee3f --- /dev/null +++ b/graphics/trainers/palettes/rocket_grunt_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 222 +230 180 164 +197 148 139 +115 90 74 +205 205 222 +156 156 172 +123 123 148 +164 74 65 +213 98 90 +246 106 98 +0 0 0 +57 57 74 +82 82 106 +180 180 197 +255 255 255 diff --git a/graphics/trainers/palettes/rocket_grunt_m_frlg.pal b/graphics/trainers/palettes/rocket_grunt_m_frlg.pal new file mode 100644 index 000000000000..18a2b433ee3f --- /dev/null +++ b/graphics/trainers/palettes/rocket_grunt_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 222 +230 180 164 +197 148 139 +115 90 74 +205 205 222 +156 156 172 +123 123 148 +164 74 65 +213 98 90 +246 106 98 +0 0 0 +57 57 74 +82 82 106 +180 180 197 +255 255 255 diff --git a/graphics/trainers/palettes/ruin_maniac_frlg.pal b/graphics/trainers/palettes/ruin_maniac_frlg.pal new file mode 100644 index 000000000000..05eb78e93832 --- /dev/null +++ b/graphics/trainers/palettes/ruin_maniac_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +213 213 148 +180 180 98 +139 131 49 +90 82 16 +180 172 131 +156 156 156 +205 205 205 +139 131 106 +82 65 74 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/running_triathlete_f_frlg.pal b/graphics/trainers/palettes/running_triathlete_f_frlg.pal new file mode 100644 index 000000000000..671c1593f097 --- /dev/null +++ b/graphics/trainers/palettes/running_triathlete_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +90 131 189 +65 90 139 +41 65 98 +49 41 65 +205 213 222 +180 139 90 +139 65 65 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/running_triathlete_m_frlg.pal b/graphics/trainers/palettes/running_triathlete_m_frlg.pal new file mode 100644 index 000000000000..13a56a55662d --- /dev/null +++ b/graphics/trainers/palettes/running_triathlete_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +246 205 180 +230 180 148 +180 139 106 +115 82 65 +90 131 189 +65 90 139 +41 65 98 +49 41 65 +205 213 222 +180 139 90 +139 65 65 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/sailor_frlg.pal b/graphics/trainers/palettes/sailor_frlg.pal new file mode 100644 index 000000000000..c0b0b81bd067 --- /dev/null +++ b/graphics/trainers/palettes/sailor_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 180 106 +0 0 0 +246 246 255 +230 230 255 +197 197 230 +123 123 156 +106 123 172 +65 82 123 +41 57 82 +65 65 16 +222 123 74 +172 74 57 +123 90 82 +189 139 106 +222 180 148 +246 222 205 diff --git a/graphics/trainers/palettes/school_kid_f_frlg.pal b/graphics/trainers/palettes/school_kid_f_frlg.pal new file mode 100644 index 000000000000..ce758377ac1f --- /dev/null +++ b/graphics/trainers/palettes/school_kid_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +238 189 156 +205 148 115 +106 74 57 +255 139 164 +213 82 131 +131 139 255 +98 115 180 +57 74 131 +246 189 123 +197 131 65 +230 82 41 +139 90 32 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/school_kid_m_frlg.pal b/graphics/trainers/palettes/school_kid_m_frlg.pal new file mode 100644 index 000000000000..dc4298ea0ec7 --- /dev/null +++ b/graphics/trainers/palettes/school_kid_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 180 148 +213 148 115 +123 90 82 +172 164 115 +65 90 148 +49 57 82 +131 123 82 +197 197 238 +255 222 65 +205 189 123 +98 164 222 +49 123 156 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/scientist_frlg.pal b/graphics/trainers/palettes/scientist_frlg.pal new file mode 100644 index 000000000000..46228fb2bdcf --- /dev/null +++ b/graphics/trainers/palettes/scientist_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +238 82 57 +131 139 172 +90 98 139 +230 172 222 +172 123 172 +57 65 98 +131 139 148 +180 189 197 +213 222 213 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/sis_and_bro_frlg.pal b/graphics/trainers/palettes/sis_and_bro_frlg.pal new file mode 100644 index 000000000000..d44893fb8987 --- /dev/null +++ b/graphics/trainers/palettes/sis_and_bro_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +222 180 148 +189 139 106 +98 57 65 +255 230 131 +213 180 90 +172 106 49 +255 164 164 +222 106 115 +172 74 74 +189 197 230 +123 148 205 +65 74 115 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/sr_and_jr_frlg.pal b/graphics/trainers/palettes/sr_and_jr_frlg.pal new file mode 100644 index 000000000000..72238881fc19 --- /dev/null +++ b/graphics/trainers/palettes/sr_and_jr_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +90 131 189 +65 90 139 +41 65 98 +49 41 65 +205 213 222 +180 139 90 +131 90 41 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/steven_frlg.pal b/graphics/trainers/palettes/steven_frlg.pal new file mode 100644 index 000000000000..bb2fedd5f10f --- /dev/null +++ b/graphics/trainers/palettes/steven_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +222 180 148 +189 148 115 +123 90 82 +189 115 205 +164 82 172 +82 82 90 +49 49 57 +213 222 238 +172 189 213 +123 148 164 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/super_nerd_frlg.pal b/graphics/trainers/palettes/super_nerd_frlg.pal new file mode 100644 index 000000000000..7525c047e7f1 --- /dev/null +++ b/graphics/trainers/palettes/super_nerd_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +222 189 148 +197 148 115 +106 74 65 +255 98 90 +197 65 65 +123 123 148 +82 82 98 +205 205 222 +164 164 180 +189 156 90 +49 49 65 +74 49 24 +255 255 255 +0 0 24 diff --git a/graphics/trainers/palettes/swimmer_f_frlg.pal b/graphics/trainers/palettes/swimmer_f_frlg.pal new file mode 100644 index 000000000000..f2693e5c7d86 --- /dev/null +++ b/graphics/trainers/palettes/swimmer_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +222 180 148 +189 139 106 +98 57 65 +255 230 131 +213 180 90 +172 106 49 +255 164 164 +222 106 115 +172 74 74 +205 205 255 +164 172 238 +106 106 205 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/swimmer_m_frlg.pal b/graphics/trainers/palettes/swimmer_m_frlg.pal new file mode 100644 index 000000000000..206f62692417 --- /dev/null +++ b/graphics/trainers/palettes/swimmer_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +238 205 189 +213 164 131 +180 115 98 +115 82 74 +164 189 238 +98 164 222 +49 115 172 +139 156 172 +222 222 230 +106 123 139 +180 205 255 +213 82 90 +238 238 246 +255 255 255 +16 16 16 diff --git a/graphics/trainers/palettes/swimming_triathlete_f_frlg.pal b/graphics/trainers/palettes/swimming_triathlete_f_frlg.pal new file mode 100644 index 000000000000..671c1593f097 --- /dev/null +++ b/graphics/trainers/palettes/swimming_triathlete_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +90 131 189 +65 90 139 +41 65 98 +49 41 65 +205 213 222 +180 139 90 +139 65 65 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/swimming_triathlete_m_frlg.pal b/graphics/trainers/palettes/swimming_triathlete_m_frlg.pal new file mode 100644 index 000000000000..671c1593f097 --- /dev/null +++ b/graphics/trainers/palettes/swimming_triathlete_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +90 131 189 +65 90 139 +41 65 98 +49 41 65 +205 213 222 +180 139 90 +139 65 65 +255 98 90 +197 65 65 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/tamer_frlg.pal b/graphics/trainers/palettes/tamer_frlg.pal new file mode 100644 index 000000000000..cce289e23311 --- /dev/null +++ b/graphics/trainers/palettes/tamer_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 213 172 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +90 90 98 +115 123 139 +139 148 164 +156 172 180 +74 49 41 +180 123 65 +156 65 65 +238 148 90 +197 205 213 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/tuber_f_frlg.pal b/graphics/trainers/palettes/tuber_f_frlg.pal new file mode 100644 index 000000000000..1c1c1e3c2918 --- /dev/null +++ b/graphics/trainers/palettes/tuber_f_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 189 +222 189 148 +180 148 106 +98 57 65 +230 164 98 +197 131 57 +148 90 57 +255 139 156 +213 74 90 +139 41 57 +205 205 255 +164 172 238 +106 106 205 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/tuber_m_frlg.pal b/graphics/trainers/palettes/tuber_m_frlg.pal new file mode 100644 index 000000000000..b5cb0047aa85 --- /dev/null +++ b/graphics/trainers/palettes/tuber_m_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +139 172 213 +90 131 189 +65 90 139 +57 57 57 +213 222 230 +255 230 74 +205 57 82 +238 180 57 +189 131 74 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/twins_frlg.pal b/graphics/trainers/palettes/twins_frlg.pal new file mode 100644 index 000000000000..6e2ff8846d3c --- /dev/null +++ b/graphics/trainers/palettes/twins_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +238 164 82 +205 115 65 +139 57 65 +57 41 41 +213 222 230 +156 189 246 +180 82 98 +90 139 189 +65 90 131 +255 255 255 +0 0 0 diff --git a/graphics/trainers/palettes/young_couple_frlg.pal b/graphics/trainers/palettes/young_couple_frlg.pal new file mode 100644 index 000000000000..c31ab3b4fbdb --- /dev/null +++ b/graphics/trainers/palettes/young_couple_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +98 65 57 +255 255 255 +139 180 230 +106 131 180 +82 74 115 +0 0 24 +255 115 90 +197 82 65 +222 230 238 +189 197 213 +123 131 148 +0 0 0 diff --git a/graphics/trainers/palettes/youngster_frlg.pal b/graphics/trainers/palettes/youngster_frlg.pal new file mode 100644 index 000000000000..e4e1c5c20f19 --- /dev/null +++ b/graphics/trainers/palettes/youngster_frlg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +230 197 156 +197 148 115 +123 90 82 +213 213 222 +98 164 222 +49 123 156 +230 98 90 +172 74 57 +41 90 131 +246 205 123 +205 172 82 +180 148 90 +255 255 255 +0 0 0 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 0b8a91415de2..4398a629af12 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -275,6 +275,9 @@ $(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female.png ### Miscellaneous ### +$(MISCGFXDIR)/emoticons.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + $(TITLESCREENGFXDIR)/pokemon_logo.gbapal: %.gbapal: %.pal $(GFX) $< $@ -num_colors 224 diff --git a/include/apprentice.h b/include/apprentice.h index 582d41435e6e..75a773bde166 100644 --- a/include/apprentice.h +++ b/include/apprentice.h @@ -20,6 +20,6 @@ void Apprentice_ScriptContext_Enable(void); void ResetApprenticeStruct(struct Apprentice *apprentice); void ResetAllApprenticeData(void); void CallApprenticeFunction(void); -const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language); +const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, enum Language language); #endif // GUARD_APPRENTICE_H diff --git a/include/assertf.h b/include/assertf.h new file mode 100644 index 000000000000..8bda00001022 --- /dev/null +++ b/include/assertf.h @@ -0,0 +1,81 @@ +#ifndef ASSERTF_H +#define ASSERTF_H + +/* Formatted assert. + * + * Asserts are a way to catch programmer errors at run-time. They should + * be used when both of the following are true: + * 1. It's impossible to catch the error at compile-time. + * 2. The error is caused only by the programmer. + * For example: + * - removeobject for a local ID that isn't in the object event + * templates is a programmer error because the object could never be + * spawned. + * - removeobject for a local ID that isn't spawned is not (necessarily) + * a programmer error because the object could have been despawned by + * the player. + * - Trying to choose a move from the Fight menu when it's disabled is + * not a programmer error because the player is able to try to choose + * the move. + * - The battle engine receiving a disabled move as the chosen move is + * a programmer error because it should have been rejected by the UI. + * + * When possible, prefer to catch errors at compile-time with things + * like STATIC_ASSERT rather than at run-time with assertf. + * + * assertf(cond); + * assertf(cond) { recovery... } + * assertf(cond, fmt, ...); + * assertf(cond, fmt, ...) { recovery... } + * + * If cond is FALSE: + * - In a release build: executes the recovery code (if any). + * - In a debug build: shows a resumable crash screen and executes the + * recovery code (if any). + * - In a test build: causes the test to be INVALID. + * + * Usually the recovery code makes the function do nothing, for example: + * - warp to a map that doesn't exist shouldn't warp anywhere. + * - addobject of a local ID that doesn't exist shouldn't add anything. + * + * But sometimes the function has to return something, in which case the + * recovery code does something that seems "reasonable", for example: + * - CreateMonWithGenderNatureLetter should ignore an illegal gender or + * letter. */ +#define assertf(cond, ...) CAT(_ASSERTF, FIRST(__VA_OPT__(_FMT,) _COND))(cond __VA_OPT__(,) __VA_ARGS__) + +/* errorf(fmt, ...); + * + * Equivalent to assertf(FALSE, fmt, ...); + * Useful for situations like: + * if (cond1) + * code1; + * else if (cond2) + * code2; + * else + * errorf("neither cond1 nor cond2"); + * Or: + * for (i = 0; i < n; i++) + * { + * if (array[i].member == value) + * return i; + * } + * errorf("member not found"); */ +#define errorf(fmt, ...) _ASSERTF_HANDLE("%s:%d: " fmt, __FILE__, __LINE__ __VA_OPT__(,) __VA_ARGS__) + +#define _ASSERTF_COND(cond) for (bool32 _recover = !(cond); _recover && (_ASSERTF_HANDLE("%s:%d: %s", __FILE__, __LINE__, STR(cond)), TRUE); _recover = FALSE) + +#define _ASSERTF_FMT(cond, fmt, ...) for (bool32 _recover = !(cond); _recover && (_ASSERTF_HANDLE("%s:%d: " fmt, __FILE__, __LINE__ __VA_OPT__(,) __VA_ARGS__), TRUE); _recover = FALSE) + +#if RELEASE +#define _ASSERTF_HANDLE(...) (void)0 +#elif TESTING +#include "test_result.h" +#define _ASSERTF_HANDLE(fmt, ...) Test_ExitWithResult(TEST_RESULT_INVALID, 0, fmt, __VA_ARGS__) +#else +#define _ASSERTF_HANDLE(fmt, ...) AssertfCrashScreen(__builtin_return_address(0), fmt, __VA_ARGS__) +#endif + +void AssertfCrashScreen(const void *return0, const char *fmt, ...); + +#endif diff --git a/include/battle.h b/include/battle.h old mode 100755 new mode 100644 index 6c528866cf06..bcfbeb6c913d --- a/include/battle.h +++ b/include/battle.h @@ -3,8 +3,10 @@ // should they be included here or included individually by every file? #include "constants/battle_end_turn.h" +#include "constants/battle_switch_in.h" #include "constants/abilities.h" #include "constants/battle.h" +#include "constants/battle_move_resolution.h" #include "constants/form_change_types.h" #include "constants/hold_effects.h" #include "constants/moves.h" @@ -12,7 +14,6 @@ #include "battle_message.h" #include "battle_util.h" #include "battle_script_commands.h" -#include "battle_ai_switch_items.h" #include "battle_gfx_sfx_util.h" #include "battle_util2.h" #include "battle_bg.h" @@ -23,6 +24,7 @@ #include "battle_terastal.h" #include "battle_gimmick.h" #include "generational_changes.h" +#include "item.h" #include "move.h" #include "random.h" // for rng_value_t #include "trainer_slide.h" @@ -30,7 +32,7 @@ // Used to exclude moves learned temporarily by Transform or Mimic #define MOVE_IS_PERMANENT(battler, moveSlot) \ (!(gBattleMons[battler].volatiles.transformed) \ - && !(gDisableStructs[battler].mimickedMoves & (1u << moveSlot))) + && !(gBattleMons[battler].volatiles.mimickedMoves & (1u << moveSlot))) // Battle Actions // These determine what each battler will do in a turn @@ -56,71 +58,6 @@ #define BATTLE_BUFFER_LINK_SIZE 0x1000 -// Cleared each time a mon leaves the field, either by switching out or fainting -struct DisableStruct -{ - u32 transformedMonPersonality; - bool8 transformedMonShininess; - u16 disabledMove; - u16 encoredMove; - u8 protectUses:4; - u8 stockpileCounter:4; - s8 stockpileDef; - s8 stockpileSpDef; - s8 stockpileBeforeDef; - s8 stockpileBeforeSpDef; - u8 substituteHP; - u8 encoredMovePos; - u16 disableTimer; - u16 encoreTimer; - u16 perishSongTimer; - u16 rolloutTimer; - u16 rolloutTimerStartValue; - u16 tauntTimer; - u8 furyCutterCounter; - u8 battlerPreventingEscape; - u8 battlerWithSureHit; - u8 isFirstTurn; - u8 mimickedMoves:4; - u8 rechargeTimer:4; - u8 autotomizeCount; - u16 slowStartTimer; - u16 embargoTimer; - u16 magnetRiseTimer; - u16 telekinesisTimer; - u16 healBlockTimer; - u16 laserFocusTimer; - u16 throatChopTimer; - u8 wrapTurns; - u16 syrupBombTimer; - u16 tormentTimer; // used for G-Max Meltdown - u8 usedMoves:4; - u8 truantCounter:1; - u8 truantSwitchInHack:1; - u8 tarShot:1; - u8 octolock:1; - u8 cudChew:1; - u8 weatherAbilityDone:1; - u8 terrainAbilityDone:1; - u8 syrupBombIsShiny:1; - u8 usedProteanLibero:1; - u8 flashFireBoosted:1; - u8 boosterEnergyActivated:1; - u8 padding1:1; - u16 overwrittenAbility; // abilities overwritten during battle (keep separate from battle history in case of switching) - u8 roostActive:1; - u8 unburdenActive:1; - u8 neutralizingGas:1; - u8 iceFaceActivationPrevention:1; // fixes hit escape move edge case - u8 unnerveActivated:1; // Unnerve and As One (Unnerve part) activate only once per switch in - u8 hazardsDone:1; - u8 endured:1; - u8 tryEjectPack:1; - u8 octolockedBy:3; - u8 paradoxBoostedStat:4; - u8 padding2:1; -}; - // Fully Cleared each turn after end turn effects are done. A few things are cleared before end turn effects struct ProtectStruct { @@ -128,16 +65,12 @@ struct ProtectStruct u32 noValidMoves:1; u32 bounceMove:1; u32 stealMove:1; - u32 nonVolatileStatusImmobility:1; - u32 confusionSelfDmg:1; u32 chargingTurn:1; u32 fleeType:2; // 0: Normal, 1: FLEE_ITEM, 2: FLEE_ABILITY - u32 unableToUseMove:1; // Not to be confused with HITMARKER_UNABLE_TO_USE_MOVE (It is questionable though if there is a difference. Needs further research) u32 laggingTail:1; u32 palaceUnableToUseMove:1; u32 statRaised:1; u32 usedCustapBerry:1; // also quick claw - u32 touchedProtectLike:1; u32 disableEjectPack:1; u32 pranksterElevated:1; u32 quickDraw:1; @@ -145,55 +78,53 @@ struct ProtectStruct u32 shellTrap:1; u32 eatMirrorHerb:1; u32 activateOpportunist:2; // 2 - to copy stats. 1 - stats copied (do not repeat). 0 - no stats to copy - u16 usedAllySwitch:1; - u16 lashOutAffected:1; + u32 usedAllySwitch:1; + u32 lashOutAffected:1; + u32 assuranceDoubled:1; + u32 forcedSwitch:1; + u32 myceliumMight:1; + u32 survivedOHKO:1; // Used to keep track of effects that allow focus punch when surviving moves like Fissure + u32 padding1:1; // End of 32-bit bitfield u16 helpingHand:3; - u16 assuranceDoubled:1; - u16 myceliumMight:1; u16 revengeDoubled:4; - u16 padding:7; + u16 padding2:9; // End of 16-bit bitfield u16 physicalDmg; u16 specialDmg; - u8 physicalBattlerId:4; - u8 specialBattlerId:4; + u8 physicalBattlerId:3; + u8 specialBattlerId:3; + u8 lastHitBySpecialMove:1; + u8 padding3:1; }; // Cleared at the start of HandleAction_ActionFinished struct SpecialStatus { - s32 physicalDmg; - s32 specialDmg; u8 changedStatsBattlerId; // Battler that was responsible for the latest stat change. Can be self. u8 statLowered:1; u8 abilityRedirected:1; u8 restoredBattlerSprite: 1; u8 faintedHasReplacement:1; u8 afterYou:1; - u8 enduredDamage:1; + u8 damagedByAttack:1; u8 dancerUsedMove:1; - u8 padding1:1; + u8 criticalHit:1; // End of byte - u8 switchInAbilityDone:1; - u8 switchInItemDone:1; u8 instructedChosenTarget:3; + u8 neutralizingGasRemoved:1; u8 berryReduced:1; - u8 neutralizingGasRemoved:1; // See VARIOUS_TRY_END_NEUTRALIZING_GAS - u8 padding2:1; - // End of byte - u8 gemParam; + u8 mindBlownRecoil:1; + u8 padding2:2; // End of byte + u8 gemParam:7; u8 gemBoost:1; - u8 rototillerAffected:1; // to be affected by rototiller + // End of byte u8 parentalBondState:2; u8 multiHitOn:1; u8 distortedTypeMatchups:1; u8 teraShellAbilityDone:1; - u8 criticalHit:1; - // End of byte u8 dancerOriginalTarget:3; - u8 padding3:5; // End of byte }; @@ -234,22 +165,10 @@ struct FieldTimer u16 fairyLockTimer; }; -struct WishFutureKnock -{ - u16 futureSightCounter[MAX_BATTLERS_COUNT]; - u8 futureSightBattlerIndex[MAX_BATTLERS_COUNT]; - u8 futureSightPartyIndex[MAX_BATTLERS_COUNT]; - u16 futureSightMove[MAX_BATTLERS_COUNT]; - u16 wishCounter[MAX_BATTLERS_COUNT]; - u8 wishPartyId[MAX_BATTLERS_COUNT]; - u8 weatherDuration; - u8 knockedOffMons[NUM_BATTLE_SIDES]; // Each battler is represented by a bit. -}; - struct AI_SavedBattleMon { enum Ability ability; - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u16 heldItem; u16 species:15; u16 saved:1; @@ -259,11 +178,11 @@ struct AI_SavedBattleMon struct AiPartyMon { u16 species; - u16 item; - u16 heldEffect; + enum Item item; + enum HoldEffect heldEffect; enum Ability ability; u16 level; - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u32 status; u8 switchInCount; // Counts how many times this Pokemon has been sent out or switched into in a battle. u8 gender:2; @@ -278,12 +197,6 @@ struct AiPartyData // Opposing battlers - party mons. u8 count[NUM_BATTLE_SIDES]; }; -struct SwitchinCandidate -{ - struct BattlePokemon battleMon; - bool8 hypotheticalStatus; -}; - struct SimulatedDamage { u16 minimum; @@ -295,12 +208,12 @@ struct SimulatedDamage struct AiLogicData { enum Ability abilities[MAX_BATTLERS_COUNT]; - u16 items[MAX_BATTLERS_COUNT]; - u16 holdEffects[MAX_BATTLERS_COUNT]; + enum Item items[MAX_BATTLERS_COUNT]; + enum HoldEffect holdEffects[MAX_BATTLERS_COUNT]; u8 holdEffectParams[MAX_BATTLERS_COUNT]; - u16 lastUsedMove[MAX_BATTLERS_COUNT]; + enum Move lastUsedMove[MAX_BATTLERS_COUNT]; u8 hpPercents[MAX_BATTLERS_COUNT]; - u16 partnerMove; + enum Move partnerMove; u16 speedStats[MAX_BATTLERS_COUNT]; // Speed stats for all battles, calculated only once, same way as damages struct SimulatedDamage simulatedDmg[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex uq4_12_t effectiveness[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex @@ -308,18 +221,21 @@ struct AiLogicData u8 moveLimitations[MAX_BATTLERS_COUNT]; u8 monToSwitchInId[MAX_BATTLERS_COUNT]; // ID of the mon to switch in. u8 mostSuitableMonId[MAX_BATTLERS_COUNT]; // Stores result of GetMostSuitableMonToSwitchInto, which decides which generic mon the AI would switch into if they decide to switch. This can be overruled by specific mons found in ShouldSwitch; the final resulting mon is stored in AI_monToSwitchIntoId. - struct SwitchinCandidate switchinCandidate; // Struct used for deciding which mon to switch to in battle_ai_switch_items.c - u8 weatherHasEffect:1; // The same as HasWeatherEffect(). Stored here, so it's called only once. - u8 ejectButtonSwitch:1; // Tracks whether current switch out was from Eject Button - u8 ejectPackSwitch:1; // Tracks whether current switch out was from Eject Pack - u8 predictingSwitch:1; // Determines whether AI will use switch predictions this turn or not - u8 aiPredictionInProgress:1; // Tracks whether the AI is in the middle of running prediction calculations - u8 aiCalcInProgress:1; - u8 predictingMove:1; // Determines whether AI will use move predictions this turn or not - u8 padding1:1; - u8 shouldSwitch:4; // Stores result of ShouldSwitch, which decides whether a mon should be switched out - u8 padding2:4; - u16 predictedMove[MAX_BATTLERS_COUNT]; + enum Move predictedMove[MAX_BATTLERS_COUNT]; + u8 resistBerryAffected[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // Tracks whether currently calc'd move is affected by a resist berry into given target + + // Flags + u32 weatherHasEffect:1; // The same as HasWeatherEffect(). Stored here, so it's called only once. + u32 ejectButtonSwitch:1; // Tracks whether current switch out was from Eject Button + u32 ejectPackSwitch:1; // Tracks whether current switch out was from Eject Pack + u32 predictingSwitch:1; // Determines whether AI will use switch predictions this turn or not + u32 aiPredictionInProgress:1; // Tracks whether the AI is in the middle of running prediction calculations + u32 aiCalcInProgress:1; + u32 predictingMove:1; // Determines whether AI will use move predictions this turn or not + u32 shouldConsiderExplosion:1; // Determines whether AI should consider explosion moves this turn + u32 shouldSwitch:4; // Stores result of ShouldSwitch, which decides whether a mon should be switched out + u32 shouldConsiderFinalGambit:1; // Determines whether AI should consider Final Gambit this turn + u32 padding2:19; }; struct AiThinkingStruct @@ -497,7 +413,8 @@ struct LinkBattlerHeader struct BattleEnigmaBerry battleEnigmaBerry; }; -enum IllusionState { +enum IllusionState +{ ILLUSION_NOT_SET, ILLUSION_OFF, ILLUSION_ON @@ -547,6 +464,20 @@ struct BattleVideo { rng_value_t rngSeed; }; +struct Wish +{ + u16 counter; + u8 partyId; +}; + +struct FutureSight +{ + u16 move; + u16 counter:10; + u16 battlerIndex:3; + u16 partyIndex:3; +}; + struct BattlerState { u8 targetsDone[MAX_BATTLERS_COUNT]; @@ -569,8 +500,13 @@ struct BattlerState u32 wasAboveHalfHp:1; // For Berserk, Emergency Exit, Wimp Out and Anger Shell. u32 commanderSpecies:11; u32 selectionScriptFinished:1; - u32 padding:3; + u32 lastMoveTarget:3; // The last target on which each mon used a move, for the sake of Instruct // End of Word + u16 hpOnSwitchout; + u16 switchIn:1; + u16 fainted:1; + u16 isFirstTurn:2; + u16 padding:12; }; struct PartyState @@ -584,7 +520,8 @@ struct PartyState u32 timesGotHit:5; u32 changedSpecies:11; // For forms when multiple mons can change into the same pokemon. u32 sentOut:1; - u32 padding:9; + u32 isKnockedOff:1; + u32 padding:8; u16 usedHeldItem; }; @@ -599,9 +536,12 @@ struct EventStates enum FirstTurnEventsStates beforeFirstTurn:8; enum FaintedActions faintedAction:8; enum BattlerId faintedActionBattler:4; - enum MoveSuccessOrder atkCanceler:8; + enum CancelerState atkCanceler:8; + enum BattlerId atkCancelerBattler:4; enum BattleIntroStates battleIntro:8; - u32 padding:24; + enum SwitchInEvents switchIn:8; + u32 battlerSwitchIn:8; // SwitchInFirstEventBlock, SwitchInSecondEventBlock + u32 moveEndBlock:8; }; // Cleared at the beginning of the battle. Fields need to be cleared when needed manually otherwise. @@ -610,9 +550,12 @@ struct BattleStruct struct BattlerState battlerState[MAX_BATTLERS_COUNT]; struct PartyState partyState[NUM_BATTLE_SIDES][PARTY_SIZE]; struct EventStates eventState; + struct FutureSight futureSight[MAX_BATTLERS_COUNT]; + struct Wish wish[MAX_BATTLERS_COUNT]; u16 moveTarget[MAX_BATTLERS_COUNT]; u32 expShareExpValue; u32 expValue; + u8 weatherDuration; u8 expGettersOrder[PARTY_SIZE]; // First battlers which were sent out, then via exp-share u8 expGetterMonId; u8 expOrderId:3; @@ -622,7 +565,7 @@ struct BattleStruct u8 expSentInMons; // As bits for player party mons - not including exp share mons. u8 wildVictorySong; enum Type dynamicMoveType; - u8 battlerPreventingSwitchout; + enum BattlerId battlerPreventingSwitchout; u8 moneyMultiplier:6; u8 moneyMultiplierItem:1; u8 moneyMultiplierMove:1; @@ -650,41 +593,37 @@ struct BattleStruct u8 wallyWaitFrames; u8 wallyMoveFrames; u16 lastTakenMove[MAX_BATTLERS_COUNT]; // Last move that a battler was hit with. - u16 hpOnSwitchout[NUM_BATTLE_SIDES]; u32 savedBattleTypeFlags; u16 abilityPreventingSwitchout; u8 hpScale; u16 synchronizeMoveEffect; u8 anyMonHasTransformed:1; // Only used in battle_tv.c - u8 multipleSwitchInState:2; - u8 multipleSwitchInCursor:3; u8 sleepClauseNotBlocked:1; u8 isSkyBattle:1; - u8 multipleSwitchInSortedBattlers[MAX_BATTLERS_COUNT]; + u8 unableToUseMove:1; // for the current action only, to check if the battler failed to act at end turn use the DisableStruct member + u8 triAttackBurn:1; + u8 unused:3; void (*savedCallback)(void); u16 chosenItem[MAX_BATTLERS_COUNT]; u16 choicedMove[MAX_BATTLERS_COUNT]; - u16 changedItems[MAX_BATTLERS_COUNT]; u8 switchInBattlerCounter; u16 lastTakenMoveFrom[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT]; // a 2-D array [target][attacker] union { struct LinkBattlerHeader linkBattlerHeader; struct BattleVideo battleVideo; } multiBuffer; - u8 startingStatus; // status to apply at battle start. defined in constants/battle.h u8 battlerKOAnimsRunning:3; u8 friskedAbility:1; // If identifies two mons, show the ability pop-up only once. u8 fickleBeamBoosted:1; u8 poisonPuppeteerConfusion:1; u8 toxicChainPriority:1; // If Toxic Chain will trigger on target, all other non volatiles will be blocked - u8 moldBreakerActive:1; - u16 startingStatusTimer; + u8 battlersSorted:1; // To avoid unnessasery computation struct BattleTvMovePoints tvMovePoints; struct BattleTv tv; u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT]; - s8 arenaMindPoints[2]; - s8 arenaSkillPoints[2]; - u16 arenaStartHp[2]; + s8 arenaMindPoints[NUM_BATTLE_SIDES]; + s8 arenaSkillPoints[NUM_BATTLE_SIDES]; + u16 arenaStartHp[NUM_BATTLE_SIDES]; u8 arenaLostPlayerMons; // Bits for party member, lost as in referee's decision, not by fainting. u8 arenaLostOpponentMons; u8 debugBattler; @@ -700,13 +639,11 @@ struct BattleStruct struct BattleGimmickData gimmick; const u8 *trainerSlideMsg; u8 stolenStats[NUM_BATTLE_STATS]; // hp byte is used for which stats to raise, other inform about by how many stages - u8 lastMoveTarget[MAX_BATTLERS_COUNT]; // The last target on which each mon used a move, for the sake of Instruct enum Ability tracedAbility[MAX_BATTLERS_COUNT]; struct Illusion illusion[MAX_BATTLERS_COUNT]; - u8 soulheartBattlerId; - u8 friskedBattler; // Frisk needs to identify 2 battlers in double battles. - u8 metronomeItemCounter[MAX_BATTLERS_COUNT]; // For Metronome, number of times the same moves has been SUCCESFULLY used. - u8 quickClawBattlerId; + enum BattlerId soulheartBattlerId; + enum BattlerId friskedBattler; // Frisk needs to identify 2 battlers in double battles. + enum BattlerId quickClawBattlerId; struct LostItem itemLost[NUM_BATTLE_SIDES][PARTY_SIZE]; // Pokemon that had items consumed or stolen (two bytes per party member per side) u8 blunderPolicy:1; // should blunder policy activate u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky @@ -725,7 +662,7 @@ struct BattleStruct u8 beatUpSlot:3; u8 pledgeMove:1; u8 effectsBeforeUsingMoveDone:1; // Mega Evo and Focus Punch/Shell Trap effects. - u8 spriteIgnore0Hp:1; + u8 padding3:1; u8 itemPartyIndex[MAX_BATTLERS_COUNT]; u8 itemMoveIndex[MAX_BATTLERS_COUNT]; s32 aiDelayTimer; // Counts number of frames AI takes to choose an action. @@ -745,17 +682,14 @@ struct BattleStruct u16 prevTurnSpecies[MAX_BATTLERS_COUNT]; // Stores species the AI has in play at start of turn s16 passiveHpUpdate[MAX_BATTLERS_COUNT]; // non-move damage and healing s16 moveDamage[MAX_BATTLERS_COUNT]; - s16 critChance[MAX_BATTLERS_COUNT]; u16 moveResultFlags[MAX_BATTLERS_COUNT]; - u8 missStringId[MAX_BATTLERS_COUNT]; enum CalcDamageState noResultString[MAX_BATTLERS_COUNT]; u8 doneDoublesSpreadHit:1; u8 calculatedDamageDone:1; u8 calculatedSpreadMoveAccuracy:1; u8 printedStrongWindsWeakenedAttack:1; - u8 numSpreadTargets:2; - u8 noTargetPresent:1; - u8 padding2:1; + u8 numSpreadTargets:3; + u8 moldBreakerActive:1; struct MessageStatus slideMessageStatus; u8 trainerSlideSpriteIds[MAX_BATTLERS_COUNT]; u8 hazardsQueue[NUM_BATTLE_SIDES][HAZARDS_MAX_COUNT]; @@ -767,7 +701,11 @@ struct BattleStruct u16 flingItem; u8 incrementEchoedVoice:1; u8 echoedVoiceCounter:3; - u8 padding3:4; + u8 attackAnimPlayed:1; + u8 preAttackEffectHappened:1; + u8 magicCoatActive:1; + u8 magicBounceActive:1; + u8 moveBouncer; }; struct AiBattleData @@ -791,17 +729,17 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER #define F_DYNAMIC_TYPE_IGNORE_PHYSICALITY (1 << 6) // If set, the dynamic type's physicality won't be used for certain move effects. #define F_DYNAMIC_TYPE_SET (1 << 7) // Set for all dynamic types to distinguish a dynamic type of Normal (0) from no dynamic type. -static inline bool32 IsBattleMovePhysical(u32 move) +static inline bool32 IsBattleMovePhysical(enum Move move) { return GetBattleMoveCategory(move) == DAMAGE_CATEGORY_PHYSICAL; } -static inline bool32 IsBattleMoveSpecial(u32 move) +static inline bool32 IsBattleMoveSpecial(enum Move move) { return GetBattleMoveCategory(move) == DAMAGE_CATEGORY_SPECIAL; } -static inline bool32 IsBattleMoveStatus(u32 move) +static inline bool32 IsBattleMoveStatus(enum Move move) { return GetMoveCategory(move) == DAMAGE_CATEGORY_STATUS; } @@ -869,7 +807,7 @@ struct BattleScripting u8 moveendState; u8 savedStatChanger; // For further use, if attempting to change stat two times(ex. Moody) u8 shiftSwitched; // When the game tells you the next enemy's pokemon and you switch. Option for noobs but oh well. - u8 battler; + enum BattlerId battler; u8 animTurn; u8 animTargetsHit; u8 statChanger; @@ -1024,7 +962,8 @@ extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; -extern u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT]; +extern enum BattlerId gBattlerByTurnOrder[MAX_BATTLERS_COUNT]; +extern enum BattlerId gBattlersBySpeed[MAX_BATTLERS_COUNT]; extern u8 gCurrentTurnActionNumber; extern u8 gCurrentActionFuncId; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; @@ -1037,11 +976,11 @@ extern u16 gCalledMove; extern s32 gBideDmg[MAX_BATTLERS_COUNT]; extern u16 gLastUsedItem; extern enum Ability gLastUsedAbility; -extern u8 gBattlerAttacker; -extern u8 gBattlerTarget; -extern u8 gBattlerFainted; -extern u8 gEffectBattler; -extern u8 gPotentialItemEffectBattler; +extern enum BattlerId gBattlerAttacker; +extern enum BattlerId gBattlerTarget; +extern enum BattlerId gBattlerFainted; +extern enum BattlerId gEffectBattler; +extern enum BattlerId gPotentialItemEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern const u8 *gBattlescriptCurrInstr; @@ -1062,7 +1001,6 @@ extern u32 gHitMarker; extern u8 gBideTarget[MAX_BATTLERS_COUNT]; extern u32 gSideStatuses[NUM_BATTLE_SIDES]; extern struct SideTimer gSideTimers[NUM_BATTLE_SIDES]; -extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT]; extern u16 gPauseCounterBattle; extern u16 gPaydayMoney; extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT]; @@ -1070,12 +1008,12 @@ extern u8 gBattleOutcome; extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; extern u16 gBattleWeather; -extern struct WishFutureKnock gWishFutureKnock; extern u16 gIntroSlideFlags; extern u8 gSentPokesToOpponent[2]; extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; extern struct BattleScripting gBattleScripting; extern struct BattleStruct *gBattleStruct; +extern struct StartingStatuses gStartingStatuses; extern struct AiBattleData *gAiBattleData; extern struct AiThinkingStruct *gAiThinkingStruct; extern struct AiLogicData *gAiLogicData; @@ -1099,7 +1037,7 @@ extern u16 gMoveToLearn; extern u32 gFieldStatuses; extern struct FieldTimer gFieldTimers; extern u16 gBattleTurnCounter; -extern u8 gBattlerAbility; +extern enum BattlerId gBattlerAbility; extern struct QueuedStatBoost gQueuedStatBoosts[MAX_BATTLERS_COUNT]; extern MainCallback gPreBattleCallback1; @@ -1117,11 +1055,11 @@ extern bool8 gLastUsedBallMenuPresent; extern u8 gPartyCriticalHits[PARTY_SIZE]; extern u8 gCategoryIconSpriteId; -static inline bool32 IsBattlerAlive(u32 battler) +static inline bool32 IsBattlerAlive(enum BattlerId battler) { - if (gBattleMons[battler].hp == 0) + if (battler >= gBattlersCount) return FALSE; - else if (battler >= gBattlersCount) + else if (gBattleMons[battler].hp == 0) return FALSE; else if (gAbsentBattlerFlags & (1u << battler)) return FALSE; @@ -1129,26 +1067,24 @@ static inline bool32 IsBattlerAlive(u32 battler) return TRUE; } -static inline bool32 IsBattlerTurnDamaged(u32 battler) +static inline bool32 IsBattlerTurnDamaged(enum BattlerId battler) { - return gSpecialStatuses[battler].physicalDmg != 0 - || gSpecialStatuses[battler].specialDmg != 0 - || gSpecialStatuses[battler].enduredDamage; + return gSpecialStatuses[battler].damagedByAttack; } -static inline bool32 IsBattlerAtMaxHp(u32 battler) +static inline bool32 IsBattlerAtMaxHp(enum BattlerId battler) { return gBattleMons[battler].hp == gBattleMons[battler].maxHP; } -static inline u32 GetBattlerPosition(u32 battler) +static inline enum BattlerPosition GetBattlerPosition(enum BattlerId battler) { return gBattlerPositions[battler]; } -static inline u32 GetBattlerAtPosition(u32 position) +static inline enum BattlerId GetBattlerAtPosition(enum BattlerPosition position) { - u32 battler; + enum BattlerId battler; for (battler = 0; battler < gBattlersCount; battler++) { if (GetBattlerPosition(battler) == position) @@ -1157,37 +1093,37 @@ static inline u32 GetBattlerAtPosition(u32 position) return battler; } -static inline u32 GetPartnerBattler(u32 battler) +static inline u32 GetPartnerBattler(enum BattlerId battler) { return GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(battler))); } -static inline u32 GetOppositeBattler(u32 battler) +static inline u32 GetOppositeBattler(enum BattlerId battler) { return GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); } -static inline u32 GetBattlerSide(u32 battler) +static inline u32 GetBattlerSide(enum BattlerId battler) { return GetBattlerPosition(battler) & BIT_SIDE; } -static inline bool32 IsOnPlayerSide(u32 battler) +static inline bool32 IsOnPlayerSide(enum BattlerId battler) { return GetBattlerSide(battler) == B_SIDE_PLAYER; } -static inline bool32 IsBattlerAlly(u32 battlerAtk, u32 battlerDef) +static inline bool32 IsBattlerAlly(enum BattlerId battlerAtk, enum BattlerId battlerDef) { return GetBattlerSide(battlerAtk) == GetBattlerSide(battlerDef); } -static inline u32 GetOpposingSideBattler(u32 battler) +static inline u32 GetOpposingSideBattler(enum BattlerId battler) { return GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerSide(battler))); } -static inline struct Pokemon* GetBattlerMon(u32 battler) +static inline struct Pokemon* GetBattlerMon(enum BattlerId battler) { u32 index = gBattlerPartyIndexes[battler]; return !IsOnPlayerSide(battler) ? &gEnemyParty[index] : &gPlayerParty[index]; @@ -1198,12 +1134,12 @@ static inline struct Pokemon *GetSideParty(enum BattleSide side) return side == B_SIDE_PLAYER ? gPlayerParty : gEnemyParty; } -static inline struct Pokemon *GetBattlerParty(u32 battler) +static inline struct Pokemon *GetBattlerParty(enum BattlerId battler) { return GetSideParty(GetBattlerSide(battler)); } -static inline struct PartyState *GetBattlerPartyState(u32 battler) +static inline struct PartyState *GetBattlerPartyState(enum BattlerId battler) { return &gBattleStruct->partyState[GetBattlerSide(battler)][gBattlerPartyIndexes[battler]]; } @@ -1213,42 +1149,35 @@ static inline bool32 IsDoubleBattle(void) return !!(gBattleTypeFlags & BATTLE_TYPE_MORE_THAN_TWO_BATTLERS); } -static inline bool32 IsSpreadMove(u32 moveTarget) +static inline bool32 IsSpreadMove(enum MoveTarget moveTarget) { - return IsDoubleBattle() && (moveTarget == MOVE_TARGET_BOTH || moveTarget == MOVE_TARGET_FOES_AND_ALLY); -} - -static inline bool32 IsDoubleSpreadMove(void) -{ - return gBattleStruct->numSpreadTargets > 1 - && !(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) - && IsSpreadMove(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove)); -} - -static inline bool32 IsBattlerInvalidForSpreadMove(u32 battlerAtk, u32 battlerDef, u32 moveTarget) -{ - return battlerDef == battlerAtk - || !IsBattlerAlive(battlerDef) - || (battlerDef == BATTLE_PARTNER(battlerAtk) && (moveTarget == MOVE_TARGET_BOTH)); + if (!IsDoubleBattle()) + return FALSE; + return moveTarget == TARGET_BOTH || moveTarget == TARGET_FOES_AND_ALLY; } -static inline u32 GetChosenMoveFromPosition(u32 battler) +static inline u32 GetBattlerChosenMove(enum BattlerId battler) { return gBattleMons[battler].moves[gBattleStruct->chosenMovePositions[battler]]; } -static inline void SetPassiveDamageAmount(u32 battler, s32 value) +static inline void SetPassiveDamageAmount(enum BattlerId battler, s32 value) { if (value == 0) value = 1; gBattleStruct->passiveHpUpdate[battler] = value; } -static inline void SetHealAmount(u32 battler, s32 value) +static inline void SetHealAmount(enum BattlerId battler, s32 value) { if (value == 0) value = 1; gBattleStruct->passiveHpUpdate[battler] = -1 * value; } +static inline bool32 IsGhostBattleWithoutScope(void) +{ + return (gBattleTypeFlags & BATTLE_TYPE_GHOST) && !CheckBagHasItem(ITEM_SILPH_SCOPE, 1); +} + #endif // GUARD_BATTLE_H diff --git a/include/battle_ai_field_statuses.h b/include/battle_ai_field_statuses.h index 64608f637065..2c3354cea1eb 100644 --- a/include/battle_ai_field_statuses.h +++ b/include/battle_ai_field_statuses.h @@ -12,7 +12,8 @@ enum FieldEffectOutcome FIELD_EFFECT_BLOCKED, }; -bool32 WeatherChecker(u32 battler, u32 weather, enum FieldEffectOutcome desiredResult); -bool32 FieldStatusChecker(u32 battler, u32 fieldStatus, enum FieldEffectOutcome desiredResult); +bool32 WeatherChecker(enum BattlerId battler, u32 weather, enum FieldEffectOutcome desiredResult); +bool32 FieldStatusChecker(enum BattlerId battler, u32 fieldStatus, enum FieldEffectOutcome desiredResult); +s32 CalcWeatherScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, struct AiLogicData *aiData); #endif //GUARD_BATTLE_AI_FIELD_STATUSES_H diff --git a/include/battle_ai_items.h b/include/battle_ai_items.h new file mode 100644 index 000000000000..868cf315fb81 --- /dev/null +++ b/include/battle_ai_items.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_AI_ITEMS_H +#define GUARD_BATTLE_AI_ITEMS_H + +bool32 ShouldUseItem(enum BattlerId battler); + +#endif // GUARD_BATTLE_AI_ITEMS_H diff --git a/include/battle_ai_main.h b/include/battle_ai_main.h index 4330f9d2bca0..a5b7ed8e36db 100644 --- a/include/battle_ai_main.h +++ b/include/battle_ai_main.h @@ -3,6 +3,7 @@ typedef s32 (*AiScoreFunc)(u32, u32, u32, s32); +typedef bool32 (*AiSwitchFunc)(u32); #define UNKNOWN_NO_OF_HITS UINT32_MAX @@ -28,6 +29,7 @@ enum StatChange STAT_CHANGE_SPEED_3, STAT_CHANGE_SPATK_3, STAT_CHANGE_SPDEF_3, + STAT_CHANGE_ATK_MAX, STAT_CHANGE_ACC, STAT_CHANGE_EVASION }; @@ -124,13 +126,17 @@ enum MoveComparisonResult void BattleAI_SetupItems(void); void BattleAI_SetupFlags(void); -void BattleAI_SetupAIData(u8 defaultScoreMoves, u32 battler); -void ComputeBattlerDecisions(u32 battler); -u32 BattleAI_ChooseMoveIndex(u32 battler); +void BattleAI_SetupAIData(u8 defaultScoreMoves, enum BattlerId battler); +void ComputeBattlerDecisions(enum BattlerId battler); +u32 BattleAI_ChooseMoveIndex(enum BattlerId battler); void Ai_InitPartyStruct(void); -void Ai_UpdateSwitchInData(u32 battler); -void Ai_UpdateFaintData(u32 battler); +void Ai_UpdateSwitchInData(enum BattlerId battler); +void Ai_UpdateFaintData(enum BattlerId battler); void SetAiLogicDataForTurn(struct AiLogicData *aiData); -void ResetDynamicAiFunc(void); +void ResetDynamicAiFunctions(void); +void AI_TrySwitchOrUseItem(enum BattlerId battler); +void CalcBattlerAiMovesData(struct AiLogicData *aiData, enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 weather, u32 fieldStatus); + +extern AiSwitchFunc gDynamicAiSwitchFunc; #endif // GUARD_BATTLE_AI_MAIN_H diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch.h similarity index 70% rename from include/battle_ai_switch_items.h rename to include/battle_ai_switch.h index 7612d2084af7..16b75c735b84 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch.h @@ -1,5 +1,5 @@ -#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H -#define GUARD_BATTLE_AI_SWITCH_ITEMS_H +#ifndef GUARD_BATTLE_AI_SWITCH_H +#define GUARD_BATTLE_AI_SWITCH_H enum ShouldSwitchScenario { @@ -33,6 +33,7 @@ enum ShouldSwitchScenario SHOULD_SWITCH_ATTACKING_STAT_MINUS_TWO, SHOULD_SWITCH_ATTACKING_STAT_MINUS_THREE_PLUS, SHOULD_SWITCH_ALL_SCORES_BAD, + SHOULD_SWITCH_DYN_FUNC, }; enum SwitchType @@ -42,11 +43,11 @@ enum SwitchType SWITCH_MID_BATTLE_OPTIONAL, }; -void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); -void AI_TrySwitchOrUseItem(u32 battler); -u32 GetMostSuitableMonToSwitchInto(u32 battler, enum SwitchType switchType); -bool32 ShouldSwitch(u32 battler); -bool32 IsMonGrounded(enum HoldEffect heldItemEffect, enum Ability ability, enum Type type1, enum Type type2); -void ModifySwitchAfterMoveScoring(u32 battler); +u32 GetMostSuitableMonToSwitchInto(enum BattlerId battler, enum SwitchType switchType); +bool32 ShouldSwitch(enum BattlerId battler); +void ModifySwitchAfterMoveScoring(enum BattlerId battler); +u32 AI_SelectRevivalBlessingMon(enum BattlerId battler); +bool32 IsSwitchinValid(enum BattlerId battler); +bool32 IsAceMon(enum BattlerId battler, u32 monPartyId); -#endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H +#endif // GUARD_BATTLE_AI_SWITCH_H diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 2c8760893560..aeaccab19644 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -22,15 +22,23 @@ enum DamageCalcContext AI_ATTACKING, }; +enum AiConsiderEndure +{ + CONSIDER_ENDURE, + DONT_CONSIDER_ENDURE, +}; + // Higher priority at the bottom; note that these are used in the formula MAX_MON_MOVES ^ AiCompareMovesPriority, which must fit within a u32. // In expansion where MAX_MON_MOVES is 4, this means that AiCompareMovesPriority can range from 0 - 15 inclusive. enum AiCompareMovesPriority { PRIORITY_EFFECT, - PRIORITY_GUARANTEE, PRIORITY_ACCURACY, - PRIORITY_NOT_CHARGING, + PRIORITY_GUARANTEE, + PRIORITY_AVOID_SELF_SACRIFICE, PRIORITY_SPEED, + PRIORITY_NOT_CHARGING, + PRIORITY_RESIST_BERRY, }; enum AIPivot @@ -60,153 +68,163 @@ enum ConsiderPriority CONSIDER_PRIORITY, }; -static inline bool32 IsMoveUnusable(u32 moveIndex, u32 move, u32 moveLimitations) +static inline bool32 IsMoveUnusable(u32 moveIndex, enum Move move, u32 moveLimitations) { return move == MOVE_NONE || move == MOVE_UNAVAILABLE || moveLimitations & 1u << moveIndex; } -typedef bool32 (*MoveFlag)(u32 move); +typedef bool32 (*MoveFlag)(enum Move move); -bool32 AI_IsFaster(u32 battlerAi, u32 battlerDef, u32 aiMove, u32 playerMove, enum ConsiderPriority considerPriority); -bool32 AI_IsSlower(u32 battlerAi, u32 battlerDef, u32 aiMove, u32 playerMove, enum ConsiderPriority considerPriority); -bool32 AI_IsPartyMonFaster(u32 battlerAi, u32 battlerDef, struct BattlePokemon switchinCandidate, u32 aiMove, u32 playerMove, enum ConsiderPriority considerPriority); -bool32 AI_IsPartyMonSlower(u32 battlerAi, u32 battlerDef, struct BattlePokemon switchinCandidate, u32 aiMove, u32 playerMove, enum ConsiderPriority considerPriority); +bool32 AI_IsFaster(enum BattlerId battlerAi, enum BattlerId battlerDef, enum Move aiMove, enum Move playerMove, enum ConsiderPriority considerPriority); +bool32 AI_IsSlower(enum BattlerId battlerAi, enum BattlerId battlerDef, enum Move aiMove, enum Move playerMove, enum ConsiderPriority considerPriority); bool32 AI_RandLessThan(u32 val); -bool32 AI_IsBattlerGrounded(u32 battler); -u32 AI_GetDamage(u32 battlerAtk, u32 battlerDef, u32 moveIndex, enum DamageCalcContext calcContext, struct AiLogicData *aiData); -bool32 IsAiVsAiBattle(void); -bool32 BattlerHasAi(u32 battlerId); -bool32 IsAiBattlerAware(u32 battlerId); -bool32 CanAiPredictMove(void); -bool32 IsAiBattlerAssumingStab(void); -bool32 IsAiBattlerAssumingStatusMoves(void); -bool32 ShouldRecordStatusMove(u32 move); -void ClearBattlerMoveHistory(u32 battlerId); -void RecordLastUsedMoveBy(u32 battlerId, u32 move); -void RecordAllMoves(u32 battler); -void RecordKnownMove(u32 battlerId, u32 move); -void RecordAbilityBattle(u32 battlerId, enum Ability abilityId); -void ClearBattlerAbilityHistory(u32 battlerId); -void RecordItemEffectBattle(u32 battlerId, enum HoldEffect itemEffect); -void ClearBattlerItemEffectHistory(u32 battlerId); -void SaveBattlerData(u32 battlerId); -void SetBattlerData(u32 battlerId); -void SetBattlerAiData(u32 battlerId, struct AiLogicData *aiData); -void RestoreBattlerData(u32 battlerId); -u32 GetAIChosenMove(u32 battlerId); +bool32 AI_IsBattlerGrounded(enum BattlerId battler); +enum MoveTarget AI_GetBattlerMoveTargetType(enum BattlerId battler, enum Move move); +enum Ability AI_GetMoldBreakerSanitizedAbility(enum BattlerId battlerAtk, enum Ability abilityAtk, enum Ability abilityDef, enum HoldEffect holdEffectDef, enum Move move); +u32 AI_GetDamage(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 moveIndex, enum DamageCalcContext calcContext, struct AiLogicData *aiData); +bool32 IsAiFlagPresent(u64 flag); +bool32 IsAiBattlerAware(enum BattlerId battlerId); +bool32 CanAiPredictMove(enum BattlerId battlerId); +bool32 IsAiBattlerAssumingStab(enum BattlerId battlerId); +bool32 IsAiBattlerAssumingStatusMoves(enum BattlerId battlerId); +bool32 IsAiBattlerPredictingAbility(enum BattlerId battlerId); +bool32 ShouldRecordStatusMove(enum Move move); +void ClearBattlerMoveHistory(enum BattlerId battlerId); +void RecordLastUsedMoveBy(enum BattlerId battlerId, enum Move move); +void RecordAllMoves(enum BattlerId battler); +void RecordKnownMove(enum BattlerId battlerId, enum Move move); +void RecordAbilityBattle(enum BattlerId battlerId, enum Ability abilityId); +void ClearBattlerAbilityHistory(enum BattlerId battlerId); +void RecordItemEffectBattle(enum BattlerId battlerId, enum HoldEffect itemEffect); +void ClearBattlerItemEffectHistory(enum BattlerId battlerId); +void SaveBattlerData(enum BattlerId battlerId); +void SetBattlerData(enum BattlerId battlerId); +void SetBattlerAiData(enum BattlerId battler, struct AiLogicData *aiData); +void RestoreBattlerData(enum BattlerId battlerId); +enum Move GetAIChosenMove(enum BattlerId battlerId); u32 GetTotalBaseStat(u32 species); -bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler); -bool32 AI_BattlerAtMaxHp(u32 battler); -u32 GetHealthPercentage(u32 battler); -bool32 AI_CanBattlerEscape(u32 battler); -bool32 IsBattlerTrapped(u32 battlerAtk, u32 battlerDef); -s32 AI_WhoStrikesFirst(u32 battlerAI, u32 battler2, u32 aiMoveConsidered, u32 playerMoveConsidered, enum ConsiderPriority considerPriority); -bool32 CanTargetFaintAi(u32 battlerDef, u32 battlerAtk); -u32 NoOfHitsForTargetToFaintBattler(u32 battlerDef, u32 battlerAtk); -u32 GetBestDmgMoveFromBattler(u32 battlerAtk, u32 battlerDef, enum DamageCalcContext calcContext); -u32 GetBestDmgFromBattler(u32 battler, u32 battlerTarget, enum DamageCalcContext calcContext); -bool32 CanTargetMoveFaintAi(u32 move, u32 battlerDef, u32 battlerAtk, u32 nHits); -bool32 CanTargetFaintAiWithMod(u32 battlerDef, u32 battlerAtk, s32 hpMod, s32 dmgMod); -enum Ability AI_DecideKnownAbilityForTurn(u32 battlerId); -enum HoldEffect AI_DecideHoldEffectForTurn(u32 battlerId); -bool32 DoesBattlerIgnoreAbilityChecks(u32 battlerAtk, enum Ability atkAbility, u32 move); +bool32 IsTruantMonVulnerable(enum BattlerId battlerAI, enum BattlerId opposingBattler); +bool32 AI_BattlerAtMaxHp(enum BattlerId battler); +u32 GetHealthPercentage(enum BattlerId battler); +bool32 AI_CanBattlerEscape(enum BattlerId battler); +bool32 IsBattlerTrapped(enum BattlerId battlerAtk, enum BattlerId battlerDef); +s32 AI_WhoStrikesFirst(enum BattlerId battlerAI, enum BattlerId battler, enum Move aiMoveConsidered, enum Move playerMoveConsidered, enum ConsiderPriority considerPriority); +bool32 CanTargetFaintAi(enum BattlerId battlerDef, enum BattlerId battlerAtk); +u32 NoOfHitsForTargetToFaintBattler(enum BattlerId battlerDef, enum BattlerId battlerAtk, enum AiConsiderEndure considerEndure); +void GetBestDmgMovesFromBattler(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum DamageCalcContext calcContext, enum Move *bestMoves); +u32 GetMoveIndex(enum BattlerId battler, enum Move move); +bool32 IsBestDmgMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum DamageCalcContext calcContext, enum Move move); +bool32 BestDmgMoveHasEffect(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum DamageCalcContext calcContext, enum BattleMoveEffects moveEffect); +u32 GetBestDmgFromBattler(enum BattlerId battler, enum BattlerId battlerTarget, enum DamageCalcContext calcContext); +bool32 CanTargetMoveFaintAi(enum Move move, enum BattlerId battlerDef, enum BattlerId battlerAtk, u32 nHits); +bool32 CanTargetFaintAiWithMod(enum BattlerId battlerDef, enum BattlerId battlerAtk, s32 hpMod, s32 dmgMod); +enum Ability AI_DecideKnownAbilityForTurn(enum BattlerId battlerId); +enum HoldEffect AI_DecideHoldEffectForTurn(enum BattlerId battlerId); +bool32 DoesBattlerIgnoreAbilityChecks(enum BattlerId battlerAtk, enum Ability atkAbility, enum Move move); u32 AI_GetWeather(void); -u32 AI_GetSwitchinWeather(struct BattlePokemon battleMon); +u32 AI_GetSwitchinWeather(enum BattlerId battler); +u32 AI_GetSwitchinFieldStatus(enum BattlerId battler); enum WeatherState IsWeatherActive(u32 flags); -bool32 CanAIFaintTarget(u32 battlerAtk, u32 battlerDef, u32 numHits); -bool32 CanIndexMoveFaintTarget(u32 battlerAtk, u32 battlerDef, u32 index, enum DamageCalcContext calcContext); -bool32 HasDamagingMove(u32 battler); -bool32 HasDamagingMoveOfType(u32 battler, enum Type type); -u32 GetBattlerSecondaryDamage(u32 battlerId); -bool32 BattlerWillFaintFromWeather(u32 battler, enum Ability ability); -bool32 BattlerWillFaintFromSecondaryDamage(u32 battler, enum Ability ability); -bool32 ShouldTryOHKO(u32 battlerAtk, u32 battlerDef, enum Ability atkAbility, enum Ability defAbility, u32 move); -bool32 ShouldUseRecoilMove(u32 battlerAtk, u32 battlerDef, u32 recoilDmg, u32 moveIndex); -bool32 ShouldAbsorb(u32 battlerAtk, u32 battlerDef, u32 move, s32 damage); -bool32 ShouldRecover(u32 battlerAtk, u32 battlerDef, u32 move, u32 healPercent); -bool32 ShouldSetScreen(u32 battlerAtk, u32 battlerDef, enum BattleMoveEffects moveEffect); -bool32 ShouldCureStatus(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData); -bool32 ShouldCureStatusWithItem(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData); -enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 move, u32 moveIndex); -bool32 IsRecycleEncouragedItem(u32 item); -bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item); -bool32 IsStatBoostingBerry(u32 item); -bool32 CanKnockOffItem(u32 battler, u32 item); -bool32 IsAbilityOfRating(enum Ability ability, s8 rating); -bool32 AI_IsAbilityOnSide(u32 battlerId, enum Ability ability); -bool32 AI_MoveMakesContact(enum Ability ability, enum HoldEffect holdEffect, u32 move); -bool32 IsConsideringZMove(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 ShouldUseZMove(u32 battlerAtk, u32 battlerDef, u32 chosenMove); -void SetAIUsingGimmick(u32 battler, enum AIConsiderGimmick use); -bool32 IsAIUsingGimmick(u32 battler); -void DecideTerastal(u32 battler); -bool32 CanEndureHit(u32 battler, u32 battlerTarget, u32 move); +bool32 CanAIFaintTarget(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 numHits); +bool32 CanIndexMoveFaintTarget(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 index, enum DamageCalcContext calcContext); +bool32 HasDamagingMove(enum BattlerId battler); +bool32 HasDamagingMoveOfType(enum BattlerId battler, enum Type type); +u32 GetBattlerSecondaryDamage(enum BattlerId battlerId); +bool32 BattlerWillFaintFromWeather(enum BattlerId battler, enum Ability ability); +bool32 BattlerWillFaintFromSecondaryDamage(enum BattlerId battler, enum Ability ability); +bool32 ShouldTryOHKO(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability atkAbility, enum Ability defAbility, enum Move move); +bool32 ShouldUseRecoilMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 recoilDmg, u32 moveIndex); +bool32 ShouldAbsorb(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 ShouldRecover(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, u32 healPercent); +bool32 ShouldSetScreen(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum BattleMoveEffects moveEffect); +bool32 ShouldCureStatus(enum BattlerId battlerAtk, enum BattlerId battlerDef, struct AiLogicData *aiData); +bool32 ShouldCureStatusWithItem(enum BattlerId battlerAtk, enum BattlerId battlerDef, struct AiLogicData *aiData); +enum AIPivot ShouldPivot(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 IsRecycleEncouragedItem(enum Item item); +bool32 ShouldRestoreHpBerry(enum BattlerId battlerAtk, enum Item item); +bool32 IsStatBoostingBerry(enum Item item); +bool32 CanKnockOffItem(enum BattlerId fromBattler, enum BattlerId battler, enum Item item); +bool32 IsAbilityOfRating(enum Ability ability, s32 rating); +bool32 AI_IsAbilityOnSide(enum BattlerId battlerId, enum Ability ability); +bool32 AI_MoveMakesContact(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability ability, enum HoldEffect holdEffect, enum Move move); +bool32 IsUnseenFistContactMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 IsConsideringZMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 ShouldUseZMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move chosenMove); +void SetAIUsingGimmick(enum BattlerId battler, enum AIConsiderGimmick use); +bool32 IsAIUsingGimmick(enum BattlerId battler); +void DecideTerastal(enum BattlerId battler); +bool32 CanEndureHit(enum BattlerId battler, enum BattlerId battlerTarget, enum Move move); +bool32 ShouldFinalGambit(enum BattlerId battlerAtk, enum BattlerId battlerDef, bool32 aiIsFaster); +bool32 ShouldConsiderSelfSacrificeDamageEffect(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, bool32 aiIsFaster); // stat stage checks -bool32 AnyStatIsRaised(u32 battlerId); -bool32 CanLowerStat(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData, enum Stat stat); -bool32 BattlerStatCanRise(u32 battler, enum Ability battlerAbility, enum Stat stat); -bool32 AreBattlersStatsMaxed(u32 battler); -u32 CountPositiveStatStages(u32 battlerId); -u32 CountNegativeStatStages(u32 battlerId); +bool32 AnyStatIsRaised(enum BattlerId battlerId); +bool32 AnyUsefulStatIsRaised(enum BattlerId battlerId); +bool32 CanLowerStat(enum BattlerId battlerAtk, enum BattlerId battlerDef, struct AiLogicData *aiData, enum Stat stat); +bool32 BattlerStatCanRise(enum BattlerId battler, enum Ability battlerAbility, enum Stat stat); +bool32 AreBattlersStatsMaxed(enum BattlerId battler); +u32 CountPositiveStatStages(enum BattlerId battlerId); +u32 CountNegativeStatStages(enum BattlerId battlerId); // move checks -bool32 Ai_IsPriorityBlocked(u32 battlerAtk, u32 battlerDef, u32 move, struct AiLogicData *aiData); +bool32 Ai_IsPriorityBlocked(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, struct AiLogicData *aiData); +bool32 AI_CanMoveBeBlockedByTarget(struct BattleContext *ctx); bool32 MovesWithCategoryUnusable(u32 attacker, u32 target, enum DamageCategory category); -enum MoveComparisonResult AI_WhichMoveBetter(u32 move1, u32 move2, u32 battlerAtk, u32 battlerDef, s32 noOfHitsToKo); -struct SimulatedDamage AI_CalcDamageSaveBattlers(u32 move, u32 battlerAtk, u32 battlerDef, uq4_12_t *typeEffectiveness, enum AIConsiderGimmick considerGimmickAtk, enum AIConsiderGimmick considerGimmickDef); -bool32 IsAdditionalEffectBlocked(u32 battlerAtk, u32 abilityAtk, u32 battlerDef, u32 abilityDef); -struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, uq4_12_t *typeEffectiveness, enum AIConsiderGimmick considerGimmickAtk, enum AIConsiderGimmick considerGimmickDef, u32 weather); -bool32 AI_IsDamagedByRecoil(u32 battler); +enum MoveComparisonResult CompareMoveEffects(enum Move move1, enum Move move2, enum BattlerId battlerAtk, enum BattlerId battlerDef, s32 noOfHitsToKo); +struct SimulatedDamage AI_CalcDamageSaveBattlers(enum Move move, enum BattlerId battlerAtk, enum BattlerId battlerDef, uq4_12_t *typeEffectiveness, enum AIConsiderGimmick considerGimmickAtk, enum AIConsiderGimmick considerGimmickDef); +bool32 IsAdditionalEffectBlocked(enum BattlerId battlerAtk, u32 abilityAtk, enum BattlerId battlerDef, enum Ability abilityDef); +struct SimulatedDamage AI_CalcDamage(enum Move move, enum BattlerId battlerAtk, enum BattlerId battlerDef, uq4_12_t *typeEffectiveness, enum AIConsiderGimmick considerGimmickAtk, enum AIConsiderGimmick considerGimmickDef, u32 weather, u32 fieldStatuses); +bool32 AI_IsDamagedByRecoil(enum BattlerId battler); u32 GetNoOfHitsToKO(u32 dmg, s32 hp); -u32 GetNoOfHitsToKOBattlerDmg(u32 dmg, u32 battlerDef); -u32 GetNoOfHitsToKOBattler(u32 battlerAtk, u32 battlerDef, u32 moveIndex, enum DamageCalcContext calcContext); -u32 GetBestNoOfHitsToKO(u32 battlerAtk, u32 battlerDef, enum DamageCalcContext calcContext); -u32 GetCurrDamageHpPercent(u32 battlerAtk, u32 battlerDef, enum DamageCalcContext calcContext); -uq4_12_t AI_GetMoveEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef); -u16 *GetMovesArray(u32 battler); +u32 GetNoOfHitsToKOBattlerDmg(u32 dmg, enum BattlerId battlerDef); +u32 GetNoOfHitsToKOBattler(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 moveIndex, enum DamageCalcContext calcContext, enum AiConsiderEndure considerEndure); +u32 GetBestNoOfHitsToKO(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum DamageCalcContext calcContext); +u32 GetCurrDamageHpPercent(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum DamageCalcContext calcContext); +uq4_12_t AI_GetMoveEffectiveness(enum Move move, enum BattlerId battlerAtk, enum BattlerId battlerDef); +enum Move *GetMovesArray(enum BattlerId battler); bool32 IsConfusionMoveEffect(enum BattleMoveEffects moveEffect); -bool32 HasMove(u32 battlerId, u32 move); -u32 GetIndexInMoveArray(u32 battler, u32 move); -bool32 HasOnlyMovesWithCategory(u32 battlerId, enum DamageCategory category, bool32 onlyOffensive); -bool32 HasMoveWithCategory(u32 battler, enum DamageCategory category); -bool32 HasMoveWithType(u32 battler, enum Type type); -bool32 HasMoveWithEffect(u32 battler, enum BattleMoveEffects moveEffect); -bool32 HasMoveWithAIEffect(u32 battler, u32 aiEffect); -bool32 HasBattlerSideMoveWithEffect(u32 battler, u32 effect); -bool32 HasBattlerSideMoveWithAIEffect(u32 battler, u32 effect); -bool32 HasBattlerSideUsedMoveWithEffect(u32 battler, u32 effect); -bool32 HasNonVolatileMoveEffect(u32 battlerId, u32 effect); -bool32 IsPowerBasedOnStatus(u32 battlerId, enum BattleMoveEffects effect, u32 argument); -bool32 HasMoveWithAdditionalEffect(u32 battlerId, u32 moveEffect); -bool32 HasBattlerSideMoveWithAdditionalEffect(u32 battler, u32 moveEffect); -bool32 HasMoveWithCriticalHitChance(u32 battlerId); -bool32 HasMoveWithMoveEffectExcept(u32 battlerId, u32 moveEffect, enum BattleMoveEffects exception); -bool32 HasMoveThatLowersOwnStats(u32 battlerId); -bool32 HasMoveWithLowAccuracy(u32 battlerAtk, u32 battlerDef, u32 accCheck, bool32 ignoreStatus); -bool32 HasAnyKnownMove(u32 battlerId); +bool32 HasMove(enum BattlerId battlerId, enum Move move); +u32 GetBattlerMoveIndexWithEffect(enum BattlerId battler, enum BattleMoveEffects effect); +bool32 HasPhysicalBestMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum DamageCalcContext calcContext); +bool32 HasOnlyMovesWithCategory(enum BattlerId battlerId, enum DamageCategory category, bool32 onlyOffensive); +bool32 HasMoveWithCategory(enum BattlerId battler, enum DamageCategory category); +bool32 HasMoveWithType(enum BattlerId battler, enum Type type); +bool32 HasMoveWithEffect(enum BattlerId battler, enum BattleMoveEffects moveEffect); +bool32 HasMoveWithAIEffect(enum BattlerId battler, u32 aiEffect); +bool32 HasBattlerSideMoveWithEffect(enum BattlerId battler, enum BattleMoveEffects effect); +bool32 HasBattlerSideMoveWithAIEffect(enum BattlerId battler, u32 effect); +bool32 HasBattlerSideUsedMoveWithEffect(enum BattlerId battler, enum BattleMoveEffects effect); +bool32 HasNonVolatileMoveEffect(enum BattlerId battlerId, enum MoveEffect effect); +bool32 IsPowerBasedOnStatus(enum BattlerId battlerId, enum BattleMoveEffects effect, u32 argument); +bool32 HasMoveWithAdditionalEffect(enum BattlerId battlerId, enum MoveEffect moveEffect); +bool32 HasBattlerSideMoveWithAdditionalEffect(enum BattlerId battler, enum MoveEffect moveEffect); +bool32 HasMoveWithCriticalHitChance(enum BattlerId battlerId); +bool32 HasMoveWithMoveEffectExcept(enum BattlerId battlerId, enum MoveEffect moveEffect, enum BattleMoveEffects exception); +bool32 HasMoveThatLowersOwnStats(enum BattlerId battlerId); +bool32 HasMoveWithLowAccuracy(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 accCheck, bool32 ignoreStatus); +bool32 HasAnyKnownMove(enum BattlerId battlerId); bool32 IsAromaVeilProtectedEffect(enum BattleMoveEffects moveEffect); -bool32 IsNonVolatileStatusMove(u32 moveEffect); -bool32 IsMoveRedirectionPrevented(u32 battlerAtk, u32 move, enum Ability atkAbility); -bool32 IsHazardMove(u32 move); -bool32 IsTwoTurnNotSemiInvulnerableMove(u32 battlerAtk, u32 move); -bool32 IsBattlerDamagedByStatus(u32 battler); -s32 ProtectChecks(u32 battlerAtk, u32 battlerDef, u32 move, u32 predictedMove); -bool32 ShouldRaiseAnyStat(u32 battlerAtk, u32 battlerDef); -bool32 ShouldSetWeather(u32 battler, u32 weather); -bool32 ShouldClearWeather(u32 battler, u32 weather); -bool32 ShouldSetFieldStatus(u32 battler, u32 fieldStatus); -bool32 ShouldClearFieldStatus(u32 battler, u32 fieldStatus); -bool32 HasSleepMoveWithLowAccuracy(u32 battlerAtk, u32 battlerDef); -bool32 IsHealingMove(u32 move); -bool32 HasHealingEffect(u32 battler); -bool32 IsTrappingMove(u32 move); -bool32 HasTrappingMoveEffect(u32 battler); -bool32 IsFlinchGuaranteed(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 HasChoiceEffect(u32 battler); -bool32 HasThawingMove(u32 battler); +bool32 IsNonVolatileStatusMove(enum Move move); +bool32 IsMoveRedirectionPrevented(enum BattlerId battlerAtk, enum Move move, enum Ability atkAbility); +bool32 IsHazardMove(enum Move move); +bool32 IsTwoTurnNotSemiInvulnerableMove(enum BattlerId battlerAtk, enum Move move); +bool32 IsBattlerDamagedByStatus(enum BattlerId battler); +s32 ProtectChecks(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, enum Move predictedMove); +bool32 ShouldRaiseAnyStat(enum BattlerId battlerAtk, enum BattlerId battlerDef); +bool32 ShouldSetWeather(enum BattlerId battler, u32 weather); +bool32 ShouldClearWeather(enum BattlerId battler, u32 weather); +bool32 ShouldSetFieldStatus(enum BattlerId battler, u32 fieldStatus); +bool32 ShouldClearFieldStatus(enum BattlerId battler, u32 fieldStatus); +bool32 HasSleepMoveWithLowAccuracy(enum BattlerId battlerAtk, enum BattlerId battlerDef); +bool32 HasHealingEffect(enum BattlerId battler); +bool32 IsTrappingMove(enum Move move); +bool32 HasTrappingMoveEffect(enum BattlerId battler); +bool32 IsFlinchGuaranteed(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 HasChoiceEffect(enum BattlerId battler); +bool32 HasThawingMove(enum BattlerId battler); +bool32 HasUsableWhileAsleepMove(enum BattlerId battler); bool32 IsStatRaisingEffect(enum BattleMoveEffects effect); bool32 IsStatLoweringEffect(enum BattleMoveEffects effect); bool32 IsSelfStatLoweringEffect(enum MoveEffect effect); @@ -215,94 +233,107 @@ bool32 IsSwitchOutEffect(enum BattleMoveEffects effect); bool32 IsChaseEffect(enum BattleMoveEffects effect); bool32 IsAttackBoostMoveEffect(enum BattleMoveEffects effect); bool32 IsUngroundingEffect(enum BattleMoveEffects effect); -bool32 HasMoveWithFlag(u32 battler, MoveFlag getFlag); -bool32 IsHazardClearingMove(u32 move); +bool32 HasMoveWithFlag(enum BattlerId battler, MoveFlag getFlag); +bool32 IsHazardClearingMove(enum Move move); bool32 IsSubstituteEffect(enum BattleMoveEffects effect); +bool32 IsSelfSacrificeEffect(enum Move move); +u32 GetAIExplosionChanceFromHP(u32 hpPercent); // status checks -bool32 AI_CanBeConfused(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability ability); -bool32 IsBattlerIncapacitated(u32 battler, enum Ability ability); -bool32 AI_CanPutToSleep(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 move, u32 partnerMove); -bool32 ShouldPoison(u32 battlerAtk, u32 battlerDef); -bool32 AI_CanPoison(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 move, u32 partnerMove); -bool32 AI_CanParalyze(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 move, u32 partnerMove); -bool32 AI_CanConfuse(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 battlerAtkPartner, u32 move, u32 partnerMove); -bool32 ShouldBurn(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef); -bool32 ShouldFreezeOrFrostbite(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef); -bool32 ShouldParalyze(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef); -bool32 AI_CanBurn(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 battlerAtkPartner, u32 move, u32 partnerMove); -bool32 AI_CanGiveFrostbite(u32 battlerAtk, u32 battlerDef, enum Ability defAbility, u32 battlerAtkPartner, u32 move, u32 partnerMove); -bool32 AI_CanBeInfatuated(u32 battlerAtk, u32 battlerDef, enum Ability defAbility); -bool32 AnyPartyMemberStatused(u32 battlerId, bool32 checkSoundproof); -u32 ShouldTryToFlinch(u32 battlerAtk, u32 battlerDef, enum Ability atkAbility, enum Ability defAbility, u32 move); -bool32 ShouldTrap(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 IsWakeupTurn(u32 battler); -bool32 AI_IsBattlerAsleepOrComatose(u32 battlerId); +bool32 AI_CanBeConfused(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, enum Ability ability); +bool32 IsBattlerIncapacitated(enum BattlerId battler, enum Ability ability); +bool32 AI_CanPutToSleep(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility, enum Move move, enum Move partnerMove); +bool32 ShouldPoison(enum BattlerId battlerAtk, enum BattlerId battlerDef); +bool32 AI_CanPoison(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility, enum Move move, enum Move partnerMove); +bool32 AI_CanParalyze(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility, enum Move move, enum Move partnerMove); +bool32 AI_CanConfuse(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility, enum BattlerId battlerAtkPartner, enum Move move, enum Move partnerMove); +bool32 ShouldBurn(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef); +bool32 ShouldFreezeOrFrostbite(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef); +bool32 ShouldParalyze(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef); +bool32 AI_CanBurn(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility, enum BattlerId battlerAtkPartner, enum Move move, enum Move partnerMove); +bool32 AI_CanGiveFrostbite(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility, enum BattlerId battlerAtkPartner, enum Move move, enum Move partnerMove); +bool32 AI_CanBeInfatuated(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability defAbility); +bool32 AnyPartyMemberStatused(enum BattlerId battlerId, bool32 checkSoundproof); +bool32 ShouldTryToFlinch(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability atkAbility, enum Ability defAbility, enum Move move); +bool32 ShouldTrap(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 IsWakeupTurn(enum BattlerId battler); +bool32 AI_IsBattlerAsleepOrComatose(enum BattlerId battlerId); // ability logic bool32 IsMoxieTypeAbility(enum Ability ability); bool32 DoesAbilityRaiseStatsWhenLowered(enum Ability ability); -bool32 ShouldTriggerAbility(u32 battlerAtk, u32 battlerDef, enum Ability ability); -bool32 CanEffectChangeAbility(u32 battlerAtk, u32 battlerDef, u32 move, struct AiLogicData *aiData); -void AbilityChangeScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score, struct AiLogicData *aiData); -s32 BattlerBenefitsFromAbilityScore(u32 battler, enum Ability ability, struct AiLogicData *aiData); +bool32 ShouldTriggerAbility(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability ability); +bool32 CanEffectChangeAbility(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, struct AiLogicData *aiData); +void AbilityChangeScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score, struct AiLogicData *aiData); +enum AIScore BattlerBenefitsFromAbilityScore(enum BattlerId battler, enum Ability ability, struct AiLogicData *aiData); // partner logic -bool32 IsTargetingPartner(u32 battlerAtk, u32 battlerDef); +bool32 IsTargetingPartner(enum BattlerId battlerAtk, enum BattlerId battlerDef); // IsTargetingPartner includes a check to make sure the adjacent pokemon is truly a partner. -u32 GetAllyChosenMove(u32 battlerId); +enum Move GetAllyChosenMove(enum BattlerId battlerId); bool32 IsBattle1v1(void); // IsBattle1v1 is distinct from !IsDoubleBattle. If the player is fighting Maxie and Tabitha, with Steven as their partner, and both Tabitha and Steven have run out of Pokemon, the battle is 1v1, even though mechanically it is a Double Battle for how battlers and flags are set. // Most AI checks should be using IsBattle1v1; most engine checks should be using !IsDoubleBattle -bool32 HasTwoOpponents(u32 battler); +bool32 HasTwoOpponents(enum BattlerId battler); // HasTwoOpponents checks if the opposing side has two pokemon. Partner state is irrelevant. e.g., Dragon Darts hits one time with two opponents and twice with one opponent. -bool32 HasPartner(u32 battler); -bool32 HasPartnerIgnoreFlags(u32 battler); +bool32 HasPartner(enum BattlerId battler); +bool32 HasPartnerIgnoreFlags(enum BattlerId battler); // HasPartner respects the Attacks Partner AI flag; HasPartnerIgnoreFlags checks only if a live pokemon is adjacent. -bool32 AreMovesEquivalent(u32 battlerAtk, u32 battlerAtkPartner, u32 move, u32 partnerMove); -bool32 DoesPartnerHaveSameMoveEffect(u32 battlerAtkPartner, u32 battlerDef, u32 move, u32 partnerMove); -bool32 PartnerMoveEffectIsStatusSameTarget(u32 battlerAtkPartner, u32 battlerDef, u32 partnerMove); -bool32 PartnerMoveEffectIs(u32 battlerAtkPartner, u32 partnerMove, enum BattleMoveEffects effectCheck); -bool32 PartnerMoveIs(u32 battlerAtkPartner, u32 partnerMove, u32 moveCheck); -bool32 PartnerMoveIsSameAsAttacker(u32 battlerAtkPartner, u32 battlerDef, u32 move, u32 partnerMove); -bool32 PartnerMoveIsSameNoTarget(u32 battlerAtkPartner, u32 move, u32 partnerMove); -bool32 PartnerMoveActivatesSleepClause(u32 move); -bool32 ShouldUseWishAromatherapy(u32 battlerAtk, u32 battlerDef, u32 move); -u32 GetFriendlyFireKOThreshold(u32 battler); -bool32 IsAllyProtectingFromMove(u32 battlerAtk, u32 attackerMove, u32 allyMove); +bool32 AreMovesEquivalent(enum BattlerId battlerAtk, enum BattlerId battlerAtkPartner, enum Move move, enum Move partnerMove); +bool32 DoesPartnerHaveSameMoveEffect(enum BattlerId battlerAtkPartner, enum BattlerId battlerDef, enum Move move, enum Move partnerMove); +bool32 PartnerMoveEffectIsStatusSameTarget(enum BattlerId battlerAtkPartner, enum BattlerId battlerDef, enum Move partnerMove); +bool32 PartnerMoveEffectIs(enum BattlerId battlerAtkPartner, enum Move partnerMove, enum BattleMoveEffects effectCheck); +bool32 PartnerMoveIs(enum BattlerId battlerAtkPartner, enum Move partnerMove, enum Move moveCheck); +bool32 PartnerMoveIsSameAsAttacker(enum BattlerId battlerAtkPartner, enum BattlerId battlerDef, enum Move move, enum Move partnerMove); +bool32 PartnerMoveIsSameNoTarget(enum BattlerId battlerAtkPartner, enum Move move, enum Move partnerMove); +bool32 PartnerMoveActivatesSleepClause(enum Move partnerMove); +bool32 ShouldUseWishAromatherapy(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +u32 GetFriendlyFireKOThreshold(enum BattlerId battler); +bool32 IsAllyProtectingFromMove(enum BattlerId battlerAtk, enum Move attackerMove, enum Move allyMove); // party logic struct BattlePokemon *AllocSaveBattleMons(void); void FreeRestoreBattleMons(struct BattlePokemon *savedBattleMons); -s32 CountUsablePartyMons(u32 battlerId); -bool32 IsPartyFullyHealedExceptBattler(u32 battler); -bool32 PartyHasMoveCategory(u32 battlerId, enum DamageCategory category); -bool32 SideHasMoveCategory(u32 battlerId, enum DamageCategory category); +struct AiLogicData *AllocSaveAiLogicData(void); +void FreeRestoreAiLogicData(struct AiLogicData *savedAiLogicData); +s32 CountUsablePartyMons(enum BattlerId battlerId); +bool32 IsPartyFullyHealedExceptBattler(enum BattlerId battler); +bool32 PartyHasMoveCategory(enum BattlerId battlerId, enum DamageCategory category); +bool32 SideHasMoveCategory(enum BattlerId battlerId, enum DamageCategory category); +void GetAIPartyIndexes(enum BattlerId battlerId, s32 *firstId, s32 *lastId); +u32 GetActiveBattlerIds(enum BattlerId battler, enum BattlerId *battlerIn1, enum BattlerId *battlerIn2); +bool32 IsPartyMonOnFieldOrChosenToSwitch(u32 partyIndex, enum BattlerId battlerIn1, enum BattlerId battlerIn2); // score increases -u32 IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, enum StatChange statId); -u32 IncreaseStatUpScoreContrary(u32 battlerAtk, u32 battlerDef, enum StatChange statId); -u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, enum Stat stat); -void IncreasePoisonScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); -void IncreaseBurnScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); -void IncreaseParalyzeScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); -void IncreaseSleepScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); -void IncreaseConfusionScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); -void IncreaseFrostbiteScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); +enum AIScore IncreaseStatUpScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum StatChange statId); +enum AIScore IncreaseStatUpScoreContrary(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum StatChange statId); +enum AIScore IncreaseStatDownScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Stat stat); +void IncreasePoisonScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +void IncreaseBurnScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +void IncreaseParalyzeScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +void IncreaseSleepScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +void IncreaseConfusionScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +void IncreaseFrostbiteScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +bool32 HasHPForDamagingSetup(enum BattlerId battlerAtk, enum BattlerId battlerDef, u32 hpThreshold); -s32 AI_CalcPartyMonDamage(u32 move, u32 battlerAtk, u32 battlerDef, struct BattlePokemon switchinCandidate, uq4_12_t *effectiveness, enum DamageCalcContext calcContext); -u32 AI_WhoStrikesFirstPartyMon(u32 battlerAtk, u32 battlerDef, struct BattlePokemon switchinCandidate, u32 aiMoveConsidered, u32 playerMoveConsidered, enum ConsiderPriority ConsiderPriority); -s32 AI_TryToClearStats(u32 battlerAtk, u32 battlerDef, bool32 isDoubleBattle); -bool32 AI_ShouldCopyStatChanges(u32 battlerAtk, u32 battlerDef); -bool32 AI_ShouldSetUpHazards(u32 battlerAtk, u32 battlerDef, u32 move, struct AiLogicData *aiData); -void IncreaseTidyUpScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); -bool32 AI_ShouldSpicyExtract(u32 battlerAtk, u32 battlerAtkPartner, u32 move, struct AiLogicData *aiData); -u32 IncreaseSubstituteMoveScore(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 IsBattlerItemEnabled(u32 battler); -bool32 IsBattlerPredictedToSwitch(u32 battler); -u32 GetIncomingMove(u32 battler, u32 opposingBattler, struct AiLogicData *aiData); -u32 GetIncomingMoveSpeedCheck(u32 battler, u32 opposingBattler, struct AiLogicData *aiData); +s32 AI_TryToClearStats(enum BattlerId battlerAtk, enum BattlerId battlerDef, bool32 isDoubleBattle); +bool32 AI_ShouldCopyStatChanges(enum BattlerId battlerAtk, enum BattlerId battlerDef); +bool32 AI_ShouldSetUpHazards(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, struct AiLogicData *aiData); +void IncreaseTidyUpScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, s32 *score); +bool32 AI_ShouldSpicyExtract(enum BattlerId battlerAtk, enum BattlerId battlerAtkPartner, enum Move move, struct AiLogicData *aiData); +u32 IncreaseSubstituteMoveScore(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 IsBattlerItemEnabled(enum BattlerId battler); +bool32 IsBattlerPredictedToSwitch(enum BattlerId battler); +enum Move GetIncomingMove(enum BattlerId battler, enum BattlerId opposingBattler, struct AiLogicData *aiData); +enum Move GetIncomingMoveSpeedCheck(enum BattlerId battler, enum BattlerId opposingBattler, struct AiLogicData *aiData); bool32 IsNaturalEnemy(u32 speciesAttacker, u32 speciesTarget); +bool32 AI_OpponentCanFaintAiWithMod(enum BattlerId battler, u32 healAmount); +void SetBattlerFieldStatusForSwitchin(enum BattlerId battler); +bool32 ShouldInstructPartner(enum BattlerId partner, enum Move move); +bool32 CanMoveBeBouncedBack(enum BattlerId battler, enum Move move); + +// Switching and item helpers +bool32 AiExpectsToFaintPlayer(enum BattlerId battler); // These are for the purpose of not doubling up on moves during double battles. // Used in GetAIEffectGroup for move effects and GetAIEffectGroupFromMove for additional effects diff --git a/include/battle_anim.h b/include/battle_anim.h index 2c8631e8997c..f5d813b2c7e7 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -42,34 +42,52 @@ struct BattleAnimBackground const u32 *tilemap; }; +struct BattleAnimation +{ + struct CompressedSpriteSheet pic; + struct SpritePalette palette; +}; + +// Helper struct for link battles to show correct animations and transformations that can change their look +// Used by EmitBattleAnimation and EmitMoveAnimation +struct LinkBattleAnim +{ + u32 transformedMonPID; + u8 rolloutTimer; + u8 furyCutterCounter; + u8 syrupBombIsShiny:1; + u8 isTransformedMonShiny:1; + u8 stockpileCounter:4; +}; + #define ANIM_ARGS_COUNT 8 extern void (*gAnimScriptCallback)(void); extern bool8 gAnimScriptActive; extern u8 gAnimVisualTaskCount; extern u8 gAnimSoundTaskCount; -extern struct DisableStruct *gAnimDisableStructPtr; +extern struct LinkBattleAnim *gAnimDisableStructPtr; extern s32 gAnimMoveDmg; extern u16 gAnimMovePower; extern u8 gAnimFriendship; extern u16 gWeatherMoveAnim; extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT]; extern u8 gAnimMoveTurn; -extern u8 gBattleAnimAttacker; -extern u8 gBattleAnimTarget; +extern enum BattlerId gBattleAnimAttacker; +extern enum BattlerId gBattleAnimTarget; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; extern u8 gAnimCustomPanning; extern u16 gAnimMoveIndex; void ClearBattleAnimationVars(void); -void DoMoveAnim(u16 move); +void DoMoveAnim(enum Move move); void LaunchBattleAnimation(u32 animType, u32 animId); void DestroyAnimSprite(struct Sprite *sprite); void DestroyAnimVisualTask(u8 taskId); void DestroyAnimSoundTask(u8 taskId); -u8 GetAnimBattlerId(u8 wantedBattler); -bool8 IsBattlerSpriteVisible(u8 battler); -void MoveBattlerSpriteToBG(u8 battler, bool8 toBG_2, bool8 setSpriteInvisible); +enum BattlerId GetAnimBattlerId(enum AnimBattler wantedBattler); +bool8 IsBattlerSpriteVisible(enum BattlerId battler); +void MoveBattlerSpriteToBG(enum BattlerId battler, bool8 toBG_2, bool8 setSpriteInvisible); bool8 IsContest(void); s8 BattleAnimAdjustPanning(s8 pan); s8 BattleAnimAdjustPanning2(s8 pan); @@ -81,8 +99,11 @@ void LoadMoveBg(u16 bgId); // battle_intro.c void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); -void DrawBattlerOnBg(int bgId, u8 x, u8 y, u8 battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset); +void DrawBattlerOnBg(int bgId, u8 x, u8 y, enum BattlerPosition battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset); void HandleIntroSlide(u8 environment); +void BattleIntroSlide1(u8 taskId); +void BattleIntroSlide2(u8 taskId); +void BattleIntroSlide3(u8 taskId); int GetAnimBgAttribute(u8 bgId, u8 attributeId); // battle_anim_mons.c @@ -92,18 +113,18 @@ void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite); void AnimWeatherBallUp(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite); void AnimSpinningSparkle(struct Sprite *sprite); -void SetAverageBattlerPositions(u8 battler, bool8 respectMonPicOffsets, s16 *x, s16 *y); -void SetToPartnerPositions(u8 battler, bool8 respectMonPicOffsets, s16 *x, s16 *y); +void SetAverageBattlerPositions(enum BattlerId battler, bool8 respectMonPicOffsets, s16 *x, s16 *y); +void SetToPartnerPositions(enum BattlerId battler, bool8 respectMonPicOffsets, s16 *x, s16 *y); void DestroySpriteAndMatrix(struct Sprite *sprite); void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets); void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets); -bool32 InitSpritePosToAnimBattler(u32 animBattlerId, struct Sprite *sprite, bool8 respectMonPicOffsets); +bool32 InitSpritePosToAnimBattler(enum AnimBattler animBattlerId, struct Sprite *sprite, bool8 respectMonPicOffsets); void StartAnimLinearTranslation(struct Sprite *sprite); void InitAnimArcTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); -u8 GetBattlerSpriteCoord2(u8 battler, u8 coordType); +u8 GetBattlerSpriteCoord2(enum BattlerId battler, u8 coordType); void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite); u16 ArcTan2Neg(s16 x, s16 y); void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation); @@ -112,20 +133,21 @@ void TranslateSpriteLinearAndFlicker(struct Sprite *sprite); void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite); void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite); void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset); -s16 GetBattlerSpriteCoordAttr(u8 battler, u8 attr); -u8 GetBattlerYCoordWithElevation(u8 battler); +s16 GetBattlerSpriteCoordAttr(enum BattlerId battler, u8 attr); +u8 GetBattlerYCoordWithElevation(enum BattlerId battler); void WaitAnimForDuration(struct Sprite *sprite); void AnimTravelDiagonally(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); void AnimTranslateLinear_WithFollowup(struct Sprite *sprite); -u8 GetBattlerSpriteBGPriority(u8 battler); +u8 GetBattlerSpriteBGPriority(enum BattlerId battler); void *LoadPointerFromVars(s16 lo, s16 hi); void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr); void InitPrioritiesForVisibleBattlers(void); void GetBattleAnimBg1Data(struct BattleAnimBgData *out); void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId); -u8 GetBattlerSpriteSubpriority(u8 battler); +u8 GetBattlerSpriteSubpriority(enum BattlerId battler); bool8 TranslateAnimHorizontalArc(struct Sprite *sprite); +bool8 TranslateAnimVerticalArc(struct Sprite *sprite); void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite); void ResetSpriteRotScale(u8 spriteId); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); @@ -134,8 +156,8 @@ void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); void SetBattlerSpriteYOffsetFromRotation(u8 spriteId); u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2); u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight); -u8 GetSpritePalIdxByBattler(u8 battler); -s16 CloneBattlerSpriteWithBlend(u8 animBattler); +u8 GetSpritePalIdxByBattler(enum BattlerId battler); +s16 CloneBattlerSpriteWithBlend(enum AnimBattler animBattler); void DestroySpriteWithActiveSheet(struct Sprite *sprite); u8 CreateInvisibleSpriteCopy(int battler, u8 spriteId, int species); void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *data, const void *src, bool32 largeScreen); @@ -159,8 +181,8 @@ void SetGrayscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void AnimThrowProjectile(struct Sprite *sprite); -void GetBgDataForTransform(struct BattleAnimBgData *out, u8 battler); -u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battler); +void GetBgDataForTransform(struct BattleAnimBgData *out, enum BattlerId battler); +u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, enum BattlerId battler); void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite); void Trade_MoveSelectedMonToTarget(struct Sprite *sprite); void DestroyAnimVisualTaskAndDisableBlend(u8 taskId); @@ -168,6 +190,7 @@ void DestroySpriteAndFreeResources_(struct Sprite *sprite); void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId); void ConvertPosDataToTranslateLinearData(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite); +u8 GetGhostSpriteDefault_Y(enum BattlerId battler); enum { @@ -189,17 +212,17 @@ enum BATTLER_COORD_ATTR_RAW_BOTTOM, }; -u8 GetBattlerSpriteCoord(u8 battler, u8 coordType); +u8 GetBattlerSpriteCoord(enum BattlerId battler, u8 coordType); -bool8 IsBattlerSpritePresent(u8 battler); +bool8 IsBattlerSpritePresent(enum BattlerId battler); void ClearBattleAnimBg(u32 bgId); -u8 GetAnimBattlerSpriteId(u8 wantedBattler); +u8 GetAnimBattlerSpriteId(enum AnimBattler wantedBattler); u8 GetBattleBgPaletteNum(void); -u8 GetBattlerSpriteBGPriorityRank(u8 battler); +u8 GetBattlerSpriteBGPriorityRank(enum BattlerId battler); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite *)); void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite); -u8 GetBattlerSpriteDefault_Y(u8 battler); -u8 GetSubstituteSpriteDefault_Y(u8 battler); +u8 GetBattlerSpriteDefault_Y(enum BattlerId battler); +u8 GetSubstituteSpriteDefault_Y(enum BattlerId battler); // battle_anim_status_effects.c #define STAT_ANIM_PLUS1 (MOVE_EFFECT_ATK_PLUS_1 - 1) @@ -223,7 +246,7 @@ enum StatAnimPal STAT_ANIM_PAL_MULTIPLE = 0xFF }; -void LaunchStatusAnimation(u8 battler, u8 statusAnimId); +void LaunchStatusAnimation(enum BattlerId battler, u8 statusAnimId); extern const union AnimCmd *const gAnims_SpinningSparkle[]; // battle_anim_ground.c @@ -237,17 +260,19 @@ extern const union AnimCmd *const sAnims_MudSlapMud[]; extern const union AffineAnimCmd *const gAffineAnims_SpinningBone[]; // battle_anim_throw.c -void TryShinyAnimation(u8 battler, struct Pokemon *mon); +void TryShinyAnimation(enum BattlerId battler, struct Pokemon *mon); u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 spritePalNum, u32 selectedPalettes, u8 ballId); bool32 IsCriticalCapture(void); // battle_anim_utility_funcs.c void InitStatsChangeAnimation(u8 taskId); -void StartMonScrollingBgMask(u8 taskId, int UNUSED unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u16 *palette); +void StartMonScrollingBgMask(u8 taskId, int UNUSED unused, u16 scrollSpeed, enum BattlerId battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u16 *palette); +void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, enum BattlerId battler); +void FreeHealthboxPalsForLevelUp(enum BattlerId battler); // battle_anim_effects_1.c void AnimFalseSwipeSlice_Step3(struct Sprite *); -void SetSpriteNextToMonHead(u8 battler, struct Sprite *sprite); +void SetSpriteNextToMonHead(enum BattlerId battler, struct Sprite *sprite); void AnimMoveTwisterParticle(struct Sprite *sprite); void AnimParticleBurst(struct Sprite *sprite); void AnimPowerAbsorptionOrb(struct Sprite *sprite); @@ -388,7 +413,7 @@ u8 SmokescreenImpact(s16 x, s16 y, bool8 persist); u32 UnpackSelectedBattlePalettes(s16 selector); -u8 GetBattlerSpriteFinal_Y(u8 battler, u16 species, bool8 a3); +u8 GetBattlerSpriteFinal_Y(enum BattlerId battler, u16 species, bool8 a3); extern const struct OamData gOamData_AffineOff_ObjNormal_8x16; extern const struct OamData gOamData_AffineNormal_ObjBlend_16x16; @@ -437,8 +462,7 @@ extern const struct OamData gOamData_AffineOff_ObjBlend_64x32; extern const struct OamData gOamData_AffineOff_ObjBlend_16x32; extern const struct OamData gOamData_AffineDouble_ObjBlend_32x8; -extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; -extern const struct SpritePalette gBattleAnimPaletteTable[]; +extern const struct BattleAnimation gBattleAnimTable[ANIM_TAG_COUNT]; extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; @@ -571,4 +595,6 @@ void AnimIceBeamParticle(struct Sprite *sprite); // battle_anim_bug.c void AnimTranslateStinger(struct Sprite *sprite); +extern const struct BattleAnimBackground gBattleAnimBackgroundTable[]; + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_anim_scripts.h b/include/battle_anim_scripts.h index febbfe9a2c9e..e09d18c35df6 100644 --- a/include/battle_anim_scripts.h +++ b/include/battle_anim_scripts.h @@ -976,6 +976,8 @@ extern const u8 gBattleAnimGeneral_WishHeal[]; extern const u8 gBattleAnimGeneral_MegaEvolution[]; extern const u8 gBattleAnimGeneral_IllusionOff[]; extern const u8 gBattleAnimGeneral_FormChange[]; +extern const u8 gBattleAnimGeneral_FormChangeInstant[]; +extern const u8 gBattleAnimGeneral_FormChangeDisguise[]; extern const u8 gBattleAnimGeneral_SlideOffScreen[]; extern const u8 gBattleAnimGeneral_RestoreBg[]; extern const u8 gBattleAnimGeneral_TotemFlare[]; @@ -1007,6 +1009,11 @@ extern const u8 gBattleAnimGeneral_SimpleHeal[]; extern const u8 gBattleAnimGeneral_PowerConstruct[]; extern const u8 gBattleAnimGeneral_SwapToSubstitute[]; extern const u8 gBattleAnimGeneral_SwapFromSubstitute[]; +extern const u8 gBattleAnimGeneral_MonScared[]; +extern const u8 gBattleAnimGeneral_GhostGetOut[]; +extern const u8 gBattleAnimGeneral_SilphScoped[]; +extern const u8 gBattleAnimGeneral_SafariRockThrow[]; +extern const u8 gBattleAnimGeneral_SafariReaction[]; // special animations extern const u8 gBattleAnimSpecial_LevelUp[]; @@ -1018,5 +1025,4 @@ extern const u8 gBattleAnimSpecial_SubstituteToMon[]; extern const u8 gBattleAnimSpecial_MonToSubstitute[]; extern const u8 gBattleAnimSpecial_CriticalCaptureBallThrow[]; - #endif // GUARD_BATTLE_ANIM_SCRIPTS_H diff --git a/include/battle_arena.h b/include/battle_arena.h index b282009c604d..c27e46be0d30 100644 --- a/include/battle_arena.h +++ b/include/battle_arena.h @@ -6,9 +6,9 @@ void CallBattleArenaFunction(void); u8 BattleArena_ShowJudgmentWindow(u8 *state); void BattleArena_InitPoints(void); -void BattleArena_AddMindPoints(u8 battler); -void BattleArena_AddSkillPoints(u8 battler); -void BattleArena_DeductSkillPoints(u8 battler, enum StringID stringId); +void BattleArena_AddMindPoints(enum BattlerId battler); +void BattleArena_AddSkillPoints(enum BattlerId battler); +void BattleArena_DeductSkillPoints(enum BattlerId battler, enum StringID stringId); void DrawArenaRefereeTextBox(void); void EraseArenaRefereeTextBox(void); diff --git a/include/battle_bg.h b/include/battle_bg.h index 1b32c7395d9e..fe9110aedb4e 100644 --- a/include/battle_bg.h +++ b/include/battle_bg.h @@ -5,9 +5,12 @@ struct BattleBackground { const void *tileset; const void *tilemap; - const void *entryTileset; - const void *entryTilemap; - const void *palette; +}; + +struct BattleBackgroundEntry +{ + const void *tileset; + const void *tilemap; }; void BattleInitBgsAndWindows(void); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index c3b5fff97f49..134bb2df5c68 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -1,7 +1,7 @@ #ifndef GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H -typedef void (*BattleControllerFunc)(u32 battler); +typedef void (*BattleControllerFunc)(enum BattlerId battler); enum { REQUEST_ALL_BATTLE, @@ -66,6 +66,23 @@ enum { REQUEST_TOUGH_RIBBON_BATTLE, }; +enum BattleController +{ + BATTLE_CONTROLLER_NONE, + BATTLE_CONTROLLER_PLAYER, + BATTLE_CONTROLLER_PLAYER_PARTNER, + BATTLE_CONTROLLER_OPPONENT, + BATTLE_CONTROLLER_LINK_PARTNER, + BATTLE_CONTROLLER_LINK_OPPONENT, + BATTLE_CONTROLLER_SAFARI, + BATTLE_CONTROLLER_WALLY, + BATTLE_CONTROLLER_RECORDED_PLAYER, + BATTLE_CONTROLLER_RECORDED_PARTNER, + BATTLE_CONTROLLER_RECORDED_OPPONENT, + BATTLE_CONTROLLER_OAK_OLD_MAN, + BATTLE_CONTROLLERS_COUNT, +}; + // Accessors for gBattleControllerExecFlags. // // These are provided for documentation purposes, to make the battle @@ -74,47 +91,47 @@ enum { // (e.g. MarkBattlerForControllerExec) instead of using these macros // directly. -static inline void MarkBattleControllerActiveOnLocal(u32 battler) +static inline void MarkBattleControllerActiveOnLocal(enum BattlerId battler) { gBattleControllerExecFlags |= (1u << battler); } -static inline void MarkBattleControllerIdleOnLocal(u32 battler) +static inline void MarkBattleControllerIdleOnLocal(enum BattlerId battler) { gBattleControllerExecFlags &= ~(1u << battler); } -static inline bool32 IsBattleControllerActiveOnLocal(u32 battler) +static inline bool32 IsBattleControllerActiveOnLocal(enum BattlerId battler) { return gBattleControllerExecFlags & (1u << battler); } -static inline void MarkBattleControllerMessageOutboundOverLink(u32 battler) +static inline void MarkBattleControllerMessageOutboundOverLink(enum BattlerId battler) { gBattleControllerExecFlags |= ((1u << battler) << (32 - MAX_BATTLERS_COUNT)); } -static inline void MarkBattleControllerMessageSynchronizedOverLink(u32 battler) +static inline void MarkBattleControllerMessageSynchronizedOverLink(enum BattlerId battler) { gBattleControllerExecFlags &= ~((1 << 28) << (battler)); } -static inline bool32 IsBattleControllerMessageSynchronizedOverLink(u32 battler) +static inline bool32 IsBattleControllerMessageSynchronizedOverLink(enum BattlerId battler) { return gBattleControllerExecFlags & (1u << (battler + 28)); } -static inline void MarkBattleControllerActiveForPlayer(u32 battler, u32 playerId) +static inline void MarkBattleControllerActiveForPlayer(enum BattlerId battler, u32 playerId) { gBattleControllerExecFlags |= ((1u << battler) << ((playerId) << 2)); } -static inline void MarkBattleControllerIdleForPlayer(u32 battler, u32 playerId) +static inline void MarkBattleControllerIdleForPlayer(enum BattlerId battler, u32 playerId) { gBattleControllerExecFlags &= ~((1u << battler) << ((playerId) * 4)); } -static inline bool32 IsBattleControllerActiveForPlayer(u32 battler, u32 playerId) +static inline bool32 IsBattleControllerActiveForPlayer(enum BattlerId battler, u32 playerId) { return gBattleControllerExecFlags & ((1u << battler) << ((playerId) * 4)); } @@ -122,7 +139,7 @@ static inline bool32 IsBattleControllerActiveForPlayer(u32 battler, u32 playerId // This actually checks if a specific controller is active on any player or if // *any* controller is pending sync over link communications, but the macro name // can only be so specific before it just gets ridiculous. -static inline bool32 IsBattleControllerActiveOrPendingSyncAnywhere(u32 battler) +static inline bool32 IsBattleControllerActiveOrPendingSyncAnywhere(enum BattlerId battler) { return gBattleControllerExecFlags & ( (1u << battler) @@ -162,6 +179,7 @@ enum { BALL_3_SHAKES_FAIL, BALL_3_SHAKES_SUCCESS, BALL_TRAINER_BLOCK, + BALL_GHOST_DODGE, }; enum { @@ -192,14 +210,14 @@ struct HpAndStatus struct MovePpInfo { - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u8 pp[MAX_MON_MOVES]; u8 ppBonuses; }; struct ChooseMoveStruct { - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u8 currentPp[MAX_MON_MOVES]; u8 maxPp[MAX_MON_MOVES]; u16 species; @@ -221,7 +239,6 @@ enum CONTROLLER_TRAINERSLIDEBACK, CONTROLLER_FAINTANIMATION, CONTROLLER_PALETTEFADE, - CONTROLLER_SUCCESSBALLTHROWANIM, CONTROLLER_BALLTHROWANIM, CONTROLLER_PAUSE, CONTROLLER_MOVEANIMATION, @@ -268,9 +285,10 @@ enum }; extern struct UnusedControllerStruct gUnusedControllerStruct; -extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler); -extern void (*gBattlerControllerEndFuncs[MAX_BATTLERS_COUNT])(u32 battler); +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(enum BattlerId battler); +extern void (*gBattlerControllerEndFuncs[MAX_BATTLERS_COUNT])(enum BattlerId battler); extern u8 gBattleControllerData[MAX_BATTLERS_COUNT]; +extern u8 gBattlerBattleController[MAX_BATTLERS_COUNT]; // general functions void HandleLinkBattleSetup(void); @@ -278,170 +296,227 @@ void SetUpBattleVarsAndBirchZigzagoon(void); void InitBattleControllers(void); bool32 IsValidForBattle(struct Pokemon *mon); void TryReceiveLinkBattleData(void); -void PrepareBufferDataTransferLink(u32 battler, u32 bufferId, u16 size, u8 *data); -void UpdateFriendshipFromXItem(u32 battler); +void PrepareBufferDataTransferLink(enum BattlerId battler, u32 bufferId, u16 size, u8 *data); +void UpdateFriendshipFromXItem(enum BattlerId battler); +bool32 IsAiVsAiBattle(void); +bool32 BattlerIsPlayer(enum BattlerId battlerId); +bool32 BattlerIsPartner(enum BattlerId battlerId); +bool32 BattlerIsOpponent(enum BattlerId battlerId); +bool32 BattlerIsRecorded(enum BattlerId battlerId); +bool32 BattlerIsLink(enum BattlerId battlerId); +bool32 BattlerIsWally(enum BattlerId battlerId); +bool32 BattlerHasAi(enum BattlerId battlerId); // emitters -void BtlController_EmitGetMonData(u32 battler, u32 bufferId, u8 requestId, u8 monToCheck); -void BtlController_EmitSetMonData(u32 battler, u32 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data); -void BtlController_EmitLoadMonSprite(u32 battler, u32 bufferId); -void BtlController_EmitSwitchInAnim(u32 battler, u32 bufferId, u8 partyId, bool8 dontClearTransform, bool8 dontClearSubstituteBit); -void BtlController_EmitReturnMonToBall(u32 battler, u32 bufferId, bool8 skipAnim); -void BtlController_EmitDrawTrainerPic(u32 battler, u32 bufferId); -void BtlController_EmitTrainerSlide(u32 battler, u32 bufferId); -void BtlController_EmitTrainerSlideBack(u32 battler, u32 bufferId); -void BtlController_EmitFaintAnimation(u32 battler, u32 bufferId); -void BtlController_EmitBallThrowAnim(u32 battler, u32 bufferId, u8 caseId); -void BtlController_EmitMoveAnimation(u32 battler, u32 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); -void BtlController_EmitPrintString(u32 battler, u32 bufferId, enum StringID stringId); -void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, enum StringID stringId); -void BtlController_EmitChooseAction(u32 battler, u32 bufferId, u8 action, u16 itemId); -void BtlController_EmitYesNoBox(u32 battler, u32 bufferId); -void BtlController_EmitChooseMove(u32 battler, u32 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); -void BtlController_EmitChooseItem(u32 battler, u32 bufferId, u8 *battlePartyOrder); -void BtlController_EmitChoosePokemon(u32 battler, u32 bufferId, u8 caseId, u8 slotId, u16 abilityId, u8 battlerPreventingSwitchout, u8 *data); -void BtlController_EmitHealthBarUpdate(u32 battler, u32 bufferId, u16 hpValue); -void BtlController_EmitExpUpdate(u32 battler, u32 bufferId, u8 partyId, s32 expPoints); -void BtlController_EmitStatusIconUpdate(u32 battler, u32 bufferId, u32 status); -void BtlController_EmitStatusAnimation(u32 battler, u32 bufferId, bool8 isVolatile, u32 status); -void BtlController_EmitDataTransfer(u32 battler, u32 bufferId, u16 size, void *data); -void BtlController_EmitTwoReturnValues(u32 battler, u32 bufferId, u8 ret8, u32 ret32); -void BtlController_EmitChosenMonReturnValue(u32 battler, u32 bufferId, u8 partyId, u8 *battlePartyOrder); -void BtlController_EmitOneReturnValue(u32 battler, u32 bufferId, u16 ret); -void BtlController_EmitOneReturnValue_Duplicate(u32 battler, u32 bufferId, u16 ret); -void BtlController_EmitHitAnimation(u32 battler, u32 bufferId); -void BtlController_EmitCantSwitch(u32 battler, u32 bufferId); -void BtlController_EmitPlaySE(u32 battler, u32 bufferId, u16 songId); -void BtlController_EmitPlayFanfareOrBGM(u32 battler, u32 bufferId, u16 songId, bool8 playBGM); -void BtlController_EmitFaintingCry(u32 battler, u32 bufferId); -void BtlController_EmitIntroSlide(u32 battler, u32 bufferId, u8 terrainId); -void BtlController_EmitIntroTrainerBallThrow(u32 battler, u32 bufferId); -void BtlController_EmitDrawPartyStatusSummary(u32 battler, u32 bufferId, struct HpAndStatus *hpAndStatus, u8 flags); -void BtlController_EmitHidePartyStatusSummary(u32 battler, u32 bufferId); -void BtlController_EmitEndBounceEffect(u32 battler, u32 bufferId); -void BtlController_EmitSpriteInvisibility(u32 battler, u32 bufferId, bool8 isInvisible); -void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, struct DisableStruct *disableStructPtr, u16 argument); -void BtlController_EmitLinkStandbyMsg(u32 battler, u32 bufferId, u8 mode, bool32 record); -void BtlController_EmitResetActionMoveSelection(u32 battler, u32 bufferId, u8 caseId); -void BtlController_EmitEndLinkBattle(u32 battler, u32 bufferId, u8 battleOutcome); -void BtlController_EmitDebugMenu(u32 battler, u32 bufferId); - -void BtlController_Complete(u32 battler); // Can be used for all the controllers. -void BtlController_Empty(u32 battler); // Empty command, does nothing, only completes the execution. -void BtlController_TerminatorNop(u32 battler); // Dummy function at the end of the table. -void BattleControllerDummy(u32 battler); -void StartSendOutAnim(u32 battler, bool32 dontClearTransform, bool32 dontClearSubstituteBit, bool32 doSlideIn); -void Controller_WaitForString(u32 battler); -void Controller_WaitForHealthBar(u32 battler); +void BtlController_EmitGetMonData(enum BattlerId battler, u32 bufferId, u8 requestId, u8 monToCheck); +void BtlController_EmitSetMonData(enum BattlerId battler, u32 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data); +void BtlController_EmitLoadMonSprite(enum BattlerId battler, u32 bufferId); +void BtlController_EmitSwitchInAnim(enum BattlerId battler, u32 bufferId, u8 partyId, bool8 dontClearTransform, bool8 dontClearSubstituteBit); +void BtlController_EmitReturnMonToBall(enum BattlerId battler, u32 bufferId, bool8 skipAnim); +void BtlController_EmitDrawTrainerPic(enum BattlerId battler, u32 bufferId); +void BtlController_EmitTrainerSlide(enum BattlerId battler, u32 bufferId); +void BtlController_EmitTrainerSlideBack(enum BattlerId battler, u32 bufferId); +void BtlController_EmitFaintAnimation(enum BattlerId battler, u32 bufferId); +void BtlController_EmitBallThrowAnim(enum BattlerId battler, u32 bufferId, u8 caseId); +void BtlController_EmitMoveAnimation(enum BattlerId battler, u32 bufferId, enum Move move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, u8 multihit); +void BtlController_EmitPrintString(enum BattlerId battler, u32 bufferId, enum StringID stringId); +void BtlController_EmitPrintSelectionString(enum BattlerId battler, u32 bufferId, enum StringID stringId); +void BtlController_EmitChooseAction(enum BattlerId battler, u32 bufferId, u8 action, enum Item itemId); +void BtlController_EmitYesNoBox(enum BattlerId battler, u32 bufferId); +void BtlController_EmitChooseMove(enum BattlerId battler, u32 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); +void BtlController_EmitChooseItem(enum BattlerId battler, u32 bufferId, u8 *battlePartyOrder); +void BtlController_EmitChoosePokemon(enum BattlerId battler, u32 bufferId, u8 caseId, u8 slotId, u16 abilityId, enum BattlerId battlerPreventingSwitchout, u8 *data); +void BtlController_EmitHealthBarUpdate(enum BattlerId battler, u32 bufferId, u16 hpValue); +void BtlController_EmitExpUpdate(enum BattlerId battler, u32 bufferId, u8 partyId, s32 expPoints); +void BtlController_EmitStatusIconUpdate(enum BattlerId battler, u32 bufferId, u32 status); +void BtlController_EmitStatusAnimation(enum BattlerId battler, u32 bufferId, bool8 isVolatile, u32 status); +void BtlController_EmitDataTransfer(enum BattlerId battler, u32 bufferId, u16 size, void *data); +void BtlController_EmitTwoReturnValues(enum BattlerId battler, u32 bufferId, u8 ret8, u32 ret32); +void BtlController_EmitChosenMonReturnValue(enum BattlerId battler, u32 bufferId, u8 partyId, u8 *battlePartyOrder); +void BtlController_EmitOneReturnValue(enum BattlerId battler, u32 bufferId, u16 ret); +void BtlController_EmitOneReturnValue_Duplicate(enum BattlerId battler, u32 bufferId, u16 ret); +void BtlController_EmitHitAnimation(enum BattlerId battler, u32 bufferId); +void BtlController_EmitCantSwitch(enum BattlerId battler, u32 bufferId); +void BtlController_EmitPlaySE(enum BattlerId battler, u32 bufferId, u16 songId); +void BtlController_EmitPlayFanfareOrBGM(enum BattlerId battler, u32 bufferId, u16 songId, bool8 playBGM); +void BtlController_EmitFaintingCry(enum BattlerId battler, u32 bufferId); +void BtlController_EmitIntroSlide(enum BattlerId battler, u32 bufferId, u8 terrainId); +void BtlController_EmitIntroTrainerBallThrow(enum BattlerId battler, u32 bufferId); +void BtlController_EmitDrawPartyStatusSummary(enum BattlerId battler, u32 bufferId, struct HpAndStatus *hpAndStatus, u8 flags); +void BtlController_EmitHidePartyStatusSummary(enum BattlerId battler, u32 bufferId); +void BtlController_EmitEndBounceEffect(enum BattlerId battler, u32 bufferId); +void BtlController_EmitSpriteInvisibility(enum BattlerId battler, u32 bufferId, bool8 isInvisible); +void BtlController_EmitBattleAnimation(enum BattlerId battler, u32 bufferId, u8 animationId, u16 argument); +void BtlController_EmitLinkStandbyMsg(enum BattlerId battler, u32 bufferId, u8 mode, bool32 record); +void BtlController_EmitResetActionMoveSelection(enum BattlerId battler, u32 bufferId, u8 caseId); +void BtlController_EmitEndLinkBattle(enum BattlerId battler, u32 bufferId, u8 battleOutcome); +void BtlController_EmitDebugMenu(enum BattlerId battler, u32 bufferId); + +void BtlController_Complete(enum BattlerId battler); // Can be used for all the controllers. +void BtlController_Empty(enum BattlerId battler); // Empty command, does nothing, only completes the execution. +void BtlController_TerminatorNop(enum BattlerId battler); // Dummy function at the end of the table. +void BattleControllerDummy(enum BattlerId battler); +void StartSendOutAnim(enum BattlerId battler, bool32 dontClearTransform, bool32 dontClearSubstituteBit, bool32 doSlideIn); +void Controller_WaitForString(enum BattlerId battler); +void Controller_WaitForHealthBar(enum BattlerId battler); // handlers -void BtlController_HandleGetMonData(u32 battler); -void BtlController_HandleGetRawMonData(u32 battler); -void BtlController_HandleSetMonData(u32 battler); -void BtlController_HandleSetRawMonData(u32 battler); -void BtlController_HandleLoadMonSprite(u32 battler); -void BtlController_HandleSwitchInAnim(u32 battler); -void BtlController_HandleReturnMonToBall(u32 battler); -void BtlController_HandleDrawTrainerPic(u32 battlerId, u32 trainerPicId, bool32 isFrontPic, s16 xPos, s16 yPos, s32 subpriority); -void BtlController_HandleTrainerSlide(u32 battler, u32 trainerPicId); -void BtlController_HandleTrainerSlideBack(u32 battlerId, s16 data0, bool32 startAnim); -void BtlController_HandleFaintAnimation(u32 battler); -void BtlController_HandleSuccessBallThrowAnim(u32 battler, u32 target, u32 animId, bool32 allowCriticalCapture); -void BtlController_HandleBallThrowAnim(u32 battler, u32 target, u32 animId, bool32 allowCriticalCapture); -void BtlController_HandleMoveAnimation(u32 battler); -void BtlController_HandlePrintString(u32 battler); -void BtlController_HandlePrintStringPlayerOnly(u32 battler); -void BtlController_HandleHealthBarUpdate(u32 battler); -void DoStatusIconUpdate(u32 battler); -void BtlController_HandleStatusIconUpdate(u32 battler); -void BtlController_HandleStatusAnimation(u32 battler); -void BtlController_HandleHitAnimation(u32 battler); -void BtlController_HandlePlaySE(u32 battler); -void BtlController_HandlePlayFanfareOrBGM(u32 battler); -void BtlController_HandleFaintingCry(u32 battler); -void BtlController_HandleIntroSlide(u32 battler); -void BtlController_HandleSpriteInvisibility(u32 battler); -bool32 TwoPlayerIntroMons(u32 battlerId); // Double battle with both player pokemon active. -bool32 TwoOpponentIntroMons(u32 battlerId); // Double battle with both opponent pokemon active. -void BtlController_HandleIntroTrainerBallThrow(u32 battler, u16 tagTrainerPal, const u16 *trainerPal, s16 framesToWait, void (*controllerCallback)(u32 battler)); -void BtlController_HandleDrawPartyStatusSummary(u32 battler, enum BattleSide side, bool32 considerDelay); -void BtlController_HandleHidePartyStatusSummary(u32 battler); -void BtlController_HandleBattleAnimation(u32 battler); +void BtlController_HandleGetMonData(enum BattlerId battler); +void BtlController_HandleGetRawMonData(enum BattlerId battler); +void BtlController_HandleSetMonData(enum BattlerId battler); +void BtlController_HandleSetRawMonData(enum BattlerId battler); +void BtlController_HandleLoadMonSprite(enum BattlerId battler); +void BtlController_HandleSwitchInAnim(enum BattlerId battler); +void BtlController_HandleReturnMonToBall(enum BattlerId battler); +void BtlController_HandleDrawTrainerPic(enum BattlerId battlerId, enum TrainerPicID trainerPicId, bool32 isFrontPic, s16 xPos, s16 yPos, s32 subpriority); +void BtlController_HandleTrainerSlide(enum BattlerId battler, enum TrainerPicID trainerPicId); +void BtlController_HandleTrainerSlideBack(enum BattlerId battlerId, s16 data0, bool32 startAnim); +void BtlController_HandleFaintAnimation(enum BattlerId battler); +void BtlController_HandleBallThrowAnim(enum BattlerId battler); +void BtlController_HandleMoveAnimation(enum BattlerId battler); +void BtlController_HandlePrintString(enum BattlerId battler); +void BtlController_HandlePrintStringPlayerOnly(enum BattlerId battler); +void BtlController_HandleHealthBarUpdate(enum BattlerId battler); +void BtlController_HandleStatusIconUpdate(enum BattlerId battler); +void BtlController_HandleStatusAnimation(enum BattlerId battler); +void BtlController_HandleHitAnimation(enum BattlerId battler); +void BtlController_HandlePlaySE(enum BattlerId battler); +void BtlController_HandlePlayFanfareOrBGM(enum BattlerId battler); +void BtlController_HandleFaintingCry(enum BattlerId battler); +void BtlController_HandleIntroSlide(enum BattlerId battler); +void BtlController_HandleSpriteInvisibility(enum BattlerId battler); +bool32 TwoPlayerIntroMons(enum BattlerId battlerId); // Double battle with both player pokemon active. +bool32 TwoOpponentIntroMons(enum BattlerId battlerId); // Double battle with both opponent pokemon active. +void BtlController_HandleIntroTrainerBallThrow(enum BattlerId battler, u16 tagTrainerPal, const u16 *trainerPal, s16 framesToWait, void (*controllerCallback)(enum BattlerId battler)); +void BtlController_HandleDrawPartyStatusSummary(enum BattlerId battler, enum BattleSide side, bool32 considerDelay); +void BtlController_HandleHidePartyStatusSummary(enum BattlerId battler); +void BtlController_HandleBattleAnimation(enum BattlerId battler); // player controller -void SetControllerToPlayer(u32 battler); -void PlayerBufferExecCompleted(u32 battler); -void SetBattleEndCallbacks(u32 battler); -void PlayerHandleBallThrowAnim(u32 battler); -void PlayerHandleExpUpdate(u32 battler); -u32 LinkPlayerGetTrainerPicId(u32 multiplayerId); +void SetControllerToPlayer(enum BattlerId battler); +void PlayerBufferExecCompleted(enum BattlerId battler); +void SetBattleEndCallbacks(enum BattlerId battler); +void PlayerHandleExpUpdate(enum BattlerId battler); +enum TrainerPicID LinkPlayerGetTrainerPicId(u32 multiplayerId); void CB2_SetUpReshowBattleScreenAfterMenu(void); void CB2_SetUpReshowBattleScreenAfterMenu2(void); void Task_PlayerController_RestoreBgmAfterCry(u8 taskId); void ActionSelectionCreateCursorAt(u8 cursorPosition, u8 baseTileNum); void ActionSelectionDestroyCursorAt(u8 cursorPosition); -void InitMoveSelectionsVarsAndStrings(u32 battler); +void InitMoveSelectionsVarsAndStrings(enum BattlerId battler); void MoveSelectionCreateCursorAt(u8 cursorPos, u8 arg1); void MoveSelectionDestroyCursorAt(u8 cursorPosition); -void PlayerHandleChooseMove(u32 battler); -void HandleInputChooseMove(u32 battler); -void HandleInputChooseTarget(u32 battler); -void HandleInputShowEntireFieldTargets(u32 battler); -void HandleInputShowTargets(u32 battler); -void HandleMoveSwitching(u32 battler); -void HandleChooseMoveAfterDma3(u32 battler); +void PlayerHandleChooseMove(enum BattlerId battler); +void HandleInputChooseMove(enum BattlerId battler); +void HandleInputChooseTarget(enum BattlerId battler); +void HandleInputShowEntireFieldTargets(enum BattlerId battler); +void HandleInputShowTargets(enum BattlerId battler); +void HandleMoveSwitching(enum BattlerId battler); +void HandleChooseMoveAfterDma3(enum BattlerId battler); // recorded player controller -void SetControllerToRecordedPlayer(u32 battler); -void RecordedPlayerBufferExecCompleted(u32 battler); +void SetControllerToRecordedPlayer(enum BattlerId battler); +void RecordedPlayerBufferExecCompleted(enum BattlerId battler); // recorded partner controller -void SetControllerToRecordedPartner(u32 battler); -void RecordedPartnerBufferExecCompleted(u32 battler); +void SetControllerToRecordedPartner(enum BattlerId battler); +void RecordedPartnerBufferExecCompleted(enum BattlerId battler); // opponent controller -void SetControllerToOpponent(u32 battler); -void OpponentBufferExecCompleted(u32 battler); -void OpponentHandleTrainerSlide(u32 battler); +void SetControllerToOpponent(enum BattlerId battler); +void OpponentBufferExecCompleted(enum BattlerId battler); +void OpponentHandleTrainerSlide(enum BattlerId battler); // player partner controller -void Controller_PlayerPartnerShowIntroHealthbox(u32 battler); // Also used by the link partner. -void SetControllerToPlayerPartner(u32 battler); -void PlayerPartnerBufferExecCompleted(u32 battler); +void Controller_PlayerPartnerShowIntroHealthbox(enum BattlerId battler); // Also used by the link partner. +void SetControllerToPlayerPartner(enum BattlerId battler); +void PlayerPartnerBufferExecCompleted(enum BattlerId battler); // safari controller -void SetControllerToSafari(u32 battler); -void SafariBufferExecCompleted(u32 battler); +void SetControllerToSafari(enum BattlerId battler); +void SafariBufferExecCompleted(enum BattlerId battler); // wally controller -void SetControllerToWally(u32 battler); -void WallyBufferExecCompleted(u32 battler); +void SetControllerToWally(enum BattlerId battler); +void WallyBufferExecCompleted(enum BattlerId battler); // recorded opponent controller -void SetControllerToRecordedOpponent(u32 battler); -void RecordedOpponentBufferExecCompleted(u32 battler); +void SetControllerToRecordedOpponent(enum BattlerId battler); +void RecordedOpponentBufferExecCompleted(enum BattlerId battler); // link opponent -void SetControllerToLinkOpponent(u32 battler); -void LinkOpponentBufferExecCompleted(u32 battler); +void SetControllerToLinkOpponent(enum BattlerId battler); +void LinkOpponentBufferExecCompleted(enum BattlerId battler); // link partner -void SetControllerToLinkPartner(u32 battler); -void LinkPartnerBufferExecCompleted(u32 battler); - -void TrySetBattlerShadowSpriteCallback(u32 battler); - -void AnimateMonAfterPokeBallFail(u32 battler); -void TryShinyAnimAfterMonAnim(u32 battler); -void WaitForMonAnimAfterLoad(u32 battler); -void BtlController_HandleSwitchInWaitAndEnd(u32 battler); -void BtlController_Intro_DelayAndEnd(u32 battler); -void BtlController_HandleSwitchInShowHealthbox(u32 battler); -void BtlController_HandleSwitchInTryShinyAnim(u32 battler); -void BtlController_HandleSwitchInSoundAndEnd(u32 battler); -void BtlController_HandleSwitchInShowSubstitute(u32 battler); - -bool32 ShouldBattleRestrictionsApply(u32 battler); +void SetControllerToLinkPartner(enum BattlerId battler); +void LinkPartnerBufferExecCompleted(enum BattlerId battler); + +void TrySetBattlerShadowSpriteCallback(enum BattlerId battler); + +void AnimateMonAfterPokeBallFail(enum BattlerId battler); +void TryShinyAnimAfterMonAnim(enum BattlerId battler); +void WaitForMonAnimAfterLoad(enum BattlerId battler); +void BtlController_HandleSwitchInWaitAndEnd(enum BattlerId battler); +void BtlController_Intro_DelayAndEnd(enum BattlerId battler); +void BtlController_HandleSwitchInShowHealthbox(enum BattlerId battler); +void BtlController_HandleSwitchInTryShinyAnim(enum BattlerId battler); +void BtlController_HandleSwitchInSoundAndEnd(enum BattlerId battler); +void BtlController_HandleSwitchInShowSubstitute(enum BattlerId battler); + +// oak and old man controller +void SetControllerToOakOrOldMan(enum BattlerId battler); +void OakOldManBufferExecCompleted(enum BattlerId battler); + +// These flags are set to signal that the indicated message +// was already emitted + +// Inflicting damage is key +#define FIRST_BATTLE_MSG_FLAG_INFLICT_DMG 0x1 +// Lowering stats is advantageous +#define FIRST_BATTLE_MSG_FLAG_STAT_CHG 0x2 +// Keep an eye on your HP +#define FIRST_BATTLE_MSG_FLAG_HP_RESTORE 0x4 +// +#define FIRST_BATTLE_MSG_FLAG_PARTY_MENU 0x8 + +bool8 BtlCtrl_OakOldMan_TestState2Flag(u8 mask); +void BtlCtrl_OakOldMan_SetState2Flag(u8 mask); +void PrintOakText_InflictingDamageIsKey(enum BattlerId battler); +void PrintOakText_HowDisappointing(enum BattlerId battler); +void PrintOakText_OakNoRunningFromATrainer(enum BattlerId battler); +void OakOldManHandleInputChooseMove(enum BattlerId battler); +void BtlCtrl_DrawVoiceoverMessageFrame(void); +void BtlCtrl_RemoveVoiceoverMessageFrame(void); + +bool32 ShouldBattleRestrictionsApply(enum BattlerId battler); void FreeShinyStars(void); +enum BattleTrainer GetBattlerTrainer(enum BattlerId battler); + + +// oak and old man controller +void SetControllerToOakOrOldMan(enum BattlerId battler); +void OakOldManBufferExecCompleted(enum BattlerId battler); + +// These flags are set to signal that the indicated message +// was already emitted + +// Inflicting damage is key +#define FIRST_BATTLE_MSG_FLAG_INFLICT_DMG 0x1 +// Lowering stats is advantageous +#define FIRST_BATTLE_MSG_FLAG_STAT_CHG 0x2 +// Keep an eye on your HP +#define FIRST_BATTLE_MSG_FLAG_HP_RESTORE 0x4 +// +#define FIRST_BATTLE_MSG_FLAG_PARTY_MENU 0x8 + +bool8 BtlCtrl_OakOldMan_TestState2Flag(u8 mask); +void BtlCtrl_OakOldMan_SetState2Flag(u8 mask); +void PrintOakText_InflictingDamageIsKey(enum BattlerId battler); +void PrintOakText_HowDisappointing(enum BattlerId battler); +void PrintOakText_OakNoRunningFromATrainer(enum BattlerId battler); +void OakOldManHandleInputChooseMove(enum BattlerId battler); +void BtlCtrl_DrawVoiceoverMessageFrame(void); +void BtlCtrl_RemoveVoiceoverMessageFrame(void); #endif // GUARD_BATTLE_CONTROLLERS_H diff --git a/include/battle_dome.h b/include/battle_dome.h index b7572451cab2..d794741279c5 100644 --- a/include/battle_dome.h +++ b/include/battle_dome.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_DOME_H #define GUARD_BATTLE_DOME_H +#include "constants/battle_dome.h" + int GetDomeTrainerSelectedMons(u16 tournamentTrainerId); int TrainerIdToDomeTournamentId(u16 trainerId); diff --git a/include/battle_dynamax.h b/include/battle_dynamax.h index d9fa48706d92..64de9d03fada 100644 --- a/include/battle_dynamax.h +++ b/include/battle_dynamax.h @@ -1,20 +1,20 @@ #ifndef GUARD_BATTLE_DYNAMAX_H #define GUARD_BATTLE_DYNAMAX_H -#define DYNAMAX_TURNS_COUNT 3 +#define DYNAMAX_TURNS_COUNT 3 -bool32 CanDynamax(u32 battler); -bool32 IsGigantamaxed(u32 battler); +bool32 CanDynamax(enum BattlerId battler); +bool32 IsGigantamaxed(enum BattlerId battler); void ApplyDynamaxHPMultiplier(struct Pokemon *mon); -void ActivateDynamax(u32 battler); -u16 GetNonDynamaxHP(u32 battler); -u16 GetNonDynamaxMaxHP(u32 battler); -void UndoDynamax(u32 battler); -bool32 IsMoveBlockedByMaxGuard(u32 move); +void ActivateDynamax(enum BattlerId battler); +u32 GetNonDynamaxHP(enum BattlerId battler); +u32 GetNonDynamaxMaxHP(enum BattlerId battler); +void UndoDynamax(enum BattlerId battler); +bool32 IsMoveBlockedByMaxGuard(enum Move move); -u16 GetMaxMove(u32 battler, u32 baseMove); -u32 GetMaxMovePower(u32 move); -bool32 IsMaxMove(u32 move); +enum Move GetMaxMove(enum BattlerId battler, enum Move baseMove); +u32 GetMaxMovePower(enum Move move); +bool32 IsMaxMove(enum Move move); void ChooseDamageNonTypesString(enum Type type); void BS_UpdateDynamax(void); diff --git a/include/battle_end_turn.h b/include/battle_end_turn.h index 468544cf2ba4..d660000cb2fc 100644 --- a/include/battle_end_turn.h +++ b/include/battle_end_turn.h @@ -1,7 +1,6 @@ #ifndef GUARD_BATTLE_END_TURN #define GUARD_BATTLE_END_TURN -u32 DoEndTurnEffects(void); +bool32 DoEndTurnEffects(void); #endif // GUARD_BATTLE_END_TURN - diff --git a/include/battle_environment.h b/include/battle_environment.h index f4870f795c64..a277e7758fa1 100644 --- a/include/battle_environment.h +++ b/include/battle_environment.h @@ -3,13 +3,20 @@ #include "constants/battle.h" #include "battle_bg.h" +#include "task.h" struct BattleEnvironment { + u8 name[26]; u16 naturePower; + const void *secretPowerAnimation; u16 secretPowerEffect; enum Type camouflageType; + u16 camouflageBlend; + struct BattleBackgroundEntry entry; struct BattleBackground background; + const void *palette; + TaskFunc battleIntroSlide; }; extern const struct BattleEnvironment gBattleEnvironmentInfo[BATTLE_ENVIRONMENT_COUNT]; diff --git a/include/battle_factory.h b/include/battle_factory.h index c266cc32c5e1..66bd94ca7eff 100644 --- a/include/battle_factory.h +++ b/include/battle_factory.h @@ -5,8 +5,9 @@ void CallBattleFactoryFunction(void); bool8 InBattleFactory(void); u8 GetFactoryMonFixedIV(u8 challengeNum, bool8 isLastBattle); void FillFactoryBrainParty(void); -u8 GetNumPastRentalsRank(u8 battleMode, u8 lvlMode); +u8 GetNumPastRentalsRank(u8 battleMode, enum FrontierLevelMode lvlMode); u64 GetAiScriptsInBattleFactory(void); -void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 moveArg, u8 moveSlot); +void SetMonMoveAvoidReturn(struct Pokemon *mon, enum Move moveArg, u8 moveSlot); +void FillFactoryTrainerParty(void); #endif // GUARD_BATTLE_FACTORY_H diff --git a/include/battle_frontier.h b/include/battle_frontier.h new file mode 100644 index 000000000000..71461057b2fa --- /dev/null +++ b/include/battle_frontier.h @@ -0,0 +1,32 @@ +#ifndef GUARD_BATTLE_FRONTIER_H +#define GUARD_BATTLE_FRONTIER_H + +#include "data.h" +#include "script.h" + +struct BattleFrontierTrainer +{ + u8 facilityClass; + u8 filler1[3]; + u8 trainerName[PLAYER_NAME_LENGTH + 1]; + u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechWin[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechLose[EASY_CHAT_BATTLE_WORDS_COUNT]; + const u16 *monSet; +}; + +// Temporary storage for monIds of the opponent team +// during team generation in battle factory and similar facilities. +extern u16 gFrontierTempParty[MAX_FRONTIER_PARTY_SIZE]; + +extern const struct BattleFrontierTrainer *gFacilityTrainers; +extern const struct TrainerMon *gFacilityTrainerMons; +extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; +extern const struct TrainerMon gBattleFrontierMons[]; + +void DoFacilityTrainerBattle(struct ScriptContext *ctx); +void FillFrontierTrainerParty(u8 monsCount); +void FillFrontierTrainersParties(u8 monsCount); +void CreateFacilityMon(const struct TrainerMon *fmon, u16 level, u8 fixedIV, u32 otID, u32 flags, struct Pokemon *dst); + +#endif // GUARD_BATTLE_FRONTIER_H diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index eb713779c23a..95bc25bdca44 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -3,42 +3,43 @@ void AllocateBattleSpritesData(void); void FreeBattleSpritesData(void); -u16 ChooseMoveAndTargetInBattlePalace(u32 battler); +u16 ChooseMoveAndTargetInBattlePalace(enum BattlerId battler); void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite); void SpriteCB_TrainerSlideIn(struct Sprite *sprite); void SpriteCB_TrainerSpawn(struct Sprite *sprite); -void InitAndLaunchChosenStatusAnimation(u32 battler, bool32 isVolatile, u32 status); +void InitAndLaunchChosenStatusAnimation(enum BattlerId battler, bool32 isVolatile, u32 status); bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId, u16 argument); -void InitAndLaunchSpecialAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId); -bool8 IsBattleSEPlaying(u8 battler); -void BattleLoadMonSpriteGfx(struct Pokemon *mon, u32 battler); +void InitAndLaunchSpecialAnimation(enum BattlerId activeBattlerId, enum BattlerId attacker, enum BattlerId target, u8 tableId); +bool8 IsBattleSEPlaying(enum BattlerId battler); +void BattleLoadMonSpriteGfx(struct Pokemon *mon, enum BattlerId battler); +void DecompressGhostFrontPic(u32 battler); void BattleGfxSfxDummy2(u16 species); -void DecompressTrainerFrontPic(u16 frontPicId, u8 battler); -void DecompressTrainerBackPic(u16 backPicId, u8 battler); +void DecompressTrainerFrontPic(u16 frontPicId, enum BattlerId battler); +void DecompressTrainerBackPic(enum TrainerPicID backPicId, enum BattlerId battler); void FreeTrainerFrontPicPalette(u16 frontPicId); bool8 BattleLoadAllHealthBoxesGfx(u8 state); void LoadBattleBarGfx(u8 unused); bool8 BattleInitAllSprites(u8 *state1, u8 *battler); void ClearSpritesHealthboxAnimData(void); void CopyAllBattleSpritesInvisibilities(void); -void CopyBattleSpriteInvisibility(u8 battler); -void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 changeType); -void BattleLoadSubstituteOrMonSpriteGfx(u8 battler, bool8 loadMonSprite); -void LoadBattleMonGfxAndAnimate(u8 battler, bool8 loadMonSprite, u8 spriteId); -void TrySetBehindSubstituteSpriteBit(u8 battler, u16 move); -void ClearBehindSubstituteBit(u8 battler); -void HandleLowHpMusicChange(struct Pokemon *mon, u8 battler); +void CopyBattleSpriteInvisibility(enum BattlerId battler); +void HandleSpeciesGfxDataChange(enum BattlerId battlerAtk, enum BattlerId battlerDef, u8 changeType); +void BattleLoadSubstituteOrMonSpriteGfx(enum BattlerId battler, bool8 loadMonSprite); +void LoadBattleMonGfxAndAnimate(enum BattlerId battler, bool8 loadMonSprite, u8 spriteId); +void TrySetBehindSubstituteSpriteBit(enum BattlerId battler, enum Move move); +void ClearBehindSubstituteBit(enum BattlerId battler); +void HandleLowHpMusicChange(struct Pokemon *mon, enum BattlerId battler); void BattleStopLowHpSound(void); u8 GetMonHPBarLevel(struct Pokemon *mon); void HandleBattleLowHpMusicChange(void); void SetBattlerSpriteAffineMode(u8 affineMode); -void CreateEnemyShadowSprite(u32 battler); +void CreateEnemyShadowSprite(enum BattlerId battler); void LoadAndCreateEnemyShadowSprites(void); void SpriteCB_SetInvisible(struct Sprite *sprite); -void SetBattlerShadowSpriteCallback(u8 battler, u16 species); -void HideBattlerShadowSprite(u8 battler); +void SetBattlerShadowSpriteCallback(enum BattlerId battler, u16 species); +void HideBattlerShadowSprite(enum BattlerId battler); void FillAroundBattleWindows(void); -void ClearTemporarySpeciesSpriteData(u32 battler, bool32 dontClearTransform, bool32 dontClearSubstitute); +void ClearTemporarySpeciesSpriteData(enum BattlerId battler, bool32 dontClearTransform, bool32 dontClearSubstitute); void AllocateMonSpritesGfx(void); void FreeMonSpritesGfx(void); bool32 ShouldPlayNormalMonCry(struct Pokemon *mon); diff --git a/include/battle_gimmick.h b/include/battle_gimmick.h index 84b1d6b26a55..6322df2bdf1a 100644 --- a/include/battle_gimmick.h +++ b/include/battle_gimmick.h @@ -19,32 +19,32 @@ struct GimmickInfo const struct SpriteTemplate *triggerTemplate; const u32 indicatorPalTag; const u8 *indicatorData; - bool32 (*CanActivate)(u32 battler); - void (*ActivateGimmick)(u32 battler); + bool32 (*CanActivate)(enum BattlerId battler); + void (*ActivateGimmick)(enum BattlerId battler); }; void AssignUsableGimmicks(void); -bool32 CanActivateGimmick(u32 battler, enum Gimmick gimmick); -bool32 IsGimmickSelected(u32 battler, enum Gimmick gimmick); -void SetActiveGimmick(u32 battler, enum Gimmick gimmick); -enum Gimmick GetActiveGimmick(u32 battler); -bool32 ShouldTrainerBattlerUseGimmick(u32 battler, enum Gimmick gimmick); -bool32 HasTrainerUsedGimmick(u32 battler, enum Gimmick gimmick); -void SetGimmickAsActivated(u32 battler, enum Gimmick gimmick); +bool32 CanActivateGimmick(enum BattlerId battler, enum Gimmick gimmick); +bool32 IsGimmickSelected(enum BattlerId battler, enum Gimmick gimmick); +void SetActiveGimmick(enum BattlerId battler, enum Gimmick gimmick); +enum Gimmick GetActiveGimmick(enum BattlerId battler); +bool32 ShouldTrainerBattlerUseGimmick(enum BattlerId battler, enum Gimmick gimmick); +bool32 HasTrainerUsedGimmick(enum BattlerId battler, enum Gimmick gimmick); +void SetGimmickAsActivated(enum BattlerId battler, enum Gimmick gimmick); void ChangeGimmickTriggerSprite(u32 spriteId, u32 animId); -void CreateGimmickTriggerSprite(u32 battler); +void CreateGimmickTriggerSprite(enum BattlerId battler); bool32 IsGimmickTriggerSpriteActive(void); -bool32 IsGimmickTriggerSpriteMatchingBattler(u32 battler); +bool32 IsGimmickTriggerSpriteMatchingBattler(enum BattlerId battler); void HideGimmickTriggerSprite(void); void DestroyGimmickTriggerSprite(void); void LoadIndicatorSpritesGfx(void); -u32 GetIndicatorPalTag(u32 battler); +u32 GetIndicatorPalTag(enum BattlerId battler); void UpdateIndicatorVisibilityAndType(u32 healthboxId, bool32 invisible); void UpdateIndicatorOamPriority(u32 healthboxId, u32 oamPriority); void UpdateIndicatorLevelData(u32 healthboxId, u32 level); -void CreateIndicatorSprite(u32 battler); +void CreateIndicatorSprite(enum BattlerId battler); extern const struct GimmickInfo gGimmicksInfo[]; diff --git a/include/battle_hold_effects.h b/include/battle_hold_effects.h index 51e63ea20a02..70559d688799 100644 --- a/include/battle_hold_effects.h +++ b/include/battle_hold_effects.h @@ -4,11 +4,8 @@ struct HoldEffectInfo { u32 onSwitchIn:1; - u32 onSwitchInFirstTurn:1; u32 mirrorHerb:1; - u32 mirrorHerbFirstTurn:1; u32 whiteHerb:1; - u32 whiteHerbFirstTurn:1; u32 whiteHerbEndTurn:1; u32 onStatusChange:1; u32 onHpThreshold:1; @@ -21,20 +18,18 @@ struct HoldEffectInfo u32 orbs:1; u32 onEffect:1; u32 onFling:1; - u32 padding:14; + u32 boosterEnergy:1; + u32 padding:16; }; extern const struct HoldEffectInfo gHoldEffectsInfo[]; typedef bool32 (*ActivationTiming)(enum HoldEffect holdEffect); -enum ItemEffect ItemBattleEffects(u32 primaryBattler, u32 secondaryBattler, enum HoldEffect holdEffect, ActivationTiming timing); +enum ItemEffect ItemBattleEffects(enum BattlerId itemBattler, enum BattlerId battler, enum HoldEffect holdEffect, ActivationTiming timing); bool32 IsOnSwitchInActivation(enum HoldEffect holdEffect); -bool32 IsOnSwitchInFirstTurnActivation(enum HoldEffect holdEffect); bool32 IsMirrorHerbActivation(enum HoldEffect holdEffect); -bool32 IsMirrorHerbFirstTurnActivation(enum HoldEffect holdEffect); bool32 IsWhiteHerbActivation(enum HoldEffect holdEffect); -bool32 IsWhiteHerbFirstTurnActivation(enum HoldEffect holdEffect); bool32 IsWhiteHerbEndTurnActivation(enum HoldEffect holdEffect); bool32 IsOnStatusChangeActivation(enum HoldEffect holdEffect); bool32 IsOnHpThresholdActivation(enum HoldEffect holdEffect); @@ -48,5 +43,6 @@ bool32 IsOnEffectActivation(enum HoldEffect holdEffect); bool32 IsForceTriggerItemActivation(enum HoldEffect holdEffect); bool32 IsOnBerryActivation(enum HoldEffect holdEffect); bool32 IsOnFlingActivation(enum HoldEffect holdEffect); +bool32 IsBoosterEnergyActivation(enum HoldEffect holdEffect); #endif // GUARD_BATTLE_HOLD_EFFECTS diff --git a/include/battle_interface.h b/include/battle_interface.h index ea5559d16545..54ab228044e4 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -108,35 +108,37 @@ enum HEALTHBOX_SAFARI_BALLS_TEXT }; -enum BattleCoordTypes GetBattlerCoordsIndex(u32 battler); -u8 CreateBattlerHealthboxSprites(u8 battler); +enum BattleCoordTypes GetBattlerCoordsIndex(enum BattlerId battler); +u8 CreateBattlerHealthboxSprites(enum BattlerId battler); u8 CreateSafariPlayerHealthboxSprites(void); -void SetBattleBarStruct(u8 battler, u8 healthboxSpriteId, s32 maxVal, s32 oldVal, s32 receivedValue); +void SetBattleBarStruct(enum BattlerId battler, u8 healthboxSpriteId, s32 maxVal, s32 oldVal, s32 receivedValue); void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); void SetHealthboxSpriteVisible(u8 healthboxSpriteId); void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBattlerOnly); void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHpBoxes); -void InitBattlerHealthboxCoords(u8 battler); -void GetBattlerHealthboxCoords(u8 battler, s16 *x, s16 *y); +void InitBattlerHealthboxCoords(enum BattlerId battler); +void GetBattlerHealthboxCoords(enum BattlerId battler, s16 *x, s16 *y); void UpdateHpTextInHealthbox(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp); void SwapHpBarsWithHpText(void); -u8 CreatePartyStatusSummarySprites(u8 battler, struct HpAndStatus *partyInfo, bool8 skipPlayer, bool8 isBattleStart); +u8 CreatePartyStatusSummarySprites(enum BattlerId battler, struct HpAndStatus *partyInfo, bool8 skipPlayer, bool8 isBattleStart); void Task_HidePartyStatusSummary(u8 taskId); void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); -s32 MoveBattleBar(u8 battler, u8 healthboxSpriteId, u8 whichBar, u8 unused); +s32 MoveBattleBar(enum BattlerId battler, u8 healthboxSpriteId, u8 whichBar, u8 unused); u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale); u8 GetHPBarLevel(s16 hp, s16 maxhp); -void CreateAbilityPopUp(u8 battlerId, enum Ability ability, bool32 isDoubleBattle); -void DestroyAbilityPopUp(u8 battlerId); +void CreateAbilityPopUp(enum BattlerId battlerId, enum Ability ability, bool32 isDoubleBattle); +void DestroyAbilityPopUp(enum BattlerId battlerId); bool32 CanThrowLastUsedBall(void); void TryHideLastUsedBall(void); void TryRestoreLastUsedBall(void); void TryAddLastUsedBallItemSprites(void); void SwapBallToDisplay(bool32 sameBall); void ArrowsChangeColorLastBallCycle(bool32 showArrows); -void UpdateAbilityPopup(u8 battlerId); +void UpdateAbilityPopup(enum BattlerId battlerId); void CategoryIcons_LoadSpritesGfx(void); void TryToAddMoveInfoWindow(void); void TryToHideMoveInfoWindow(void); +void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus); +void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon); #endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/battle_main.h b/include/battle_main.h index c08da1d9caeb..a63e65339284 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -56,13 +56,11 @@ enum FirstTurnEventsStates FIRST_TURN_EVENTS_TERRAIN, FIRST_TURN_EVENTS_STARTING_STATUS, FIRST_TURN_EVENTS_TOTEM_BOOST, - FIRST_TURN_EVENTS_NEUTRALIZING_GAS, - FIRST_TURN_EVENTS_SWITCH_IN_ABILITIES, - FIRST_TURN_EVENTS_ITEM_EFFECTS, - FIRST_TURN_EVENTS_WHITE_HERB, - FIRST_TURN_EVENTS_OPPORTUNIST, - FIRST_TURN_EVENTS_MIRROR_HERB, - FIRST_TURN_EVENTS_EJECT_PACK, + FIRST_TURN_SWITCH_IN_EVENTS, + FIRST_TURN_FAINTED_BATTLERS, + FIRST_TURN_EVENTS_TRAINER_SLIDE_A, + FIRST_TURN_EVENTS_TRAINER_SLIDE_B, + FIRST_TURN_EVENTS_TRAINER_SLIDE_PARTNER, FIRST_TURN_EVENTS_END, }; @@ -83,31 +81,31 @@ void SpriteCB_HideAsMoveTarget(struct Sprite *sprite); void SpriteCB_OpponentMonFromBall(struct Sprite *sprite); void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite); void SpriteCB_FaintSlideAnim(struct Sprite *sprite); -void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); -void EndBounceEffect(u8 battler, u8 which); +void DoBounceEffect(enum BattlerId battler, u8 which, s8 delta, s8 amplitude); +void EndBounceEffect(enum BattlerId battler, u8 which); void SpriteCB_PlayerMonFromBall(struct Sprite *sprite); void SpriteCB_PlayerMonSlideIn(struct Sprite *sprite); void SpriteCB_TrainerThrowObject(struct Sprite *sprite); void AnimSetCenterToCornerVecX(struct Sprite *sprite); void BeginBattleIntroDummy(void); void BeginBattleIntro(void); -void SwitchInClearSetData(u32 battler, struct Volatiles *volatilesCopy); -const u8* FaintClearSetData(u32 battler); +void SwitchInClearSetData(enum BattlerId battler, struct Volatiles *volatilesCopy); +const u8 *FaintClearSetData(enum BattlerId battler); void BattleTurnPassed(void); -u8 IsRunningFromBattleImpossible(u32 battler); -void SwitchTwoBattlersInParty(u32 battler, u32 battler2); -void SwitchPartyOrder(u32 battler); +u8 IsRunningFromBattleImpossible(enum BattlerId battler); +void SwitchTwoBattlersInParty(enum BattlerId battler, enum BattlerId battler2); +void SwitchPartyOrder(enum BattlerId battler); void SwapTurnOrder(u8 id1, u8 id2); -u32 GetBattlerTotalSpeedStat(u32 battler, enum Ability ability, enum HoldEffect holdEffect); -s32 GetChosenMovePriority(u32 battler, enum Ability ability); -s32 GetBattleMovePriority(u32 battler, enum Ability ability, u32 move); -s32 GetWhichBattlerFasterArgs(struct BattleContext *ctx, bool32 ignoreChosenMoves, u32 speedBattler1, u32 speedBattler2, s32 priority1, s32 priority2); -s32 GetWhichBattlerFasterOrTies(struct BattleContext *ctx, bool32 ignoreChosenMoves); -s32 GetWhichBattlerFaster(struct BattleContext *ctx, bool32 ignoreChosenMoves); +u32 GetBattlerTotalSpeedStat(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect); +s32 GetChosenMovePriority(enum BattlerId battler, enum Ability ability); +s32 GetBattleMovePriority(enum BattlerId battler, enum Ability ability, enum Move move); +s32 GetWhichBattlerFasterArgs(struct BattleCalcValues *calcValues, bool32 ignoreChosenMoves, u32 speedBattler1, u32 speedBattler2, s32 priority1, s32 priority2); +s32 GetWhichBattlerFasterOrTies(struct BattleCalcValues *calcValues, bool32 ignoreChosenMoves); +s32 GetWhichBattlerFaster(struct BattleCalcValues *calcValues, bool32 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); -enum Type GetDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, enum MonState monInBattle); -void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk); +enum Type GetDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId battler, enum MonState monInBattle); +void SetTypeBeforeUsingMove(enum Move move, enum BattlerId battler); bool32 IsWildMonSmart(void); u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer *trainer, bool32 firstTrainer, u32 battleTypeFlags); void ModifyPersonalityForNature(u32 *personality, u32 newNature); @@ -116,6 +114,7 @@ void CustomTrainerPartyAssignMoves(struct Pokemon *mon, const struct TrainerMon bool32 CanPlayerForfeitNormalTrainerBattle(void); bool32 DidPlayerForfeitNormalTrainerBattle(void); void BattleDebug_WonBattle(void); +s32 Factorial(s32 n); extern struct MultiPartnerMenuPokemon gMultiPartnerParty[MULTI_PARTY_SIZE]; diff --git a/include/battle_message.h b/include/battle_message.h index 9809589243cc..dca6864d4529 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -249,11 +249,11 @@ struct BattleMsgData u8 textBuffs[3][TEXT_BUFF_ARRAY_COUNT]; }; -void BufferStringBattle(enum StringID stringID, u32 battler); +void BufferStringBattle(enum StringID stringID, enum BattlerId battler); u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src); u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst, u32 dstSize); void BattlePutTextOnWindow(const u8 *text, u8 windowId); -void SetPpNumbersPaletteInMoveSelection(u32 battler); +void SetPpNumbersPaletteInMoveSelection(enum BattlerId battler); u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp); void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst); @@ -275,6 +275,7 @@ extern const u8 gText_WhatWillWallyDo[]; extern const u8 gText_LinkStandby[]; extern const u8 gText_BattleMenu[]; extern const u8 gText_SafariZoneMenu[]; +extern const u8 gText_SafariZoneMenuFrlg[]; extern const u8 gText_MoveInterfacePP[]; extern const u8 gText_MoveInterfaceType[]; extern const u8 gText_MoveInterfacePpType[]; diff --git a/include/battle_move_resolution.h b/include/battle_move_resolution.h new file mode 100644 index 000000000000..01ce81314074 --- /dev/null +++ b/include/battle_move_resolution.h @@ -0,0 +1,10 @@ +#ifndef GUARD_BATTLE_MOVE_RESOLUTION_H +#define GUARD_BATTLE_MOVE_RESOLUTION_H + +#include "constants/battle_move_resolution.h" + +enum CancelerResult DoAttackCanceler(void); +enum MoveEndResult DoMoveEnd(enum MoveEndState endMode, enum MoveEndState endState); +void MoveValuesCleanUp(void); + +#endif // GUARD_BATTLE_MOVE_RESOLUTION_H diff --git a/include/battle_partner.h b/include/battle_partner.h new file mode 100644 index 000000000000..75e97a667fe3 --- /dev/null +++ b/include/battle_partner.h @@ -0,0 +1,11 @@ +#ifndef BATTLE_PARTNER_H +#define BATTLE_PARTNER_H + +#include "difficulty.h" +#include "constants/battle_partner.h" + +extern const struct Trainer gBattlePartners[DIFFICULTY_COUNT][PARTNER_COUNT]; + +void FillPartnerParty(u16 trainerId); + +#endif // BATTLE_PARTNER_H diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index d011b509477d..713065543541 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -18,7 +18,7 @@ struct StatFractions struct PickupItem { - u16 itemId; + enum Item itemId; u8 percentage[10]; }; @@ -40,41 +40,37 @@ union TRANSPARENT StatChangeFlags }; }; -s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, enum Ability abilityAtk, enum Ability abilityDef, enum HoldEffect holdEffectAtk); -s32 CalcCritChanceStageGen1(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, enum Ability abilityAtk, enum Ability abilityDef, enum HoldEffect holdEffectAtk); -s32 GetCritHitOdds(s32 critChanceIndex); -bool32 HasBattlerActedThisTurn(u32 battler); -u32 GetBattlerTurnOrderNum(u32 battler); -bool32 NoAliveMonsForBattlerSide(u32 battler); +bool32 HasBattlerActedThisTurn(enum BattlerId battler); +u32 GetBattlerTurnOrderNum(enum BattlerId battler); +bool32 NoAliveMonsForBattlerSide(enum BattlerId battler); bool32 NoAliveMonsForPlayer(void); bool32 NoAliveMonsForEitherParty(void); -void SetMoveEffect(u32 battler, u32 effectBattler, enum MoveEffect moveEffect, const u8 *battleScript, enum SetMoveEffectFlags effectFlags); -bool32 CanBattlerSwitch(u32 battlerId); +void SetMoveEffect(enum BattlerId battlerAtk, enum BattlerId effectBattler, enum MoveEffect moveEffect, const u8 *battleScript, enum SetMoveEffectFlags effectFlags); +bool32 CanBattlerSwitch(enum BattlerId battlerId); void BattleDestroyYesNoCursorAt(u8 cursorPosition); void BattleCreateYesNoCursorAt(u8 cursorPosition); void BufferMoveToLearnIntoBattleTextBuff2(void); void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags); -bool8 UproarWakeUpCheck(u8 battler); -bool32 DoesSubstituteBlockMove(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 DoesDisguiseBlockMove(u32 battler, u32 move); -bool32 CanUseLastResort(u8 battlerId); -u32 IsFlowerVeilProtected(u32 battler); -u32 IsLeafGuardProtected(u32 battler, enum Ability ability); -bool32 IsShieldsDownProtected(u32 battler, enum Ability ability); -u32 IsAbilityStatusProtected(u32 battler, enum Ability ability); -bool32 TryResetBattlerStatChanges(u8 battler); -bool32 CanCamouflage(u8 battlerId); -void StealTargetItem(u8 battlerStealer, u8 battlerItem); +bool8 UproarWakeUpCheck(enum BattlerId battler); +bool32 DoesSubstituteBlockMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 DoesDisguiseBlockMove(enum BattlerId battler, enum Move move); +bool32 DoesIceFaceBlockMove(enum BattlerId battler, enum Move move); +bool32 CanUseLastResort(enum BattlerId battlerId); +u32 IsFlowerVeilProtected(enum BattlerId battler); +u32 IsLeafGuardProtected(enum BattlerId battler, enum Ability ability); +bool32 IsShieldsDownProtected(enum BattlerId battler, enum Ability ability); +u32 IsAbilityStatusProtected(enum BattlerId battler, enum Ability ability); +bool32 TryResetBattlerStatChanges(enum BattlerId battler); +bool32 CanCamouflage(enum BattlerId battler); +void StealTargetItem(enum BattlerId battlerStealer, enum BattlerId battlerItem); u8 GetCatchingBattler(void); -bool32 ProteanTryChangeType(u32 battler, enum Ability ability, u32 move, enum Type moveType); -bool32 IsMoveNotAllowedInSkyBattles(u32 move); -bool32 DoSwitchInAbilities(u32 battlerId); -u8 GetFirstFaintedPartyIndex(u8 battlerId); -bool32 IsMoveAffectedByParentalBond(u32 move, u32 battler); -void SaveBattlerTarget(u32 battler); -void SaveBattlerAttacker(u32 battler); -bool32 CanBurnHitThaw(u16 move); -bool32 EmergencyExitCanBeTriggered(u32 battler); +bool32 ProteanTryChangeType(enum BattlerId battler, enum Ability ability, enum Move move, enum Type moveType); +u8 GetFirstFaintedPartyIndex(enum BattlerId battler); +void SaveBattlerTarget(enum BattlerId battler); +void SaveBattlerAttacker(enum BattlerId battler); +bool32 CanBurnHitThaw(enum Move move); +bool32 CanMoveThawTarget(enum Ability abilityAtk, enum Move move); +bool32 CanFireMoveThawTarget(enum Move move); extern void (*const gBattleScriptingCommandsTable[])(void); extern const struct StatFractions gAccuracyStageRatios[]; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index e2f9f1636ca4..32648328ebc7 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -3,11 +3,10 @@ extern const u8 BattleScript_SupersweetSyrupActivates[]; extern const u8 BattleScript_OpportunistCopyStatChange[]; -extern const u8 BattleScript_OpportunistCopyStatChangeEnd3[]; extern const u8 BattleScript_MirrorHerbCopyStatChange[]; extern const u8 BattleScript_MirrorHerbCopyStatChangeEnd2[]; extern const u8 BattleScript_NotAffected[]; -extern const u8 BattleScript_HitFromCritCalc[]; +extern const u8 BattleScript_HitFromDamageCalc[]; extern const u8 BattleScript_MoveEnd[]; extern const u8 BattleScript_MakeMoveMissed[]; extern const u8 BattleScript_MoveMissedPause[]; @@ -15,6 +14,7 @@ extern const u8 BattleScript_MoveMissedPause[]; extern const u8 BattleScript_MoveMissed[]; extern const u8 BattleScript_FlingFailConsumeItem[]; extern const u8 BattleScript_FlingBlockedByShieldDust[]; +extern const u8 BattleScript_EffectFlingConsumeBerry[]; extern const u8 BattleScript_FailedFromAtkCanceler[]; extern const u8 BattleScript_ButItFailed[]; extern const u8 BattleScript_StatUp[]; @@ -52,13 +52,13 @@ extern const u8 BattleScript_Pausex20[]; extern const u8 BattleScript_LevelUp[]; extern const u8 BattleScript_WeatherContinues[]; extern const u8 BattleScript_WeatherFaded[]; -extern const u8 BattleScript_DamagingWeatherContinues[]; extern const u8 BattleScript_DamagingWeather[]; extern const u8 BattleScript_FogEnded_Ret[]; extern const u8 BattleScript_IceBodyHeal[]; extern const u8 BattleScript_OverworldStatusStarts[]; extern const u8 BattleScript_OverworldWeatherStarts[]; extern const u8 BattleScript_OverworldTerrain[]; +extern const u8 BattleScript_OverworldHazard[]; extern const u8 BattleScript_SideStatusWoreOff[]; extern const u8 BattleScript_SafeguardProtected[]; extern const u8 BattleScript_SafeguardEnds[]; @@ -81,10 +81,7 @@ extern const u8 BattleScript_SelectingDisabledMoveInPalace[]; extern const u8 BattleScript_SelectingUnusableMoveInPalace[]; extern const u8 BattleScript_EncoredNoMore[]; extern const u8 BattleScript_DestinyBondTakesLife[]; -extern const u8 BattleScript_DmgHazardsOnAttacker[]; -extern const u8 BattleScript_DmgHazardsOnTarget[]; -extern const u8 BattleScript_DmgHazardsOnBattlerScripting[]; -extern const u8 BattleScript_DmgHazardsOnFaintedBattler[]; +extern const u8 BattleScript_DmgHazardsOnBattler[]; extern const u8 BattleScript_PerishSongTakesLife[]; extern const u8 BattleScript_PerishSongCountGoesDown[]; extern const u8 BattleScript_AllStatsUpZMove[]; @@ -121,6 +118,7 @@ extern const u8 BattleScript_SnatchedMove[]; extern const u8 BattleScript_EnduredMsg[]; extern const u8 BattleScript_OneHitKOMsg[]; extern const u8 BattleScript_FocusPunchSetUp[]; +extern const u8 BattleScript_FocusPunchLostFocus[]; extern const u8 BattleScript_MoveUsedIsAsleep[]; extern const u8 BattleScript_MoveUsedWokeUp[]; extern const u8 BattleScript_MonWokeUpInUproar[]; @@ -128,14 +126,13 @@ extern const u8 BattleScript_PoisonTurnDmg[]; extern const u8 BattleScript_BurnTurnDmg[]; extern const u8 BattleScript_FrostbiteTurnDmg[]; extern const u8 BattleScript_MoveUsedIsFrozen[]; -extern const u8 BattleScript_MoveUsedUnfroze[]; -extern const u8 BattleScript_MoveUsedUnfrostbite[]; -extern const u8 BattleScript_DefrostedViaFireMove[]; -extern const u8 BattleScript_FrostbiteHealedViaFireMove[]; +extern const u8 BattleScript_BattlerDefrosted[]; +extern const u8 BattleScript_BattlerFrostbiteHealed[]; extern const u8 BattleScript_MoveUsedIsParalyzed[]; extern const u8 BattleScript_MoveUsedFlinched[]; extern const u8 BattleScript_PrintUproarOverTurns[]; extern const u8 BattleScript_ThrashConfuses[]; +extern const u8 BattleScript_ThrashConfusesRet[]; extern const u8 BattleScript_MoveUsedIsConfused[]; extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; extern const u8 BattleScript_PrintPayDayMoneyString[]; @@ -164,18 +161,14 @@ extern const u8 BattleScript_MoveEffectConfusion[]; extern const u8 BattleScript_MoveEffectRecoil[]; extern const u8 BattleScript_FaintAttackerForExplosion[]; extern const u8 BattleScript_MaxHp50Recoil[]; -extern const u8 BattleScript_DoRecoil33[]; -extern const u8 BattleScript_Recoil33End[]; extern const u8 BattleScript_ItemSteal[]; -extern const u8 BattleScript_DrizzleActivates[]; +extern const u8 BattleScript_WeatherAbilityActivates[]; extern const u8 BattleScript_TraceActivates[]; extern const u8 BattleScript_RainDishActivates[]; -extern const u8 BattleScript_SandstreamActivates[]; extern const u8 BattleScript_ShedSkinActivates[]; extern const u8 BattleScript_IntimidateActivates[]; extern const u8 BattleScript_IntimidatePrevented[]; extern const u8 BattleScript_IntimidateInReverse[]; -extern const u8 BattleScript_DroughtActivates[]; extern const u8 BattleScript_TookAttack[]; extern const u8 BattleScript_SturdyPreventsOHKO[]; extern const u8 BattleScript_DampStopsExplosion[]; @@ -184,7 +177,6 @@ extern const u8 BattleScript_MonMadeMoveUseless[]; extern const u8 BattleScript_FlashFireBoost[]; extern const u8 BattleScript_AbilityNoStatLoss[]; extern const u8 BattleScript_ItemNoStatLoss[]; -extern const u8 BattleScript_ItemNoStatLossSpicyExtract[]; extern const u8 BattleScript_ObliviousPreventsAttraction[]; extern const u8 BattleScript_FlinchPrevention[]; extern const u8 BattleScript_OwnTempoPrevents[]; @@ -199,7 +191,6 @@ extern const u8 BattleScript_AbilityStatusEffect[]; extern const u8 BattleScript_SynchronizeActivates[]; extern const u8 BattleScript_NoItemSteal[]; extern const u8 BattleScript_AbilityCuredStatus[]; -extern const u8 BattleScript_AbilityCuredStatusEnd3[]; extern const u8 BattleScript_IgnoresWhileAsleep[]; extern const u8 BattleScript_IgnoresAndUsesRandomMove[]; extern const u8 BattleScript_MoveUsedLoafingAround[]; @@ -207,27 +198,20 @@ extern const u8 BattleScript_TruantLoafingAround[]; extern const u8 BattleScript_IgnoresAndFallsAsleep[]; extern const u8 BattleScript_IgnoresAndHitsItself[]; extern const u8 BattleScript_SubstituteFade[]; -extern const u8 BattleScript_BerryCureStatusEnd2[]; extern const u8 BattleScript_BerryCureStatusRet[]; -extern const u8 BattleScript_BerryCureConfusionEnd2[]; extern const u8 BattleScript_BerryCureConfusionRet[]; extern const u8 BattleScript_WhiteHerbEnd2[]; extern const u8 BattleScript_WhiteHerbRet[]; -extern const u8 BattleScript_ItemHealHP_RemoveItemRet[]; -extern const u8 BattleScript_ItemHealHP_RemoveItemEnd2[]; -extern const u8 BattleScript_BerryPPHealEnd2[]; -extern const u8 BattleScript_BerryPPHealRet[]; +extern const u8 BattleScript_ItemHealHP_RemoveItem[]; +extern const u8 BattleScript_BerryPPHeal[]; extern const u8 BattleScript_ItemHealHP_End2[]; extern const u8 BattleScript_ItemHealHP_Ret[]; extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItemInPalace[]; extern const u8 BattleScript_HangedOnMsg[]; -extern const u8 BattleScript_BerryConfuseHealEnd2[]; -extern const u8 BattleScript_BerryConfuseHealRet[]; -extern const u8 BattleScript_ConsumableStatRaiseEnd2[]; +extern const u8 BattleScript_BerryConfuseHeal[]; extern const u8 BattleScript_ConsumableStatRaiseRet[]; -extern const u8 BattleScript_BerryFocusEnergyRet[]; -extern const u8 BattleScript_BerryFocusEnergyEnd2[]; +extern const u8 BattleScript_BerryFocusEnergy[]; extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; extern const u8 BattleScript_AbilityAvoidsDamage[]; extern const u8 BattleScript_AbilityShieldProtects[]; @@ -272,7 +256,6 @@ extern const u8 BattleScript_AttackerAbilityStatRaiseEnd2[]; extern const u8 BattleScript_PoisonHealActivates[]; extern const u8 BattleScript_BadDreamsActivates[]; extern const u8 BattleScript_SwitchInAbilityMsg[]; -extern const u8 BattleScript_SwitchInAbilityMsgRet[]; extern const u8 BattleScript_ToxicSpikesPoisoned[]; extern const u8 BattleScript_ToxicSpikesBadlyPoisoned[]; extern const u8 BattleScript_ToxicSpikesAbsorbed[]; @@ -283,8 +266,6 @@ extern const u8 BattleScript_MummyActivates[]; extern const u8 BattleScript_WeakArmorActivates[]; extern const u8 BattleScript_FellStingerRaisesStat[]; extern const u8 BattleScript_RemoveTerrain[]; -extern const u8 BattleScript_SnowWarningActivatesHail[]; -extern const u8 BattleScript_SnowWarningActivatesSnow[]; extern const u8 BattleScript_PickupActivates[]; extern const u8 BattleScript_HarvestActivates[]; extern const u8 BattleScript_ImposterActivates[]; @@ -309,6 +290,8 @@ extern const u8 BattleScript_TrainerASlideMsgRet[]; extern const u8 BattleScript_TrainerASlideMsgEnd2[]; extern const u8 BattleScript_TrainerBSlideMsgRet[]; extern const u8 BattleScript_TrainerBSlideMsgEnd2[]; +extern const u8 BattleScript_TrainerPartnerSlideMsgRet[]; +extern const u8 BattleScript_TrainerPartnerSlideMsgEnd2[]; extern const u8 BattleScript_MoveEffectFeint[]; extern const u8 BattleScript_ProteanActivates[]; extern const u8 BattleScript_DazzlingProtected[]; @@ -322,7 +305,6 @@ extern const u8 BattleScript_PsychicSurgeActivates[]; extern const u8 BattleScript_GrassySurgeActivates[]; extern const u8 BattleScript_MistySurgeActivates[]; extern const u8 BattleScript_ElectricSurgeActivates[]; -extern const u8 BattleScript_EffectSpectralThief[]; extern const u8 BattleScript_EffectLifeDew[]; extern const u8 BattleScript_AbilityRaisesDefenderStat[]; extern const u8 BattleScript_PowderMoveNoEffect[]; @@ -344,7 +326,6 @@ extern const u8 BattleScript_WeaknessPolicy[]; extern const u8 BattleScript_TargetItemStatRaise[]; extern const u8 BattleScript_RockyHelmetActivates[]; extern const u8 BattleScript_ItemHurtEnd2[]; -extern const u8 BattleScript_AirBalloonMsgIn[]; extern const u8 BattleScript_AirBalloonMsgInRet[]; extern const u8 BattleScript_AirBalloonMsgPop[]; extern const u8 BattleScript_ItemHurtRet[]; @@ -353,15 +334,14 @@ extern const u8 BattleScript_FlameOrb[]; extern const u8 BattleScript_MoveEffectIncinerate[]; extern const u8 BattleScript_MoveEffectBugBite[]; extern const u8 BattleScript_IllusionOff[]; -extern const u8 BattleScript_IllusionOffEnd3[]; extern const u8 BattleScript_IllusionOffAndTerastallization[]; extern const u8 BattleScript_DancerActivates[]; extern const u8 BattleScript_AftermathDmg[]; extern const u8 BattleScript_BattlerFormChange[]; extern const u8 BattleScript_BattlerFormChangeEnd2[]; -extern const u8 BattleScript_BattlerFormChangeEnd3[]; -extern const u8 BattleScript_AttackerFormChangeWithString[]; -extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[]; +extern const u8 BattleScript_BattlerFormChangeNoPopup[]; +extern const u8 BattleScript_ZenMode[]; +extern const u8 BattleScript_BattlerFormChangeDisguise[]; extern const u8 BattleScript_TargetFormChange[]; extern const u8 BattleScript_AnticipationActivates[]; extern const u8 BattleScript_SlowStartEnds[]; @@ -373,9 +353,7 @@ extern const u8 BattleScript_FriskMsg[]; extern const u8 BattleScript_FriskMsgWithPopup[]; extern const u8 BattleScript_MoodyActivates[]; extern const u8 BattleScript_EmergencyExit[]; -extern const u8 BattleScript_EmergencyExitWild[]; extern const u8 BattleScript_EmergencyExitEnd2[]; -extern const u8 BattleScript_EmergencyExitWildEnd2[]; extern const u8 BattleScript_CheekPouchActivates[]; extern const u8 BattleScript_TotemVar[]; extern const u8 BattleScript_TotemFlaredToLife[]; @@ -384,15 +362,13 @@ extern const u8 BattleScript_ActivateTeraformZero[]; extern const u8 BattleScript_BattlerAbilityStatRaiseOnSwitchIn[]; extern const u8 BattleScript_CottonDownActivates[]; extern const u8 BattleScript_BallFetch[]; -extern const u8 BattleScript_SandSpitActivates[]; extern const u8 BattleScript_PerishBodyActivates[]; extern const u8 BattleScript_ActivateAsOne[]; extern const u8 BattleScript_RaiseStatOnFaintingTarget[]; extern const u8 BattleScript_QuickClawActivation[]; extern const u8 BattleScript_QuickDrawActivation[]; extern const u8 BattleScript_CustapBerryActivation[]; -extern const u8 BattleScript_MicleBerryActivateEnd2[]; -extern const u8 BattleScript_MicleBerryActivateRet[]; +extern const u8 BattleScript_MicleBerryActivate[]; extern const u8 BattleScript_JabocaRowapBerryActivates[]; extern const u8 BattleScript_NotAffectedAbilityPopUp[]; extern const u8 BattleScript_BattlerShookOffTaunt[]; @@ -405,7 +381,6 @@ extern const u8 BattleScript_RedCardActivates[]; extern const u8 BattleScript_EjectButtonActivates[]; extern const u8 BattleScript_EjectPackActivate_Ret[]; extern const u8 BattleScript_EjectPackActivate_End2[]; -extern const u8 BattleScript_EjectPackActivate_End3[]; extern const u8 BattleScript_EjectPackActivates[]; extern const u8 BattleScript_MentalHerbCureRet[]; extern const u8 BattleScript_MentalHerbCureEnd2[]; @@ -414,19 +389,18 @@ extern const u8 BattleScript_ImmunityProtectedEnd2[]; extern const u8 BattleScript_MistyTerrainPrevents[]; extern const u8 BattleScript_ElectricTerrainPrevents[]; extern const u8 BattleScript_DoesntAffectTargetAtkString[]; +extern const u8 BattleScript_DoesntAffectScripting[]; extern const u8 BattleScript_GulpMissileGorging[]; extern const u8 BattleScript_GulpMissileGulping[]; -extern const u8 BattleScript_GulpMissileFormChange[]; +extern const u8 BattleScript_TwoTurnMovesSecondTurnFormChange[]; extern const u8 BattleScript_BattleBondActivatesOnMoveEndAttacker[]; extern const u8 BattleScript_EffectBattleBondStatIncrease[]; -extern const u8 BattleScript_DesolateLandActivates[]; -extern const u8 BattleScript_PrimordialSeaActivates[]; extern const u8 BattleScript_PrimalWeatherBlocksMove[]; -extern const u8 BattleScript_DeltaStreamActivates[]; +extern const u8 BattleScript_FailOnPrimalWeather[]; +extern const u8 BattleScript_PlayAnimAndMoveSwitch[]; extern const u8 BattleScript_MysteriousAirCurrentBlowsOn[]; extern const u8 BattleScript_AttackWeakenedByStrongWinds[]; -extern const u8 BattleScript_BlockedByPrimalWeatherEnd3[]; -extern const u8 BattleScript_BlockedByPrimalWeatherRet[]; +extern const u8 BattleScript_BlockedByPrimalWeather[]; extern const u8 BattleScript_PrimalReversion[]; extern const u8 BattleScript_HyperspaceFuryRemoveProtect[]; extern const u8 BattleScript_SelectingNotAllowedMoveGorillaTactics[]; @@ -455,8 +429,6 @@ extern const u8 BattleScript_RemoveElectricType[]; extern const u8 BattleScript_SeedSowerActivates[]; extern const u8 BattleScript_BerserkActivates[]; extern const u8 BattleScript_AngerShellActivates[]; -extern const u8 BattleScript_WellBakedBodyActivates[]; -extern const u8 BattleScript_WindRiderActivatesMoveEnd[]; extern const u8 BattleScript_WindPowerActivates[]; extern const u8 BattleScript_ProtosynthesisActivates[]; extern const u8 BattleScript_QuarkDriveActivates[]; @@ -472,17 +444,18 @@ extern const u8 BattleScript_ToxicDebrisActivates[]; extern const u8 BattleScript_EarthEaterActivates[]; extern const u8 BattleScript_MimicryActivates[]; extern const u8 BattleScript_IceFaceNullsDamage[]; -extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[]; +extern const u8 BattleScript_BattlerFormChangeWithString[]; extern const u8 BattleScript_DampPreventsAftermath[]; extern const u8 BattleScript_HealingWishActivates[]; extern const u8 BattleScript_LunarDanceActivates[]; extern const u8 BattleScript_ShellTrapSetUp[]; extern const u8 BattleScript_StealthRockActivates[]; extern const u8 BattleScript_CouldntFullyProtect[]; +extern const u8 BattleScript_TargetAvoidsAttack[]; +extern const u8 BattleScript_TargetAvoidsAttackConsumeFlingItem[]; extern const u8 BattleScript_MoveEffectStockpileWoreOff[]; extern const u8 BattleScript_SpikesActivates[]; extern const u8 BattleScript_BerserkGeneRet[]; -extern const u8 BattleScript_BerserkGeneRetEnd2[]; extern const u8 BattleScript_TargetFormChangeWithStringNoPopup[]; extern const u8 BattleScript_DefDown[]; extern const u8 BattleScript_UltraBurst[]; @@ -502,7 +475,6 @@ extern const u8 BattleScript_EffectPsychicNoise[]; extern const u8 BattleScript_AromaVeilProtectsRet[]; extern const u8 BattleScript_LowerAtkSpAtk[]; extern const u8 BattleScript_Terastallization[]; -extern const u8 BattleScript_BoosterEnergyEnd2[]; extern const u8 BattleScript_BoosterEnergyRet[]; extern const u8 BattleScript_TeraShellDistortingTypeMatchups[]; extern const u8 BattleScript_TeraFormChange[]; @@ -520,6 +492,30 @@ extern const u8 BattleScript_AlreadyParalyzed[]; extern const u8 BattleScript_AlreadyBurned[]; extern const u8 BattleScript_PrintAbilityMadeIneffective[]; extern const u8 BattleScript_ItDoesntAffectFoe[]; +extern const u8 BattleScript_FirstTurnSwitchInEvents[]; +extern const u8 BattleScript_QuestionForfeitBattle[]; +extern const u8 BattleScript_ForfeitBattleGaveMoney[]; +extern const u8 BattleScript_AbilityPopUp[]; +extern const u8 BattleScript_Attackstring[]; +extern const u8 BattleScript_SubmoveAttackstring[]; +extern const u8 BattleScript_MetronomeAttackstring[]; +extern const u8 BattleScript_SleepTalkAttackstring[]; +extern const u8 BattleScript_NaturePowerAttackstring[]; +extern const u8 BattleScript_PokemonCantUseTheMove[]; +extern const u8 BattleScript_TwoTurnMoveCharging[]; +extern const u8 BattleScript_SkyDropCharging[]; +extern const u8 BattleScript_PowerHerbActivation[]; +extern const u8 BattleScript_Explosion[]; +extern const u8 BattleScript_ActivateSwitchInAbility[]; +extern const u8 BattleScript_BreakScreens[]; +extern const u8 BattleScript_StealStats[]; +extern const u8 BattleScript_BeatUpAttackMessage[]; +extern const u8 BattleScript_MagnitudeMessage[]; +extern const u8 BattleScript_FickleBeamMessage[]; +extern const u8 BattleScript_BeforeSnoreMessage[]; +extern const u8 BattleScript_SkyDropTargetTooHeavy[]; +extern const u8 BattleScript_SkyDropFlyingType[]; +extern const u8 BattleScript_SkyDropNoTarget[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; @@ -535,7 +531,6 @@ extern const u8 BattleScript_EffectRaiseStatAllies[]; extern const u8 BattleScript_EffectLowerStatFoes[]; extern const u8 BattleScript_EffectSetWeather[]; extern const u8 BattleScript_EffectSetTerrain[]; -extern const u8 BattleScript_EffectStonesurge[]; extern const u8 BattleScript_EffectSteelsurge[]; extern const u8 BattleScript_DamageNonTypesStarts[]; extern const u8 BattleScript_DamageNonTypesContinues[]; @@ -567,7 +562,6 @@ extern const u8 BattleScript_MoveBlockedByDynamax[]; // Battle move scripts extern const u8 BattleScript_EffectAbsorb[]; extern const u8 BattleScript_EffectAbsorbLiquidOoze[]; -extern const u8 BattleScript_EffectExplosion[]; extern const u8 BattleScript_EffectDreamEater[]; extern const u8 BattleScript_EffectAttackUp[]; extern const u8 BattleScript_EffectDefenseUp[]; @@ -594,7 +588,6 @@ extern const u8 BattleScript_EffectLightScreen[]; extern const u8 BattleScript_EffectRest[]; extern const u8 BattleScript_RestIsAlreadyAsleep[]; extern const u8 BattleScript_InsomniaProtects[]; -extern const u8 BattleScript_EffectOHKO[]; extern const u8 BattleScript_EffectHealBlock[]; extern const u8 BattleScript_RecoilIfMiss[]; extern const u8 BattleScript_EffectMist[]; @@ -616,9 +609,7 @@ extern const u8 BattleScript_EffectSpecialDefenseDown2[]; extern const u8 BattleScript_EffectAccuracyDown2[]; extern const u8 BattleScript_EffectEvasionDown2[]; extern const u8 BattleScript_EffectReflect[]; -extern const u8 BattleScript_EffectTwoTurnsAttack[]; extern const u8 BattleScript_EffectSubstitute[]; -extern const u8 BattleScript_EffectRage[]; extern const u8 BattleScript_EffectMimic[]; extern const u8 BattleScript_EffectLeechSeed[]; extern const u8 BattleScript_EffectDoNothing[]; @@ -626,10 +617,8 @@ extern const u8 BattleScript_EffectHoldHands[]; extern const u8 BattleScript_EffectCelebrate[]; extern const u8 BattleScript_EffectHappyHour[]; extern const u8 BattleScript_EffectDisable[]; -extern const u8 BattleScript_EffectCounter[]; extern const u8 BattleScript_EffectEncore[]; extern const u8 BattleScript_EffectPainSplit[]; -extern const u8 BattleScript_EffectSnore[]; extern const u8 BattleScript_EffectConversion2[]; extern const u8 BattleScript_EffectLockOn[]; extern const u8 BattleScript_EffectSketch[]; @@ -646,44 +635,30 @@ extern const u8 BattleScript_EffectProtect[]; extern const u8 BattleScript_EffectSpikes[]; extern const u8 BattleScript_EffectForesight[]; extern const u8 BattleScript_EffectPerishSong[]; -extern const u8 BattleScript_EffectSandstorm[]; extern const u8 BattleScript_EffectEndure[]; -extern const u8 BattleScript_EffectRollout[]; extern const u8 BattleScript_EffectSwagger[]; -extern const u8 BattleScript_EffectFuryCutter[]; extern const u8 BattleScript_EffectAttract[]; extern const u8 BattleScript_EffectPresent[]; extern const u8 BattleScript_EffectSafeguard[]; -extern const u8 BattleScript_EffectMagnitude[]; extern const u8 BattleScript_EffectBatonPass[]; extern const u8 BattleScript_EffectCaptivate[]; extern const u8 BattleScript_EffectMorningSun[]; extern const u8 BattleScript_EffectSynthesis[]; extern const u8 BattleScript_EffectMoonlight[]; -extern const u8 BattleScript_EffectRainDance[]; -extern const u8 BattleScript_EffectSunnyDay[]; +extern const u8 BattleScript_EffectWeather[]; extern const u8 BattleScript_EffectBellyDrum[]; extern const u8 BattleScript_EffectPsychUp[]; -extern const u8 BattleScript_EffectMirrorCoat[]; -extern const u8 BattleScript_EffectSkullBash[]; extern const u8 BattleScript_EffectFutureSight[]; -extern const u8 BattleScript_EffectGust[]; -extern const u8 BattleScript_EffectSolarBeam[]; extern const u8 BattleScript_EffectTeleport[]; -extern const u8 BattleScript_EffectBeatUp[]; -extern const u8 BattleScript_EffectSemiInvulnerable[]; extern const u8 BattleScript_EffectDefenseCurl[]; extern const u8 BattleScript_EffectSoftboiled[]; extern const u8 BattleScript_EffectStockpile[]; -extern const u8 BattleScript_EffectSpitUp[]; extern const u8 BattleScript_EffectSwallow[]; extern const u8 BattleScript_EffectOverwriteAbility[]; -extern const u8 BattleScript_EffectHail[]; extern const u8 BattleScript_EffectTorment[]; extern const u8 BattleScript_EffectFlatter[]; extern const u8 BattleScript_EffectNonVolatileStatus[]; extern const u8 BattleScript_EffectMemento[]; -extern const u8 BattleScript_EffectFocusPunch[]; extern const u8 BattleScript_EffectFollowMe[]; extern const u8 BattleScript_EffectCharge[]; extern const u8 BattleScript_EffectTaunt[]; @@ -694,9 +669,7 @@ extern const u8 BattleScript_EffectWish[]; extern const u8 BattleScript_EffectIngrain[]; extern const u8 BattleScript_EffectMagicCoat[]; extern const u8 BattleScript_EffectRecycle[]; -extern const u8 BattleScript_EffectBrickBreak[]; extern const u8 BattleScript_EffectYawn[]; -extern const u8 BattleScript_EffectEndeavor[]; extern const u8 BattleScript_EffectSkillSwap[]; extern const u8 BattleScript_EffectImprison[]; extern const u8 BattleScript_EffectRefresh[]; @@ -706,7 +679,6 @@ extern const u8 BattleScript_EffectHitEscape[]; extern const u8 BattleScript_EffectMudSport[]; extern const u8 BattleScript_EffectTickle[]; extern const u8 BattleScript_EffectCosmicPower[]; -extern const u8 BattleScript_EffectSkyUppercut[]; extern const u8 BattleScript_EffectBulkUp[]; extern const u8 BattleScript_EffectPlaceholder[]; extern const u8 BattleScript_EffectWaterSport[]; @@ -715,7 +687,6 @@ extern const u8 BattleScript_EffectDragonDance[]; extern const u8 BattleScript_EffectCamouflage[]; extern const u8 BattleScript_EffectPledge[]; extern const u8 BattleScript_EffectFling[]; -extern const u8 BattleScript_EffectNaturalGift[]; extern const u8 BattleScript_EffectRoost[]; extern const u8 BattleScript_EffectGravity[]; extern const u8 BattleScript_EffectMiracleEye[]; @@ -736,7 +707,6 @@ extern const u8 BattleScript_EffectHeartSwap[]; extern const u8 BattleScript_EffectPowerSplit[]; extern const u8 BattleScript_EffectGuardSplit[]; extern const u8 BattleScript_EffectStickyWeb[]; -extern const u8 BattleScript_EffectMetalBurst[]; extern const u8 BattleScript_EffectLuckyChant[]; extern const u8 BattleScript_EffectEntrainment[]; extern const u8 BattleScript_EffectHealPulse[]; @@ -769,7 +739,6 @@ extern const u8 BattleScript_FinalGambit[]; extern const u8 BattleScript_EffectAutotomize[]; extern const u8 BattleScript_EffectDefog[]; extern const u8 BattleScript_EffectHitEnemyHealAlly[]; -extern const u8 BattleScript_EffectSynchronoise[]; extern const u8 BattleScript_EffectPsychoShift[]; extern const u8 BattleScript_EffectPowerTrick[]; extern const u8 BattleScript_EffectAfterYou[]; @@ -810,39 +779,26 @@ extern const u8 BattleScript_EffectTarShot[]; extern const u8 BattleScript_EffectPoltergeist[]; extern const u8 BattleScript_EffectOctolock[]; extern const u8 BattleScript_EffectClangorousSoul[]; -extern const u8 BattleScript_EffectSkyDrop[]; -extern const u8 BattleScript_EffectMeteorBeam[]; extern const u8 BattleScript_EffectCourtChange[]; extern const u8 BattleScript_EffectExtremeEvoboost[]; extern const u8 BattleScript_EffectDarkVoid[]; extern const u8 BattleScript_EffectVictoryDance[]; extern const u8 BattleScript_EffectTeatime[]; -extern const u8 BattleScript_EffectAttackUpUserAlly[]; extern const u8 BattleScript_EffectShellTrap[]; extern const u8 BattleScript_EffectRevivalBlessing[]; -extern const u8 BattleScript_EffectSnow[]; extern const u8 BattleScript_EffectTakeHeart[]; extern const u8 BattleScript_EffectCorrosiveGas[]; extern const u8 BattleScript_MoveEffectSaltCure[]; -extern const u8 BattleScript_EffectChillyReception[]; -extern const u8 BattleScript_EffectMaxMove[]; -extern const u8 BattleScript_EffectGlaiveRush[]; -extern const u8 BattleScript_EffectBrickBreak[]; +extern const u8 BattleScript_ChillyReceptionMessage[]; +extern const u8 BattleScript_EffectWeatherAndSwitch[]; extern const u8 BattleScript_EffectDoodle[]; extern const u8 BattleScript_EffectFilletAway[]; extern const u8 BattleScript_EffectShedTail[]; extern const u8 BattleScript_EffectTidyUp[]; extern const u8 BattleScript_EffectSpicyExtract[]; -extern const u8 BattleScript_EffectFickleBeam[]; -extern const u8 BattleScript_FickleBeamDoubled[]; -extern const u8 BattleScript_QuestionForfeitBattle[]; -extern const u8 BattleScript_ForfeitBattleGaveMoney[]; -extern const u8 BattleScript_AbilityPopUp[]; -extern const u8 BattleScript_Attackstring[]; -extern const u8 BattleScript_SubmoveAttackstring[]; -extern const u8 BattleScript_MetronomeAttackstring[]; -extern const u8 BattleScript_SleepTalkAttackstring[]; -extern const u8 BattleScript_NaturePowerAttackstring[]; -extern const u8 BattleScript_PokemonCantUseTheMove[]; +extern const u8 BattleScript_GhostBallDodge[]; +extern const u8 BattleScript_GhostGetOutGetOut[]; +extern const u8 BattleScript_TooScaredToMove[]; +extern const u8 BattleScript_SilphScopeUnveiled[]; #endif // GUARD_BATTLE_SCRIPTS_H diff --git a/include/battle_setup.h b/include/battle_setup.h index 689d1636965b..f5891536efea 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -38,11 +38,11 @@ typedef union PACKED TrainerBattleParameter u8 *battleScriptRetAddrB; u8 *victoryText; u8 *cannotBattleText; + u8 rivalBattleFlags; } params; u8 data[sizeof(struct _TrainerBattleParameter)]; } TrainerBattleParameter; - extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES]; extern TrainerBattleParameter gTrainerBattleParameter; @@ -70,6 +70,7 @@ void ResetTrainerOpponentIds(void); void SetMapVarsToTrainerA(void); void SetMapVarsToTrainerB(void); const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); +const u8* BattleSetup_ConfigureFacilityTrainerBattle(u8 facility, const u8* scriptEndPtr); void ConfigureAndSetUpOneTrainerBattle(u8 trainerObjEventId, const u8 *trainerScript); void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript); void SetUpTwoTrainersBattle(void); @@ -102,16 +103,19 @@ bool8 ShouldTryRematchBattle(void); bool8 ShouldTryRematchBattleForTrainerId(u16 trainerId); bool8 IsTrainerReadyForRematch(void); void ShouldTryGetTrainerScript(void); +u16 CountMaxPossibleRematch(u16 trainerId); u16 CountBattledRematchTeams(u16 trainerId); void TrainerBattleLoadArgs(const u8 *data); void TrainerBattleLoadArgsTrainerA(const u8 *data); void TrainerBattleLoadArgsTrainerB(const u8 *data); void TrainerBattleLoadArgsSecondTrainer(const u8 *data); +void InitTrainerBattleParameter(void); void DoStandardWildBattle_Debug(void); void BattleSetup_StartTrainerBattle_Debug(void); s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId); s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId); u16 GetRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId); +u8 GetRivalBattleFlags(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_special.h b/include/battle_special.h new file mode 100644 index 000000000000..90f6bfc320ce --- /dev/null +++ b/include/battle_special.h @@ -0,0 +1,13 @@ +#ifndef GUARD_BATTLE_SPECIAL_H +#define GUARD_BATTLE_SPECIAL_H + +void DoSpecialTrainerBattle(void); +void SetEReaderTrainerGfxId(void); +u8 GetEreaderTrainerFrontSpriteId(void); +enum TrainerClassID GetEreaderTrainerClassId(void); +void GetEreaderTrainerName(u8 *dst); +void ValidateEReaderTrainer(void); +void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer); +void CopyEReaderTrainerGreeting(void); + +#endif // GUARD_BATTLE_SPECIAL_H diff --git a/include/battle_switch_in.h b/include/battle_switch_in.h new file mode 100644 index 000000000000..fcbd20c72fb7 --- /dev/null +++ b/include/battle_switch_in.h @@ -0,0 +1,8 @@ +#ifndef GUARD_BATTLE_SWITCH_IN +#define GUARD_BATTLE_SWITCH_IN + +#include "constants/battle_switch_in.h" + +bool32 DoSwitchInEvents(void); + +#endif // GUARD_BATTLE_SWITCH_IN diff --git a/include/battle_terastal.h b/include/battle_terastal.h index 6bfb74986a9f..3320eddd545b 100644 --- a/include/battle_terastal.h +++ b/include/battle_terastal.h @@ -1,13 +1,13 @@ #ifndef GUARD_BATTLE_TERASTAL_H #define GUARD_BATTLE_TERASTAL_H -void ActivateTera(u32 battler); -void ApplyBattlerVisualsForTeraAnim(u32 battler); -bool32 CanTerastallize(u32 battler); -enum Type GetBattlerTeraType(u32 battler); -void ExpendTypeStellarBoost(u32 battler, enum Type type); -bool32 IsTypeStellarBoosted(u32 battler, enum Type type); -uq4_12_t GetTeraMultiplier(struct DamageContext *ctx); +void ActivateTera(enum BattlerId battler); +void ApplyBattlerVisualsForTeraAnim(enum BattlerId battler); +bool32 CanTerastallize(enum BattlerId battler); +enum Type GetBattlerTeraType(enum BattlerId battler); +void ExpendTypeStellarBoost(enum BattlerId battler, enum Type type); +bool32 IsTypeStellarBoosted(enum BattlerId battler, enum Type type); +uq4_12_t GetTeraMultiplier(struct BattleContext *ctx); u16 GetTeraTypeRGB(enum Type type); diff --git a/include/battle_tower.h b/include/battle_tower.h index 5887c07d9bc9..958f0fa5bf6a 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -2,6 +2,7 @@ #define GUARD_BATTLE_TOWER_H #include "data.h" +#include "battle_frontier.h" struct RSBattleTowerRecord { @@ -15,68 +16,27 @@ struct RSBattleTowerRecord /*0xA0*/ u32 checksum; }; -struct BattleFrontierTrainer -{ - u8 facilityClass; - u8 filler1[3]; - u8 trainerName[PLAYER_NAME_LENGTH + 1]; - u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT]; - u16 speechWin[EASY_CHAT_BATTLE_WORDS_COUNT]; - u16 speechLose[EASY_CHAT_BATTLE_WORDS_COUNT]; - const u16 *monSet; -}; - extern const u8 gTowerMaleFacilityClasses[30]; extern const u16 gTowerMaleTrainerGfxIds[30]; extern const u8 gTowerFemaleFacilityClasses[20]; extern const u16 gTowerFemaleTrainerGfxIds[20]; -extern const struct TrainerMon gBattleFrontierMons[]; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; extern const struct TrainerMon gSlateportBattleTentMons[]; extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[]; -// Temporary storage for monIds of the opponent team -// during team generation in battle factory and similar facilities. -extern u16 gFrontierTempParty[]; - -extern const struct BattleFrontierTrainer *gFacilityTrainers; -extern const struct TrainerMon *gFacilityTrainerMons; - void CallBattleTowerFunc(void); -u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum); -void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId); -void SetEReaderTrainerGfxId(void); -u16 GetBattleFacilityTrainerGfxId(u16 trainerId); void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm); -u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); -enum TrainerClassID GetFrontierOpponentClass(u16 trainerId); -void GetFrontierTrainerName(u8 *dst, u16 trainerId); -void FillFrontierTrainerParty(u8 monsCount); -void FillFrontierTrainersParties(u8 monsCount); -u16 GetRandomFrontierMonFromSet(u16 trainerId); -void FrontierSpeechToString(const u16 *words); -void DoSpecialTrainerBattle(void); void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record); void CalcRubyBattleTowerChecksum(struct RSBattleTowerRecord *record); -u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode); -u8 GetEreaderTrainerFrontSpriteId(void); -enum TrainerClassID GetEreaderTrainerClassId(void); -void GetEreaderTrainerName(u8 *dst); -void ValidateEReaderTrainer(void); -void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer); -void CopyEReaderTrainerGreeting(void); +u16 GetCurrentBattleTowerWinStreak(enum FrontierLevelMode lvlMode, u8 battleMode); void TryHideBattleTowerReporter(void); bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst); bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst); void CalcApprenticeChecksum(struct Apprentice *apprentice); void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId); -u8 SetFacilityPtrsGetLevel(void); -u8 GetFrontierEnemyMonLevel(u8 lvlMode); -s32 GetHighestLevelInPlayerParty(void); -u16 FacilityClassToGraphicsId(u8 facilityClass); +u8 SetTentPtrsGetLevel(void); bool32 ValidateBattleTowerRecord(u8 recordId); // unused void TrySetLinkBattleTowerEnemyPartyLevel(void); -void CreateFacilityMon(const struct TrainerMon *fmon, u16 level, u8 fixedIV, u32 otID, u32 flags, struct Pokemon *dst); -void FillPartnerParty(u16 trainerId); +void FillTentTrainerParty(u8 monsCount); + #endif //GUARD_BATTLE_TOWER_H diff --git a/include/battle_tv.h b/include/battle_tv.h index 8f6c5a182fb2..1384ce1c18ac 100644 --- a/include/battle_tv.h +++ b/include/battle_tv.h @@ -2,10 +2,10 @@ #define GUARD_BATTLE_TV_H void BattleTv_SetDataBasedOnString(enum StringID stringId); -void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruct *disableStructPtr); +void BattleTv_SetDataBasedOnMove(enum Move move, u16 weatherFlags); void BattleTv_SetDataBasedOnAnimation(u8 animationId); void TryPutLinkBattleTvShowOnAir(void); void BattleTv_ClearExplosionFaintCause(void); -u8 GetBattlerMoveSlotId(u8 battler, u16 move); +u8 GetBattlerMoveSlotId(enum BattlerId battler, enum Move move); #endif // GUARD_BATTLE_TV_H diff --git a/include/battle_util.h b/include/battle_util.h index edd303f6df53..a13d59c22bc1 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -25,19 +25,11 @@ #define MOVE_LIMITATIONS_ALL 0xFFFF // Switches between simulated battle calc and actual battle combat -enum FunctionCallOption +enum ResultOption { CHECK_TRIGGER, // Check the function without running scripts / setting any flags. AI_CHECK, // Check the function without running scripts / setting any flags. Same as CHECK_TRIGGER but only used when additional data has to be fetched during ai calcs - RUN_SCRIPT, // Used during actual combat where a script has to be run / flags need to be set -}; - -enum MoveAbsorbed -{ - MOVE_ABSORBED_BY_NO_ABILITY, - MOVE_ABSORBED_BY_DRAIN_HP_ABILITY, - MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY, - MOVE_ABSORBED_BY_BOOST_FLASH_FIRE, + RUN_SCRIPT, }; enum FieldEffectCases @@ -49,22 +41,27 @@ enum FieldEffectCases enum AbilityEffect { - ABILITYEFFECT_ON_SWITCHIN, ABILITYEFFECT_ENDTURN, ABILITYEFFECT_MOVE_END_ATTACKER, - ABILITYEFFECT_COLOR_CHANGE, // Color Change, Berserk, Anger Shell + ABILITYEFFECT_COLOR_CHANGE, // Color Change / Berserk / Anger Shell ABILITYEFFECT_MOVE_END, ABILITYEFFECT_IMMUNITY, ABILITYEFFECT_SYNCHRONIZE, ABILITYEFFECT_ATK_SYNCHRONIZE, + ABILITYEFFECT_FORM_CHANGE_ON_HIT, ABILITYEFFECT_MOVE_END_OTHER, + ABILITYEFFECT_MOVE_END_FOES_FAINTED, // Moxie-like abilities / Battle Bond / Magician + + // On Switch in + ABILITYEFFECT_TERA_SHIFT, ABILITYEFFECT_NEUTRALIZINGGAS, - ABILITYEFFECT_NEUTRALIZINGGAS_FIRST_TURN, + ABILITYEFFECT_UNNERVE, + ABILITYEFFECT_ON_SWITCHIN, + ABILITYEFFECT_SWITCH_IN_FORM_CHANGE, + ABILITYEFFECT_COMMANDER, // Commander / Hospitality / Costar ABILITYEFFECT_ON_WEATHER, ABILITYEFFECT_ON_TERRAIN, ABILITYEFFECT_OPPORTUNIST, - ABILITYEFFECT_OPPORTUNIST_FIRST_TURN, - ABILITYEFFECT_ON_SWITCHIN_IMMUNITIES, }; enum ItemEffect @@ -91,96 +88,61 @@ enum ItemEffect // for Natural Gift and Fling struct TypePower { - enum Type type; + enum Type type:8; u8 power; u16 effect; }; -enum MoveSuccessOrder +enum ImmunityHealStatusOutcome { - CANCELER_STANCE_CHANGE_1, - CANCELER_CLEAR_FLAGS, - CANCELER_SKY_DROP, - CANCELER_RECHARGE, - CANCELER_ASLEEP_OR_FROZEN, - CANCELER_POWER_POINTS, - CANCELER_OBEDIENCE, - CANCELER_TRUANT, - CANCELER_FLINCH, - CANCELER_DISABLED, - CANCELER_VOLATILE_BLOCKED, // Gravity / Heal Block / Throat Chop - CANCELER_TAUNTED, - CANCELER_IMPRISONED, - CANCELER_CONFUSED, - CANCELER_PARALYZED, - CANCELER_INFATUATION, - CANCELER_BIDE, - CANCELER_Z_MOVES, - CANCELER_CHOICE_LOCK, - CANCELER_CALLSUBMOVE, - CANCELER_THAW, - CANCELER_STANCE_CHANGE_2, - CANCELER_ATTACKSTRING, - CANCELER_PPDEDUCTION, - CANCELER_WEATHER_PRIMAL, - CANCELER_MOVE_FAILURE, - CANCELER_POWDER_STATUS, - CANCELER_PRIORITY_BLOCK, - CANCELER_PROTEAN, - CANCELER_EXPLODING_DAMP, - CANCELER_MULTIHIT_MOVES, - CANCELER_MULTI_TARGET_MOVES, - CANCELER_END, -}; - -enum Obedience -{ - OBEYS, - DISOBEYS_LOAFS, - DISOBEYS_HITS_SELF, - DISOBEYS_FALL_ASLEEP, - DISOBEYS_WHILE_ASLEEP, - DISOBEYS_RANDOM_MOVE, -}; - -enum MoveCanceler -{ - MOVE_STEP_SUCCESS, - MOVE_STEP_BREAK, // Breaks out of the function to run a script - MOVE_STEP_FAILURE, // Same as break but breaks out of it due to move failure and jumps to script that handles the failure - MOVE_STEP_STATUS_CHANGE, + IMMUNITY_NO_EFFECT, + IMMUNITY_STATUS_CLEARED, + IMMUNITY_CONFUSION_CLEARED, + IMMUNITY_INFATUATION_CLEARED, + IMMUNITY_TAUNT_CLEARED, }; extern const struct TypePower gNaturalGiftTable[]; -struct DamageContext +struct BattleContext { - u32 battlerAtk:3; - u32 battlerDef:3; - u32 move:16; - enum Type moveType:5; - u32 isCrit:1; - u32 randomFactor:1; - u32 updateFlags:1; - u32 isAnticipation:1; - u32 isSelfInflicted:1; - u32 weather:16; + enum BattlerId battlerAtk:3; + enum BattlerId battlerDef:3; u32 fixedBasePower:8; - u32 padding2:8; - u32 chosenMove:16; // May be different to 'move', e.g. for Z moves. - u32 padding3:16; + u32 weather:16; + u32 unused:2; + u32 fieldStatuses; + + enum Move move:13; + enum Move chosenMove:13; // May be different to 'move', e.g. for Z moves. + enum Type moveType:6; + uq4_12_t typeEffectivenessModifier; enum Ability abilityAtk; enum Ability abilityDef; enum HoldEffect holdEffectAtk; enum HoldEffect holdEffectDef; + + // Flags + u32 isCrit:1; + u32 randomFactor:1; + u32 updateFlags:1; + u32 isAnticipation:1; + u32 isSelfInflicted:1; + u32 aiCalc:1; + u32 aiCheckBerryModifier:1; // Flags that KOing through a berry should be checked + u32 airBalloonBlocked:1; + u32 abilityBlocked:1; + u32 runScript:1; // Used during actual combat where scripts have to be run / flags need to be set + u32 padding:22; }; -struct BattleContext +// Helper struct to keep the arg list small and prevent constant recalculations of abilities/hold effects. +struct BattleCalcValues { - u32 battlerAtk:3; - u32 battlerDef:3; - u32 currentMove:16; + enum BattlerId battlerAtk:3; + enum BattlerId battlerDef:3; + enum Move move:16; u32 padding:10; enum Ability abilities[MAX_BATTLERS_COUNT]; enum HoldEffect holdEffects[MAX_BATTLERS_COUNT]; @@ -207,21 +169,22 @@ enum SkyDropState enum EjectPackTiming { - FIRST_TURN, + START_OF_TURN, END_TURN, OTHER, }; void HandleAction_ThrowBall(void); +uq4_12_t CalcTypeEffectivenessMultiplierHelper(enum Move move, enum Type moveType, enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum Ability abilityDef, bool32 recordAbilities); u32 GetCurrentBattleWeather(void); bool32 EndOrContinueWeather(void); -bool32 IsUnnerveBlocked(u32 battler, u32 itemId); -bool32 IsAffectedByFollowMe(u32 battlerAtk, u32 defSide, u32 move); -bool32 HandleMoveTargetRedirection(void); +enum DamageCategory GetReflectDamageMoveDamageCategory(enum BattlerId battler, enum Move move); +bool32 IsUnnerveBlocked(enum BattlerId battler, enum Item itemId); +bool32 IsAffectedByFollowMe(enum BattlerId battlerAtk, enum BattleSide defSide, enum Move move); void HandleAction_UseMove(void); void HandleAction_Switch(void); void HandleAction_UseItem(void); -bool32 TryRunFromBattle(u32 battler); +bool32 TryRunFromBattle(enum BattlerId battler); void HandleAction_Run(void); void HandleAction_WatchesCarefully(void); void HandleAction_SafariZoneBallThrow(void); @@ -232,213 +195,237 @@ void HandleAction_WallyBallThrow(void); void HandleAction_TryFinish(void); void HandleAction_NothingIsFainted(void); void HandleAction_ActionFinished(void); -u8 GetBattlerForBattleScript(u8 caseId); -bool32 IsBattlerMarkedForControllerExec(u32 battler); -void MarkBattlerForControllerExec(u32 battler); -void MarkBattlerReceivedLinkData(u32 battler); -const u8 *CancelMultiTurnMoves(u32 battler, enum SkyDropState skyDropState); -bool32 WasUnableToUseMove(u32 battler); -bool32 IsLastMonToMove(u32 battler); -bool32 ShouldDefiantCompetitiveActivate(u32 battler, enum Ability ability); -void PrepareStringBattle(enum StringID stringId, u32 battler); +enum BattlerId GetBattlerForBattleScript(u8 caseId); +bool32 IsBattlerMarkedForControllerExec(enum BattlerId battler); +void MarkBattlerForControllerExec(enum BattlerId battler); +void MarkBattlerReceivedLinkData(enum BattlerId battler); +const u8 *CancelMultiTurnMoves(enum BattlerId battler, enum SkyDropState skyDropState); +bool32 IsLastMonToMove(enum BattlerId battler); +bool32 ShouldDefiantCompetitiveActivate(enum BattlerId battler, enum Ability ability); +void PrepareStringBattle(enum StringID stringId, enum BattlerId battler); void ResetSentPokesToOpponentValue(void); -void OpponentSwitchInResetSentPokesToOpponentValue(u32 battler); -void UpdateSentPokesToOpponentValue(u32 battler); +void OpponentSwitchInResetSentPokesToOpponentValue(enum BattlerId battler); +void UpdateSentPokesToOpponentValue(enum BattlerId battler); void BattleScriptPush(const u8 *bsPtr); void BattleScriptPushCursor(void); void BattleScriptCall(const u8 *bsPtr); void BattleScriptPop(void); -u32 TrySetCantSelectMoveBattleScript(u32 battler); -u32 CheckMoveLimitations(u32 battler, u8 unusableMoves, u16 check); -bool32 AreAllMovesUnusable(u32 battler); -u8 GetImprisonedMovesCount(u32 battler, u16 move); -s32 GetDrainedBigRootHp(u32 battler, s32 hp); -bool32 IsAbilityAndRecord(u32 battler, enum Ability battlerAbility, enum Ability abilityToCheck); -u32 DoEndTurnEffects(void); +u32 TrySetCantSelectMoveBattleScript(enum BattlerId battler); +u32 CheckMoveLimitations(enum BattlerId battler, u8 unusableMoves, u16 check); +bool32 AreAllMovesUnusable(enum BattlerId battler); +u8 GetImprisonedMovesCount(enum BattlerId battler, enum Move move); +s32 GetDrainedBigRootHp(enum BattlerId battler, s32 hp); +bool32 IsAbilityAndRecord(enum BattlerId battler, enum Ability battlerAbility, enum Ability abilityToCheck); bool32 HandleFaintedMonActions(void); void TryClearRageAndFuryCutter(void); -enum MoveCanceler AtkCanceler_MoveSuccessOrder(struct BattleContext *ctx); -bool32 HasNoMonsToSwitch(u32 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2); -bool32 TryChangeBattleWeather(u32 battler, u32 battleWeatherId, u32 ability); -bool32 TryChangeBattleTerrain(u32 battler, u32 statusFlag); -bool32 CanAbilityBlockMove(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum Ability abilityDef, u32 move, enum FunctionCallOption option); -bool32 CanAbilityAbsorbMove(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef, u32 move, enum Type moveType, enum FunctionCallOption option); +bool32 HasNoMonsToSwitch(enum BattlerId battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2); +bool32 TryChangeBattleWeather(enum BattlerId battler, u32 battleWeatherId, enum Ability ability); +bool32 TryChangeBattleTerrain(enum BattlerId battler, u32 statusFlag); +bool32 CanAbilityBlockMove(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum Ability abilityDef, u32 move, enum ResultOption option); +bool32 CanTargetBlockPranksterMove(struct BattleContext *ctx, s32 movePriority); +bool32 CanPsychicTerrainProtectTarget(struct BattleContext *ctx, s32 movePriority); +bool32 CanMoveBeBlockedByTarget(struct BattleContext *ctx, s32 movePriority); +bool32 CanAbilityAbsorbMove(struct BattleContext *ctx); bool32 TryFieldEffects(enum FieldEffectCases caseId); -u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ability, u32 special, u32 moveArg); -bool32 TryPrimalReversion(u32 battler); +u32 AbilityBattleEffects(enum AbilityEffect caseID, enum BattlerId battler, enum Ability ability, enum Move move, bool32 shouldAbilityTrigger); +bool32 TryPrimalReversion(enum BattlerId battler); bool32 IsNeutralizingGasOnField(void); -bool32 IsMoldBreakerTypeAbility(u32 battler, enum Ability ability); -u32 GetBattlerAbilityIgnoreMoldBreaker(u32 battler); -u32 GetBattlerAbilityNoAbilityShield(u32 battler); -u32 GetBattlerAbilityInternal(u32 battler, u32 ignoreMoldBreaker, u32 noAbilityShield); -enum Ability GetBattlerAbility(u32 battler); -u32 IsAbilityOnSide(u32 battler, enum Ability ability); -u32 IsAbilityOnOpposingSide(u32 battler, enum Ability ability); +bool32 IsMoldBreakerTypeAbility(enum BattlerId battler, enum Ability ability); +enum Ability GetBattlerAbilityIgnoreMoldBreaker(enum BattlerId battler); +enum Ability GetBattlerAbilityNoAbilityShield(enum BattlerId battler); +enum Ability GetBattlerAbilityInternal(enum BattlerId battler, bool32 ignoreMoldBreaker, bool32 noAbilityShield); +enum Ability GetBattlerAbility(enum BattlerId battler); +u32 IsAbilityOnSide(enum BattlerId battler, enum Ability ability); +u32 IsAbilityOnOpposingSide(enum BattlerId battler, enum Ability ability); u32 IsAbilityOnField(enum Ability ability); -u32 IsAbilityOnFieldExcept(u32 battler, enum Ability ability); -u32 IsAbilityPreventingEscape(u32 battler); -bool32 IsBattlerProtected(u32 battlerAtk, u32 battlerDef, u32 move); -u32 GetProtectType(enum ProtectMethod method); -bool32 CanBattlerEscape(u32 battler); // no ability check +u32 IsAbilityOnFieldExcept(enum BattlerId battler, enum Ability ability); +u32 IsAbilityPreventingEscape(enum BattlerId battler); +bool32 IsBattlerProtected(struct BattleContext *ctx); +enum ProtectType GetProtectType(enum ProtectMethod method); +bool32 CanBattlerEscape(enum BattlerId battler); // no ability check void BattleScriptExecute(const u8 *BS_ptr); void BattleScriptPushCursorAndCallback(const u8 *BS_ptr); -void ClearVariousBattlerFlags(u32 battler); +void ClearVariousBattlerFlags(enum BattlerId battler); void HandleAction_RunBattleScript(void); -u32 SetRandomTarget(u32 battler); -u32 GetBattleMoveTarget(u16 move, u8 setTarget); -u8 GetAttackerObedienceForAction(); -enum HoldEffect GetBattlerHoldEffect(u32 battler); -enum HoldEffect GetBattlerHoldEffectIgnoreAbility(u32 battler); -enum HoldEffect GetBattlerHoldEffectIgnoreNegation(u32 battler); -enum HoldEffect GetBattlerHoldEffectInternal(u32 battler, u32 ability); -u32 GetBattlerHoldEffectParam(u32 battler); -bool32 CanBattlerAvoidContactEffects(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum HoldEffect holdEffectAtk, u32 move); -bool32 IsMoveMakingContact(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum HoldEffect holdEffectAtk, u32 move); -bool32 IsBattlerGrounded(u32 battler, enum Ability ability, enum HoldEffect holdEffect); -u32 GetMoveSlot(u16 *moves, u32 move); -u32 GetBattlerWeight(u32 battler); -u32 CalcRolloutBasePower(u32 battlerAtk, u32 basePower, u32 rolloutTimer); -u32 CalcFuryCutterBasePower(u32 basePower, u32 furyCutterCounter); -s32 CalculateMoveDamage(struct DamageContext *ctx); -s32 CalculateMoveDamageVars(struct DamageContext *ctx); -s32 DoFixedDamageMoveCalc(struct DamageContext *ctx); -s32 ApplyModifiersAfterDmgRoll(struct DamageContext *ctx, s32 dmg); -uq4_12_t CalcTypeEffectivenessMultiplier(struct DamageContext *ctx); -uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(u16 move, u16 speciesDef, enum Ability abilityDef); +u32 SetRandomTarget(enum BattlerId battlerAtk); +u32 GetBattleMoveTarget(enum Move move, enum MoveTarget moveTarget); +enum Obedience GetAttackerObedienceForAction(void); +enum HoldEffect GetBattlerHoldEffect(enum BattlerId battler); +enum HoldEffect GetBattlerHoldEffectIgnoreAbility(enum BattlerId battler); +enum HoldEffect GetBattlerHoldEffectIgnoreNegation(enum BattlerId battler); +enum HoldEffect GetBattlerHoldEffectInternal(enum BattlerId battler, enum Ability ability); +u32 GetBattlerHoldEffectParam(enum BattlerId battler); +bool32 CanBattlerAvoidContactEffects(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum HoldEffect holdEffectAtk, enum Move move); +bool32 IsMoveMakingContact(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum HoldEffect holdEffectAtk, enum Move move); +bool32 IsBattlerGrounded(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect); +u32 GetMoveSlot(u16 *moves, enum Move move); +u32 GetBattlerWeight(enum BattlerId battler); +s32 CalcCritChanceStage(struct BattleContext *ctx); +s32 CalcCritChanceStageGen1(struct BattleContext *ctx); +s32 CalculateMoveDamage(struct BattleContext *ctx); +s32 CalculateMoveDamageVars(struct BattleContext *ctx); +s32 DoFixedDamageMoveCalc(struct BattleContext *ctx); +s32 ApplyModifiersAfterDmgRoll(struct BattleContext *ctx, s32 dmg); +uq4_12_t CalcTypeEffectivenessMultiplier(struct BattleContext *ctx); +uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(enum Move move, u16 speciesDef, enum Ability abilityDef); uq4_12_t GetTypeModifier(enum Type atkType, enum Type defType); uq4_12_t GetOverworldTypeEffectiveness(struct Pokemon *mon, enum Type moveType); void UpdateMoveResultFlags(uq4_12_t modifier, u16 *resultFlags); -s32 GetStealthHazardDamage(enum TypeSideHazard hazardType, u32 battler); +s32 GetStealthHazardDamage(enum TypeSideHazard hazardType, enum BattlerId battler); s32 GetStealthHazardDamageByTypesAndHP(enum TypeSideHazard hazardType, enum Type type1, enum Type type2, u32 maxHp); -bool32 CanMegaEvolve(u32 battler); -bool32 CanUltraBurst(u32 battler); -void ActivateMegaEvolution(u32 battler); -void ActivateUltraBurst(u32 battler); -bool32 IsBattlerMegaEvolved(u32 battler); -bool32 IsBattlerPrimalReverted(u32 battler); -bool32 IsBattlerUltraBursted(u32 battler); -u16 GetBattleFormChangeTargetSpecies(u32 battler, enum FormChanges method); +bool32 CanMegaEvolve(enum BattlerId battler); +bool32 CanUltraBurst(enum BattlerId battler); +void ActivateMegaEvolution(enum BattlerId battler); +void ActivateUltraBurst(enum BattlerId battler); +bool32 IsBattlerMegaEvolved(enum BattlerId battler); +bool32 IsBattlerPrimalReverted(enum BattlerId battler); +bool32 IsBattlerUltraBursted(enum BattlerId battler); +u32 GetBattleFormChangeTargetSpecies(enum BattlerId battler, enum FormChanges method, enum Ability ability); bool32 TryRevertPartyMonFormChange(u32 partyIndex); -bool32 TryBattleFormChange(u32 battler, enum FormChanges method); -bool32 DoBattlersShareType(u32 battler1, u32 battler2); -bool32 CanBattlerGetOrLoseItem(u32 battler, u16 itemId); -u32 GetBattlerVisualSpecies(u32 battler); -bool32 TryClearIllusion(u32 battler, enum AbilityEffect caseID); -u32 GetIllusionMonSpecies(u32 battler); -struct Pokemon *GetIllusionMonPtr(u32 battler); -void ClearIllusionMon(u32 battler); -u32 GetIllusionMonPartyId(struct Pokemon *party, struct Pokemon *mon, struct Pokemon *partnerMon, u32 battler); -bool32 SetIllusionMon(struct Pokemon *mon, u32 battler); -u32 TryImmunityAbilityHealStatus(u32 battler, enum AbilityEffect caseID); -bool32 ShouldGetStatBadgeBoost(u16 flagId, u32 battler); +bool32 TryBattleFormChange(enum BattlerId battler, enum FormChanges method, enum Ability ability); +bool32 DoBattlersShareType(enum BattlerId battler1, enum BattlerId battler2); +bool32 CanBattlerGetOrLoseItem(enum BattlerId fromBattler, enum BattlerId battler, enum Item itemId); +u32 GetBattlerVisualSpecies(enum BattlerId battler); +bool32 TryClearIllusion(enum BattlerId battler, enum Ability ability); +u32 GetIllusionMonSpecies(enum BattlerId battler); +struct Pokemon *GetIllusionMonPtr(enum BattlerId battler); +void ClearIllusionMon(enum BattlerId battler); +u32 GetIllusionMonPartyId(struct Pokemon *party, struct Pokemon *mon, struct Pokemon *partnerMon, enum BattlerId battler); +void SetIllusionMon(struct Pokemon *mon, enum BattlerId battler); +enum ImmunityHealStatusOutcome TryImmunityAbilityHealStatus(enum BattlerId battler); +bool32 ShouldGetStatBadgeBoost(u16 flagId, enum BattlerId battler); uq4_12_t GetBadgeBoostModifier(void); -enum DamageCategory GetBattleMoveCategory(u32 move); -void SetDynamicMoveCategory(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 CanFling(u32 battler); +enum DamageCategory GetBattleMoveCategory(enum Move move); +void SetDynamicMoveCategory(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 CanFling(enum BattlerId battlerAtk); bool32 IsTelekinesisBannedSpecies(u16 species); -bool32 IsHealBlockPreventingMove(u32 battler, u32 move); -bool32 IsBelchPreventingMove(u32 battler, u32 move); -bool32 HasEnoughHpToEatBerry(u32 battler, enum Ability ability, u32 hpFraction, u32 itemId); -bool32 IsPartnerMonFromSameTrainer(u32 battler); -enum DamageCategory GetCategoryBasedOnStats(u32 battler); +bool32 IsHealBlockPreventingMove(enum BattlerId battler, enum Move move); +bool32 IsGravityPreventingMove(enum Move move); +bool32 IsBelchPreventingMove(enum BattlerId battler, enum Move move); +bool32 HasEnoughHpToEatBerry(enum BattlerId battler, enum Ability ability, u32 hpFraction, enum Item itemId); +bool32 IsPartnerMonFromSameTrainer(enum BattlerId battler); +enum DamageCategory GetCategoryBasedOnStats(enum BattlerId battler); void SetShellSideArmCategory(void); -bool32 MoveIsAffectedBySheerForce(u32 move); -bool32 IsSheerForceAffected(u16 move, enum Ability ability); +bool32 MoveIsAffectedBySheerForce(enum Move move); +bool32 IsSheerForceAffected(enum Move move, enum Ability ability); void TryRestoreHeldItems(void); -bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item); -void TrySaveExchangedItem(u32 battler, u16 stolenItem); -bool32 IsPartnerMonFromSameTrainer(u32 battler); -bool32 IsBattlerAffectedByHazards(u32 battler, bool32 toxicSpikes); -void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast); -bool32 CompareStat(u32 battler, enum Stat statId, u8 cmpTo, u8 cmpKind, enum Ability ability); -bool32 BlocksPrankster(u16 move, u32 battlerPrankster, u32 battlerDef, bool32 checkTarget); -bool32 PickupHasValidTarget(u32 battler); +bool32 CanStealItem(enum BattlerId battlerStealing, enum BattlerId battlerItem, enum Item item); +void TrySaveExchangedItem(enum BattlerId battler, enum Item stolenItem); +bool32 IsBattlerAffectedByHazards(enum BattlerId battler, enum HoldEffect holdEffect, bool32 toxicSpikes); +void SortBattlersBySpeed(enum BattlerId *battlers, bool32 slowToFast); +bool32 CompareStat(enum BattlerId battler, enum Stat statId, u32 cmpTo, u32 cmpKind, enum Ability ability); +bool32 BlocksPrankster(enum Move move, enum BattlerId battlerPrankster, enum BattlerId battlerDef, bool32 checkTarget); +bool32 PickupHasValidTarget(enum BattlerId battler); bool32 CantPickupItem(u32 battler); -bool32 IsBattlerWeatherAffected(u32 battler, u32 weatherFlags); -u32 GetBattlerMoveTargetType(u32 battler, u32 move); -bool32 CanTargetBattler(u32 battlerAtk, u32 battlerDef, u16 move); -void CopyMonLevelAndBaseStatsToBattleMon(u32 battler, struct Pokemon *mon); -void CopyMonAbilityAndTypesToBattleMon(u32 battler, struct Pokemon *mon); -void RecalcBattlerStats(u32 battler, struct Pokemon *mon, bool32 isDynamaxing); +bool32 IsBattlerWeatherAffected(enum BattlerId battler, u32 weatherFlags); +enum MoveTarget GetBattlerMoveTargetType(enum BattlerId battler, enum Move move); +bool32 CanTargetBattler(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +u32 GetNextTarget(u32 moveTarget, bool32 excludeCurrent); +void CopyMonLevelAndBaseStatsToBattleMon(enum BattlerId battler, struct Pokemon *mon); +void CopyMonAbilityAndTypesToBattleMon(enum BattlerId battler, struct Pokemon *mon); +void RecalcBattlerStats(enum BattlerId battler, struct Pokemon *mon, bool32 isDynamaxing); bool32 IsGen6ExpShareEnabled(void); -bool32 MoveHasAdditionalEffect(u32 move, u32 moveEffect); -bool32 MoveHasAdditionalEffectWithChance(u32 move, u32 moveEffect, u32 chance); -bool32 MoveHasAdditionalEffectSelf(u32 move, u32 moveEffect); -bool32 IsMoveEffectRemoveSpeciesType(u32 move, u32 moveEffect, u32 argument); -bool32 MoveHasChargeTurnAdditionalEffect(u32 move); -bool32 CanTargetPartner(u32 battlerAtk, u32 battlerDef); -bool32 TargetFullyImmuneToCurrMove(u32 battlerAtk, u32 battlerDef); +bool32 MoveHasAdditionalEffect(enum Move move, enum MoveEffect moveEffect); +bool32 MoveHasAdditionalEffectWithChance(enum Move move, enum MoveEffect moveEffect, u32 chance); +bool32 MoveHasAdditionalEffectSelf(enum Move move, enum MoveEffect moveEffect); +bool32 IsMoveEffectRemoveSpeciesType(enum Move move, enum MoveEffect moveEffect, u32 argument); +bool32 MoveHasChargeTurnAdditionalEffect(enum Move move); +bool32 CanTargetPartner(enum BattlerId battlerAtk, enum BattlerId battlerDef); +bool32 IsBattlerUnaffectedByMove(enum BattlerId battler); bool32 MoodyCantRaiseStat(u32 stat); bool32 MoodyCantLowerStat(u32 stat); -bool32 IsBattlerTerrainAffected(u32 battler, enum Ability ability, enum HoldEffect holdEffect, u32 terrainFlag); -u32 GetHighestStatId(u32 battler); -u32 GetParadoxHighestStatId(u32 battler); -u32 GetParadoxBoostedStatId(u32 battler); +bool32 IsPsychicTerrainAffected(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect, u32 fieldStatuses); +bool32 IsMistyTerrainAffected(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect, u32 fieldStatuses); +bool32 IsGrassyTerrainAffected(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect, u32 fieldStatuses); +bool32 IsElectricTerrainAffected(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect, u32 fieldStatuses); +bool32 IsAnyTerrainAffected(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect, u32 fieldStatuses); +bool32 IsBattlerTerrainAffected(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect, u32 fieldStatuses, u32 terrainFlag); +enum Stat GetHighestStatId(enum BattlerId battler); +enum Stat GetParadoxHighestStatId(enum BattlerId battler); +enum Stat GetParadoxBoostedStatId(enum BattlerId battler); -bool32 CanBeSlept(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef, enum SleepClauseBlock isBlockedBySleepClause); -bool32 CanBePoisoned(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum Ability abilityDef); -bool32 CanBeBurned(u32 battlerAtk, u32 battlerDef, enum Ability ability); -bool32 CanBeParalyzed(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef); -bool32 CanBeFrozen(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef); -bool32 CanGetFrostbite(u32 battlerAtk, u32 battlerDef, enum Ability abilityDef); -bool32 CanSetNonVolatileStatus(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum Ability abilityDef, enum MoveEffect secondaryMoveEffect, enum FunctionCallOption option); -bool32 CanBeConfused(u32 battler); -bool32 IsSafeguardProtected(u32 battlerAtk, u32 battlerDef, u32 abilityAtk); -u32 GetBattlerAffectionHearts(u32 battler); +bool32 CanBeSlept(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef, enum SleepClauseBlock isBlockedBySleepClause); +bool32 CanBePoisoned(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum Ability abilityDef); +bool32 CanBeBurned(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability ability); +bool32 CanBeParalyzed(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef); +bool32 CanBeFrozen(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef); +bool32 CanGetFrostbite(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityDef); +bool32 CanSetNonVolatileStatus(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum Ability abilityDef, enum MoveEffect secondaryMoveEffect, enum ResultOption option); +bool32 CanBeConfused(enum BattlerId battler); +bool32 IsSafeguardProtected(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk); +u32 GetBattlerAffectionHearts(enum BattlerId battler); void TryToRevertMimicryAndFlags(void); bool32 BattleArenaTurnEnd(void); -u32 CountBattlerStatIncreases(u32 battler, bool32 countEvasionAcc); -bool32 BattlerHasCopyableChanges(u32 battler); -bool32 ChangeTypeBasedOnTerrain(u32 battler); -void RemoveConfusionStatus(u32 battler); -u8 GetBattlerGender(u32 battler); -bool32 AreBattlersOfOppositeGender(u32 battler1, u32 battler2); -bool32 AreBattlersOfSameGender(u32 battler1, u32 battler2); -u32 CalcSecondaryEffectChance(u32 battler, enum Ability battlerAbility, const struct AdditionalEffect *additionalEffect); -bool32 MoveEffectIsGuaranteed(u32 battler, enum Ability battlerAbility, const struct AdditionalEffect *additionalEffect); -void GetBattlerTypes(u32 battler, bool32 ignoreTera, enum Type types[static 3]); -enum Type GetBattlerType(u32 battler, u32 typeIndex, bool32 ignoreTera); -bool8 CanMonParticipateInSkyBattle(struct Pokemon *mon); -bool8 IsMonBannedFromSkyBattles(u16 species); -void RemoveBattlerType(u32 battler, enum Type type); -enum Type GetBattleMoveType(u32 move); -void TryActivateSleepClause(u32 battler, u32 indexInParty); -void TryDeactivateSleepClause(u32 battlerSide, u32 indexInParty); -bool32 IsSleepClauseActiveForSide(u32 battlerSide); -bool32 IsSleepClauseEnabled(); +u32 CountBattlerStatIncreases(enum BattlerId battler, bool32 countEvasionAcc); +bool32 BattlerHasCopyableChanges(enum BattlerId battler); +bool32 ChangeTypeBasedOnTerrain(enum BattlerId battler); +void RemoveConfusionStatus(enum BattlerId battler); +u32 GetBattlerGender(enum BattlerId battler); +bool32 AreBattlersOfOppositeGender(enum BattlerId battler1, enum BattlerId battler2); +bool32 AreBattlersOfSameGender(enum BattlerId battler1, enum BattlerId battler2); +u32 CalcSecondaryEffectChance(enum BattlerId battler, enum Ability battlerAbility, const struct AdditionalEffect *additionalEffect); +bool32 MoveEffectIsGuaranteed(enum BattlerId battler, enum Ability battlerAbility, const struct AdditionalEffect *additionalEffect); +void GetBattlerTypes(enum BattlerId battler, bool32 ignoreTera, enum Type types[static 3]); +enum Type GetBattlerType(enum BattlerId battler, u32 typeIndex, bool32 ignoreTera); +bool32 CanMonParticipateInSkyBattle(struct Pokemon *mon); +void RemoveBattlerType(enum BattlerId battler, enum Type type); +enum Type GetBattleMoveType(enum Move move); +void TryActivateSleepClause(enum BattlerId battler, u32 indexInParty); +void TryDeactivateSleepClause(enum BattleSide battlerSide, u32 indexInParty); +bool32 IsSleepClauseActiveForSide(enum BattleSide battlerSide); +bool32 IsSleepClauseEnabled(void); void ClearDamageCalcResults(void); -u32 DoesDestinyBondFail(u32 battler); +u32 DoesDestinyBondFail(enum BattlerId battler); bool32 IsMoveEffectBlockedByTarget(enum Ability ability); +bool32 SetTargetToNextPursuiter(enum BattlerId battlerDef); bool32 IsPursuitTargetSet(void); -void ClearPursuitValuesIfSet(u32 battler); +void ClearPursuitValuesIfSet(enum BattlerId battler); void ClearPursuitValues(void); bool32 HasWeatherEffect(void); -bool32 IsFutureSightAttackerInParty(u32 battlerAtk, u32 battlerDef, u32 move); -bool32 HadMoreThanHalfHpNowDoesnt(u32 battler); -void ChooseStatBoostAnimation(u32 battler); +bool32 IsFutureSightAttackerInParty(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move); +bool32 HadMoreThanHalfHpNowDoesnt(enum BattlerId battler); +void ChooseStatBoostAnimation(enum BattlerId battler); void UpdateStallMons(void); bool32 TrySwitchInEjectPack(enum EjectPackTiming timing); -u32 GetBattlerVolatile(u32 battler, enum Volatile _volatile); -void SetMonVolatile(u32 battler, enum Volatile _volatile, u32 newValue); -bool32 ItemHealMonVolatile(u32 battler, u16 itemId); -void PushHazardTypeToQueue(u32 side, enum Hazards hazardType); -bool32 IsHazardOnSide(u32 side, enum Hazards hazardType); -bool32 AreAnyHazardsOnSide(u32 side); -void RemoveAllHazardsFromField(u32 side); -bool32 IsHazardOnSideAndClear(u32 side, enum Hazards hazardType); -void RemoveHazardFromField(u32 side, enum Hazards hazardType); -bool32 CanMoveSkipAccuracyCalc(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum Ability abilityDef, u32 move, enum FunctionCallOption option); -u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkAbility, enum Ability defAbility, enum HoldEffect atkHoldEffect, enum HoldEffect defHoldEffect); -bool32 IsSemiInvulnerable(u32 battler, enum SemiInvulnerableExclusion excludeCommander); -bool32 BreaksThroughSemiInvulnerablity(u32 battler, u32 move); -bool32 HasPartnerTrainer(u32 battler); -bool32 IsAffectedByPowderMove(u32 battler, u32 ability, enum HoldEffect holdEffect); -u32 GetNaturePowerMove(u32 battler); -u32 GetNaturePowerMove(u32 battler); -void RemoveAbilityFlags(u32 battler); +bool32 EmergencyExitCanBeTriggered(enum BattlerId battler); +bool32 TryTriggerSymbiosis(enum BattlerId battler, u32 ally); +bool32 TrySymbiosis(enum BattlerId battler, enum Item itemId, bool32 moveEnd); +void BestowItem(enum BattlerId battlerAtk, enum BattlerId battlerDef); +ARM_FUNC u32 GetBattlerVolatile(enum BattlerId battler, enum Volatile _volatile); +void SetMonVolatile(enum BattlerId battler, enum Volatile _volatile, u32 newValue); +bool32 ItemHealMonVolatile(enum BattlerId battler, enum Item itemId); +void PushHazardTypeToQueue(enum BattleSide side, enum Hazards hazardType); +bool32 IsHazardOnSide(enum BattleSide side, enum Hazards hazardType); +bool32 AreAnyHazardsOnSide(enum BattleSide side); +void RemoveAllHazardsFromField(enum BattleSide side); +bool32 IsHazardOnSideAndClear(enum BattleSide side, enum Hazards hazardType); +void RemoveHazardFromField(enum BattleSide side, enum Hazards hazardType); +bool32 CanMoveSkipAccuracyCalc(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum Ability abilityDef, enum Move move, enum ResultOption option); +u32 GetTotalAccuracy(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move, enum Ability atkAbility, enum Ability defAbility, enum HoldEffect atkHoldEffect, enum HoldEffect defHoldEffect); +bool32 DoesOHKOMoveMissTarget(struct BattleCalcValues *cv); +bool32 DoesMoveMissTarget(struct BattleCalcValues *cv); +bool32 IsSemiInvulnerable(enum BattlerId battler, enum SemiInvulnerableExclusion excludeCommander); +bool32 BreaksThroughSemiInvulnerablity(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Ability abilityAtk, enum Ability abilityDef, enum Move move); +bool32 HasPartnerTrainer(enum BattlerId battler); +bool32 IsAffectedByPowderMove(enum BattlerId battler, enum Ability ability, enum HoldEffect holdEffect); +enum Move GetNaturePowerMove(void); +void RemoveAbilityFlags(enum BattlerId battler); +void CheckSetUnburden(enum BattlerId battler); bool32 IsDazzlingAbility(enum Ability ability); bool32 IsAllowedToUseBag(void); -bool32 IsAnyTargetTurnDamaged(u32 battlerAtk); -bool32 IsMimikyuDisguised(u32 battler); +bool32 IsAnyTargetTurnDamaged(enum BattlerId battlerAtk); +bool32 IsAnyTargetAffected(void); +bool32 IsMimikyuDisguised(enum BattlerId battler); +bool32 IsDoubleSpreadMove(void); +bool32 IsBattlerInvalidForSpreadMove(enum BattlerId battlerAtk, enum BattlerId battlerDef); +void SetStartingStatus(enum StartingStatus status); +void ResetStartingStatuses(void); +bool32 IsUsableWhileAsleepEffect(enum BattleMoveEffects effect); +void SetWrapTurns(enum BattlerId battler, enum HoldEffect holdEffect); +bool32 ChangeOrderTargetAfterAttacker(void); +void TryUpdateEvolutionTracker(enum EvolutionConditions evolutionCondition, u32 upAmount, enum Move usedMove); +bool32 CanUseMoveConsecutively(enum BattlerId battler); +void TryResetConsecutiveUseCounter(enum BattlerId battler); +void SetOrClearRageVolatile(void); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/battle_util2.h b/include/battle_util2.h index 51c9c03630a8..5f91ba6dd659 100644 --- a/include/battle_util2.h +++ b/include/battle_util2.h @@ -3,8 +3,8 @@ void AllocateBattleResources(void); void FreeBattleResources(void); -void AdjustFriendshipOnBattleFaint(u8 battler); -void SwitchPartyOrderInGameMulti(u8 battler, u8 arg1); -u32 BattlePalace_TryEscapeStatus(u8 battler); +void AdjustFriendshipOnBattleFaint(enum BattlerId battler); +void SwitchPartyOrderInGameMulti(enum BattlerId battler, u8 arg1); +u32 BattlePalace_TryEscapeStatus(enum BattlerId battler); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/battle_z_move.h b/include/battle_z_move.h index bfa4c8495af3..6a039c21f0d7 100644 --- a/include/battle_z_move.h +++ b/include/battle_z_move.h @@ -1,29 +1,27 @@ #ifndef GUARD_BATTLE_Z_MOVE_H #define GUARD_BATTLE_Z_MOVE_H -#include "constants/battle_z_move_effects.h" - #define MOVE_Z_STATUS 0xFFFF struct SignatureZMove { u16 species; - u16 item; - u16 move; - u16 zmove; + enum Item item; + enum Move move; + enum Move zmove; }; -bool32 IsZMove(u32 move); -bool32 CanUseZMove(u32 battler); -u32 GetUsableZMove(u32 battler, u32 move); -void ActivateZMove(u32 battler); -bool32 IsViableZMove(u32 battler, u32 move); -bool32 TryChangeZTrigger(u32 battler, u32 moveIndex); -u32 GetTypeBasedZMove(u32 move); -u32 GetSignatureZMove(u32 move, u32 species, u32 item); -bool32 MoveSelectionDisplayZMove(u16 zmove, u32 battler); +bool32 IsZMove(enum Move move); +bool32 CanUseZMove(enum BattlerId battler); +enum Move GetUsableZMove(enum BattlerId battler, enum Move move); +void ActivateZMove(enum BattlerId battler); +bool32 IsViableZMove(enum BattlerId battler, enum Move move); +bool32 TryChangeZTrigger(enum BattlerId battler, u32 moveIndex); +enum Move GetTypeBasedZMove(enum Move move); +enum Move GetSignatureZMove(enum Move move, u32 species, enum Item item); +bool32 MoveSelectionDisplayZMove(enum Move zmove, enum BattlerId battler); void SetZEffect(void); -void AssignUsableZMoves(u32 battler, u16 *moves); -u32 GetZMovePower(u32 move); +void AssignUsableZMoves(enum BattlerId battler, enum Move *moves); +u32 GetZMovePower(enum Move move); #endif // GUARD_BATTLE_Z_MOVE_H diff --git a/include/berry.h b/include/berry.h index 4aad7daa68ac..7b45dbf14e48 100644 --- a/include/berry.h +++ b/include/berry.h @@ -14,7 +14,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 allowGrowth); void RemoveBerryTree(u8 id); u8 GetBerryTypeByBerryTreeId(u8 id); u8 GetStageByBerryTreeId(u8 id); -u8 ItemIdToBerryType(u16 item); +u8 ItemIdToBerryType(enum Item item); void GetBerryNameByBerryType(u8 berry, u8 *string); void Bag_ChooseBerry(void); void Bag_ChooseMulch(void); diff --git a/include/bike.h b/include/bike.h index 00f11aefe33f..6880848a5590 100644 --- a/include/bike.h +++ b/include/bike.h @@ -15,7 +15,7 @@ struct BikeHistoryInputInfo }; // Player speeds -enum +enum PlayerSpeed { PLAYER_SPEED_STANDING, PLAYER_SPEED_NORMAL, @@ -24,8 +24,22 @@ enum PLAYER_SPEED_FASTEST, }; +enum { + BIKE_TRANS_FACE_DIRECTION, + BIKE_TRANS_TURNING, + BIKE_TRANS_MOVE, + BIKE_TRANS_DOWNHILL, + BIKE_TRANS_UPHILL +}; + +enum { + BIKE_STATE_NORMAL, + BIKE_STATE_TURNING, + BIKE_STATE_SLOPE +}; + // mach bike transitions enum -enum +enum MachTransition { MACH_TRANS_FACE_DIRECTION, MACH_TRANS_TURN_DIRECTION, @@ -34,7 +48,7 @@ enum }; // Acro bike states -enum +enum AcroState { ACRO_STATE_NORMAL, ACRO_STATE_TURNING, @@ -43,10 +57,11 @@ enum ACRO_STATE_WHEELIE_MOVING, ACRO_STATE_SIDE_JUMP, ACRO_STATE_TURN_JUMP, + ACRO_STATE_SLOPE }; // Acro bike transitions -enum +enum AcroTransition { ACRO_TRANS_FACE_DIRECTION, ACRO_TRANS_TURN_DIRECTION, @@ -61,13 +76,15 @@ enum ACRO_TRANS_WHEELIE_MOVING, ACRO_TRANS_WHEELIE_RISING_MOVING, ACRO_TRANS_WHEELIE_LOWERING_MOVING, + ACRO_TRANS_DOWNHILL, + ACRO_TRANS_UPHILL }; // Exported RAM declarations extern bool8 gUnusedBikeCameraAheadPanback; // Exported ROM declarations -void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys); +void MovePlayerOnBike(enum Direction direction, u16 newKeys, u16 heldKeys); void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys); bool8 RS_IsRunningDisallowed(u8 tile); bool8 IsBikingDisallowedByPlayer(void); @@ -75,7 +92,7 @@ bool8 IsPlayerNotUsingAcroBikeOnBumpySlope(void); void GetOnOffBike(u8 transitionFlags); void BikeClearState(int newDirHistory, int newAbStartHistory); void Bike_UpdateBikeCounterSpeed(u8 counter); -s16 GetPlayerSpeed(void); +enum PlayerSpeed GetPlayerSpeed(void); void Bike_HandleBumpySlopeJump(void); bool32 IsRunningDisallowed(u8 metatile); diff --git a/include/chooseboxmon.h b/include/chooseboxmon.h new file mode 100644 index 000000000000..cc88f8bb922c --- /dev/null +++ b/include/chooseboxmon.h @@ -0,0 +1,19 @@ +#ifndef GUARD_CHOOSEBOXMON_H +#define GUARD_CHOOSEBOXMON_H + +struct MoveLearnUI { + void (*askConfirmation)(void); + s32 (*waitConfirmation)(void); + void (*printMessage)(const u8 *message); + void (*playFanfare)(u32 songId); + void (*showMoveList)(u8 taskId); + void (*endTask)(u8 taskId); +}; + +u32 IsBoxMonExcluded(struct BoxPokemon *boxmon); +bool32 CanBoxMonBeSelected(struct BoxPokemon *boxmon); +s32 LearnMove(const struct MoveLearnUI *ui, u8 taskId); +s32 GetLearnMoveStartState(void); +s32 GetLearnMoveResumeAfterSummaryScreenState(void); + +#endif // GUARD_CHOOSEBOXMON_H diff --git a/include/config/ai.h b/include/config/ai.h index 5a7ce4078312..50abcbd472ae 100644 --- a/include/config/ai.h +++ b/include/config/ai.h @@ -24,6 +24,7 @@ #define SHOULD_SWITCH_ATTACKING_STAT_MINUS_TWO_PERCENTAGE 50 #define SHOULD_SWITCH_ATTACKING_STAT_MINUS_THREE_PLUS_PERCENTAGE 100 #define SHOULD_SWITCH_ALL_SCORES_BAD_PERCENTAGE 100 +#define SHOULD_SWITCH_DYN_FUNC_PERCENTAGE 50 // Dynamic switching function switch chance // AI smart switching chances for bad statuses #define SHOULD_SWITCH_PERISH_SONG_PERCENTAGE 100 @@ -50,6 +51,12 @@ #define ALL_MOVES_BAD_STATUS_MOVES_BAD FALSE // If the AI has no moves that affect the target, ShouldSwitchIfAllMovesBad can prompt a switch. Enabling this config will ignore status moves that can affect the target when making this decision. #define AI_BAD_SCORE_THRESHOLD 90 // Move scores beneath this threshold are considered "bad" when deciding switching #define AI_GOOD_SCORE_THRESHOLD 100 // Move scores above this threshold are considered "good" when deciding switching +#define ALL_MOVES_BAD_NEEDS_GOOD_SWITCHIN FALSE // AI will only trigger ShouldSwitchIfAllMovesBad if they have a good switchin +#define ALL_SCORES_BAD_NEEDS_GOOD_SWITCHIN FALSE // AI will only trigger ShouldSwitchIfAllScoresBad if they have a good switchin +#define AI_DEFENSIVE_KO_THRESHOLD 3 // AI must be able to take more than this many hits before being KO'd before being considered a "defensive mon" +#define AI_TYPE_MATCHUP_THRESHOLD UQ_4_12(2.0) // AI must have a better matchup than this to be considered good; 2.0 is the default "Neutral" matchup from GetBattlerTypeMatchup +#define AI_WISH_HEAL_THRESHOLD 4 // Fraction of HP AI must restore to be considered a good recipient of Wish, treated as a fraction denominator (ie. 4 = 1/4 = 25% HP) +#define AI_SWITCHIN_DAMAGE_THRESHOLD 0 // Damage AI must exceed to be considered an acceptable switchin candidate. Keep this *very low*, as it's used as a fallback case before giving up. // AI held item-based move scoring #define LOW_ACCURACY_THRESHOLD 75 // Moves with accuracy equal OR below this value are considered low accuracy @@ -62,10 +69,19 @@ #define SUCKER_PUNCH_CHANCE 50 // Chance for the AI to not use Sucker Punch if the player has a status move #define SUCKER_PUNCH_PREDICTION_CHANCE 50 // Additional chance for the AI to not use Sucker Punch if actively predicting a status move if SUCKER_PUNCH_CHANCE fails #define PRIORITIZE_LAST_CHANCE_CHANCE 50 // Chance the AI will prioritize Last Chance (priority move in the face of being outsped and KO'd) over Slow KO +#define LAST_MON_PREFERS_NOT_SACRIFICE FALSE // Whether the AI will be hesitant to use self-sacrificing moves (Explosion, Final Gambit) with their last mon +#define EXPLOSION_LOWER_HP_THRESHOLD 10 // HP percentage at or beneath which the AI has a 90% chance to explode; otherwise scales between this and higher threshold +#define EXPLOSION_HIGHER_HP_THRESHOLD 90 // HP percentage at or above which the AI has a 0% chance to explode; otherwise scales between this and lower threshold +#define EXPLOSION_MINIMUM_CHANCE 0 // Lowest possible percent chance of the AI using explosion based on its current HP +#define EXPLOSION_MAXIMUM_CHANCE 90 // Highest possible percent chance of the AI using explosion based on its current HP +#define FINAL_GAMBIT_CHANCE 50 // Chance for AI to consider using Final Gambit if it outspeeds the player and thinks it has more HP +#define SHOULD_PIVOT_BREAK_SASH_CHANCE 50 // Chance for ShouldPivot to return true when trying to break Multiscale and Focus Sash type effects while having a good switchin // AI damage calc considerations #define RISKY_AI_CRIT_STAGE_THRESHOLD 2 // Stat stages at which Risky will assume it gets a crit #define RISKY_AI_CRIT_THRESHOLD_GEN_1 128 // "Stat stage" at which Risky will assume it gets a crit with gen 1 mechanics (this translates to an X / 255 % crit threshold) +#define AI_DAMAGES_THROUGH_BERRIES TRUE // AI will see through resist berries when considering a certain KO threshold for the purposes damage calcs; this is considered when comparing best moves to KO to still pick the actual OHKO if needed +#define AI_IGNORE_BERRY_KO_THRESHOLD 2 // KO threshold AI must meet in order to treat it berry though it doesn't exist (ie. 2 means "If the AI can 2HKO with berry resisted attack + not-berry resisted next attack, ignore berry resistence when calcing first attack"). Requires AI_DAMAGES_THROUGH_BERRIES // AI prediction chances #define PREDICT_SWITCH_CHANCE 50 @@ -93,6 +109,9 @@ // AI_FLAG_SMART_SWITCHING settings #define SMART_SWITCHING_OMNISCIENT FALSE // AI will use omniscience for switching calcs, regardless of omniscience setting otherwise +// AI_FLAG_RANDOMIZE_SWITCHIN settings +#define RANDOMIZE_SWITCHIN_ANY_VALID TRUE // If AI has no good candidate mons, it will still choose randomly from all valid options rather than defaulting to the last one in party order + // Configurations specifically for AI_FLAG_DOUBLE_BATTLE. #define FRIENDLY_FIRE_RISKY_THRESHOLD 2 // AI_FLAG_RISKY acceptable number of hits to KO the partner via friendly fire #define FRIENDLY_FIRE_NORMAL_THRESHOLD 3 // typical acceptable number of hits to KO the partner via friendly fire diff --git a/include/config/battle.h b/include/config/battle.h index 16b4ac9b64db..9ed3fb63915b 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -72,6 +72,9 @@ #define B_UPDATED_CONVERSION_2 GEN_LATEST // In Gen5+, Conversion 2 changes the user's type to a type that resists the last move used by the selected target. Before, it would consider the last move being successfully hit by. Additionally, Struggle is considered Normal type before Gen 5. #define B_PP_REDUCED_BY_SPITE GEN_LATEST // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5. #define B_EXTRAPOLATED_MOVE_FLAGS TRUE // Adds move flags to moves that they don't officially have but would likely have if they were in the latest core series game. +#define B_HIDDEN_POWER_COUNTER GEN_LATEST // Prior to Gen4, Counter and Mirror Coat treat Hidden Power as Physical regardless of type. +#define B_MODERN_TRICK_CHOICE_LOCK GEN_LATEST // In Gen5+, if a Choice Item is swapped for a Choice Item, the Trick/Switcheroo user can pick another move, and then they'll be locked into it. +#define B_PROTECT_FAILURE_RATE GEN_LATEST // In Gen5+, protect moves fails 1/3 of the time instead of 1/2 // Ability data settings #define B_UPDATED_ABILITY_DATA GEN_LATEST // Affects flags @@ -98,6 +101,7 @@ #define B_CRASH_IF_TARGET_IMMUNE GEN_LATEST // In Gen4+, moves with crash damage will crash if the user attacks a target that is immune due to their typing. #define B_MEMENTO_FAIL GEN_LATEST // In Gen4+, Memento no longer fails if the target already has -6 Attack and Special Attack. Additionally, in Gen5+, it fails if there is no target, or if the target is protected or behind a Substitute. #define B_PARTING_SHOT_SWITCH GEN_LATEST // In Gen7+, the user won't switch out if Parting Shot fails to lower the target's stats. +#define B_BATON_PASS_TRAPPING GEN_LATEST // In Gen5+, Baton Pass does not keep trapping effects on other battlers when the user switches out. #define B_GLARE_GHOST GEN_LATEST // In Gen4+, Glare can hit Ghost-type Pokémon normally. #define B_SKILL_SWAP GEN_LATEST // In Gen4+, Skill Swap triggers switch-in abilities after use. #define B_BRICK_BREAK GEN_LATEST // In Gen4+, you can destroy your own side's screens. In Gen 5+, screens are not removed if the target is immune. @@ -110,7 +114,7 @@ #define B_TELEPORT_BEHAVIOR GEN_LATEST // In LGPE onwards (Gen8+ here), Teleport allows the user to swap out with another party member. #define B_BEAT_UP GEN_LATEST // In Gen5+, Beat Up uses a different formula to calculate its damage, and deals Dark-type damage. Prior to Gen 5, each hit also announces the party member's name. #define B_DARK_VOID_FAIL GEN_LATEST // In Gen7+, only Darkrai can use Dark Void. -#define B_BURN_HIT_THAW GEN_LATEST // In Gen6+, damaging moves with a chance of burn will thaw the target, regardless if they're fire-type moves or not. +#define B_HIT_THAW GEN_LATEST // In Gen6+, damaging moves that thaw the user will thaw the target. In Gen 3+, Fire-type moves thaw the target. In Gen 1-2, damaging moves that can burn will thaw the target, regardless if they can be burned or not. #define B_HEALING_WISH_SWITCH GEN_LATEST // In Gen5+, the mon receiving Healing Wish is sent out at the end of the turn. // Additionally, in gen8+ the Healing Wish's effect will be stored until the user switches into a statused or hurt mon. #define B_DEFOG_EFFECT_CLEARING GEN_LATEST // In Gen5+, Defog does not lower Evasion of target behind Subsitute. In Gen6+, Defog clears Spikes, Toxic Spikes, Stealth Rock and Sticky Web from both sides. In Gen8+, Defog also clears active Terrain. @@ -129,8 +133,8 @@ #define B_SKETCH_BANS GEN_LATEST // In Gen9+, Sketch is unable to copy more moves than in previous generations. #define B_KNOCK_OFF_REMOVAL GEN_LATEST // In Gen5+, Knock Off removes the foe's item instead of rendering it unusable. #define B_HEAL_BELL_SOUNDPROOF GEN_LATEST // In Gen5, Heal Bell affects all mons with Soundproof. In Gen6-8 it affects inactive mons, but not battlers. In Gen9 it always affects the user. -#define B_CHARGE GEN_LATEST // In Gens3-7, Charge status is lost regardless of the typing of the next move. -#define B_POWDER_RAIN GEN_LATEST // In Gen7+, Powder doesn't damage the user of a Fire type move in heavy rain. +#define B_CHARGE GEN_LATEST // In Gen9+, Charge status is lost regardless of the typing of the next move. +#define B_POWDER_STATUS_HEAVY_RAIN GEN_LATEST // In Gen7+, Powder doesn't damage the user of a Fire type move in heavy rain. #define B_AFTER_YOU_TURN_ORDER GEN_LATEST // In Gen8+, After You doesn't fail if the turn order wouldn't change after use. #define B_QUASH_TURN_ORDER GEN_LATEST // In Gen8+, Quash-affected battlers move according to speed order. Before Gen8, Quash-affected battlers move in the order they were affected by Quash. #define B_DESTINY_BOND_FAIL GEN_LATEST // In Gen7+, Destiny Bond fails if used repeatedly. @@ -143,6 +147,16 @@ // If OW_TIMES_OF_DAY is set to Gen 3, then Morning Sun is boosted during the day. #define B_DREAM_EATER_LIQUID_OOZE GEN_LATEST // In Gen5+, Dream Eater is affected by Liquid Ooze. #define B_DREAM_EATER_SUBSTITUTE GEN_LATEST // In Gen5+, Dream Eater can successfully hit and drain from a Substitute. +#define B_SNATCH GEN_LATEST // In Gen5+, Snatch no longer steals moves that were already stolen by another Pokémon's Snatch on the same turn. +#define B_FOCUS_PUNCH_FAILURE GEN_LATEST // To determine if Focus is lost, in Gen4-, check if the current move is Focus Punch. + // In Gens 5-6, check if the selected move is Focus Punch. + // In Gen7+, check if the current move and the selected move are Focus Punch. + // Also in Gen4-, the check for Focus Punch fail will occur after effects like pp consumption and flinching while it happens before in Gen5+ +#define B_COUNTER_MIRROR_COAT_ALLY GEN_LATEST // In Gen5+, an ally's attack does not count for uses of Counter/Mirror Coat/Metal Burst. In Gen4-, if the last attack taken was from an ally, Counter/Mirror Coat/Metal Burst would fail. +#define B_COUNTER_TRY_HIT_PARTNER GEN_LATEST // In Gen5+, if the user of the last attack is not on the field, it will be redirected to the partner. In Gen4-, Counter/Mirror Coat/Metal Burst would fail. +#define B_RAGE_BUILDS GEN_LATEST // In Gen4+, Rage's effect only sets in when it successfully hits. In Gen3, Rage's effect sets in regardless of whether it hits, misses or fails. +#define B_CHECK_USER_FAILURE GEN_LATEST // In Gen5+, The user no longer checks it's own failure, e.g. Soundproof will not block it's own Perish Song +#define B_ABSORB_MESSAGE GEN_LATEST // In Gen5+, No absorb message is played if user is already at full hp. // Ability settings #define B_GALE_WINGS GEN_LATEST // In Gen7+ requires full HP to trigger. @@ -157,7 +171,6 @@ #define B_PLUS_MINUS_INTERACTION GEN_LATEST // In Gen5+, Plus and Minus can be activated with themselves and the opposite ability. Before, only the opposing ability could activate it. #define B_WEATHER_FORMS GEN_LATEST // In Gen5+, Castform and Cherrim revert to their base form upon losing their respective ability. Cherrim needs Flower Gift to swap forms. #define B_SYMBIOSIS_GEMS GEN_LATEST // In Gen7+, Symbiosis passes an item after a gem-boosted attack. Previously, items are passed before the gem-boosted attack hits, making the item effect apply. -#define B_ABSORBING_ABILITY_STRING GEN_LATEST // In Gen5+, the abilities that absorb moves of a certain type use a generic string for stat increases and decreases. #define B_REDIRECT_ABILITY_IMMUNITY GEN_LATEST // In Gen5+, Pokémon with Lightning Rod/Storm Drain become immune to Electric/Water-type moves and increase their Sp. Attack by 1 stage on top of the redirecting effect. #define B_REDIRECT_ABILITY_ALLIES GEN_LATEST // In Gen4+, Lightning Rod/Storm Drain redirect ally's moves as well. #define B_LEAF_GUARD_PREVENTS_REST GEN_LATEST // In Gen5+, Leaf Guard prevents the use of Rest in harsh sunlight. @@ -179,9 +192,29 @@ #define B_POWDER_OVERCOAT GEN_LATEST // In Gen6+, Overcoat blocks powder and spore moves from affecting the user. #define B_INFILTRATOR_SUBSTITUTE GEN_LATEST // In Gen6+, Infiltrator bypasses Substitute when using a move, excluding Transform and Sky Drop. +// Various volatile timers +#define B_CONFUSION_TURNS 5 +#define B_UPROAR_TURN_COUNT 5 +#define B_RAMPAGE_TURNS 3 +#define B_DISABLE_TIMER 4 +#define B_ENCORE_TIMER 4 +#define B_PERISH_SONG_TIMER 3 +#define B_TAUNT_TIMER 5 +#define B_SLOW_START_TIMER 5 +#define B_EMBARGO_TIMER 5 +#define B_MAGNET_RISE_TIMER 5 +#define B_TELEKINESIS_TIMER 3 +#define B_HEAL_BLOCK_TIMER 5 +#define B_LASER_FOCUS_TIMER 2 +#define B_THROAT_CHOP_TIMER 2 +#define B_WRAP_TURNS 7 // Max number of turns with Grip Claw +#define B_SYRUP_BOMB_TIMER 3 +#define B_TORMENT_TIMER 3 + // Item settings #define B_CONFUSE_BERRIES_HEAL GEN_LATEST // In Gens3-6, Figy and similar berries restore 1/8th of HP and trigger at half HP. In Gen7 they restore half HP, triggering at 25% HP. In Gen8 they heal 1/3rd of HP. #define B_X_ITEMS_BUFF GEN_LATEST // In Gen7+, the X Items raise a stat by 2 stages instead of 1. +#define B_X_ITEMS_CROSSUSE TRUE // In Gen3, you can only use X item on the current battler, but in Gen7 you can use an X item on any friendly battler in double battles (we are not sure in which gen the change occured) #define B_MENTAL_HERB GEN_LATEST // In Gen5+, the Mental Herb cures Taunt, Encore, Torment, Heal Block, and Disable in addition to Infatuation from before. #define B_TRAINERS_KNOCK_OFF_ITEMS TRUE // If TRUE, trainers can steal/swap your items (non-berries are restored after battle). In vanilla games, trainers cannot steal items outside of facilities. #define B_RETURN_STOLEN_NPC_ITEMS GEN_LATEST // In Gen5+, Thief and Covet no longer steal items from NPCs. @@ -230,9 +263,6 @@ // Var Settings // To use the following features, change the 0 for a var present in include/constants/vars.h, preferably an unused one. // Eg: You may rename VAR_UNUSED_0x404E to a descriptive name and use it below. -#define B_VAR_STARTING_STATUS 0 // If this var has a value, assigning a STATUS_FIELD_xx_TERRAIN to it before battle causes the battle to start with that terrain active. - // This var should never remain non-zero long enough for the player to save. -#define B_VAR_STARTING_STATUS_TIMER 0 // If this var has a value greater or equal than 1 field terrains will last that number of turns, otherwise they will last until they're overwritten. #define B_VAR_WILD_AI_FLAGS 0 // If not 0, you can use this var to add to default wild AI flags. IMPORTANT: NOT usable with flags above (1 << 15) // This var should never remain non-zero long enough for the player to save. // For better wild AI handling, edit GetWildAiFlags() in src/battle_ai_main.c @@ -268,6 +298,7 @@ #define B_ABILITY_WEATHER GEN_LATEST // In Gen6+, ability-induced weather lasts 5 turns. Before, it lasted until the battle ended or until it was changed by a move or a different weather-affecting ability. #define B_SANDSTORM_SPDEF_BOOST GEN_LATEST // In Gen4+, Sandstorm weather multiplies the Sp. Defense of Rock-type Pokémon by x1.5. +#define B_SANDSTORM_SOLAR_BEAM GEN_LATEST // In Gen3+, Sandstorm decreases the power of Solar Beam, when it didn't before. #define B_OVERWORLD_FOG GEN_LATEST // In Gen8+, overworld Fog summons Misty Terrain in battle. In Gen4 only, overworld Fog summons the unique fog weather condition in battle. #define B_OVERWORLD_SNOW GEN_LATEST // In Gen9+, overworld Snow will summon snow instead of hail in battle. #define B_SNOW_WARNING GEN_LATEST // In Gen9+, Snow Warning will summon snow instead of hail. @@ -299,10 +330,14 @@ #define B_ANIMATE_MON_AFTER_KO TRUE // If set to TRUE, if a Pokémon on the opposite site faints, the non-fainted Pokemon will display a victory animation. #define B_ANIMATE_MON_AFTER_FAILED_POKEBALL TRUE // If set to TRUE, if a Pokémon on the opposite side breaks out of a thrown Poké Ball, the wild Pokémon will display its animation. #define B_SHOW_DYNAMAX_MESSAGE FALSE // If set to TRUE, an additional battle message is shown after completing Dynamaxing/Gigantamaxing. +#define B_HPBAR_COLOR_THRESHOLD GEN_LATEST // In Gen 5+, HP bar color thresholds were changed to be based on the actual HP values instead of the pixel length of the HP bar, leading to more accurate HP bar colors. // Catching settings #define B_SEMI_INVULNERABLE_CATCH GEN_LATEST // In Gen4+, you cannot throw a ball against a Pokemon that is in a semi-invulnerable state (dig/fly/etc) #define B_CATCHING_CHARM_BOOST 100 // % boost in Critical Capture odds if player has the Catching Charm. +#define B_INCAPACITATED_CATCH_BONUS GEN_LATEST // In Gen5+, the catch rate bonus for a mon with sleep or freeze is 2.5x. In Gen4 and below its only a 2x bonus. +#define B_LOW_LEVEL_CATCH_BONUS GEN_LATEST // In Gen8, a bonus is added to the catch rate if catching a mon lower than level 20. In Gen9, the bonus is only applied to mons lower than level 13. +#define B_MISSING_BADGE_CATCH_MALUS GEN_LATEST // In Gen9, a penalty is added to the catch rate if trying to catch a mon 5 levels above the current obedience level, based on the number of gym badges obtained. #define B_CRITICAL_CAPTURE TRUE // If set to TRUE, Critical Capture will be enabled. #define B_CRITICAL_CAPTURE_LOCAL_DEX TRUE // If set to FALSE, Critical Capture % is based off of the National Pokedex estimated by enabled generations. #define B_CRITICAL_CAPTURE_IF_OWNED GEN_LATEST // In Gen9, a capture appear critical if the pokemon you are trying to catch already has a dex entry (has already been caught) diff --git a/include/config/game_corner_expansion.h b/include/config/game_corner_expansion.h new file mode 100644 index 000000000000..d344e393c956 --- /dev/null +++ b/include/config/game_corner_expansion.h @@ -0,0 +1,26 @@ +#ifndef GUARD_GAME_CORNER_EXPANSION_H +#define GUARD_GAME_CORNER_EXPANSION_H + +#define GAME_CORNER_VAR_ID_CHECK 0 // This is just a funny variable used for the Game Corner map itself and can be set to 0 +#define GAME_CORNER_VAR_WINNINGS VAR_TEMP_4 // Must be set to a valid variable for most minigames to function + +#define FLAPPY_VAR_HIGH_SCORE 0 // If this variable isn't set to 0, this tracks the high score of the Flappy Bird minigame + +#define DERBY_FLAG_NICKNAME FLAG_UNUSED_0x023 // This flag tracks whether nicknames should be reset or not. Must be set to a valid flag +#define DERBY_FLAG_RESET FLAG_UNUSED_0x024 // This flag tracks whether the data for the derby should be reset or not. Must be set to a valid flag +#define DERBY_VAR_RACER_NAME_1 VAR_ROUTE105_STATE // The following 6 variables track the data for each indivial racer in their respective variable +#define DERBY_VAR_RACER_NAME_2 VAR_ROUTE106_STATE // Species is stored in the hundreds place in decimal +#define DERBY_VAR_RACER_NAME_3 VAR_ROUTE107_STATE // Shininess is stored in the tens place in decimal +#define DERBY_VAR_RACER_NAME_4 VAR_ROUTE108_STATE // Condition is stored in the ones place in decimal +#define DERBY_VAR_RACER_NAME_5 VAR_ROUTE109_STATE +#define DERBY_VAR_RACER_NAME_6 VAR_ROUTE111_STATE +#define DERBY_VAR_RACER_1 VAR_ROUTE122_STATE // The following 6 variables hold the nickname ID for each racer in the derby +#define DERBY_VAR_RACER_2 VAR_ROUTE123_STATE // These variables only hold the ID itself, the actual nickname uses the species data as well +#define DERBY_VAR_RACER_3 VAR_ROUTE124_STATE +#define DERBY_VAR_RACER_4 VAR_ROUTE125_STATE +#define DERBY_VAR_RACER_5 VAR_ROUTE126_STATE +#define DERBY_VAR_RACER_6 VAR_ROUTE127_STATE + +#define FLIP_VAR_LEVEL 0 // If this variable isn't set to 0, it will track the difficult level for any game of Voltorb Flip after the first one + +#endif // GUARD_GAME_CORNER_EXPANSION_H diff --git a/include/config/item.h b/include/config/item.h index f260d76708ab..a995407d3fce 100644 --- a/include/config/item.h +++ b/include/config/item.h @@ -20,6 +20,7 @@ #define I_PREMIER_BALL_BONUS GEN_LATEST // In LGPE onwards (Gen8+ here), you are given a Premier Ball for every 10 Poké Balls of any type and in the same purchase. Previously, it only applied to regular Poké Balls and only 1 could be obtained per purchase. #define I_ROTOM_CATALOG_THUNDER_SHOCK GEN_LATEST // In Gen9+, reverting Rotom to its base form will teach it Thunder Shock even if it knows another move. #define I_REPEL_INCLUDE_FAINTED GEN_LATEST // In Gen1 and Gen6+, Repels always use the level of the first member of the party to check which wild Pokémon to prevent encounters with, even if that member is fainted. In Gen2-5, it only uses the level of the first non-fainted Pokémon. +#define I_LAX_INCENSE_BOOST GEN_LATEST // In Gen4+, Lax Incense increases evasion by 10% instead of 5%. // TM config #define I_REUSABLE_TMS FALSE // In Gen5-8, TMs are reusable. Setting this to TRUE will make all vanilla TMs reusable, though they can also be cherry-picked by setting their importance to 1. @@ -36,7 +37,8 @@ #define I_REPEL_LURE_MENU TRUE // If TRUE, the player is able to choose which Repel/Lure to use once the previous one runs out. Cursor position is saved by VAR_LAST_REPEL_LURE_USED if not 0. // Vs. Seeker -#define I_VS_SEEKER_CHARGING 0 // If this flag is assigned, the Vs Seeker functionality will be enabled. When the player has the Vs. Seeker, Match Call rematch functions will stop working. Documentation for the Vs. Seeker can be found in docs/tutorials/vs_seeker.md. +#define I_VS_SEEKER_CHARGING 0 // If this flag is assigned, the Vs Seeker functionality will be enabled. When the player has the Vs. Seeker, Match Call rematch functions will stop working. Documentation for the Vs. Seeker can be found in docs/tutorials/vs_seeker.md. +#define I_SHOW_NO_ID_TRAINER DISABLED_ON_RELEASE // If TRUE, object events with a trainer type but no visible trainer id will be shown with a question mark. You may want to add vsseeker_rematchid TRAINER_ID as the top of the script to let the VS seeker know what reaction it's supposed to show. // ORAS Dowsing Machine #define I_ORAS_DOWSING_FLAG 0 // Replace 0 with an unused flag to enable the Dowsing Machine mechanic from ORAS. diff --git a/include/config/overworld.h b/include/config/overworld.h index b441862c2a9c..1fe629d19d44 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -12,6 +12,7 @@ #define OW_WHITEOUT_CUTSCENE GEN_LATEST // In Gen4+, whiting out shows an additional message and post whiteout event script cutscene with a healing NPC. (While this change was also in FRLG, for the sake of simplicity, setting this to GEN_3 will result in RSE behavior.) #define OW_DEFOG_FIELD_MOVE FALSE // If enabled, Defog can be used as a Field Move as seen in DPPt. #define OW_ROCK_CLIMB_FIELD_MOVE FALSE // If enabled, Rock Climb can be used as a Field Move as seen in DPPt. +#define OW_CHOOSE_FROM_PC_AND_PARTY TRUE // If enabled, NPCs like move tutors or trainers asking for trade will let you pick a pokemon from your PC or party instead of just your party // Item Obtain Description Box #define OW_ITEM_DESCRIPTIONS_OFF 0 // never show descriptions @@ -43,6 +44,7 @@ #define OW_BERRY_YIELD_RATE GEN_3 // Presets for how many Berries each plant can yield. #define OW_BERRY_DRAIN_RATE GEN_6_ORAS // If OW_BERRY_MOISTURE is enabled, this setting changes how fast the soil dries out. GEN_4 uses a Berry-dependent drain rate, GEN_6_XY dries out in 24 hours (4 hours with the relevant Mulch) and GEN_6_ORAS dries out in 4 hours. Other values are illegal. #define OW_BERRY_IMMORTAL FALSE // If enabled, once a Berry tree has grown a Berry, the tree will not disappear until picked by the player. +#define OW_BERRY_COLORS GEN_6_ORAS // If set to GEN_6_XY or GEN_6_ORAS, the Chesto, Wiki, Bluk, Cornn, Pamtre, Belue, Ganlon, Watmel, Qualot, Spelon, Kasib, Colbur, Lansat, Kee, Payapa, Roseli, Liechi, Enigma, and Maranga will use their colors from the stated game. Other values are illegal. // Overworld Pokémon #define OW_POKEMON_OBJECT_EVENTS TRUE // Adds Object Event fields for every species. Can be used for NPCs using the OBJ_EVENT_GFX_SPECIES macro (eg. OBJ_EVENT_GFX_SPECIES(BULBASAUR)) diff --git a/include/config/pokemon.h b/include/config/pokemon.h index e4038bfbad97..e1132f211b33 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -63,8 +63,7 @@ #define P_SHOW_DYNAMIC_TYPES FALSE // If TRUE, all moves with dynamic type changes will be reflected as their current type in battle/summary screens instead of just select ones like in vanilla. // Learnset helper toggles -#define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/make_teachables.py using the included JSON files based on available TMs and tutors. -#define P_TUTOR_MOVES_ARRAY FALSE // If TRUE, generates a gTutorMoves array automatically using make_teachables.py. (generally not needed, but the HGSS Pokedex has an optional use for it) +#define P_LEARNSET_HELPER_TEACHABLE TRUE // If FALSE, make sure to remove teachable_learnset.h from your .gitignore file. If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/make_teachables.py using the included JSON files based on available TMs and tutors. // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. @@ -75,4 +74,10 @@ // Go here if you want to disable specific families of Pokémon. #include "config/species_enabled.h" +#include "constants/sound.h" + +// Sound related settings +#define P_MODIFIED_MEGA_CRIES P_MEGA_EVOLUTIONS // If TRUE, will use the extra separate Mega Cries (approx. 3% space of ROM). if FALSE, will use the same cry for all Mega Evolutions except modified with P_MODIFIED_MEGA_CRY_MODE. By default, this is set based on if mega evolutions are enabled. +#define P_MODIFIED_MEGA_CRY_MODE CRY_MODE_HIGH_PITCH + #endif // GUARD_CONFIG_POKEMON_H diff --git a/include/config/pokerus.h b/include/config/pokerus.h new file mode 100644 index 000000000000..689b08285650 --- /dev/null +++ b/include/config/pokerus.h @@ -0,0 +1,21 @@ +#ifndef GUARD_CONFIG_POKERUS_H +#define GUARD_CONFIG_POKERUS_H + +//For Pokérus, we refer to infection as a Pokémon catching Pokérus from an enemy Pokémon (trainer or wild) and we refer to spreading as Pokémon catching Pokérus from another infected Pokémon in the party +#define P_POKERUS_ENABLED TRUE // If FALSE, Pokérus will have no effect, won't be shown and won't be aquired in any way but save data won't be affected +#define P_POKERUS_STRAIN_DISTRIBUTION GEN_LATEST // Pokérus has 16 different strains and their probability distribution change depending on generation, GEN_3 will use the Ruby/Sapphire version and GEN_4 will use the version used in Emerald and Gen 4 +#define P_POKERUS_SPREAD_ADJACENCY GEN_LATEST // In Gen 2, Pokérus spread to one adjacent Pokémon but it spreads to both adjacent Pokémon in gen 3+ +#define P_POKERUS_SPREAD_DAYS_LEFT GEN_LATEST // In Gen 2, a freshly spreaded Pokémon will get its full infection duration based on strain. In gen 3+, the Pokérus duration will copy the duration from the Pokémon it was spreaded from +#define P_POKERUS_INFECT_AGAIN GEN_LATEST // If Gen 2 only, your party can get infected even when it is already infected with Pokérus (doesn't affect spreading) +#define P_POKERUS_VISIBLE_ON_EGG GEN_LATEST // Controls if eggs can show Pokérus symbol in summary screen (TRUE from gen 3 to 6, FALSE in gen 2,7 and 8) +#define P_POKERUS_INFECT_EGG FALSE // If TRUE, eggs can receive Pokérus from spread and direction infection (gen 2). If FALSE, eggs can receive Pokérus from spread but not direct infection (gen 3). Behavior is unknown in other gens. +#define P_POKERUS_FLAG_INFECTION 0 // If Pokérus can only get infected if this flag is set or undefined (0). This emulates a gen 2 mechanic where Pokémon can only get infected by Pokérus after visiting Goldernrod. This does not affect spreading + +// Weird Pokérus behaviors that could be considered bugs. They are TRUE in vanilla Emerald but set to FALSE by default in Expansion (behaviors in other gens is unknown) +#define P_POKERUS_HERD_IMMUNITY FALSE // If TRUE, Pokémon that have been previously infected by the Pokérus in your party reduce the chances of your party getting infected by the Pokérus (because they can be rolled at the target of the infection but are now "immune") +#define P_POKERUS_WEAK_VARIANT FALSE // If TRUE, the variant 0 of Pokérus can be erased by stronger variant when Pokérus is spreading + +#define P_POKERUS_INFECTION_ODDS 3 // Actual probability is POKERUS_INFECTION_ODDS/65536 +#define P_POKERUS_SPREAD_ODDS 21846 // Actual probability is POKERUS_SPREAD_ODDS/65536 (21846 should correspond to the vanilla Random() % 3) + +#endif // GUARD_CONFIG_POKERUS_H diff --git a/include/config/save.h b/include/config/save.h index 11836396afda..5e6e17243bc8 100644 --- a/include/config/save.h +++ b/include/config/save.h @@ -1,9 +1,13 @@ #ifndef GUARD_CONFIG_SAVE_H #define GUARD_CONFIG_SAVE_H +// Menu configs +#define SKIP_SAVE_CONFIRMATION FALSE // If TRUE, skips the "There is already a saved file" confirmation when overwriting a save. + // SaveBlock1 configs #define FREE_EXTRA_SEEN_FLAGS_SAVEBLOCK1 FALSE // Free up unused Pokédex seen flags (52 bytes). #define FREE_TRAINER_HILL FALSE // Frees up Trainer Hill data (28 bytes). +#define FREE_TRAINER_TOWER FALSE // Frees up Trainer Tower data (x bytes). #define FREE_MYSTERY_EVENT_BUFFERS FALSE // Frees up ramScript (1104 bytes). #define FREE_MATCH_CALL FALSE // Frees up match call and rematch / VS Seeker data. (104 bytes). #define FREE_UNION_ROOM_CHAT FALSE // Frees up union room chat (212 bytes). diff --git a/include/config/summary_screen.h b/include/config/summary_screen.h index e76cd478b631..d0051aec99a7 100644 --- a/include/config/summary_screen.h +++ b/include/config/summary_screen.h @@ -38,7 +38,7 @@ Info taken from https://bulbapedia.bulbagarden.net/wiki/Stats_judge. #define P_ENABLE_ALL_LEVEL_UP_MOVES FALSE // If TRUE, it enables the Pokémon to learn all level up moves, regardless of its level. // TM Relearner -#define P_TM_MOVES_RELEARNER TRUE // If TRUE, enables machine move relearner. +#define P_TM_MOVES_RELEARNER FALSE // If TRUE, enables machine move relearner. #define P_ENABLE_ALL_TM_MOVES FALSE // If TRUE, it enables the Pokémon to learn all TMs its compatible with, regardless of it being in the bag. // Relearner flags - Redundant if P_ENABLE_MOVE_RELEARNERS is TRUE, but still added here incase you don't want all relearners unlocked at the same time. diff --git a/include/config/test.h b/include/config/test.h index 46dbe17a997d..53801063a78e 100644 --- a/include/config/test.h +++ b/include/config/test.h @@ -1132,10 +1132,6 @@ // Vars #undef B_VAR_DIFFICULTY #define B_VAR_DIFFICULTY TESTING_VAR_DIFFICULTY -#undef B_VAR_STARTING_STATUS -#define B_VAR_STARTING_STATUS TESTING_VAR_STARTING_STATUS -#undef B_VAR_STARTING_STATUS_TIMER -#define B_VAR_STARTING_STATUS_TIMER TESTING_VAR_STARTING_STATUS_TIMER // Flags #undef B_FLAG_SLEEP_CLAUSE diff --git a/include/constants/battle.h b/include/constants/battle.h index 97639edfd154..ba632e6f904e 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -32,9 +32,10 @@ enum BattlerPosition B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, MAX_POSITION_COUNT, + B_POSITION_ABSENT = 0xFF, }; -enum BattlerId +enum __attribute__((packed)) BattlerId { B_BATTLER_0, B_BATTLER_1, @@ -43,6 +44,15 @@ enum BattlerId MAX_BATTLERS_COUNT, }; +enum __attribute__((packed)) BattleTrainer +{ + B_TRAINER_0, + B_TRAINER_1, + B_TRAINER_2, + B_TRAINER_3, + MAX_BATTLE_TRAINERS, +}; + // These macros can be used with either battler ID or positions to get the partner or the opposite mon #define BATTLE_OPPOSITE(id) ((id) ^ BIT_SIDE) #define BATTLE_PARTNER(id) ((id) ^ BIT_FLANK) @@ -75,17 +85,17 @@ enum BattleSide #define BATTLE_TYPE_MULTI (1 << 6) #define BATTLE_TYPE_SAFARI (1 << 7) #define BATTLE_TYPE_BATTLE_TOWER (1 << 8) -#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) // Used in pokefirered as BATTLE_TYPE_OLD_MAN_TUTORIAL. +#define BATTLE_TYPE_CATCH_TUTORIAL (1 << 9) #define BATTLE_TYPE_ROAMER (1 << 10) #define BATTLE_TYPE_EREADER_TRAINER (1 << 11) #define BATTLE_TYPE_RAID (1 << 12) #define BATTLE_TYPE_LEGENDARY (1 << 13) #define BATTLE_TYPE_14 (1 << 14) -#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) // Used in pokefirered as BATTLE_TYPE_GHOST. -#define BATTLE_TYPE_DOME (1 << 16) // Used in pokefirered as BATTLE_TYPE_POKEDUDE. -#define BATTLE_TYPE_PALACE (1 << 17) // Used in pokefirered as BATTLE_TYPE_WILD_SCRIPTED. -#define BATTLE_TYPE_ARENA (1 << 18) // Used in pokefirered as BATTLE_TYPE_LEGENDARY_FRLG. -#define BATTLE_TYPE_FACTORY (1 << 19) // Used in pokefirered as BATTLE_TYPE_TRAINER_TOWER. +#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) +#define BATTLE_TYPE_DOME (1 << 16) +#define BATTLE_TYPE_PALACE (1 << 17) +#define BATTLE_TYPE_ARENA (1 << 18) +#define BATTLE_TYPE_FACTORY (1 << 19) #define BATTLE_TYPE_PIKE (1 << 20) #define BATTLE_TYPE_PYRAMID (1 << 21) #define BATTLE_TYPE_INGAME_PARTNER (1 << 22) @@ -93,15 +103,16 @@ enum BattleSide #define BATTLE_TYPE_RECORDED (1 << 24) #define BATTLE_TYPE_RECORDED_LINK (1 << 25) #define BATTLE_TYPE_TRAINER_HILL (1 << 26) +#define BATTLE_TYPE_TRAINER_TOWER BATTLE_TYPE_TRAINER_HILL #define BATTLE_TYPE_SECRET_BASE (1 << 27) -#define BATTLE_TYPE_28 (1 << 28) -#define BATTLE_TYPE_29 (1 << 29) +#define BATTLE_TYPE_GHOST (1 << 28) +#define BATTLE_TYPE_POKEDUDE (1 << 29) #define BATTLE_TYPE_30 (1 << 30) #define BATTLE_TYPE_RECORDED_IS_MASTER (1 << 31) #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_TYPE_RECORDED_INVALID ((BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE \ - | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \ + | BATTLE_TYPE_CATCH_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \ | BATTLE_TYPE_LEGENDARY \ | BATTLE_TYPE_RECORDED | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE)) @@ -116,6 +127,9 @@ enum BattleSide #define BATTLE_MULTI_TEST (BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS) #define BATTLE_TWO_VS_ONE_TEST (BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI) +#define RIVAL_BATTLE_HEAL_AFTER 1 +#define RIVAL_BATTLE_TUTORIAL 3 + // Battle Outcome defines #define B_OUTCOME_WON 1 #define B_OUTCOME_LOST 2 @@ -162,19 +176,19 @@ enum VolatileFlags * These are removed after exiting the battle or switching * Enum, Type Type, max value, flags */ #define VOLATILE_DEFINITIONS(F) \ - F(VOLATILE_CONFUSION, confusionTurns, (u32, 6), V_BATON_PASSABLE) \ + F(VOLATILE_CONFUSION, confusionTurns, (u32, B_CONFUSION_TURNS + 1), V_BATON_PASSABLE) \ F(VOLATILE_FLINCHED, flinched, (u32, 1)) \ F(VOLATILE_UPROAR, uproarTurns, (u32, 5)) \ F(VOLATILE_TORMENT, torment, (u32, 1)) \ F(VOLATILE_BIDE, bideTurns, (u32, 3)) \ - F(VOLATILE_LOCK_CONFUSE, lockConfusionTurns, (u32, 3)) \ + F(VOLATILE_RAMPAGE_TURNS, rampageTurns, (u32, B_RAMPAGE_TURNS + 1)) \ F(VOLATILE_MULTIPLETURNS, multipleTurns, (u32, 1)) \ F(VOLATILE_WRAPPED, wrapped, (u32, 1)) \ - F(VOLATILE_WRAPPED_BY, wrappedBy, (enum BattlerId, MAX_BITS(4))) \ + F(VOLATILE_WRAPPED_BY, wrappedBy, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT))) \ F(VOLATILE_WRAPPED_MOVE, wrappedMove, (u32, MOVES_COUNT_ALL - 1)) \ F(VOLATILE_POWDER, powder, (u32, 1)) \ F(VOLATILE_UNUSED, padding, (u32, 1)) \ - F(VOLATILE_INFATUATION, infatuation, (enum BattlerId, MAX_BITS(4))) \ + F(VOLATILE_INFATUATION, infatuation, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT))) \ F(VOLATILE_DEFENSE_CURL, defenseCurl, (u32, 1)) \ F(VOLATILE_TRANSFORMED, transformed, (u32, 1)) \ F(VOLATILE_RAGE, rage, (u32, 1)) \ @@ -186,21 +200,21 @@ enum VolatileFlags F(VOLATILE_FORESIGHT, foresight, (u32, 1)) \ F(VOLATILE_DRAGON_CHEER, dragonCheer, (u32, 1), V_BATON_PASSABLE) \ F(VOLATILE_FOCUS_ENERGY, focusEnergy, (u32, 1), V_BATON_PASSABLE) \ - F(VOLATILE_BONUS_CRIT_STAGES, bonusCritStages, (u32, 3)) \ - F(VOLATILE_SEMI_INVULNERABLE, semiInvulnerable, (u32, SEMI_INVULNERABLE_COUNT - 1)) \ + F(VOLATILE_BONUS_CRIT_STAGES, bonusCritStages, (u32, 4)) \ + F(VOLATILE_SEMI_INVULNERABLE, semiInvulnerable, (enum SemiInvulnerableState, SEMI_INVULNERABLE_COUNT)) \ F(VOLATILE_ELECTRIFIED, electrified, (u32, 1)) \ F(VOLATILE_MUD_SPORT, mudSport, (u32, 1), V_BATON_PASSABLE) \ F(VOLATILE_WATER_SPORT, waterSport, (u32, 1), V_BATON_PASSABLE) \ F(VOLATILE_INFINITE_CONFUSION, infiniteConfusion, (u32, 1), V_BATON_PASSABLE) \ F(VOLATILE_SALT_CURE, saltCure, (u32, 1)) \ F(VOLATILE_SYRUP_BOMB, syrupBomb, (u32, 1)) \ - F(VOLATILE_STICKY_SYRUPED_BY, stickySyrupedBy, (enum BattlerId, MAX_BITS(4))) \ + F(VOLATILE_STICKY_SYRUPED_BY, stickySyrupedBy, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT))) \ F(VOLATILE_GLAIVE_RUSH, glaiveRush, (u32, 1)) \ - F(VOLATILE_LEECH_SEED, leechSeed, (enum BattlerId, MAX_BITS(4)), V_BATON_PASSABLE) \ + F(VOLATILE_LEECH_SEED, leechSeed, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT)), V_BATON_PASSABLE) \ F(VOLATILE_LOCK_ON, lockOn, (u32, 2), V_BATON_PASSABLE) \ F(VOLATILE_PERISH_SONG, perishSong, (u32, 1), V_BATON_PASSABLE) \ F(VOLATILE_MINIMIZE, minimize, (u32, 1)) \ - F(VOLATILE_CHARGE_TIMER, chargeTimer, (u32, 2)) \ + F(VOLATILE_CHARGE_TIMER, chargeTimer, (u32, 3)) \ F(VOLATILE_ROOT, root, (u32, 1), V_BATON_PASSABLE) \ F(VOLATILE_YAWN, yawn, (u32, 2)) \ F(VOLATILE_IMPRISON, imprison, (u32, 1)) \ @@ -219,7 +233,65 @@ enum VolatileFlags F(VOLATILE_VESSEL_OF_RUIN, vesselOfRuin, (u32, 1)) \ F(VOLATILE_SWORD_OF_RUIN, swordOfRuin, (u32, 1)) \ F(VOLATILE_TABLETS_OF_RUIN, tabletsOfRuin, (u32, 1)) \ - F(VOLATILE_BEADS_OF_RUIN, beadsOfRuin, (u32, 1)) + F(VOLATILE_BEADS_OF_RUIN, beadsOfRuin, (u32, 1)) \ + F(VOLATILE_IS_TRANSFORMED_MON_SHINY, isTransformedMonShiny, (u32, 1)) \ + F(VOLATILE_TRANSFORMED_MON_PID, transformedMonPID, (u32, UINT32_MAX)) \ + F(VOLATILE_TRANSFORMED_MON_SPECIES, transformedMonSpecies, (u32, NUM_SPECIES)) \ + F(VOLATILE_DISABLED_MOVE, disabledMove, (u32, MOVES_COUNT_ALL)) \ + F(VOLATILE_ENCORED_MOVE, encoredMove, (u32, MOVES_COUNT_ALL)) \ + F(VOLATILE_PROTECT_USES, consecutiveMoveUses, (u32, UINT8_MAX)) \ + F(VOLATILE_STOCKPILE_COUNTER, stockpileCounter, (u32, MAX_STAT_STAGE)) \ + F(VOLATILE_STOCKPILE_DEF, stockpileDef, (u32, MAX_STAT_STAGE)) \ + F(VOLATILE_STOCKPILE_SP_DEF, stockpileSpDef, (u32, MAX_STAT_STAGE)) \ + F(VOLATILE_STOCKPILE_BEFORE_DEF, stockpileBeforeDef, (u32, MAX_STAT_STAGE)) \ + F(VOLATILE_STOCKPILE_BEFORE_SP_DEF, stockpileBeforeSpDef, (u32, MAX_STAT_STAGE)) \ + F(VOLATILE_SUBSTITUTE_HP, substituteHP, (u32, UINT8_MAX)) \ + F(VOLATILE_ENCORED_MOVE_POS, encoredMovePos, (u32, MAX_BITS(MAX_MON_MOVES))) \ + F(VOLATILE_DISABLE_TIMER, disableTimer, (u32, B_DISABLE_TIMER)) \ + F(VOLATILE_ENCORE_TIMER, encoreTimer, (u32, B_ENCORE_TIMER)) \ + F(VOLATILE_PERISH_SONG_TIMER, perishSongTimer, (u32, B_PERISH_SONG_TIMER)) \ + F(VOLATILE_ROLLOUT_TIMER, rolloutTimer, (u32, UINT8_MAX)) \ + F(VOLATILE_FURY_CUTTER_COUNTER, furyCutterCounter, (u32, UINT8_MAX)) \ + F(VOLATILE_METRONOME_ITEM_COUNTER, metronomeItemCounter, (u32, UINT8_MAX)) \ + F(VOLATILE_BATTLER_PREVENTING_ESCAPE, battlerPreventingEscape, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT))) \ + F(VOLATILE_BATTLER_WITH_SURE_HIT, battlerWithSureHit, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT))) \ + F(VOLATILE_MIMICKED_MOVES, mimickedMoves, (u32, MAX_BITS(MAX_MON_MOVES))) \ + F(VOLATILE_RECHARGE_TIMER, rechargeTimer, (u32, 2)) \ + F(VOLATILE_AUTOTOMIZE_COUNT, autotomizeCount, (u32, UINT8_MAX)) \ + F(VOLATILE_SLOW_START_TIMER, slowStartTimer, (u32, B_SLOW_START_TIMER)) \ + F(VOLATILE_EMBARGO_TIMER, embargoTimer, (u32, B_EMBARGO_TIMER)) \ + F(VOLATILE_MAGNET_RISE_TIMER, magnetRiseTimer, (u32, B_MAGNET_RISE_TIMER)) \ + F(VOLATILE_TELEKINESIS_TIMER, telekinesisTimer, (u32, B_TELEKINESIS_TIMER)) \ + F(VOLATILE_HEAL_BLOCK_TIMER, healBlockTimer, (u32, B_HEAL_BLOCK_TIMER)) \ + F(VOLATILE_TAUNT_TIMER, tauntTimer, (u32, B_TAUNT_TIMER)) \ + F(VOLATILE_TORMENT_TIMER, tormentTimer, (u32, B_TORMENT_TIMER)) \ + F(VOLATILE_LASER_FOCUS_TIMER, laserFocusTimer, (u32, B_LASER_FOCUS_TIMER)) \ + F(VOLATILE_THROAT_CHOP_TIMER, throatChopTimer, (u32, B_THROAT_CHOP_TIMER)) \ + F(VOLATILE_WRAP_TURNS, wrapTurns, (u32, B_WRAP_TURNS)) \ + F(VOLATILE_SYRUP_BOMB_TIMER, syrupBombTimer, (u32, B_SYRUP_BOMB_TIMER)) \ + F(VOLATILE_USED_MOVES, usedMoves, (u32, MAX_BITS(MAX_MON_MOVES))) \ + F(VOLATILE_TRUANT_COUNTER, truantCounter, (u32, 1)) \ + F(VOLATILE_TRUANT_SWITCH_IN_HACK, truantSwitchInHack, (u32, 1)) \ + F(VOLATILE_TAR_SHOT, tarShot, (u32, 1)) \ + F(VOLATILE_OCTOLOCK, octolock, (u32, 1)) \ + F(VOLATILE_CUD_CHEW, cudChew, (u32, 1)) \ + F(VOLATILE_WEATHER_ABILITY_DONE, weatherAbilityDone, (u32, 1)) \ + F(VOLATILE_TERRAIN_ABILITY_DONE, terrainAbilityDone, (u32, 1)) \ + F(VOLATILE_SYRUP_BOMB_IS_SHINY, syrupBombIsShiny, (u32, 1)) \ + F(VOLATILE_USED_PROTEAN_LIBERO, usedProteanLibero, (u32, 1)) \ + F(VOLATILE_FLASH_FIRE_BOOSTED, flashFireBoosted, (u32, 1)) \ + F(VOLATILE_BOOSTER_ENERGY_ACTIVATED, boosterEnergyActivated, (u32, 1)) \ + F(VOLATILE_OVERWRITTEN_ABILITY, overwrittenAbility, (enum Ability, ABILITIES_COUNT)) \ + F(VOLATILE_ROOST_ACTIVE, roostActive, (u32, 1)) \ + F(VOLATILE_UNBURDEN_ACTIVE, unburdenActive, (u32, 1)) \ + F(VOLATILE_NEUTRALIZING_GAS, neutralizingGas, (u32, 1)) \ + F(VOLATILE_UNNERVE_ACTIVATED, unnerveActivated, (u32, 1)) \ + F(VOLATILE_ENDURED, endured, (u32, 1)) \ + F(VOLATILE_TRY_EJECT_PACK, tryEjectPack, (u32, 1)) \ + F(VOLATILE_OCTOLOCKED_BY, octolockedBy, (enum BattlerId, MAX_BITS(MAX_BATTLERS_COUNT))) \ + F(VOLATILE_PARADOX_BOOSTED_STAT, paradoxBoostedStat, (enum Stat, NUM_STATS - 1)) \ + F(VOLATILE_UNABLE_TO_USE_MOVE, unableToUseMove, (u32, 1)) \ + F(VOLATILE_ACTIVATE_DANCER, activateDancer, (u32, 1)) /* Use within a macro to get the maximum allowed value for a volatile. Requires _typeMaxValue as input. */ @@ -248,7 +320,7 @@ enum SemiInvulnerableState STATE_PHANTOM_FORCE, STATE_SKY_DROP, STATE_COMMANDER, - SEMI_INVULNERABLE_COUNT, + SEMI_INVULNERABLE_COUNT }; enum SemiInvulnerableExclusion @@ -269,13 +341,13 @@ enum SemiInvulnerableExclusion #define HITMARKER_UNUSED_16 (1 << 16) #define HITMARKER_DISABLE_ANIMATION (1 << 17) // disable animations during battle scripts, e.g. for Bug Bite #define HITMARKER_UNUSED_18 (1 << 18) -#define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19) +#define HITMARKER_UNUSED_19 (1 << 19) #define HITMARKER_UNUSED_20 (1 << 20) #define HITMARKER_UNUSED_21 (1 << 21) #define HITMARKER_PLAYER_FAINTED (1 << 22) #define HITMARKER_UNUSED_23 (1 << 23) #define HITMARKER_UNUSED_24 (1 << 24) -#define HITMARKER_OBEYS (1 << 25) +#define HITMARKER_UNUSED_25 (1 << 25) #define HITMARKER_UNUSED_26 (1 << 26) #define HITMARKER_UNUSED_27 (1 << 27) #define HITMARKER_FAINTED(battler) (1u << (battler + 28)) // Also uses bits 29, 30 and 31 @@ -339,13 +411,15 @@ enum TypeSideHazard #define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) #define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) #define MOVE_RESULT_ONE_HIT_KO (1 << 4) -#define MOVE_RESULT_FAILED (1 << 5) -#define MOVE_RESULT_FOE_ENDURED (1 << 6) -#define MOVE_RESULT_FOE_HUNG_ON (1 << 7) -#define MOVE_RESULT_STURDIED (1 << 8) -#define MOVE_RESULT_FOE_ENDURED_AFFECTION (1 << 9) -#define MOVE_RESULT_SYNCHRONOISE_AFFECTED (1 << 10) -#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) +#define MOVE_RESULT_ONE_HIT_KO_NO_AFFECT (1 << 5) +#define MOVE_RESULT_ONE_HIT_KO_STURDY (1 << 6) +#define MOVE_RESULT_FAILED (1 << 7) +#define MOVE_RESULT_FOE_ENDURED (1 << 8) +#define MOVE_RESULT_FOE_HUNG_ON (1 << 9) +#define MOVE_RESULT_STURDIED (1 << 10) +#define MOVE_RESULT_FOE_ENDURED_AFFECTION (1 << 11) +#define MOVE_RESULT_AVOIDED_ATTACK (MOVE_RESULT_MISSED | MOVE_RESULT_FAILED) +#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_FAILED | MOVE_RESULT_DOESNT_AFFECT_FOE) enum BattleWeather { @@ -377,11 +451,11 @@ enum BattleWeather #define B_WEATHER_FOG (1 << BATTLE_WEATHER_FOG) #define B_WEATHER_STRONG_WINDS (1 << BATTLE_WEATHER_STRONG_WINDS) -#define B_WEATHER_ANY (B_WEATHER_RAIN | B_WEATHER_SANDSTORM | B_WEATHER_SUN | B_WEATHER_HAIL | B_WEATHER_STRONG_WINDS | B_WEATHER_SNOW | B_WEATHER_FOG) #define B_WEATHER_DAMAGING_ANY (B_WEATHER_HAIL | B_WEATHER_SANDSTORM) #define B_WEATHER_ICY_ANY (B_WEATHER_HAIL | B_WEATHER_SNOW) #define B_WEATHER_LOW_LIGHT (B_WEATHER_FOG | B_WEATHER_ICY_ANY | B_WEATHER_RAIN | B_WEATHER_SANDSTORM) #define B_WEATHER_PRIMAL_ANY (B_WEATHER_RAIN_PRIMAL | B_WEATHER_SUN_PRIMAL | B_WEATHER_STRONG_WINDS) +#define B_WEATHER_ANY (B_WEATHER_RAIN | B_WEATHER_SANDSTORM | B_WEATHER_SUN | B_WEATHER_ICY_ANY | B_WEATHER_STRONG_WINDS | B_WEATHER_FOG) // Explicit numbers until frostbite because those shouldn't be shifted enum __attribute__((packed)) MoveEffect @@ -419,6 +493,7 @@ enum __attribute__((packed)) MoveEffect MOVE_EFFECT_RAGE, MOVE_EFFECT_PREVENT_ESCAPE, MOVE_EFFECT_NIGHTMARE, + MOVE_EFFECT_GLAIVE_RUSH, MOVE_EFFECT_ALL_STATS_UP, MOVE_EFFECT_REMOVE_STATUS, MOVE_EFFECT_ATK_DEF_DOWN, @@ -519,6 +594,11 @@ enum __attribute__((packed)) MoveEffect MOVE_EFFECT_FIXED_POWER, // Max move effects end. They can be used for (custom) normal moves. + // Move effects that happen before the move hits. Set in SetPreAttackMoveEffect + MOVE_EFFECT_BREAK_SCREEN, + MOVE_EFFECT_STEAL_STATS, + MOVE_EFFECT_BEAT_UP_MESSAGE, // Handles the message printing for gen2,3 and 4 + NUM_MOVE_EFFECTS }; @@ -528,8 +608,6 @@ enum __attribute__((packed)) MoveEffect #define MOVE_EFFECT_FREEZE_OR_FROSTBITE MOVE_EFFECT_FREEZE #endif -#define MOVE_EFFECT_CONTINUE 0x8000 - // Battle environment defines for gBattleEnvironment. enum BattleEnvironments { @@ -556,7 +634,7 @@ enum BattleEnvironments BATTLE_ENVIRONMENT_GROUDON, BATTLE_ENVIRONMENT_KYOGRE, BATTLE_ENVIRONMENT_RAYQUAZA, - // New battle environments are used for Secret Power but not fully implemented. + // New battle environments are used for Secret Power and Nature Power but not fully implemented. BATTLE_ENVIRONMENT_SOARING, BATTLE_ENVIRONMENT_SKY_PILLAR, BATTLE_ENVIRONMENT_BURIAL_GROUND, @@ -585,8 +663,9 @@ enum BattleEnvironments #define BATTLE_RUN_FORBIDDEN 1 #define BATTLE_RUN_FAILURE 2 -#define B_WIN_TYPE_NORMAL 0 -#define B_WIN_TYPE_ARENA 1 +#define B_WIN_TYPE_NORMAL 0 +#define B_WIN_TYPE_ARENA 1 +#define B_WIN_TYPE_KANTO_TUTORIAL 2 // Window Ids for sStandardBattleWindowTemplates / sBattleArenaWindowTemplates #define B_WIN_MSG 0 @@ -614,6 +693,7 @@ enum BattleEnvironments #define B_WIN_VS_OUTCOME_LEFT 22 #define B_WIN_VS_OUTCOME_RIGHT 23 #define B_WIN_MOVE_DESCRIPTION 24 +#define B_WIN_OAK_OLD_MAN 25 // The following are duplicate id values for windows that Battle Arena uses differently. #define ARENA_WIN_PLAYER_NAME 15 @@ -631,30 +711,30 @@ enum BattleEnvironments // Indicator for the party summary bar to display an empty slot. #define HP_EMPTY_SLOT 0xFFFF -#define MOVE_TARGET_SELECTED 0 -#define MOVE_TARGET_DEPENDS (1 << 0) -#define MOVE_TARGET_OPPONENT (1 << 1) -#define MOVE_TARGET_RANDOM (1 << 2) -#define MOVE_TARGET_BOTH (1 << 3) -#define MOVE_TARGET_USER (1 << 4) -#define MOVE_TARGET_FOES_AND_ALLY (1 << 5) -#define MOVE_TARGET_OPPONENTS_FIELD (1 << 6) -#define MOVE_TARGET_ALLY (1 << 7) -#define MOVE_TARGET_ALL_BATTLERS ((1 << 8) | MOVE_TARGET_USER) // No functionality for status moves - -// For the second argument of GetBattleMoveTarget, when no target override is needed -#define NO_TARGET_OVERRIDE 0 +enum MoveTarget +{ + TARGET_NONE, + TARGET_SELECTED, + TARGET_SMART, // Like target select but can also smartly redirect to partner. Works only with strikeCount > 1 moves + TARGET_DEPENDS, + TARGET_OPPONENT, + TARGET_RANDOM, + TARGET_BOTH, + TARGET_USER, + TARGET_ALLY, + TARGET_USER_AND_ALLY, + TARGET_USER_OR_ALLY, // Acupressure + TARGET_FOES_AND_ALLY, + TARGET_FIELD, // Moves that target the field, e.g. Rain Dance + TARGET_OPPONENTS_FIELD, // Targets all other battlers and self, e.g. Teatime + TARGET_ALL_BATTLERS, +}; // Constants for Parental Bond #define PARENTAL_BOND_1ST_HIT 2 #define PARENTAL_BOND_2ND_HIT 1 #define PARENTAL_BOND_OFF 0 -// Constants for if HandleScriptMegaPrimalBurst should handle Mega Evolution, Primal Reversion, or Ultra Burst. -#define HANDLE_TYPE_MEGA_EVOLUTION 0 -#define HANDLE_TYPE_PRIMAL_REVERSION 1 -#define HANDLE_TYPE_ULTRA_BURST 2 - // Constants for Torment #define PERMANENT_TORMENT 0xF @@ -669,26 +749,62 @@ enum FaintedActions FAINTED_ACTIONS_MAX_CASE, }; -// Constants for B_VAR_STARTING_STATUS -// Timer value controlled by B_VAR_STARTING_STATUS_TIMER +// Enum, fieldName, Type, max value +#define STARTING_STATUS_DEFINITIONS(F) \ + F(STARTING_STATUS_ELECTRIC_TERRAIN, electricTerrain, (u32, 1)) /* Electric Terrain (Permanent) */ \ + F(STARTING_STATUS_ELECTRIC_TERRAIN_TEMPORARY, electricTerrainTemporary, (u32, 1)) /* Electric Terrain Temporary (5 turns) */ \ + F(STARTING_STATUS_MISTY_TERRAIN, mistyTerrain, (u32, 1)) /* Misty Terrain (Permanent) */ \ + F(STARTING_STATUS_MISTY_TERRAIN_TEMPORARY, mistyTerrainTemporary, (u32, 1)) /* Misty Terrain Temporary (5 turns) */ \ + F(STARTING_STATUS_GRASSY_TERRAIN, grassyTerrain, (u32, 1)) /* Grassy Terrain (Permanent) */ \ + F(STARTING_STATUS_GRASSY_TERRAIN_TEMPORARY, grassyTerrainTemporary, (u32, 1)) /* Grassy Terrain Temporary (5 turns) */ \ + F(STARTING_STATUS_PSYCHIC_TERRAIN, psychicTerrain, (u32, 1)) /* Psychic Terrain (Permanent) */ \ + F(STARTING_STATUS_PSYCHIC_TERRAIN_TEMPORARY, psychicTerrainTemporary, (u32, 1)) /* Psychic Terrain Temporary (5 turns) */ \ + F(STARTING_STATUS_TRICK_ROOM, trickRoom, (u32, 1)) /* Trick Room (Permanent) */ \ + F(STARTING_STATUS_TRICK_ROOM_TEMPORARY, trickRoomTemporary, (u32, 1)) /* Trick Room Temporary (5 turns) */ \ + F(STARTING_STATUS_MAGIC_ROOM, magicRoom, (u32, 1)) /* Magic Room (Permanent) */ \ + F(STARTING_STATUS_MAGIC_ROOM_TEMPORARY, magicRoomTemporary, (u32, 1)) /* Magic Room Temporary (5 turns) */ \ + F(STARTING_STATUS_WONDER_ROOM, wonderRoom, (u32, 1)) /* Wonder Room (Permanent) */ \ + F(STARTING_STATUS_WONDER_ROOM_TEMPORARY, wonderRoomTemporary, (u32, 1)) /* Wonder Room Temporary (5 turns) */ \ + F(STARTING_STATUS_TAILWIND_PLAYER, tailwindPlayer, (u32, 1)) /* Tailwind Player (Permanent) */ \ + F(STARTING_STATUS_TAILWIND_PLAYER_TEMPORARY, tailwindPlayerTemporary, (u32, 1)) /* Tailwind Player Temporary (4/3 turns) */ \ + F(STARTING_STATUS_TAILWIND_OPPONENT, tailwindOpponent, (u32, 1)) /* Tailwind Opponent (Permanent) */ \ + F(STARTING_STATUS_TAILWIND_OPPONENT_TEMPORARY, tailwindOpponentTemporary, (u32, 1)) /* Tailwind Opponent Temporary (4/3 turns) */ \ + F(STARTING_STATUS_RAINBOW_PLAYER, rainbowPlayer, (u32, 1)) /* Rainbow Player (Permanent) */ \ + F(STARTING_STATUS_RAINBOW_PLAYER_TEMPORARY, rainbowPlayerTemporary, (u32, 1)) /* Rainbow Player Temporary (4 turns) */ \ + F(STARTING_STATUS_RAINBOW_OPPONENT, rainbowOpponent, (u32, 1)) /* Rainbow Opponent (Permanent) */ \ + F(STARTING_STATUS_RAINBOW_OPPONENT_TEMPORARY, rainbowOpponentTemporary, (u32, 1)) /* Rainbow Opponent Temporary (4 turns) */ \ + F(STARTING_STATUS_SEA_OF_FIRE_PLAYER, seaOfFirePlayer, (u32, 1)) /* Sea Of Fire Player (Permanent) */ \ + F(STARTING_STATUS_SEA_OF_FIRE_PLAYER_TEMPORARY, seaOfFirePlayerTemporary, (u32, 1)) /* Sea Of Fire Player Temporary (4 turns) */ \ + F(STARTING_STATUS_SEA_OF_FIRE_OPPONENT, seaOfFireOpponent, (u32, 1)) /* Sea Of Fire Opponent (Permanent) */ \ + F(STARTING_STATUS_SEA_OF_FIRE_OPPONENT_TEMPORARY, seaOfFireOpponentTemporary, (u32, 1)) /* Sea Of Fire Opponent Temporary (4 turns) */ \ + F(STARTING_STATUS_SWAMP_PLAYER, swampPlayer, (u32, 1)) /* Swamp Player (Permanent) */ \ + F(STARTING_STATUS_SWAMP_PLAYER_TEMPORARY, swampPlayerTemporary, (u32, 1)) /* Swamp Player Temporary (4 turns) */ \ + F(STARTING_STATUS_SWAMP_OPPONENT, swampOpponent, (u32, 1)) /* Swamp Opponent (Permanent) */ \ + F(STARTING_STATUS_SWAMP_OPPONENT_TEMPORARY, swampOpponentTemporary, (u32, 1)) /* Swamp Opponent Temporary (4 turns) */ \ + /* Hazards */ \ + F(STARTING_STATUS_SPIKES_PLAYER_L1, spikesPlayerL1, (u32, 1)) /* Spikes Player Layer 1 */ \ + F(STARTING_STATUS_SPIKES_PLAYER_L2, spikesPlayerL2, (u32, 1)) /* Spikes Player Layer 2 */ \ + F(STARTING_STATUS_SPIKES_PLAYER_L3, spikesPlayerL3, (u32, 1)) /* Spikes Player Layer 3 */ \ + F(STARTING_STATUS_SPIKES_OPPONENT_L1, spikesOpponentL1, (u32, 1)) /* Spikes Opponent Layer 1 */ \ + F(STARTING_STATUS_SPIKES_OPPONENT_L2, spikesOpponentL2, (u32, 1)) /* Spikes Opponent Layer 2 */ \ + F(STARTING_STATUS_SPIKES_OPPONENT_L3, spikesOpponentL3, (u32, 1)) /* Spikes Opponent Layer 3 */ \ + F(STARTING_STATUS_TOXIC_SPIKES_PLAYER_L1, toxicSpikesPlayerL1, (u32, 1)) /* Toxic Spikes Player Layer 1 */ \ + F(STARTING_STATUS_TOXIC_SPIKES_PLAYER_L2, toxicSpikesPlayerL2, (u32, 1)) /* Toxic Spikes Player Layer 2 */ \ + F(STARTING_STATUS_TOXIC_SPIKES_OPPONENT_L1, toxicSpikesOpponentL1, (u32, 1)) /* Toxic Spikes Opponent Layer 1 */ \ + F(STARTING_STATUS_TOXIC_SPIKES_OPPONENT_L2, toxicSpikesOpponentL2, (u32, 1)) /* Toxic Spikes Opponent Layer 2 */ \ + F(STARTING_STATUS_STICKY_WEB_PLAYER, stickyWebPlayer, (u32, 1)) /* Sticky Web Player */ \ + F(STARTING_STATUS_STICKY_WEB_OPPONENT, stickyWebOpponent, (u32, 1)) /* Sticky Web Opponent */ \ + F(STARTING_STATUS_STEALTH_ROCK_PLAYER, stealthRockPlayer, (u32, 1)) /* Stealth Rock Player */ \ + F(STARTING_STATUS_STEALTH_ROCK_OPPONENT, stealthRockOpponent, (u32, 1)) /* Stealth Rock Opponent */ \ + F(STARTING_STATUS_SHARP_STEEL_PLAYER, sharpSteelPlayer, (u32, 1)) /* Sharp Steel Player */ \ + F(STARTING_STATUS_SHARP_STEEL_OPPONENT, sharpSteelOpponent, (u32, 1)) /* Sharp Steel Opponent */ \ + +#define UNPACK_STARTING_STATUS_ENUMS(_enum, ...) _enum, + +// Constants for SetStartingStatus enum StartingStatus { - STARTING_STATUS_NONE, - STARTING_STATUS_ELECTRIC_TERRAIN, - STARTING_STATUS_MISTY_TERRAIN, - STARTING_STATUS_GRASSY_TERRAIN, - STARTING_STATUS_PSYCHIC_TERRAIN, - STARTING_STATUS_TRICK_ROOM, - STARTING_STATUS_MAGIC_ROOM, - STARTING_STATUS_WONDER_ROOM, - STARTING_STATUS_TAILWIND_PLAYER, - STARTING_STATUS_TAILWIND_OPPONENT, - STARTING_STATUS_RAINBOW_PLAYER, - STARTING_STATUS_RAINBOW_OPPONENT, - STARTING_STATUS_SEA_OF_FIRE_PLAYER, - STARTING_STATUS_SEA_OF_FIRE_OPPONENT, - STARTING_STATUS_SWAMP_PLAYER, - STARTING_STATUS_SWAMP_OPPONENT, + STARTING_STATUS_DEFINITIONS(UNPACK_STARTING_STATUS_ENUMS) }; enum SlideMsgStates diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 89cfd08ed014..cc2d68cc8c5a 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -39,10 +39,12 @@ #define AI_FLAG_ASSUME_STATUS_MOVES AI_FLAG(29) // AI has a chance to know certain non-damaging moves, and also Fake Out and Super Fang. Restricted version of AI_FLAG_OMNISCIENT. #define AI_FLAG_ATTACKS_PARTNER AI_FLAG(30) // AI specific to double battles; AI can deliberately attack its 'partner.' #define AI_FLAG_KNOW_OPPONENT_PARTY AI_FLAG(31) // AI knows all the species in the player's party, but not moves/items/abilities unless they've been seen. +#define AI_FLAG_RANDOMIZE_SWITCHIN AI_FLAG(32) // AI will randomly choose between eligible switchin candidates of a given category instead of picking the last one in the party. +#define AI_FLAG_RANDOMIZE_PARTY_INDICES AI_FLAG(33) // AI will randomize the order of the mons in its party, including the lead. Not an AI flag really, just a way to trigger TPP functionality // The following options are enough to have a basic/smart trainer. Any other addtion could make the trainer worse/better depending on the flag #define AI_FLAG_BASIC_TRAINER (AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY) -#define AI_FLAG_SMART_TRAINER (AI_FLAG_BASIC_TRAINER | AI_FLAG_OMNISCIENT | AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES | AI_FLAG_PP_STALL_PREVENTION | AI_FLAG_SMART_TERA) +#define AI_FLAG_SMART_TRAINER (AI_FLAG_BASIC_TRAINER | AI_FLAG_OMNISCIENT | AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES | AI_FLAG_PP_STALL_PREVENTION | AI_FLAG_SMART_TERA | AI_FLAG_RANDOMIZE_SWITCHIN) #define AI_FLAG_PREDICTION (AI_FLAG_PREDICT_SWITCH | AI_FLAG_PREDICT_INCOMING_MON | AI_FLAG_PREDICT_MOVE) #define AI_FLAG_ASSUMPTIONS (AI_FLAG_ASSUME_STAB | AI_FLAG_ASSUME_STATUS_MOVES | AI_FLAG_WEIGH_ABILITY_PREDICTION) diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 5a2dfb889930..ec8ec676d4d9 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -423,19 +423,22 @@ #define ANIM_TAG_TATSUGIRI_CURLY (ANIM_SPRITES_START + 409) #define ANIM_TAG_TATSUGIRI_DROOPY (ANIM_SPRITES_START + 410) #define ANIM_TAG_TATSUGIRI_STRETCHY (ANIM_SPRITES_START + 411) +#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 412) +#define ANIM_TAG_COUNT GET_TRUE_SPRITE_INDEX(ANIM_TAG_SAFARI_BAIT + 1) // battlers -#define ANIM_ATTACKER 0 -#define ANIM_TARGET 1 -#define ANIM_ATK_PARTNER 2 -#define ANIM_DEF_PARTNER 3 - -// Below are used by AnimTask_ShakeMon2 and AnimTask_SetGrayscaleOrOriginalPal -#define ANIM_PLAYER_LEFT (MAX_BATTLERS_COUNT + 0) -#define ANIM_OPPONENT_LEFT (MAX_BATTLERS_COUNT + 1) -#define ANIM_PLAYER_RIGHT (MAX_BATTLERS_COUNT + 2) -#define ANIM_OPPONENT_RIGHT (MAX_BATTLERS_COUNT + 3) -#define ANIM_ATTACKER_FORCE (MAX_BATTLERS_COUNT + 4) +enum AnimBattler +{ + ANIM_ATTACKER, + ANIM_TARGET, + ANIM_ATK_PARTNER, + ANIM_DEF_PARTNER, + ANIM_PLAYER_LEFT = MAX_BATTLERS_COUNT, + ANIM_OPPONENT_LEFT, + ANIM_PLAYER_RIGHT, + ANIM_OPPONENT_RIGHT, + ANIM_ATTACKER_FORCE, +}; // stereo panning constants [0-255] // @@ -482,11 +485,11 @@ #define BG_MAGMA_STORM 27 #define BG_GIGA_IMPACT_OPPONENT 28 #define BG_GIGA_IMPACT_PLAYER 29 -#define BG_GIGA_IMPACT_CONTEST 30 +#define BG_GIGA_IMPACT_CONTESTS 30 #define BG_TRICK_ROOM 31 #define BG_ROCK_WRECKER 32 -#define BG_SPACIAL_REND_ON_OPPONENT 33 -#define BG_SPACIAL_REND_ON_PLAYER 34 +#define BG_SPACIAL_REND_OPPONENT 33 +#define BG_SPACIAL_REND_PLAYER 34 #define BG_DARK_VOID 35 #define BG_WATER 36 #define BG_NIGHTMARE 37 @@ -520,7 +523,7 @@ #define BG_BLOOM_DOOM 65 #define BG_SHATTERED_PSYCHE 66 #define BG_TWINKLE_TACKLE 67 -#define BG_BLACKHOLE_ECLIPSE 68 +#define BG_BLACK_HOLE_ECLIPSE 68 #define BG_SOULSTEALING_7STAR_STRIKE 69 #define BG_MALICIOUS_MOONSAULT 70 #define BG_CLANGOROUS_SOULBLAZE 71 @@ -536,6 +539,7 @@ #define BG_RAINBOW_PLAYER 81 #define BG_RAINBOW_OPPONENT 82 #define BG_SWAMP 83 +#define BG_COUNT 84 // table ids for general animations (sBattleAnims_General) #define B_ANIM_STATS_CHANGE 0 @@ -594,7 +598,14 @@ #define B_ANIM_POWER_CONSTRUCT 53 #define B_ANIM_SWAP_TO_SUBSTITUTE 54 #define B_ANIM_SWAP_FROM_SUBSTITUTE 55 -#define NUM_B_ANIMS_GENERAL 56 +#define B_ANIM_MON_SCARED 56 +#define B_ANIM_GHOST_GET_OUT 57 +#define B_ANIM_SILPH_SCOPED 58 +#define B_ANIM_ROCK_THROW 59 +#define B_ANIM_SAFARI_REACTION 60 +#define B_ANIM_FORM_CHANGE_INSTANT 61 +#define B_ANIM_FORM_CHANGE_DISGUISE 62 +#define NUM_B_ANIMS_GENERAL 63 // special animations table (sBattleAnims_Special) #define B_ANIM_LVL_UP 0 @@ -675,9 +686,15 @@ enum SpeciesGfxChange { SPECIES_GFX_CHANGE_TRANSFORM, SPECIES_GFX_CHANGE_FORM_CHANGE, + SPECIES_GFX_CHANGE_FORM_CHANGE_INSTANT, SPECIES_GFX_CHANGE_ILLUSION_OFF, + SPECIES_GFX_CHANGE_GHOST_UNVEIL, }; +// Surf wave palettes +#define ANIM_SURF_PAL_SURF 0 +#define ANIM_SURF_PAL_MUDDY_WATER 1 + // Flags given to various functions to indicate which palettes to consider. // Handled by UnpackSelectedBattlePalettes #define F_PAL_BG (1 << 0) diff --git a/include/constants/battle_end_turn.h b/include/constants/battle_end_turn.h index 81c0409ecda8..ff8cf464091a 100644 --- a/include/constants/battle_end_turn.h +++ b/include/constants/battle_end_turn.h @@ -49,9 +49,12 @@ enum EndTurnResolutionOrder ENDTURN_TERRAIN, ENDTURN_THIRD_EVENT_BLOCK, ENDTURN_EMERGENCY_EXIT_4, - ENDTURN_FORM_CHANGE_ABILITIES, + ENDTURN_FORM_CHANGE, ENDTURN_EJECT_PACK, ENDTURN_DYNAMAX, + ENDTURN_TRAINER_A_SLIDES, + ENDTURN_TRAINER_B_SLIDES, + ENDTURN_TRAINER_PARTNER_SLIDES, ENDTURN_COUNT, }; diff --git a/include/constants/battle_factory.h b/include/constants/battle_factory.h index b3aa57449a0d..6dfd25397a78 100644 --- a/include/constants/battle_factory.h +++ b/include/constants/battle_factory.h @@ -1,16 +1,17 @@ #ifndef GUARD_CONSTANTS_BATTLE_FACTORY_H #define GUARD_CONSTANTS_BATTLE_FACTORY_H -#define FACTORY_STYLE_NONE 0 -#define FACTORY_STYLE_PREPARATION 1 -#define FACTORY_STYLE_SLOW_STEADY 2 -#define FACTORY_STYLE_ENDURANCE 3 -#define FACTORY_STYLE_HIGH_RISK 4 -#define FACTORY_STYLE_WEAKENING 5 -#define FACTORY_STYLE_UNPREDICTABLE 6 -#define FACTORY_STYLE_WEATHER 7 -#define FACTORY_NUM_STYLES 8 - +enum FactoryStyle { + FACTORY_STYLE_NONE, + FACTORY_STYLE_PREPARATION, + FACTORY_STYLE_SLOW_STEADY, + FACTORY_STYLE_ENDURANCE, + FACTORY_STYLE_HIGH_RISK, + FACTORY_STYLE_WEAKENING, + FACTORY_STYLE_UNPREDICTABLE, + FACTORY_STYLE_WEATHER, + FACTORY_NUM_STYLES +}; #define BATTLE_FACTORY_FUNC_INIT 0 #define BATTLE_FACTORY_FUNC_GET_DATA 1 diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 7b3c77cc8fc1..43be80dc8673 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -33,17 +33,20 @@ #define CHALLENGE_STATUS_LOST 4 // Special trainer battles. -#define SPECIAL_BATTLE_TOWER 0 #define SPECIAL_BATTLE_SECRET_BASE 1 #define SPECIAL_BATTLE_EREADER 2 -#define SPECIAL_BATTLE_DOME 3 -#define SPECIAL_BATTLE_PALACE 4 -#define SPECIAL_BATTLE_ARENA 5 -#define SPECIAL_BATTLE_FACTORY 6 -#define SPECIAL_BATTLE_PIKE_SINGLE 7 -#define SPECIAL_BATTLE_PIKE_DOUBLE 8 -#define SPECIAL_BATTLE_PYRAMID 9 -#define SPECIAL_BATTLE_MULTI 10 +#define SPECIAL_BATTLE_MULTI 3 + +// Facility trainer Battles +#define FACILITY_BATTLE_TOWER 0 +#define FACILITY_BATTLE_DOME 1 +#define FACILITY_BATTLE_PALACE 2 +#define FACILITY_BATTLE_ARENA 3 +#define FACILITY_BATTLE_FACTORY 4 +#define FACILITY_BATTLE_PIKE_SINGLE 5 +#define FACILITY_BATTLE_PIKE_DOUBLE 6 +#define FACILITY_BATTLE_PYRAMID 7 +#define FACILITY_BATTLE_TRAINER_HILL 8 #define MAX_BATTLE_FRONTIER_POINTS 9999 #define MAX_STREAK 9999 diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index d1d76756031e..3ebf4ab8efde 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -7,8 +7,7 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_HIT, EFFECT_NON_VOLATILE_STATUS, EFFECT_ABSORB, - EFFECT_EXPLOSION, - EFFECT_MISTY_EXPLOSION, // Same as EFFECT_EXPLOSION but it's boosted on Misty Terrain + EFFECT_TERRAIN_BOOST, EFFECT_DREAM_EATER, // Same as EFFECT_ABSORB but it can only be used on sleeping targets EFFECT_MIRROR_MOVE, EFFECT_ATTACK_UP, @@ -29,13 +28,11 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_HAZE, EFFECT_BIDE, EFFECT_ROAR, - EFFECT_MULTI_HIT, EFFECT_CONVERSION, EFFECT_RESTORE_HP, EFFECT_LIGHT_SCREEN, EFFECT_REST, EFFECT_OHKO, - EFFECT_SHEER_COLD, // Same as EFFECT_OHKO but Ice-types are immune to it and has decreased accuracy for non Ice-type users. EFFECT_FUSION_COMBO, EFFECT_FIXED_PERCENT_DAMAGE, EFFECT_FIXED_HP_DAMAGE, @@ -62,7 +59,6 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_REFLECT, EFFECT_TWO_TURNS_ATTACK, EFFECT_SUBSTITUTE, - EFFECT_RAGE, EFFECT_MIMIC, EFFECT_METRONOME, EFFECT_LEECH_SEED, @@ -73,7 +69,7 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_DISABLE, EFFECT_LEVEL_DAMAGE, EFFECT_PSYWAVE, - EFFECT_COUNTER, + EFFECT_REFLECT_DAMAGE, EFFECT_ENCORE, EFFECT_PAIN_SPLIT, EFFECT_SNORE, @@ -97,7 +93,6 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_SPIKES, EFFECT_FORESIGHT, EFFECT_PERISH_SONG, - EFFECT_SANDSTORM, EFFECT_ENDURE, EFFECT_ROLLOUT, EFFECT_SWAGGER, @@ -115,12 +110,10 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_SYNTHESIS, EFFECT_MOONLIGHT, EFFECT_HIDDEN_POWER, - EFFECT_RAIN_DANCE, - EFFECT_SUNNY_DAY, + EFFECT_WEATHER, EFFECT_FELL_STINGER, EFFECT_BELLY_DRUM, EFFECT_PSYCH_UP, - EFFECT_MIRROR_COAT, EFFECT_EARTHQUAKE, EFFECT_FUTURE_SIGHT, EFFECT_SOLAR_BEAM, @@ -135,7 +128,6 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_SPIT_UP, EFFECT_SWALLOW, EFFECT_OVERWRITE_ABILITY, - EFFECT_HAIL, EFFECT_TORMENT, EFFECT_FLATTER, EFFECT_MEMENTO, @@ -155,7 +147,6 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_MAGIC_COAT, EFFECT_RECYCLE, EFFECT_REVENGE, - EFFECT_BRICK_BREAK, EFFECT_YAWN, EFFECT_KNOCK_OFF, EFFECT_STEAL_ITEM, @@ -216,7 +207,6 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_POWER_SPLIT, EFFECT_GUARD_SPLIT, EFFECT_STICKY_WEB, - EFFECT_METAL_BURST, EFFECT_LUCKY_CHANT, EFFECT_SUCKER_PUNCH, EFFECT_ENTRAINMENT, @@ -304,8 +294,6 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_CLANGOROUS_SOUL, EFFECT_BOLT_BEAK, EFFECT_SKY_DROP, - EFFECT_EXPANDING_FORCE, - EFFECT_RISING_VOLTAGE, EFFECT_BEAK_BLAST, EFFECT_COURT_CHANGE, EFFECT_MAX_HP_50_RECOIL, @@ -314,19 +302,15 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_DARK_VOID, EFFECT_VICTORY_DANCE, EFFECT_TEATIME, - EFFECT_ATTACK_UP_USER_ALLY, EFFECT_SHELL_TRAP, - EFFECT_PSYBLADE, EFFECT_HYDRO_STEAM, EFFECT_REVIVAL_BLESSING, - EFFECT_SNOWSCAPE, EFFECT_TAKE_HEART, EFFECT_COLLISION_COURSE, EFFECT_CORROSIVE_GAS, EFFECT_POPULATION_BOMB, - EFFECT_CHILLY_RECEPTION, + EFFECT_WEATHER_AND_SWITCH, EFFECT_MAX_MOVE, - EFFECT_GLAIVE_RUSH, EFFECT_RAGING_BULL, EFFECT_RAGE_FIST, EFFECT_DOODLE, @@ -341,11 +325,8 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_SPICY_EXTRACT, EFFECT_TERA_BLAST, EFFECT_TERA_STARSTORM, - EFFECT_DRAGON_DARTS, EFFECT_SHELL_SIDE_ARM, - EFFECT_ORDER_UP, EFFECT_RAPID_SPIN, - EFFECT_SPECTRAL_THIEF, EFFECT_RECOIL, EFFECT_SMACK_DOWN, EFFECT_LIFE_DEW, @@ -353,6 +334,7 @@ enum __attribute__((packed)) BattleMoveEffects EFFECT_STEEL_ROLLER, // Will fail if there is no terrain up but removes it regardless if attacker is removed from field or not EFFECT_STONE_AXE, // Not to be confused with MOVE_EFFECT_STEALTH_ROCK. They have two different activation timings. EFFECT_CEASELESS_EDGE, // Same applies to spikes + EFFECT_SPECIES_POWER_OVERRIDE, // Uses argument field to for the species, power and (number of hits, used only for multi hit moves) NUM_BATTLE_MOVE_EFFECTS, }; diff --git a/include/constants/battle_move_resolution.h b/include/constants/battle_move_resolution.h new file mode 100644 index 000000000000..5d9a28ed02fe --- /dev/null +++ b/include/constants/battle_move_resolution.h @@ -0,0 +1,136 @@ +#ifndef GUARD_CONSTANTS_BATTLE_MOVE_RESOLUTION_H +#define GUARD_CONSTANTS_BATTLE_MOVE_RESOLUTION_H + +enum Obedience +{ + OBEYS, + DISOBEYS_LOAFS, + DISOBEYS_HITS_SELF, + DISOBEYS_FALL_ASLEEP, + DISOBEYS_WHILE_ASLEEP, + DISOBEYS_RANDOM_MOVE, +}; + +enum CancelerResult +{ + CANCELER_RESULT_SUCCESS, + CANCELER_RESULT_BREAK, // Runs script. Increments state + CANCELER_RESULT_PAUSE, // Runs script. Does not increment state + CANCELER_RESULT_FAILURE, // Move failed, jump to script that handles the failure +}; + +enum CancelerState +{ + CANCELER_STANCE_CHANGE_1, + CANCELER_CLEAR_FLAGS, + CANCELER_SKY_DROP, + CANCELER_RECHARGE, + CANCELER_CHILLY_RECEPTION, + CANCELER_ASLEEP_OR_FROZEN, + CANCELER_POWER_POINTS, + CANCELER_OBEDIENCE, + CANCELER_TRUANT, + CANCELER_FOCUS_GEN5, + CANCELER_FLINCH, + CANCELER_DISABLED, + CANCELER_VOLATILE_BLOCKED, // Gravity / Heal Block / Throat Chop + CANCELER_TAUNTED, + CANCELER_IMPRISONED, + CANCELER_CONFUSED, + CANCELER_GHOST, + CANCELER_PARALYZED, + CANCELER_INFATUATION, + CANCELER_Z_MOVES, + CANCELER_CHOICE_LOCK, + CANCELER_CALLSUBMOVE, + CANCELER_THAW, + CANCELER_STANCE_CHANGE_2, + CANCELER_ATTACKSTRING, + CANCELER_SET_TARGETS, + CANCELER_PPDEDUCTION, + CANCELER_MOVE_SPECIFIC_MESSAGE, + CANCELER_SKY_BATTLE, + CANCELER_WEATHER_PRIMAL, + CANCELER_FOCUS_PRE_GEN5, + CANCELER_BIDE, + CANCELER_MOVE_FAILURE, + CANCELER_MOVE_EFFECT_FAILURE_TARGET, + CANCELER_POWDER_STATUS, + CANCELER_PRIORITY_BLOCK, + CANCELER_PROTEAN, + CANCELER_EXPLODING_DAMP, + CANCELER_EXPLOSION, + CANCELER_CHARGING, + CANCELER_NO_TARGET, + CANCELER_TOOK_ATTACK, + CANCELER_TARGET_FAILURE, + CANCELER_NOT_FULLY_PROTECTED, + CANCELER_MULTIHIT_MOVES, + CANCELER_END, +}; + +enum MoveEndResult +{ + MOVEEND_RESULT_CONTINUE, + MOVEEND_RESULT_RUN_SCRIPT, + MOVEEND_RESULT_BREAK, +}; + +// cases for Cmd_moveend - Order matters! +enum MoveEndState +{ + MOVEEND_SET_VALUES, + MOVEEND_PROTECT_LIKE_EFFECT, + MOVEEND_ABSORB, + MOVEEND_RAGE, + MOVEEND_SYNCHRONIZE_TARGET, + MOVEEND_ABILITIES, + MOVEEND_FORM_CHANGE_ON_HIT, // Disguise / Gulp Missile + MOVEEND_ABILITIES_ATTACKER, + MOVEEND_QUEUE_DANCER, + MOVEEND_STATUS_IMMUNITY_ABILITIES, // TODO: Do berries come before???? + MOVEEND_SYNCHRONIZE_ATTACKER, + MOVEEND_ATTACKER_INVISIBLE, + MOVEEND_ATTACKER_VISIBLE, + MOVEEND_TARGET_VISIBLE, + MOVEEND_ITEM_EFFECTS_TARGET, + MOVEEND_ITEM_EFFECTS_ATTACKER_1, + MOVEEND_SYMBIOSIS, + MOVEEND_SUBSTITUTE, + MOVEEND_FAINT_BLOCK, + MOVEEND_SKY_DROP_CONFUSE, + MOVEEND_UPDATE_LAST_MOVES, + MOVEEND_MIRROR_MOVE, + MOVEEND_NEXT_TARGET, // Everything up until here is handled for each strike of a spread move + MOVEEND_HP_THRESHOLD_ITEMS_TARGET, // Activation only during a multi hit move / ability (Parental Bond) + MOVEEND_MULTIHIT_MOVE, + MOVEEND_DEFROST, + MOVEEND_SHEER_FORCE, // If move is Sheer Force affected, skip to Hit Escape + One + MOVEEND_MOVE_BLOCK, + MOVEEND_ITEM_EFFECTS_ATTACKER_2, + MOVEEND_ABILITY_EFFECT_FOES_FAINTED, // Moxie-like abilities / Battle Bond / Magician + MOVEEND_SHELL_TRAP, + MOVEEND_COLOR_CHANGE, // Color Change / Berserk / Anger Shell + MOVEEND_KEE_MARANGA_HP_THRESHOLD_ITEM_TARGET, + MOVEEND_CARD_BUTTON, // Red Card / Eject Button + MOVEEND_LIFE_ORB_SHELL_BELL, + MOVEEND_FORM_CHANGE, + MOVEEND_EMERGENCY_EXIT, + MOVEEND_HIT_ESCAPE, + MOVEEND_PICKPOCKET, + MOVEEND_ITEMS_EFFECTS_ALL, + MOVEEND_WHITE_HERB, + MOVEEND_OPPORTUNIST, + MOVEEND_MIRROR_HERB, + MOVEEND_THIRD_MOVE_BLOCK, + MOVEEND_EJECT_PACK, + MOVEEND_CLEAR_BITS, + MOVEEND_DANCER, + MOVEEND_PURSUIT_NEXT_ACTION, + MOVEEND_COUNT, + + // This guarantees a correct jump if new moveends are added directly after MOVEEND_HIT_ESCAPE + MOVEEND_JUMP_TO_HIT_ESCAPE_PLUS_ONE = (MOVEEND_HIT_ESCAPE + 1), +}; + +#endif // GUARD_CONSTANTS_BATTLE_MOVE_RESOLUTION_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 78745aad8f06..7a56226489e6 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -6,11 +6,10 @@ enum BattleScriptOpcode B_SCR_OP_ATTACKCANCELER, B_SCR_OP_ACCURACYCHECK, B_SCR_OP_PRINTATTACKSTRING, - B_SCR_OP_UNUSED_0x3, + B_SCR_OP_PRINTSELECTIONSTRINGFROMTABLE, B_SCR_OP_CRITCALC, B_SCR_OP_DAMAGECALC, B_SCR_OP_TYPECALC, - B_SCR_OP_ADJUSTDAMAGE, B_SCR_OP_MULTIHITRESULTMESSAGE, B_SCR_OP_ATTACKANIMATION, B_SCR_OP_WAITANIMATION, @@ -23,7 +22,7 @@ enum BattleScriptOpcode B_SCR_OP_PRINTSELECTIONSTRING, B_SCR_OP_WAITMESSAGE, B_SCR_OP_PRINTFROMTABLE, - B_SCR_OP_PRINTSELECTIONSTRINGFROMTABLE, + B_SCR_OP_SETPREATTACKADDITIONALEFFECT, B_SCR_OP_SETADDITIONALEFFECTS, B_SCR_OP_SETEFFECTPRIMARY, B_SCR_OP_SETEFFECTSECONDARY, @@ -62,7 +61,7 @@ enum BattleScriptOpcode B_SCR_OP_BICWORD, B_SCR_OP_PAUSE, B_SCR_OP_WAITSTATE, - B_SCR_OP_ISDMGBLOCKEDBYDISGUISE, + B_SCR_OP_TRYSELFCONFUSIONDMGFORMCHANGE, B_SCR_OP_RETURN, B_SCR_OP_END, B_SCR_OP_END2, @@ -75,7 +74,7 @@ enum BattleScriptOpcode B_SCR_OP_PLAYANIMATION, B_SCR_OP_PLAYANIMATION_VAR, B_SCR_OP_JUMPFIFSEMIINVULNERABLE, - B_SCR_OP_UNUSED_0x48, + B_SCR_OP_TRAINERSLIDEIN, B_SCR_OP_MOVEEND, B_SCR_OP_SETHEALBLOCK, B_SCR_OP_RETURNATKTOBALL, @@ -86,7 +85,7 @@ enum BattleScriptOpcode B_SCR_OP_OPENPARTYSCREEN, B_SCR_OP_SWITCHHANDLEORDER, B_SCR_OP_SWITCHINEFFECTS, - B_SCR_OP_TRAINERSLIDEIN, + B_SCR_OP_SWITCHINEVENTS, B_SCR_OP_PLAYSE, B_SCR_OP_FANFARE, B_SCR_OP_PLAYFAINTCRY, @@ -104,8 +103,8 @@ enum BattleScriptOpcode B_SCR_OP_HIDEPARTYSTATUSSUMMARY, B_SCR_OP_JUMPTOCALLEDMOVE, B_SCR_OP_STATUSANIMATION, - B_SCR_OP_UNUSED_0x65, - B_SCR_OP_UNUSED_0x66, + B_SCR_OP_FUTURESIGHTTARGETFAILURE, + B_SCR_OP_GETPOSSIBLENEXTTARGET, B_SCR_OP_YESNOBOX, B_SCR_OP_CANCELALLACTIONS, B_SCR_OP_SETGRAVITY, @@ -121,25 +120,20 @@ enum BattleScriptOpcode B_SCR_OP_HPTHRESHOLDS, B_SCR_OP_HPTHRESHOLDS2, B_SCR_OP_USEITEMONOPPONENT, - B_SCR_OP_UNUSED_0x78, B_SCR_OP_SETPROTECTLIKE, B_SCR_OP_TRYEXPLOSION, B_SCR_OP_SETATKHPTOZERO, B_SCR_OP_JUMPIFNEXTTARGETVALID, B_SCR_OP_TRYHEALHALFHEALTH, - B_SCR_OP_UNUSED_0x7E, B_SCR_OP_SETFIELDWEATHER, B_SCR_OP_SETREFLECT, B_SCR_OP_SETSEEDED, B_SCR_OP_MANIPULATEDAMAGE, B_SCR_OP_TRYSETREST, - B_SCR_OP_UNUSED_0x82, - B_SCR_OP_UNUSED_0x83, B_SCR_OP_JUMPIFUPROARWAKES, B_SCR_OP_STOCKPILE, B_SCR_OP_STOCKPILETOBASEDAMAGE, B_SCR_OP_STOCKPILETOHPHEAL, - B_SCR_OP_UNUSED_0x88, B_SCR_OP_STATBUFFCHANGE, B_SCR_OP_NORMALISEBUFFS, B_SCR_OP_SETBIDE, @@ -162,19 +156,12 @@ enum BattleScriptOpcode B_SCR_OP_SETSUBSTITUTE, B_SCR_OP_MIMICATTACKCOPY, B_SCR_OP_SETCALLEDMOVE, - B_SCR_OP_UNUSED_0x9F, - B_SCR_OP_UNUSED_0xA0, - B_SCR_OP_COUNTERDAMAGECALCULATOR, - B_SCR_OP_MIRRORCOATDAMAGECALCULATOR, B_SCR_OP_DISABLELASTUSEDATTACK, B_SCR_OP_TRYSETENCORE, B_SCR_OP_PAINSPLITDMGCALC, B_SCR_OP_SETTYPETORANDOMRESISTANCE, B_SCR_OP_SETALWAYSHITFLAG, B_SCR_OP_COPYMOVEPERMANENTLY, - B_SCR_OP_UNUSED_0xA9, - B_SCR_OP_UNUSED_AA, - B_SCR_OP_UNUSED_0xAB, B_SCR_OP_SETTAILWIND, B_SCR_OP_TRYSPITEPPREDUCE, B_SCR_OP_HEALPARTYSTATUS, @@ -182,35 +169,25 @@ enum BattleScriptOpcode B_SCR_OP_TRYSETSPIKES, B_SCR_OP_SETVOLATILE, B_SCR_OP_TRYSETPERISHSONG, - B_SCR_OP_HANDLEROLLOUT, B_SCR_OP_JUMPIFCONFUSEDANDSTATMAXED, - B_SCR_OP_HANDLEFURYCUTTER, B_SCR_OP_SETEMBARGO, B_SCR_OP_PRESENTDAMAGECALCULATION, B_SCR_OP_SETSAFEGUARD, - B_SCR_OP_MAGNITUDEDAMAGECALCULATION, B_SCR_OP_JUMPIFNOPURSUITSWITCHDMG, B_SCR_OP_TRYACTIVATEITEM, B_SCR_OP_HALVEHP, B_SCR_OP_COPYFOESTATS, B_SCR_OP_RAPIDSPINFREE, - B_SCR_OP_UNUSED_0xBF, B_SCR_OP_RECOVERBASEDONSUNLIGHT, B_SCR_OP_SETSTICKYWEB, B_SCR_OP_SELECTFIRSTVALIDTARGET, B_SCR_OP_SETFUTUREATTACK, B_SCR_OP_TRYDOBEATUP, B_SCR_OP_SETSEMIINVULNERABLEBIT, - B_SCR_OP_TRYFIRETWOTURNMOVENOWBYEFFECT, - B_SCR_OP_UNUSED_0xC7, - B_SCR_OP_UNUSED_C8, B_SCR_OP_TRYMEMENTO, B_SCR_OP_SETFORCEDTARGET, - B_SCR_OP_UNUSED_0xCB, - B_SCR_OP_UNUSED_0xCC, B_SCR_OP_CURESTATUSWITHMOVE, B_SCR_OP_SETTORMENT, - B_SCR_OP_JUMPIFNODAMAGE, B_SCR_OP_SETTAUNT, B_SCR_OP_TRYSETHELPINGHAND, B_SCR_OP_TRYSWAPITEMS, @@ -219,35 +196,28 @@ enum BattleScriptOpcode B_SCR_OP_SETTOXICSPIKES, B_SCR_OP_SETGASTROACID, B_SCR_OP_SETYAWN, - B_SCR_OP_SETDAMAGETOHEALTHDIFFERENCE, B_SCR_OP_SETROOM, B_SCR_OP_TRYSWAPABILITIES, B_SCR_OP_TRYIMPRISON, B_SCR_OP_SETSTEALTHROCK, B_SCR_OP_TRYSETVOLATILE, - B_SCR_OP_UNUSED_0xDE, B_SCR_OP_TRYSETMAGICCOAT, B_SCR_OP_TRYSETSNATCH, - B_SCR_OP_UNUSED2, B_SCR_OP_SWITCHOUTABILITIES, B_SCR_OP_JUMPIFHASNOHP, - B_SCR_OP_UNUSED_0xE4, B_SCR_OP_PICKUP, - B_SCR_OP_UNUSED_0xE6, - B_SCR_OP_UNUSED_0xE7, B_SCR_OP_SETTYPEBASEDHALVERS, B_SCR_OP_JUMPIFSUBSTITUTEBLOCKS, B_SCR_OP_TRYRECYCLEITEM, B_SCR_OP_SETTYPETOENVIRONMENT, B_SCR_OP_PURSUITDOUBLES, B_SCR_OP_SNATCHSETBATTLERS, - B_SCR_OP_REMOVESCREENS, B_SCR_OP_HANDLEBALLTHROW, B_SCR_OP_GIVECAUGHTMON, B_SCR_OP_TRYSETCAUGHTMONDEXFLAGS, B_SCR_OP_DISPLAYDEXINFO, B_SCR_OP_TRYGIVECAUGHTMONNICK, - B_SCR_OP_UNUSED_0xF4, + B_SCR_OP_SORTBATTLERS, B_SCR_OP_REMOVEATTACKERSTATUS1, B_SCR_OP_FINISHACTION, B_SCR_OP_FINISHTURN, @@ -258,6 +228,40 @@ enum BattleScriptOpcode B_SCR_OP_JUMPIFCAPTIVATEAFFECTED, B_SCR_OP_SETNONVOLATILESTATUS, B_SCR_OP_TRYOVERWRITEABILITY, + + // Expansion users, please don't use any of the unused commands. + // They are reserved for expansion usage. + // Use callnatives instead. + B_SCR_OP_UNUSED_1, + B_SCR_OP_UNUSED_2, + B_SCR_OP_UNUSED_3, + B_SCR_OP_UNUSED_4, + B_SCR_OP_UNUSED_5, + B_SCR_OP_UNUSED_6, + B_SCR_OP_UNUSED_7, + B_SCR_OP_UNUSED_8, + B_SCR_OP_UNUSED_9, + B_SCR_OP_UNUSED_10, + B_SCR_OP_UNUSED_11, + B_SCR_OP_UNUSED_12, + B_SCR_OP_UNUSED_13, + B_SCR_OP_UNUSED_14, + B_SCR_OP_UNUSED_15, + B_SCR_OP_UNUSED_16, + B_SCR_OP_UNUSED_17, + B_SCR_OP_UNUSED_18, + B_SCR_OP_UNUSED_19, + B_SCR_OP_UNUSED_20, + B_SCR_OP_UNUSED_21, + B_SCR_OP_UNUSED_22, + B_SCR_OP_UNUSED_23, + B_SCR_OP_UNUSED_24, + B_SCR_OP_UNUSED_25, + B_SCR_OP_UNUSED_26, + B_SCR_OP_UNUSED_27, + B_SCR_OP_UNUSED_28, + B_SCR_OP_UNUSED_29, + B_SCR_OP_UNUSED_30, B_SCR_OP_CALLNATIVE, }; @@ -336,10 +340,6 @@ enum BattleScriptOpcode #define BS_ABILITY_BATTLER 15 #define BS_ATTACKER_PARTNER 16 -// Cmd_accuracycheck -#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF -#define ACC_CURR_MOVE 0 - // compare operands #define CMP_EQUAL 0 #define CMP_NOT_EQUAL 1 @@ -348,17 +348,8 @@ enum BattleScriptOpcode #define CMP_COMMON_BITS 4 #define CMP_NO_COMMON_BITS 5 -// Veriouses have been deprecated but the enum and function will be supported for one more release cycle -enum CmdVarious -{ - VARIOUS_NONE, -}; - // Cmd_manipulatedamage -#define DMG_CHANGE_SIGN 1 -#define DMG_1_8_TARGET_HP 2 -#define DMG_FULL_ATTACKER_HP 3 -#define DMG_BIG_ROOT 4 +#define DMG_1_8_TARGET_HP 0 // Used by bad dreams // Cmd_jumpifcantswitch #define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7) @@ -386,73 +377,31 @@ enum CmdVarious enum SetMoveEffectFlags { - NO_FLAGS = 0, - EFFECT_PRIMARY = (1 << 0), - EFFECT_CERTAIN = (1 << 1), + NO_FLAGS = 0, + EFFECT_PRIMARY = (1 << 0), + EFFECT_CERTAIN = (1 << 1), }; -// cases for Cmd_moveend - Order matters! -enum MoveEndEffects +enum FaintBlockStates { - MOVEEND_SET_VALUES, - MOVEEND_PROTECT_LIKE_EFFECT, - MOVEEND_GRUDGE, - MOVEEND_DESTINY_BOND, - MOVEEND_ABSORB, - MOVEEND_RAGE, - MOVEEND_SYNCHRONIZE_TARGET, - MOVEEND_ABILITIES, - MOVEEND_ABILITIES_ATTACKER, - MOVEEND_STATUS_IMMUNITY_ABILITIES, // TODO: Do berries come before???? - MOVEEND_SYNCHRONIZE_ATTACKER, - MOVEEND_ATTACKER_INVISIBLE, - MOVEEND_ATTACKER_VISIBLE, - MOVEEND_TARGET_VISIBLE, - MOVEEND_ITEM_EFFECTS_TARGET, - MOVEEND_ITEM_EFFECTS_ATTACKER_1, - MOVEEND_SYMBIOSIS, - MOVEEND_SUBSTITUTE, - MOVEEND_SKY_DROP_CONFUSE, - MOVEEND_UPDATE_LAST_MOVES, - MOVEEND_MIRROR_MOVE, - MOVEEND_DEFROST, - MOVEEND_NEXT_TARGET, // Everything up until here is handled for each strike of a spread move - MOVEEND_HP_THRESHHOLD_ITEMS_TARGET, // Activation only during a multi hit move / ability (Parental Bond) - MOVEEND_MULTIHIT_MOVE, - MOVEEND_MOVE_BLOCK, - MOVEEND_ITEM_EFFECTS_ATTACKER_2, - MOVEEND_ABILITY_BLOCK, - MOVEEND_SHEER_FORCE, // If move is Sheer Force affected, skip to Hit Escape + One - MOVEEND_COLOR_CHANGE, // Color Change / Berserk / Anger Shell - MOVEEND_KEE_MARANGA_HP_THRESHOLD_ITEM_TARGET, - MOVEEND_RED_CARD, - MOVEEND_EJECT_BUTTON, - MOVEEND_LIFE_ORB_SHELL_BELL, - MOVEEND_FORM_CHANGE, - MOVEEND_EMERGENCY_EXIT, - MOVEEND_EJECT_PACK, - MOVEEND_HIT_ESCAPE, - MOVEEND_ITEMS_EFFECTS_ALL, - MOVEEND_WHITE_HERB, - MOVEEND_OPPORTUNIST, - MOVEEND_MIRROR_HERB, - MOVEEND_PICKPOCKET, - MOVEEND_THIRD_MOVE_BLOCK, - MOVEEND_CHANGED_ITEMS, - MOVEEND_SAME_MOVE_TURNS, - MOVEEND_CLEAR_BITS, - MOVEEND_DANCER, - MOVEEND_PURSUIT_NEXT_ACTION, - MOVEEND_COUNT, - - // This guarantees a correct jump if new moveends are added directly after MOVEEND_HIT_ESCAPE - MOVEEND_JUMP_TO_HIT_ESCAPE_PLUS_ONE = (MOVEEND_HIT_ESCAPE + 1), + FAINT_BLOCK_FINAL_GAMBIT, + FAINT_BLOCK_CHECK_TARGET_FAINTED, // Exits if target is not fainted + FAINT_BLOCK_END_NEUTRALIZING_GAS, + // Destiny Bond and Grudge are tested first, but Faint Target's script plays first + FAINT_BLOCK_TRY_DESTINY_BOND, + FAINT_BLOCK_TRY_GRUDGE, + FAINT_BLOCK_FAINT_TARGET, + FAINT_BLOCK_DO_DESTINY_BOND, + FAINT_BLOCK_DO_GRUDGE, + FAINT_BLOCK_COUNT, }; -// switch cases -#define B_SWITCH_NORMAL 0 -#define B_SWITCH_HIT 1 // dragon tail, circle throw -#define B_SWITCH_RED_CARD 2 +enum SwitchInCases +{ + B_SWITCH_NORMAL, + B_SWITCH_HIT, // dragon tail, circle throw + B_SWITCH_RED_CARD, +}; enum StatusTrigger { diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h index 91c89d0631c8..541d2f68b436 100644 --- a/include/constants/battle_setup.h +++ b/include/constants/battle_setup.h @@ -10,9 +10,7 @@ #define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6 #define TRAINER_BATTLE_REMATCH_DOUBLE 7 #define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8 -#define TRAINER_BATTLE_PYRAMID 9 -#define TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE 10 -#define TRAINER_BATTLE_HILL 12 #define TRAINER_BATTLE_TWO_TRAINERS_NO_INTRO 13 +#define TRAINER_BATTLE_EARLY_RIVAL 14 #endif // GUARD_CONSTANTS_BATTLE_SETUP_H diff --git a/include/constants/battle_special.h b/include/constants/battle_special.h new file mode 100644 index 000000000000..82d70a8efe26 --- /dev/null +++ b/include/constants/battle_special.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONSTANTS_BATTLE_SPECIAL_H +#define GUARD_CONSTANTS_BATTLE_SPECIAL_H + +// Ids for special multi battle types +#define MULTI_BATTLE_2_VS_2 0 +#define MULTI_BATTLE_2_VS_WILD 1 +#define MULTI_BATTLE_2_VS_1 2 +#define MULTI_BATTLE_CHOOSE_MONS 0x80 + +#endif // GUARD_CONSTANTS_BATTLE_SPECIAL_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 462c64cda199..b42b450d2b8c 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -26,8 +26,8 @@ enum StringID STRINGID_ATTACKMISSED, STRINGID_PKMNPROTECTEDITSELF, STRINGID_STATSWONTINCREASE2, - STRINGID_AVOIDEDDAMAGE, STRINGID_ITDOESNTAFFECT, + STRINGID_SCR_ITDOESNTAFFECT, STRINGID_BATTLERFAINTED, STRINGID_PLAYERGOTMONEY, STRINGID_PLAYERWHITEOUT, @@ -53,7 +53,6 @@ enum StringID STRINGID_PKMNFROZENBY, STRINGID_PKMNISFROZEN, STRINGID_PKMNWASDEFROSTED, - STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY, STRINGID_PKMNWASPARALYZED, STRINGID_PKMNWASPARALYZEDBY, @@ -105,12 +104,10 @@ enum StringID STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_PKMNFASTASLEEP, STRINGID_PKMNWOKEUP, - STRINGID_PKMNUPROARKEPTAWAKE, STRINGID_PKMNWOKEUPINUPROAR, STRINGID_PKMNCAUSEDUPROAR, STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN, - STRINGID_PKMNCANTSLEEPINUPROAR, STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, @@ -202,13 +199,12 @@ enum StringID STRINGID_PKMNHURTSWITH, STRINGID_PKMNTRACED, STRINGID_STATSHARPLY, - STRINGID_STATROSE, STRINGID_STATHARSHLY, - STRINGID_STATFELL, STRINGID_ATTACKERSSTATROSE, STRINGID_DEFENDERSSTATROSE, STRINGID_ATTACKERSSTATFELL, STRINGID_DEFENDERSSTATFELL, + STRINGID_SCRIPTINGSTATROSE, STRINGID_CRITICALHIT, STRINGID_ONEHITKO, STRINGID_123POOF, @@ -250,7 +246,6 @@ enum StringID STRINGID_TRAINERBLOCKEDBALL, STRINGID_DONTBEATHIEF, STRINGID_ITDODGEDBALL, - STRINGID_YOUMISSEDPKMN, STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, @@ -258,7 +253,6 @@ enum StringID STRINGID_GOTCHAPKMNCAUGHTPLAYER, STRINGID_GOTCHAPKMNCAUGHTWALLY, STRINGID_GIVENICKNAMECAPTURED, - STRINGID_PKMNSENTTOPC, STRINGID_PKMNDATAADDEDTODEX, STRINGID_ITISRAINING, STRINGID_SANDSTORMISRAGING, @@ -293,7 +287,6 @@ enum StringID STRINGID_ITEMALLOWSONLYYMOVE, STRINGID_PKMNHUNGONWITHX, STRINGID_EMPTYSTRING3, - STRINGID_PKMNSXBLOCKSY, STRINGID_PKMNSXRESTOREDHPALITTLE2, STRINGID_PKMNSXWHIPPEDUPSANDSTORM, STRINGID_PKMNSXPREVENTSYLOSS, @@ -319,7 +312,6 @@ enum StringID STRINGID_EMPTYSTRING4, STRINGID_ABOOSTED, STRINGID_PKMNSXINTENSIFIEDSUN, - STRINGID_PKMNMAKESGROUNDMISS, STRINGID_YOUTHROWABALLNOWRIGHT, STRINGID_PKMNSXTOOKATTACK, STRINGID_PKMNCHOSEXASDESTINY, @@ -336,7 +328,7 @@ enum StringID STRINGID_PKMNSXPREVENTSFLINCHING, STRINGID_PKMNALREADYHASBURN, STRINGID_STATSWONTDECREASE2, - STRINGID_PKMNSXBLOCKSY2, + STRINGID_PKMNSXBLOCKSY, STRINGID_PKMNSXWOREOFF, STRINGID_THEWALLSHATTERED, STRINGID_PKMNSXCUREDITSYPROBLEM, @@ -366,13 +358,8 @@ enum StringID STRINGID_ENDUREDSTURDY, STRINGID_POWERHERB, STRINGID_HURTBYITEM, - STRINGID_PSNBYITEM, - STRINGID_BRNBYITEM, - STRINGID_DEFABILITYIN, STRINGID_GRAVITYINTENSIFIED, - STRINGID_TARGETIDENTIFIED, STRINGID_TARGETWOKEUP, - STRINGID_PKMNSTOLEANDATEITEM, STRINGID_TAILWINDBLEW, STRINGID_PKMNWENTBACK, STRINGID_PKMNCANTUSEITEMSANYMORE, @@ -381,8 +368,6 @@ enum StringID STRINGID_PKMNSWITCHEDATKANDDEF, STRINGID_PKMNSABILITYSUPPRESSED, STRINGID_SHIELDEDFROMCRITICALHITS, - STRINGID_SWITCHEDATKANDSPATK, - STRINGID_SWITCHEDDEFANDSPDEF, STRINGID_PKMNACQUIREDABILITY, STRINGID_POISONSPIKESSCATTERED, STRINGID_PKMNSWITCHEDSTATCHANGES, @@ -390,7 +375,6 @@ enum StringID STRINGID_PKMNLEVITATEDONELECTROMAGNETISM, STRINGID_PKMNTWISTEDDIMENSIONS, STRINGID_POINTEDSTONESFLOAT, - STRINGID_CLOAKEDINMYSTICALMOONLIGHT, STRINGID_TRAPPEDBYSWIRLINGMAGMA, STRINGID_VANISHEDINSTANTLY, STRINGID_PROTECTEDTEAM, @@ -402,16 +386,10 @@ enum StringID STRINGID_HELDITEMSLOSEEFFECTS, STRINGID_FELLSTRAIGHTDOWN, STRINGID_TARGETCHANGEDTYPE, - STRINGID_PKMNACQUIREDSIMPLE, STRINGID_KINDOFFER, STRINGID_RESETSTARGETSSTATLEVELS, STRINGID_ALLYSWITCHPOSITION, - STRINGID_RESTORETARGETSHEALTH, - STRINGID_TOOKPJMNINTOTHESKY, - STRINGID_FREEDFROMSKYDROP, - STRINGID_POSTPONETARGETMOVE, STRINGID_REFLECTTARGETSTYPE, - STRINGID_TRANSFERHELDITEM, STRINGID_EMBARGOENDS, STRINGID_ELECTROMAGNETISM, STRINGID_BUFFERENDS, @@ -448,12 +426,12 @@ enum StringID STRINGID_FRISKACTIVATES, STRINGID_UNNERVEENTERS, STRINGID_HARVESTBERRY, - STRINGID_MAGICBOUNCEACTIVATES, STRINGID_PROTEANTYPECHANGE, STRINGID_SYMBIOSISITEMPASS, STRINGID_STEALTHROCKDMG, STRINGID_TOXICSPIKESABSORBED, STRINGID_TOXICSPIKESPOISONED, + STRINGID_TOXICSPIKESBADLYPOISONED, STRINGID_STICKYWEBSWITCHIN, STRINGID_HEALINGWISHCAMETRUE, STRINGID_HEALINGWISHHEALED, @@ -502,7 +480,6 @@ enum StringID STRINGID_PSYCHICTERRAINPREVENTS, STRINGID_SAFETYGOGGLESPROTECTED, STRINGID_FLOWERVEILPROTECTED, - STRINGID_SWEETVEILPROTECTED, STRINGID_AROMAVEILPROTECTED, STRINGID_CELEBRATEMESSAGE, STRINGID_USEDINSTRUCTEDMOVE, @@ -629,7 +606,6 @@ enum StringID STRINGID_PKMNSITEMHEALEDFROSTBITE, STRINGID_ATTACKERHEALEDITSFROSTBITE, STRINGID_PKMNFROSTBITEHEALED, - STRINGID_PKMNFROSTBITEHEALED2, STRINGID_PKMNFROSTBITEHEALEDBY, STRINGID_MIRRORHERBCOPIED, STRINGID_STARTEDSNOW, @@ -709,10 +685,21 @@ enum StringID STRINGID_TIMETODYNAMAX, STRINGID_TIMETOGIGANTAMAX, STRINGID_QUESTIONFORFEITBATTLE, - STRINGID_TOXICSPIKESBADLYPOISONED, STRINGID_POWERCONSTRUCTPRESENCEOFMANY, STRINGID_POWERCONSTRUCTTRANSFORM, STRINGID_ABILITYSHIELDPROTECTS, + STRINGID_MONTOOSCAREDTOMOVE, + STRINGID_GHOSTGETOUTGETOUT, + STRINGID_SILPHSCOPEUNVEILED, + STRINGID_GHOSTWASMAROWAK, + STRINGID_TRAINER1MON1COMEBACK, + STRINGID_THREWROCK, + STRINGID_THREWBAIT, + STRINGID_PKMNANGRY, + STRINGID_PKMNEATING, + STRINGID_PKMNDISGUISEWASBUSTED, + STRINGID_ZENMODETRIGGERED, + STRINGID_ZENMODEENDED, STRINGID_COUNT }; @@ -738,9 +725,6 @@ enum MissStringID B_MSG_MISSED, B_MSG_PROTECTED, B_MSG_AVOIDED_ATK, - // Ability-related messages need to be below this comment - B_MSG_AVOIDED_DMG, - B_MSG_GROUND_MISS, }; // gAbsorbDrainStringIds @@ -773,6 +757,19 @@ enum MoveWeatherChangeStringID B_MSG_STARTED_FOG, }; +// gAbilityWeatherChangeStringId +enum AbilityWeatherChangeStringID +{ + B_MSG_STARTED_DRIZZLE, + B_MSG_STARTED_SAND_STREAM, + B_MSG_STARTED_DROUGHT, + B_MSG_STARTED_HAIL_WARNING, + B_MSG_STARTED_SNOW_WARNING, + B_MSG_STARTED_DESOLATE_LAND, + B_MSG_STARTED_PRIMORDIAL_SEA, + B_MSG_STARTED_STRONG_WINDS, +}; + // gWeatherEndsStringIds enum WeatherEndStringID { @@ -822,7 +819,6 @@ enum ProtectLikeUsedStringID { B_MSG_PROTECTED_ITSELF, B_MSG_BRACED_ITSELF, - B_MSG_PROTECT_FAILED, B_MSG_PROTECTED_TEAM, }; @@ -954,6 +950,15 @@ enum InobedientStringID // Skips the one used for Battle Palace #define NUM_LOAF_STRINGS (B_MSG_PRETEND_NOT_NOTICE + 1) +// gSafariReactionStringIds +enum SafariReactionStringID +{ + B_MSG_MON_WATCHING, + B_MSG_MON_ANGRY, + B_MSG_MON_EATING, + NUM_SAFARI_REACTIONS +}; + // gSafariGetNearStringIds enum SafariGetNearStringID { @@ -1109,6 +1114,11 @@ enum StartingStatusStringID B_MSG_SET_RAINBOW, B_MSG_SET_SEA_OF_FIRE, B_MSG_SET_SWAMP, + B_MSG_SET_SPIKES, + B_MSG_SET_POISON_SPIKES, + B_MSG_SET_STICKY_WEB, + B_MSG_SET_STEALTH_ROCK, + B_MSG_SET_SHARP_STEEL, B_MSG_STARTING_STATUS_COUNT, }; @@ -1169,4 +1179,11 @@ enum DamageNonTypesDmgStringID B_MSG_HURT_BY_ROCKS_THROWN, }; +// gZenModeStringIds +enum ZenModeStringID +{ + B_MSG_ZEN_MODE_TRIGGERED, + B_MSG_ZEN_MODE_ENDED, +}; + #endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H diff --git a/include/constants/battle_switch_in.h b/include/constants/battle_switch_in.h new file mode 100644 index 000000000000..5a75b3c1fd56 --- /dev/null +++ b/include/constants/battle_switch_in.h @@ -0,0 +1,38 @@ +#ifndef GUARD_CONSTANTS_BATTLE_SWITCH_IN_H +#define GUARD_CONSTANTS_BATTLE_SWITCH_IN_H + +enum SwitchInEvents +{ + SWITCH_IN_EVENTS_ORDER_BY_SPEED, + SWITCH_IN_EVENTS_TERA_SHIFT, + SWITCH_IN_EVENTS_NEUTRALIZING_GAS, + SWITCH_IN_EVENTS_UNNERVE, + SWITCH_IN_EVENTS_FIRST_BLOCK, + SWITCH_IN_EVENTS_FORM_CHANGE, + SWITCH_IN_EVENTS_SECOND_BLOCK, + SWITCH_IN_EVENTS_WHITE_HERB, + SWITCH_IN_EVENTS_OPPORTUNIST, + SWITCH_IN_EVENTS_MIRROR_HERB, + SWITCH_IN_EVENTS_CLEAR_SET_VALUES, + SWITCH_IN_EVENTS_EJECT_PACK, + SWITCH_IN_EVENTS_COUNT, +}; + +enum SwitchInFirstEventBlock +{ + FIRST_EVENT_BLOCK_HEALING_WISH, + FIRST_EVENT_BLOCK_HAZARDS, + FIRST_EVENT_BLOCK_GENERAL_ABILITIES, + FIRST_EVENT_BLOCK_IMMUNITY_ABILITIES, + FIRST_EVENT_BLOCK_ITEMS, + FIRST_EVENT_BLOCK_COUNT, +}; + +enum SwitchInSecondEventBlock +{ + SECOND_EVENT_ABILITIES, + SECOND_EVENT_BOOSTER_ENERGY, + SECOND_EVENT_BLOCK_COUNT, +}; + +#endif // GUARD_CONSTANTS_BATTLE_SWITCH_IN_H diff --git a/include/constants/battle_tower.h b/include/constants/battle_tower.h index 47858e807ca3..002422d8508a 100644 --- a/include/constants/battle_tower.h +++ b/include/constants/battle_tower.h @@ -38,10 +38,4 @@ #define BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE 2 #define BATTLE_TOWER_LINKSTAT_LEADER_RETIRE 3 -// Ids for special multi battle types -#define MULTI_BATTLE_2_VS_2 0 -#define MULTI_BATTLE_2_VS_WILD 1 -#define MULTI_BATTLE_2_VS_1 2 -#define MULTI_BATTLE_CHOOSE_MONS 0x80 - #endif //GUARD_CONSTANTS_BATTLE_TOWER_H diff --git a/include/constants/battle_z_move_effects.h b/include/constants/battle_z_move_effects.h index ce4d5c4adc85..b62fd3d88015 100644 --- a/include/constants/battle_z_move_effects.h +++ b/include/constants/battle_z_move_effects.h @@ -1,38 +1,40 @@ #ifndef GUARD_Z_MOVE_EFFECTS_H #define GUARD_Z_MOVE_EFFECTS_H -#define Z_EFFECT_NONE 0 -#define Z_EFFECT_RESET_STATS 1 -#define Z_EFFECT_ALL_STATS_UP_1 2 -#define Z_EFFECT_BOOST_CRITS 3 -#define Z_EFFECT_FOLLOW_ME 4 -#define Z_EFFECT_CURSE 5 -#define Z_EFFECT_RECOVER_HP 6 -#define Z_EFFECT_RESTORE_REPLACEMENT_HP 7 +enum ZEffect +{ + Z_EFFECT_NONE, + Z_EFFECT_RESET_STATS, + Z_EFFECT_ALL_STATS_UP_1, + Z_EFFECT_BOOST_CRITS, + Z_EFFECT_FOLLOW_ME, + Z_EFFECT_CURSE, + Z_EFFECT_RECOVER_HP, + Z_EFFECT_RESTORE_REPLACEMENT_HP, -#define Z_EFFECT_ATK_UP_1 8 -#define Z_EFFECT_DEF_UP_1 9 -#define Z_EFFECT_SPD_UP_1 10 -#define Z_EFFECT_SPATK_UP_1 11 -#define Z_EFFECT_SPDEF_UP_1 12 -#define Z_EFFECT_ACC_UP_1 13 -#define Z_EFFECT_EVSN_UP_1 14 + Z_EFFECT_ATK_UP_1, + Z_EFFECT_DEF_UP_1, + Z_EFFECT_SPD_UP_1, + Z_EFFECT_SPATK_UP_1, + Z_EFFECT_SPDEF_UP_1, + Z_EFFECT_ACC_UP_1, + Z_EFFECT_EVSN_UP_1, -#define Z_EFFECT_ATK_UP_2 15 -#define Z_EFFECT_DEF_UP_2 16 -#define Z_EFFECT_SPD_UP_2 17 -#define Z_EFFECT_SPATK_UP_2 18 -#define Z_EFFECT_SPDEF_UP_2 19 -#define Z_EFFECT_ACC_UP_2 20 -#define Z_EFFECT_EVSN_UP_2 21 - -#define Z_EFFECT_ATK_UP_3 22 -#define Z_EFFECT_DEF_UP_3 23 -#define Z_EFFECT_SPD_UP_3 24 -#define Z_EFFECT_SPATK_UP_3 25 -#define Z_EFFECT_SPDEF_UP_3 26 -#define Z_EFFECT_ACC_UP_3 27 -#define Z_EFFECT_EVSN_UP_3 28 + Z_EFFECT_ATK_UP_2, + Z_EFFECT_DEF_UP_2, + Z_EFFECT_SPD_UP_2, + Z_EFFECT_SPATK_UP_2, + Z_EFFECT_SPDEF_UP_2, + Z_EFFECT_ACC_UP_2, + Z_EFFECT_EVSN_UP_2, + Z_EFFECT_ATK_UP_3, + Z_EFFECT_DEF_UP_3, + Z_EFFECT_SPD_UP_3, + Z_EFFECT_SPATK_UP_3, + Z_EFFECT_SPDEF_UP_3, + Z_EFFECT_ACC_UP_3, + Z_EFFECT_EVSN_UP_3, +}; #endif // GUARD_Z_MOVE_EFFECTS_H diff --git a/include/constants/berry.h b/include/constants/berry.h index bc86f44ce637..91596f277197 100644 --- a/include/constants/berry.h +++ b/include/constants/berry.h @@ -3,26 +3,35 @@ #define BERRY_NONE 0 -#define BERRY_FIRMNESS_UNKNOWN 0 -#define BERRY_FIRMNESS_VERY_SOFT 1 -#define BERRY_FIRMNESS_SOFT 2 -#define BERRY_FIRMNESS_HARD 3 -#define BERRY_FIRMNESS_VERY_HARD 4 -#define BERRY_FIRMNESS_SUPER_HARD 5 +enum BerryFirmness +{ + BERRY_FIRMNESS_UNKNOWN, + BERRY_FIRMNESS_VERY_SOFT, + BERRY_FIRMNESS_SOFT, + BERRY_FIRMNESS_HARD, + BERRY_FIRMNESS_VERY_HARD, + BERRY_FIRMNESS_SUPER_HARD, +}; -#define BERRY_COLOR_RED 0 -#define BERRY_COLOR_BLUE 1 -#define BERRY_COLOR_PURPLE 2 -#define BERRY_COLOR_GREEN 3 -#define BERRY_COLOR_YELLOW 4 -#define BERRY_COLOR_PINK 5 +enum BerryColor +{ + BERRY_COLOR_RED, + BERRY_COLOR_BLUE, + BERRY_COLOR_PURPLE, + BERRY_COLOR_GREEN, + BERRY_COLOR_YELLOW, + BERRY_COLOR_PINK, +}; -#define FLAVOR_SPICY 0 -#define FLAVOR_DRY 1 -#define FLAVOR_SWEET 2 -#define FLAVOR_BITTER 3 -#define FLAVOR_SOUR 4 -#define FLAVOR_COUNT 5 +enum __attribute__((__packed__)) Flavor +{ + FLAVOR_SPICY, + FLAVOR_DRY, + FLAVOR_SWEET, + FLAVOR_BITTER, + FLAVOR_SOUR, + FLAVOR_COUNT, +}; #define BERRY_STAGE_NO_BERRY 0 // there is no tree planted and the soil is completely flat. #define BERRY_STAGE_PLANTED 1 diff --git a/include/constants/characters.h b/include/constants/characters.h index 0af7b110f09b..8050c6de3826 100644 --- a/include/constants/characters.h +++ b/include/constants/characters.h @@ -233,6 +233,9 @@ #define EXT_CTRL_CODE_PAUSE_MUSIC 0x17 #define EXT_CTRL_CODE_RESUME_MUSIC 0x18 #define EXT_CTRL_CODE_SPEAKER 0x19 +#define EXT_CTRL_CODE_ACCENT 0x1A +#define EXT_CTRL_CODE_BACKGROUND 0x1B +#define EXT_CTRL_CODE_TEXT_COLORS 0x1C #define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_WHITE 0x1 @@ -265,6 +268,7 @@ #define PLACEHOLDER_ID_MAXIE 0xB #define PLACEHOLDER_ID_KYOGRE 0xC #define PLACEHOLDER_ID_GROUDON 0xD +#define PLACEHOLDER_ID_REGION 0xE // battle placeholders are located in battle_message.h diff --git a/include/constants/cries.h b/include/constants/cries.h index e30973946262..0752ac6138ba 100644 --- a/include/constants/cries.h +++ b/include/constants/cries.h @@ -8,26 +8,26 @@ enum PokemonCry CRY_BULBASAUR, CRY_IVYSAUR, CRY_VENUSAUR, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_VENUSAUR_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_BULBASAUR #if P_FAMILY_CHARMANDER CRY_CHARMANDER, CRY_CHARMELEON, CRY_CHARIZARD, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_CHARIZARD_MEGA_X, CRY_CHARIZARD_MEGA_Y, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CHARMANDER #if P_FAMILY_SQUIRTLE CRY_SQUIRTLE, CRY_WARTORTLE, CRY_BLASTOISE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_BLASTOISE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SQUIRTLE #if P_FAMILY_CATERPIE CRY_CATERPIE, @@ -38,17 +38,17 @@ enum PokemonCry CRY_WEEDLE, CRY_KAKUNA, CRY_BEEDRILL, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_BEEDRILL_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_WEEDLE #if P_FAMILY_PIDGEY CRY_PIDGEY, CRY_PIDGEOTTO, CRY_PIDGEOT, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_PIDGEOT_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_PIDGEY #if P_FAMILY_RATTATA CRY_RATTATA, @@ -68,6 +68,10 @@ enum PokemonCry #endif //P_GEN_2_CROSS_EVOS CRY_PIKACHU, CRY_RAICHU, +#if P_MODIFIED_MEGA_CRIES + CRY_RAICHU_MEGA_X, + CRY_RAICHU_MEGA_Y, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_PIKACHU #if P_FAMILY_SANDSHREW CRY_SANDSHREW, @@ -87,6 +91,9 @@ enum PokemonCry #endif //P_GEN_2_CROSS_EVOS CRY_CLEFAIRY, CRY_CLEFABLE, +#if P_MODIFIED_MEGA_CRIES + CRY_CLEFABLE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CLEFAIRY #if P_FAMILY_VULPIX CRY_VULPIX, @@ -160,9 +167,9 @@ enum PokemonCry CRY_ABRA, CRY_KADABRA, CRY_ALAKAZAM, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_ALAKAZAM_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ABRA #if P_FAMILY_MACHOP CRY_MACHOP, @@ -173,6 +180,9 @@ enum PokemonCry CRY_BELLSPROUT, CRY_WEEPINBELL, CRY_VICTREEBEL, +#if P_MODIFIED_MEGA_CRIES + CRY_VICTREEBEL_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_BELLSPROUT #if P_FAMILY_TENTACOOL CRY_TENTACOOL, @@ -193,9 +203,9 @@ enum PokemonCry #if P_GEN_2_CROSS_EVOS CRY_SLOWKING, #endif //P_GEN_2_CROSS_EVOS -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SLOWBRO_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #if P_GALARIAN_FORMS CRY_SLOWPOKE_GALAR, #endif //P_GALARIAN_FORMS @@ -233,17 +243,17 @@ enum PokemonCry CRY_GASTLY, CRY_HAUNTER, CRY_GENGAR, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_GENGAR_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_GASTLY #if P_FAMILY_ONIX CRY_ONIX, #if P_GEN_2_CROSS_EVOS CRY_STEELIX, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_STEELIX_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_ONIX #if P_FAMILY_DROWZEE @@ -310,9 +320,9 @@ enum PokemonCry #endif //P_FAMILY_TANGELA #if P_FAMILY_KANGASKHAN CRY_KANGASKHAN, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_KANGASKHAN_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_KANGASKHAN #if P_FAMILY_HORSEA CRY_HORSEA, @@ -328,6 +338,9 @@ enum PokemonCry #if P_FAMILY_STARYU CRY_STARYU, CRY_STARMIE, +#if P_MODIFIED_MEGA_CRIES + CRY_STARMIE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_STARYU #if P_FAMILY_MR_MIME #if P_GEN_4_CROSS_EVOS @@ -342,9 +355,9 @@ enum PokemonCry CRY_SCYTHER, #if P_GEN_2_CROSS_EVOS CRY_SCIZOR, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SCIZOR_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_GEN_2_CROSS_EVOS #if P_GEN_8_CROSS_EVOS CRY_KLEAVOR, @@ -376,9 +389,9 @@ enum PokemonCry #endif //P_FAMILY_MAGMAR #if P_FAMILY_PINSIR CRY_PINSIR, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_PINSIR_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_PINSIR #if P_FAMILY_TAUROS CRY_TAUROS, @@ -386,9 +399,9 @@ enum PokemonCry #if P_FAMILY_MAGIKARP CRY_MAGIKARP, CRY_GYARADOS, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_GYARADOS_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MAGIKARP #if P_FAMILY_LAPRAS CRY_LAPRAS, @@ -413,8 +426,8 @@ enum PokemonCry CRY_SYLVEON, #endif //P_GEN_6_CROSS_EVOS #endif //P_FAMILY_EEVEE -#if P_FAMILY_PORYGON CRY_PORYGON, +#if P_FAMILY_PORYGON #if P_GEN_2_CROSS_EVOS CRY_PORYGON2, #if P_GEN_4_CROSS_EVOS @@ -432,9 +445,9 @@ enum PokemonCry #endif //P_FAMILY_KABUTO #if P_FAMILY_AERODACTYL CRY_AERODACTYL, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_AERODACTYL_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_AERODACTYL #if P_FAMILY_SNORLAX #if P_GEN_4_CROSS_EVOS @@ -455,13 +468,16 @@ enum PokemonCry CRY_DRATINI, CRY_DRAGONAIR, CRY_DRAGONITE, +#if P_MODIFIED_MEGA_CRIES + CRY_DRAGONITE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_DRATINI #if P_FAMILY_MEWTWO CRY_MEWTWO, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_MEWTWO_MEGA_X, CRY_MEWTWO_MEGA_Y, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MEWTWO #if P_FAMILY_MEW CRY_MEW, @@ -470,6 +486,9 @@ enum PokemonCry CRY_CHIKORITA, CRY_BAYLEEF, CRY_MEGANIUM, +#if P_MODIFIED_MEGA_CRIES + CRY_MEGANIUM_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CHIKORITA #if P_FAMILY_CYNDAQUIL CRY_CYNDAQUIL, @@ -480,6 +499,9 @@ enum PokemonCry CRY_TOTODILE, CRY_CROCONAW, CRY_FERALIGATR, +#if P_MODIFIED_MEGA_CRIES + CRY_FERALIGATR_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_TOTODILE #if P_FAMILY_SENTRET CRY_SENTRET, @@ -516,9 +538,9 @@ enum PokemonCry CRY_MAREEP, CRY_FLAAFFY, CRY_AMPHAROS, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_AMPHAROS_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MAREEP #if P_FAMILY_MARILL #if P_GEN_3_CROSS_EVOS @@ -611,9 +633,9 @@ enum PokemonCry #endif //P_FAMILY_SHUCKLE #if P_FAMILY_HERACROSS CRY_HERACROSS, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_HERACROSS_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_HERACROSS #if P_FAMILY_SNEASEL CRY_SNEASEL, @@ -629,6 +651,7 @@ enum PokemonCry CRY_URSARING, #if P_GEN_8_CROSS_EVOS CRY_URSALUNA, + CRY_URSALUNA_BLOODMOON, #endif //P_GEN_8_CROSS_EVOS #endif //P_FAMILY_TEDDIURSA #if P_FAMILY_SLUGMA @@ -663,13 +686,16 @@ enum PokemonCry #endif //P_FAMILY_MANTINE #if P_FAMILY_SKARMORY CRY_SKARMORY, +#if P_MODIFIED_MEGA_CRIES + CRY_SKARMORY_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SKARMORY #if P_FAMILY_HOUNDOUR CRY_HOUNDOUR, CRY_HOUNDOOM, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_HOUNDOOM_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_HOUNDOUR #if P_FAMILY_PHANPY CRY_PHANPY, @@ -700,9 +726,9 @@ enum PokemonCry CRY_LARVITAR, CRY_PUPITAR, CRY_TYRANITAR, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_TYRANITAR_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_LARVITAR #if P_FAMILY_LUGIA CRY_LUGIA, @@ -717,25 +743,25 @@ enum PokemonCry CRY_TREECKO, CRY_GROVYLE, CRY_SCEPTILE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SCEPTILE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_TREECKO #if P_FAMILY_TORCHIC CRY_TORCHIC, CRY_COMBUSKEN, CRY_BLAZIKEN, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_BLAZIKEN_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_TORCHIC #if P_FAMILY_MUDKIP CRY_MUDKIP, CRY_MARSHTOMP, CRY_SWAMPERT, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SWAMPERT_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MUDKIP #if P_FAMILY_POOCHYENA CRY_POOCHYENA, @@ -777,14 +803,14 @@ enum PokemonCry CRY_RALTS, CRY_KIRLIA, CRY_GARDEVOIR, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_GARDEVOIR_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #if P_GEN_4_CROSS_EVOS CRY_GALLADE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_GALLADE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_RALTS #if P_FAMILY_SURSKIT @@ -826,37 +852,37 @@ enum PokemonCry #endif //P_FAMILY_SKITTY #if P_FAMILY_SABLEYE CRY_SABLEYE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SABLEYE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SABLEYE #if P_FAMILY_MAWILE CRY_MAWILE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_MAWILE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MAWILE #if P_FAMILY_ARON CRY_ARON, CRY_LAIRON, CRY_AGGRON, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_AGGRON_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ARON #if P_FAMILY_MEDITITE CRY_MEDITITE, CRY_MEDICHAM, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_MEDICHAM_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MEDITITE #if P_FAMILY_ELECTRIKE CRY_ELECTRIKE, CRY_MANECTRIC, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_MANECTRIC_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ELECTRIKE #if P_FAMILY_PLUSLE CRY_PLUSLE, @@ -884,9 +910,9 @@ enum PokemonCry #if P_FAMILY_CARVANHA CRY_CARVANHA, CRY_SHARPEDO, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SHARPEDO_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CARVANHA #if P_FAMILY_WAILMER CRY_WAILMER, @@ -895,9 +921,9 @@ enum PokemonCry #if P_FAMILY_NUMEL CRY_NUMEL, CRY_CAMERUPT, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_CAMERUPT_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_NUMEL #if P_FAMILY_TORKOAL CRY_TORKOAL, @@ -921,9 +947,9 @@ enum PokemonCry #if P_FAMILY_SWABLU CRY_SWABLU, CRY_ALTARIA, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_ALTARIA_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SWABLU #if P_FAMILY_ZANGOOSE CRY_ZANGOOSE, @@ -970,9 +996,9 @@ enum PokemonCry #if P_FAMILY_SHUPPET CRY_SHUPPET, CRY_BANETTE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_BANETTE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SHUPPET #if P_FAMILY_DUSKULL CRY_DUSKULL, @@ -989,21 +1015,28 @@ enum PokemonCry CRY_CHINGLING, #endif //P_GEN_4_CROSS_EVOS CRY_CHIMECHO, +#if P_MODIFIED_MEGA_CRIES + CRY_CHIMECHO_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CHIMECHO #if P_FAMILY_ABSOL CRY_ABSOL, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_ABSOL_MEGA, -#endif //P_MEGA_EVOLUTIONS + CRY_ABSOL_MEGA_Z, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ABSOL #if P_FAMILY_SNORUNT CRY_SNORUNT, CRY_GLALIE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_GLALIE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #if P_GEN_4_CROSS_EVOS CRY_FROSLASS, +#if P_MODIFIED_MEGA_CRIES + CRY_FROSLASS_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SNORUNT #if P_FAMILY_SPHEAL @@ -1026,17 +1059,17 @@ enum PokemonCry CRY_BAGON, CRY_SHELGON, CRY_SALAMENCE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_SALAMENCE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_BAGON #if P_FAMILY_BELDUM CRY_BELDUM, CRY_METANG, CRY_METAGROSS, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_METAGROSS_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_BELDUM #if P_FAMILY_REGIROCK CRY_REGIROCK, @@ -1049,15 +1082,15 @@ enum PokemonCry #endif //P_FAMILY_REGISTEEL #if P_FAMILY_LATIAS CRY_LATIAS, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_LATIAS_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_LATIAS #if P_FAMILY_LATIOS CRY_LATIOS, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_LATIOS_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_LATIOS #if P_FAMILY_KYOGRE CRY_KYOGRE, @@ -1073,9 +1106,9 @@ enum PokemonCry #endif //P_FAMILY_GROUDON #if P_FAMILY_RAYQUAZA CRY_RAYQUAZA, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_RAYQUAZA_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_RAYQUAZA #if P_FAMILY_JIRACHI CRY_JIRACHI, @@ -1102,6 +1135,9 @@ enum PokemonCry CRY_STARLY, CRY_STARAVIA, CRY_STARAPTOR, +#if P_MODIFIED_MEGA_CRIES + CRY_STARAPTOR_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_STARLY #if P_FAMILY_BIDOOF CRY_BIDOOF, @@ -1155,9 +1191,9 @@ enum PokemonCry #if P_FAMILY_BUNEARY CRY_BUNEARY, CRY_LOPUNNY, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_LOPUNNY_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_BUNEARY #if P_FAMILY_GLAMEOW CRY_GLAMEOW, @@ -1181,16 +1217,17 @@ enum PokemonCry CRY_GIBLE, CRY_GABITE, CRY_GARCHOMP, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_GARCHOMP_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_GIBLE #if P_FAMILY_RIOLU CRY_RIOLU, CRY_LUCARIO, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_LUCARIO_MEGA, -#endif //P_MEGA_EVOLUTIONS + CRY_LUCARIO_MEGA_Z, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_RIOLU #if P_FAMILY_HIPPOPOTAS CRY_HIPPOPOTAS, @@ -1214,9 +1251,9 @@ enum PokemonCry #if P_FAMILY_SNOVER CRY_SNOVER, CRY_ABOMASNOW, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_ABOMASNOW_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SNOVER #if P_FAMILY_ROTOM CRY_ROTOM, @@ -1238,6 +1275,9 @@ enum PokemonCry #endif //P_FAMILY_PALKIA #if P_FAMILY_HEATRAN CRY_HEATRAN, +#if P_MODIFIED_MEGA_CRIES + CRY_HEATRAN_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_HEATRAN #if P_FAMILY_REGIGIGAS CRY_REGIGIGAS, @@ -1254,6 +1294,9 @@ enum PokemonCry #endif //P_FAMILY_MANAPHY #if P_FAMILY_DARKRAI CRY_DARKRAI, +#if P_MODIFIED_MEGA_CRIES + CRY_DARKRAI_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_DARKRAI #if P_FAMILY_SHAYMIN CRY_SHAYMIN_LAND, @@ -1274,6 +1317,9 @@ enum PokemonCry CRY_TEPIG, CRY_PIGNITE, CRY_EMBOAR, +#if P_MODIFIED_MEGA_CRIES + CRY_EMBOAR_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_TEPIG #if P_FAMILY_OSHAWOTT CRY_OSHAWOTT, @@ -1330,12 +1376,15 @@ enum PokemonCry #if P_FAMILY_DRILBUR CRY_DRILBUR, CRY_EXCADRILL, +#if P_MODIFIED_MEGA_CRIES + CRY_EXCADRILL_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_DRILBUR #if P_FAMILY_AUDINO CRY_AUDINO, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_AUDINO_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_AUDINO #if P_FAMILY_TIMBURR CRY_TIMBURR, @@ -1362,6 +1411,9 @@ enum PokemonCry CRY_VENIPEDE, CRY_WHIRLIPEDE, CRY_SCOLIPEDE, +#if P_MODIFIED_MEGA_CRIES + CRY_SCOLIPEDE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_VENIPEDE #if P_FAMILY_COTTONEE CRY_COTTONEE, @@ -1396,6 +1448,9 @@ enum PokemonCry #if P_FAMILY_SCRAGGY CRY_SCRAGGY, CRY_SCRAFTY, +#if P_MODIFIED_MEGA_CRIES + CRY_SCRAFTY_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SCRAGGY #if P_FAMILY_SIGILYPH CRY_SIGILYPH, @@ -1485,6 +1540,9 @@ enum PokemonCry CRY_TYNAMO, CRY_EELEKTRIK, CRY_EELEKTROSS, +#if P_MODIFIED_MEGA_CRIES + CRY_EELEKTROSS_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_TYNAMO #if P_FAMILY_ELGYEM CRY_ELGYEM, @@ -1494,6 +1552,9 @@ enum PokemonCry CRY_LITWICK, CRY_LAMPENT, CRY_CHANDELURE, +#if P_MODIFIED_MEGA_CRIES + CRY_CHANDELURE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_LITWICK #if P_FAMILY_AXEW CRY_AXEW, @@ -1524,6 +1585,9 @@ enum PokemonCry #if P_FAMILY_GOLETT CRY_GOLETT, CRY_GOLURK, +#if P_MODIFIED_MEGA_CRIES + CRY_GOLURK_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_GOLETT #if P_FAMILY_PAWNIARD CRY_PAWNIARD, @@ -1605,16 +1669,25 @@ enum PokemonCry CRY_CHESPIN, CRY_QUILLADIN, CRY_CHESNAUGHT, +#if P_MODIFIED_MEGA_CRIES + CRY_CHESNAUGHT_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CHESPIN #if P_FAMILY_FENNEKIN CRY_FENNEKIN, CRY_BRAIXEN, CRY_DELPHOX, +#if P_MODIFIED_MEGA_CRIES + CRY_DELPHOX_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_FENNEKIN #if P_FAMILY_FROAKIE CRY_FROAKIE, CRY_FROGADIER, CRY_GRENINJA, +#if P_MODIFIED_MEGA_CRIES + CRY_GRENINJA_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_FROAKIE #if P_FAMILY_BUNNELBY CRY_BUNNELBY, @@ -1633,11 +1706,17 @@ enum PokemonCry #if P_FAMILY_LITLEO CRY_LITLEO, CRY_PYROAR, +#if P_MODIFIED_MEGA_CRIES + CRY_PYROAR_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_LITLEO #if P_FAMILY_FLABEBE CRY_FLABEBE, CRY_FLOETTE, CRY_FLOETTE_ETERNAL, +#if P_MODIFIED_MEGA_CRIES + CRY_FLOETTE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES CRY_FLORGES, #endif //P_FAMILY_FLABEBE #if P_FAMILY_SKIDDO @@ -1654,6 +1733,9 @@ enum PokemonCry #if P_FAMILY_ESPURR CRY_ESPURR, CRY_MEOWSTIC, +#if P_MODIFIED_MEGA_CRIES + CRY_MEOWSTIC_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ESPURR #if P_FAMILY_HONEDGE CRY_HONEDGE, @@ -1671,14 +1753,23 @@ enum PokemonCry #if P_FAMILY_INKAY CRY_INKAY, CRY_MALAMAR, +#if P_MODIFIED_MEGA_CRIES + CRY_MALAMAR_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_INKAY #if P_FAMILY_BINACLE CRY_BINACLE, CRY_BARBARACLE, +#if P_MODIFIED_MEGA_CRIES + CRY_BARBARACLE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_BINACLE #if P_FAMILY_SKRELP CRY_SKRELP, CRY_DRAGALGE, +#if P_MODIFIED_MEGA_CRIES + CRY_DRAGALGE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_SKRELP #if P_FAMILY_CLAUNCHER CRY_CLAUNCHER, @@ -1698,6 +1789,9 @@ enum PokemonCry #endif //P_FAMILY_AMAURA #if P_FAMILY_HAWLUCHA CRY_HAWLUCHA, +#if P_MODIFIED_MEGA_CRIES + CRY_HAWLUCHA_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_HAWLUCHA #if P_FAMILY_DEDENNE CRY_DEDENNE, @@ -1741,12 +1835,15 @@ enum PokemonCry CRY_ZYGARDE_50, CRY_ZYGARDE_10, CRY_ZYGARDE_COMPLETE, +#if P_MODIFIED_MEGA_CRIES + CRY_ZYGARDE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ZYGARDE #if P_FAMILY_DIANCIE CRY_DIANCIE, -#if P_MEGA_EVOLUTIONS +#if P_MODIFIED_MEGA_CRIES CRY_DIANCIE_MEGA, -#endif //P_MEGA_EVOLUTIONS +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_DIANCIE #if P_FAMILY_HOOPA CRY_HOOPA_CONFINED, @@ -1787,6 +1884,9 @@ enum PokemonCry #if P_FAMILY_CRABRAWLER CRY_CRABRAWLER, CRY_CRABOMINABLE, +#if P_MODIFIED_MEGA_CRIES + CRY_CRABOMINABLE_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CRABRAWLER #if P_FAMILY_ORICORIO CRY_ORICORIO_BAILE, @@ -1853,6 +1953,9 @@ enum PokemonCry #if P_FAMILY_WIMPOD CRY_WIMPOD, CRY_GOLISOPOD, +#if P_MODIFIED_MEGA_CRIES + CRY_GOLISOPOD_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_WIMPOD #if P_FAMILY_SANDYGAST CRY_SANDYGAST, @@ -1885,6 +1988,9 @@ enum PokemonCry #endif //P_FAMILY_BRUXISH #if P_FAMILY_DRAMPA CRY_DRAMPA, +#if P_MODIFIED_MEGA_CRIES + CRY_DRAMPA_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_DRAMPA #if P_FAMILY_DHELMISE CRY_DHELMISE, @@ -1945,6 +2051,9 @@ enum PokemonCry #endif //P_FAMILY_NECROZMA #if P_FAMILY_MAGEARNA CRY_MAGEARNA, +#if P_MODIFIED_MEGA_CRIES + CRY_MAGEARNA_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_MAGEARNA #if P_FAMILY_MARSHADOW CRY_MARSHADOW, @@ -1961,6 +2070,9 @@ enum PokemonCry #endif //P_FAMILY_BLACEPHALON #if P_FAMILY_ZERAORA CRY_ZERAORA, +#if P_MODIFIED_MEGA_CRIES + CRY_ZERAORA_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_ZERAORA #if P_FAMILY_MELTAN CRY_MELTAN, @@ -2035,6 +2147,7 @@ enum PokemonCry #endif //P_FAMILY_SILICOBRA #if P_FAMILY_CRAMORANT CRY_CRAMORANT, + CRY_CRAMORANT_GULPING, #endif //P_FAMILY_CRAMORANT #if P_FAMILY_ARROKUDA CRY_ARROKUDA, @@ -2073,6 +2186,9 @@ enum PokemonCry #endif //P_FAMILY_MILCERY #if P_FAMILY_FALINKS CRY_FALINKS, +#if P_MODIFIED_MEGA_CRIES + CRY_FALINKS_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_FALINKS #if P_FAMILY_PINCURCHIN CRY_PINCURCHIN, @@ -2256,6 +2372,9 @@ enum PokemonCry #if P_FAMILY_CAPSAKID CRY_CAPSAKID, CRY_SCOVILLAIN, +#if P_MODIFIED_MEGA_CRIES + CRY_SCOVILLAIN_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_CAPSAKID #if P_FAMILY_RELLOR CRY_RELLOR, @@ -2295,6 +2414,9 @@ enum PokemonCry #if P_FAMILY_GLIMMET CRY_GLIMMET, CRY_GLIMMORA, +#if P_MODIFIED_MEGA_CRIES + CRY_GLIMMORA_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_GLIMMET #if P_FAMILY_GREAVARD CRY_GREAVARD, @@ -2317,6 +2439,9 @@ enum PokemonCry CRY_TATSUGIRI_CURLY, CRY_TATSUGIRI_DROOPY, CRY_TATSUGIRI_STRETCHY, +#if P_MODIFIED_MEGA_CRIES + CRY_TATSUGIRI_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_TATSUGIRI #if P_FAMILY_GREAT_TUSK CRY_GREAT_TUSK, @@ -2358,6 +2483,9 @@ enum PokemonCry CRY_FRIGIBAX, CRY_ARCTIBAX, CRY_BAXCALIBUR, +#if P_MODIFIED_MEGA_CRIES + CRY_BAXCALIBUR_MEGA, +#endif //P_MODIFIED_MEGA_CRIES #endif //P_FAMILY_FRIGIBAX #if P_FAMILY_GIMMIGHOUL CRY_GIMMIGHOUL, diff --git a/include/constants/egg_ids.h b/include/constants/egg_ids.h new file mode 100644 index 000000000000..bab187101e88 --- /dev/null +++ b/include/constants/egg_ids.h @@ -0,0 +1,12 @@ +#ifndef GUARD_EGG_IDS_H +#define GUARD_EGG_IDS_H + +// IDs for species with custom eggs +enum EggIds +{ + EGG_ID_NONE, + EGG_ID_MANAPHY, + EGG_ID_COUNT +}; + +#endif // GUARD_EGG_IDS_H diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 4f183d766740..b74eefacfd6b 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -1,6 +1,7 @@ #ifndef GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H #define GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H + #define MOVEMENT_TYPE_NONE 0x0 #define MOVEMENT_TYPE_LOOK_AROUND 0x1 #define MOVEMENT_TYPE_WANDER_AROUND 0x2 @@ -83,7 +84,8 @@ #define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x4F #define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x50 #define MOVEMENT_TYPE_FOLLOW_PLAYER 0x51 -#define NUM_MOVEMENT_TYPES 0x52 +#define MOVEMENT_TYPE_WANDER_AROUND_SLOWER 0x52 +#define NUM_MOVEMENT_TYPES 0x53 #define MOVEMENT_ACTION_FACE_DOWN 0x0 #define MOVEMENT_ACTION_FACE_UP 0x1 @@ -264,6 +266,10 @@ #define MOVEMENT_ACTION_WALK_FAST_DIAGONAL_UP_RIGHT 0xAF #define MOVEMENT_ACTION_WALK_FAST_DIAGONAL_DOWN_LEFT 0xB0 #define MOVEMENT_ACTION_WALK_FAST_DIAGONAL_DOWN_RIGHT 0xB1 +#define MOVEMENT_ACTION_SPIN_DOWN 0xB2 +#define MOVEMENT_ACTION_SPIN_UP 0xB3 +#define MOVEMENT_ACTION_SPIN_LEFT 0xB4 +#define MOVEMENT_ACTION_SPIN_RIGHT 0xB5 #define MOVEMENT_ACTION_STEP_END 0xFE #define MOVEMENT_ACTION_NONE 0xFF @@ -290,6 +296,16 @@ #define ANIM_STD_GO_FASTEST_EAST 19 #define ANIM_STD_COUNT 20 +#define ANIM_RUN_SOUTH (ANIM_STD_COUNT + 0) +#define ANIM_RUN_NORTH (ANIM_STD_COUNT + 1) +#define ANIM_RUN_WEST (ANIM_STD_COUNT + 2) +#define ANIM_RUN_EAST (ANIM_STD_COUNT + 3) +#define ANIM_SPIN_SOUTH (ANIM_STD_COUNT + 4) +#define ANIM_SPIN_NORTH (ANIM_STD_COUNT + 5) +#define ANIM_SPIN_WEST (ANIM_STD_COUNT + 6) +#define ANIM_SPIN_EAST (ANIM_STD_COUNT + 7) +#define ANIM_SHAKE_HEAD_OR_WALK_IN_PLACE (ANIM_STD_COUNT + 8) + #define ANIM_RUN_SOUTH (ANIM_STD_COUNT + 0) #define ANIM_RUN_NORTH (ANIM_STD_COUNT + 1) #define ANIM_RUN_WEST (ANIM_STD_COUNT + 2) @@ -348,17 +364,19 @@ #define ANIM_HOOKED_POKEMON_EAST 11 // IDs for how NPCs that copy player movement should respond. -// Most go unused. -#define COPY_MOVE_NONE 0 -#define COPY_MOVE_FACE 1 -#define COPY_MOVE_WALK 2 -#define COPY_MOVE_WALK_FAST 3 -#define COPY_MOVE_WALK_FASTER 4 -#define COPY_MOVE_SLIDE 5 -#define COPY_MOVE_JUMP_IN_PLACE 6 -#define COPY_MOVE_JUMP 7 -#define COPY_MOVE_JUMP2 8 -#define COPY_MOVE_EMPTY_1 9 -#define COPY_MOVE_EMPTY_2 10 +enum CopyMovement +{ + COPY_MOVE_NONE, + COPY_MOVE_FACE, + COPY_MOVE_WALK, + COPY_MOVE_WALK_FAST, + COPY_MOVE_WALK_FASTER, + COPY_MOVE_SLIDE, + COPY_MOVE_JUMP_IN_PLACE, + COPY_MOVE_JUMP, + COPY_MOVE_JUMP2, + COPY_MOVE_WALK_COLLIDE, + COPY_MOVE_WALK_COLLIDE_SLOW, +}; #endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index c20c2c79c3ef..fdaef552277b 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -4,6 +4,25 @@ #include "constants/global.h" #include "constants/map_event_ids.h" +#define PLAYER_AVATAR_GFX_MALE_NORMAL (IS_FRLG ? OBJ_EVENT_GFX_RED_NORMAL : OBJ_EVENT_GFX_BRENDAN_NORMAL) +#define PLAYER_AVATAR_GFX_MALE_MACH_BIKE (IS_FRLG ? OBJ_EVENT_GFX_RED_BIKE : OBJ_EVENT_GFX_BRENDAN_MACH_BIKE) +#define PLAYER_AVATAR_GFX_MALE_ACRO_BIKE (IS_FRLG ? OBJ_EVENT_GFX_RED_BIKE : OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE) +#define PLAYER_AVATAR_GFX_MALE_SURFING (IS_FRLG ? OBJ_EVENT_GFX_RED_SURF : OBJ_EVENT_GFX_BRENDAN_SURFING) +#define PLAYER_AVATAR_GFX_MALE_UNDERWATER (IS_FRLG ? OBJ_EVENT_GFX_RED_SURF : OBJ_EVENT_GFX_BRENDAN_UNDERWATER) +#define PLAYER_AVATAR_GFX_MALE_FIELD_MOVE (IS_FRLG ? OBJ_EVENT_GFX_RED_FIELD_MOVE : OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE) +#define PLAYER_AVATAR_GFX_MALE_FISHING (IS_FRLG ? OBJ_EVENT_GFX_RED_FISH : OBJ_EVENT_GFX_BRENDAN_FISHING) +#define PLAYER_AVATAR_GFX_MALE_WATERING (IS_FRLG ? OBJ_EVENT_GFX_RED_FIELD_MOVE : OBJ_EVENT_GFX_BRENDAN_WATERING) +#define PLAYER_AVATAR_GFX_MALE_VSSEEKER (IS_FRLG ? OBJ_EVENT_GFX_RED_VS_SEEKER : OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE) +#define PLAYER_AVATAR_GFX_FEMALE_NORMAL (IS_FRLG ? OBJ_EVENT_GFX_GREEN_NORMAL : OBJ_EVENT_GFX_MAY_NORMAL) +#define PLAYER_AVATAR_GFX_FEMALE_MACH_BIKE (IS_FRLG ? OBJ_EVENT_GFX_GREEN_BIKE : OBJ_EVENT_GFX_MAY_MACH_BIKE) +#define PLAYER_AVATAR_GFX_FEMALE_ACRO_BIKE (IS_FRLG ? OBJ_EVENT_GFX_GREEN_BIKE : OBJ_EVENT_GFX_MAY_ACRO_BIKE) +#define PLAYER_AVATAR_GFX_FEMALE_SURFING (IS_FRLG ? OBJ_EVENT_GFX_GREEN_SURF : OBJ_EVENT_GFX_MAY_SURFING) +#define PLAYER_AVATAR_GFX_FEMALE_UNDERWATER (IS_FRLG ? OBJ_EVENT_GFX_GREEN_SURF : OBJ_EVENT_GFX_MAY_UNDERWATER) +#define PLAYER_AVATAR_GFX_FEMALE_FIELD_MOVE (IS_FRLG ? OBJ_EVENT_GFX_GREEN_FIELD_MOVE : OBJ_EVENT_GFX_MAY_FIELD_MOVE) +#define PLAYER_AVATAR_GFX_FEMALE_FISHING (IS_FRLG ? OBJ_EVENT_GFX_GREEN_FISH : OBJ_EVENT_GFX_MAY_FISHING) +#define PLAYER_AVATAR_GFX_FEMALE_WATERING (IS_FRLG ? OBJ_EVENT_GFX_GREEN_FIELD_MOVE : OBJ_EVENT_GFX_MAY_WATERING) +#define PLAYER_AVATAR_GFX_FEMALE_VSSEEKER (IS_FRLG ? OBJ_EVENT_GFX_GREEN_VS_SEEKER : OBJ_EVENT_GFX_MAY_FIELD_MOVE) + #define OBJ_EVENT_GFX_BRENDAN_NORMAL 0 #define OBJ_EVENT_GFX_BRENDAN_MACH_BIKE 1 #define OBJ_EVENT_GFX_BRENDAN_SURFING 2 @@ -248,10 +267,163 @@ #define OBJ_EVENT_GFX_LIGHT_SPRITE 241 #define OBJ_EVENT_GFX_APRICORN_TREE 242 +// FRLG objects +#define OBJ_EVENT_GFX_RED_NORMAL 243 +#define OBJ_EVENT_GFX_RED_BIKE 244 +#define OBJ_EVENT_GFX_RED_SURF 245 +#define OBJ_EVENT_GFX_RED_FIELD_MOVE 246 +#define OBJ_EVENT_GFX_RED_FISH 247 +#define OBJ_EVENT_GFX_RED_VS_SEEKER 248 +#define OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE 249 +#define OBJ_EVENT_GFX_GREEN_NORMAL 251 +#define OBJ_EVENT_GFX_GREEN_BIKE 252 +#define OBJ_EVENT_GFX_GREEN_SURF 253 +#define OBJ_EVENT_GFX_GREEN_FIELD_MOVE 254 +#define OBJ_EVENT_GFX_GREEN_FISH 255 +#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 256 +#define OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE 257 +#define OBJ_EVENT_GFX_BOY 258 +#define OBJ_EVENT_GFX_BATTLE_GIRL 259 +#define OBJ_EVENT_GFX_MAN 260 +#define OBJ_EVENT_GFX_ROCKER 261 +#define OBJ_EVENT_GFX_BALDING_MAN 262 +#define OBJ_EVENT_GFX_OLD_MAN_1 263 +#define OBJ_EVENT_GFX_OLD_MAN_2 264 +#define OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN 265 +#define OBJ_EVENT_GFX_TUBER_M_WATER 266 +#define OBJ_EVENT_GFX_TUBER_M_LAND 267 +#define OBJ_EVENT_GFX_COOLTRAINER_M 268 +#define OBJ_EVENT_GFX_COOLTRAINER_F 269 +#define OBJ_EVENT_GFX_SWIMMER_M_WATER 270 +#define OBJ_EVENT_GFX_SWIMMER_F_WATER 271 +#define OBJ_EVENT_GFX_SWIMMER_M_LAND 272 +#define OBJ_EVENT_GFX_SWIMMER_F_LAND 273 +#define OBJ_EVENT_GFX_WORKER_M 274 +#define OBJ_EVENT_GFX_WORKER_F 275 +#define OBJ_EVENT_GFX_ROCKET_M 276 +#define OBJ_EVENT_GFX_ROCKET_F 277 +#define OBJ_EVENT_GFX_GBA_KID 278 +#define OBJ_EVENT_GFX_SUPER_NERD 279 +#define OBJ_EVENT_GFX_BIKER 280 +#define OBJ_EVENT_GFX_BLACKBELT 281 +#define OBJ_EVENT_GFX_SCIENTIST 282 +#define OBJ_EVENT_GFX_FISHER 283 +#define OBJ_EVENT_GFX_CHANNELER 284 +#define OBJ_EVENT_GFX_CHEF 285 +#define OBJ_EVENT_GFX_POLICEMAN 286 +#define OBJ_EVENT_GFX_CAPTAIN 287 +#define OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST 288 +#define OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST 289 +#define OBJ_EVENT_GFX_CLERK 290 +#define OBJ_EVENT_GFX_MG_DELIVERYMAN 291 +#define OBJ_EVENT_GFX_TRAINER_TOWER_DUDE 292 +#define OBJ_EVENT_GFX_PROF_OAK 293 +#define OBJ_EVENT_GFX_BLUE 294 +#define OBJ_EVENT_GFX_BILL 295 +#define OBJ_EVENT_GFX_LANCE 296 +#define OBJ_EVENT_GFX_AGATHA 297 +#define OBJ_EVENT_GFX_DAISY 298 +#define OBJ_EVENT_GFX_LORELEI 299 +#define OBJ_EVENT_GFX_MR_FUJI 300 +#define OBJ_EVENT_GFX_BRUNO 301 +#define OBJ_EVENT_GFX_BROCK 302 +#define OBJ_EVENT_GFX_MISTY 303 +#define OBJ_EVENT_GFX_LT_SURGE 304 +#define OBJ_EVENT_GFX_ERIKA 305 +#define OBJ_EVENT_GFX_KOGA 306 +#define OBJ_EVENT_GFX_SABRINA 307 +#define OBJ_EVENT_GFX_BLAINE 308 +#define OBJ_EVENT_GFX_GIOVANNI 309 +#define OBJ_EVENT_GFX_CELIO 310 +#define OBJ_EVENT_GFX_TEACHY_TV_HOST 311 +#define OBJ_EVENT_GFX_GYM_GUY 312 +#define OBJ_EVENT_GFX_TOWN_MAP 313 +#define OBJ_EVENT_GFX_POKEDEX 314 +#define OBJ_EVENT_GFX_LITTLE_BOY_FRLG 315 +#define OBJ_EVENT_GFX_LITTLE_GIRL_FRLG 316 +#define OBJ_EVENT_GFX_YOUNGSTER_FRLG 317 +#define OBJ_EVENT_GFX_BUG_CATCHER_FRLG 318 +#define OBJ_EVENT_GFX_LASS_FRLG 319 +#define OBJ_EVENT_GFX_WOMAN_1_FRLG 320 +#define OBJ_EVENT_GFX_FAT_MAN_FRLG 321 +#define OBJ_EVENT_GFX_WOMAN_2_FRLG 322 +#define OBJ_EVENT_GFX_BEAUTY_FRLG 323 +#define OBJ_EVENT_GFX_WOMAN_3_FRLG 324 +#define OBJ_EVENT_GFX_OLD_WOMAN_FRLG 325 +#define OBJ_EVENT_GFX_CAMPER_FRLG 326 +#define OBJ_EVENT_GFX_PICNICKER_FRLG 327 +#define OBJ_EVENT_GFX_MOM_FRLG 328 +#define OBJ_EVENT_GFX_TUBER_F_FRLG 329 +#define OBJ_EVENT_GFX_HIKER_FRLG 330 +#define OBJ_EVENT_GFX_GENTLEMAN_FRLG 331 +#define OBJ_EVENT_GFX_SAILOR_FRLG 332 +#define OBJ_EVENT_GFX_NURSE_FRLG 333 +#define OBJ_EVENT_GFX_FOSSIL_FRLG 334 +#define OBJ_EVENT_GFX_RUBY 335 +#define OBJ_EVENT_GFX_SAPPHIRE 336 +#define OBJ_EVENT_GFX_OLD_AMBER 337 +#define OBJ_EVENT_GFX_GYM_SIGN 338 +#define OBJ_EVENT_GFX_SIGN 339 +#define OBJ_EVENT_GFX_TRAINER_TIPS 340 +#define OBJ_EVENT_GFX_CLIPBOARD 341 +#define OBJ_EVENT_GFX_METEORITE 342 +#define OBJ_EVENT_GFX_LAPRAS_DOLL 343 +#define OBJ_EVENT_GFX_SEAGALLOP 344 +#define OBJ_EVENT_GFX_SNORLAX 345 +#define OBJ_EVENT_GFX_SPEAROW 346 +#define OBJ_EVENT_GFX_CUBONE 347 +#define OBJ_EVENT_GFX_POLIWRATH 348 +#define OBJ_EVENT_GFX_CLEFAIRY 349 +#define OBJ_EVENT_GFX_PIDGEOT 350 +#define OBJ_EVENT_GFX_JIGGLYPUFF 351 +#define OBJ_EVENT_GFX_PIDGEY 352 +#define OBJ_EVENT_GFX_CHANSEY 353 +#define OBJ_EVENT_GFX_OMANYTE 354 +#define OBJ_EVENT_GFX_KANGASKHAN 355 +#define OBJ_EVENT_GFX_PIKACHU_FRLG 356 +#define OBJ_EVENT_GFX_PSYDUCK 357 +#define OBJ_EVENT_GFX_NIDORAN_F 358 +#define OBJ_EVENT_GFX_NIDORAN_M 359 +#define OBJ_EVENT_GFX_NIDORINO 360 +#define OBJ_EVENT_GFX_MEOWTH 361 +#define OBJ_EVENT_GFX_SEEL 362 +#define OBJ_EVENT_GFX_VOLTORB 363 +#define OBJ_EVENT_GFX_SLOWPOKE 364 +#define OBJ_EVENT_GFX_SLOWBRO 365 +#define OBJ_EVENT_GFX_MACHOP 366 +#define OBJ_EVENT_GFX_WIGGLYTUFF 367 +#define OBJ_EVENT_GFX_DODUO 368 +#define OBJ_EVENT_GFX_FEAROW 369 +#define OBJ_EVENT_GFX_MACHOKE 370 +#define OBJ_EVENT_GFX_LAPRAS 371 +#define OBJ_EVENT_GFX_ZAPDOS 372 +#define OBJ_EVENT_GFX_MOLTRES 373 +#define OBJ_EVENT_GFX_ARTICUNO 374 +#define OBJ_EVENT_GFX_MEWTWO 375 +#define OBJ_EVENT_GFX_ENTEI 376 +#define OBJ_EVENT_GFX_SUICUNE 377 +#define OBJ_EVENT_GFX_RAIKOU 378 +#define OBJ_EVENT_GFX_CELEBI 379 +#define OBJ_EVENT_GFX_KABUTO 380 +#define OBJ_EVENT_GFX_DEOXYS_D 381 +#define OBJ_EVENT_GFX_DEOXYS_A 382 +#define OBJ_EVENT_GFX_DEOXYS_N 383 +#define OBJ_EVENT_GFX_SS_ANNE 384 +#define OBJ_EVENT_GFX_PUSHABLE_BOULDER_FRLG 385 +#define OBJ_EVENT_GFX_CUTTABLE_TREE_FRLG 386 +#define OBJ_EVENT_GFX_BREAKABLE_ROCK_FRLG 387 + +// FRLG equivalents + +// #define OBJ_EVENT_GFX_MEW OBJ_EVENT_GFX_NINJA_BOY +// #define OBJ_EVENT_GFX_LUGIA OBJ_EVENT_GFX_NINJA_BOY + + + // NOTE: The maximum amount of object events has been expanded from 255 to 65535. // Since dynamic graphics ids still require at least 16 free values, the actual limit // is 65519, but even considering follower Pokémon, this should be more than enough :) -#define NUM_OBJ_EVENT_GFX 243 +#define NUM_OBJ_EVENT_GFX 388 // These are dynamic object gfx ids. @@ -381,6 +553,21 @@ #define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122 #define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123 #define OBJ_EVENT_PAL_TAG_DYNAMIC 0x1124 +#define OBJ_EVENT_PAL_TAG_PLAYER_RED 0x1125 +#define OBJ_EVENT_PAL_TAG_PLAYER_RED_REFLECTION 0x1126 +#define OBJ_EVENT_PAL_TAG_PLAYER_GREEN 0x1127 +#define OBJ_EVENT_PAL_TAG_PLAYER_GREEN_REFLECTION 0x1128 +#define OBJ_EVENT_PAL_TAG_NPC_BLUE 0x1129 +#define OBJ_EVENT_PAL_TAG_NPC_PINK 0x1130 +#define OBJ_EVENT_PAL_TAG_NPC_GREEN 0x1131 +#define OBJ_EVENT_PAL_TAG_NPC_WHITE 0x1132 +#define OBJ_EVENT_PAL_TAG_NPC_BLUE_REFLECTION 0x1133 +#define OBJ_EVENT_PAL_TAG_NPC_PINK_REFLECTION 0x1134 +#define OBJ_EVENT_PAL_TAG_NPC_GREEN_REFLECTION 0x1135 +#define OBJ_EVENT_PAL_TAG_NPC_WHITE_REFLECTION 0x1136 +#define OBJ_EVENT_PAL_TAG_METEORITE 0x1137 +#define OBJ_EVENT_PAL_TAG_SEAGALLOP 0x1138 +#define OBJ_EVENT_PAL_TAG_SS_ANNE 0x1139 #if OW_FOLLOWERS_POKEBALLS // Vanilla diff --git a/include/constants/expansion.h b/include/constants/expansion.h index 83ed2a13d622..e15074ea5e4f 100644 --- a/include/constants/expansion.h +++ b/include/constants/expansion.h @@ -1,10 +1,10 @@ #ifndef GUARD_CONSTANTS_EXPANSION_H #define GUARD_CONSTANTS_EXPANSION_H -// Last version: 1.14.3 +// Last version: 1.15.0 #define EXPANSION_VERSION_MAJOR 1 -#define EXPANSION_VERSION_MINOR 14 -#define EXPANSION_VERSION_PATCH 4 +#define EXPANSION_VERSION_MINOR 15 +#define EXPANSION_VERSION_PATCH 1 // FALSE if this this version of Expansion is not a tagged commit, i.e. // it contains unreleased changes. diff --git a/include/constants/fame_checker.h b/include/constants/fame_checker.h new file mode 100644 index 000000000000..e09279bb46f1 --- /dev/null +++ b/include/constants/fame_checker.h @@ -0,0 +1,26 @@ +#ifndef GUARD_CONSTANTS_FAME_CHECKER_H +#define GUARD_CONSTANTS_FAME_CHECKER_H + +#define FAMECHECKER_OAK 0 +#define FAMECHECKER_DAISY 1 +#define FAMECHECKER_BROCK 2 +#define FAMECHECKER_MISTY 3 +#define FAMECHECKER_LTSURGE 4 +#define FAMECHECKER_ERIKA 5 +#define FAMECHECKER_KOGA 6 +#define FAMECHECKER_SABRINA 7 +#define FAMECHECKER_BLAINE 8 +#define FAMECHECKER_LORELEI 9 +#define FAMECHECKER_BRUNO 10 +#define FAMECHECKER_AGATHA 11 +#define FAMECHECKER_LANCE 12 +#define FAMECHECKER_BILL 13 +#define FAMECHECKER_MRFUJI 14 +#define FAMECHECKER_GIOVANNI 15 +#define NUM_FAMECHECKER_PERSONS 16 + +#define FCPICKSTATE_NO_DRAW 0 +#define FCPICKSTATE_SILHOUETTE 1 +#define FCPICKSTATE_COLORED 2 + +#endif //GUARD_CONSTANTS_FAME_CHECKER_H diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h index 71978fc64fec..7cf774b91f30 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -80,6 +80,9 @@ #define FLDEFF_USE_ROCK_CLIMB 75 #define FLDEFF_ROCK_CLIMB_DUST 76 #define FLDEFF_ORAS_DOWSE 77 +#define FLDEFF_SMILEY_FACE_ICON 78 +#define FLDEFF_HALL_OF_FAME_RECORD_FRLG 79 +#define FLDEFF_PHOTO_FLASH 80 #define FLDEFFOBJ_SHADOW_S 0 #define FLDEFFOBJ_SHADOW_M 1 diff --git a/include/constants/field_specials.h b/include/constants/field_specials.h index 6973f9e14f56..9d38023851f7 100644 --- a/include/constants/field_specials.h +++ b/include/constants/field_specials.h @@ -7,6 +7,7 @@ enum PCLocation PC_LOCATION_OTHER, PC_LOCATION_BRENDANS_HOUSE, PC_LOCATION_MAYS_HOUSE, + PC_LOCATION_PLAYER_HOUSE_FRLG }; // SS Tidal Locations @@ -51,6 +52,8 @@ enum ScrollMulti SCROLL_MULTI_BF_MOVE_TUTOR_2, SCROLL_MULTI_SS_TIDAL_DESTINATION, SCROLL_MULTI_BATTLE_TENT_RULES, + SCROLL_MULTI_BADGES, + SCROLL_MULTI_SILPHCO_FLOORS, }; #define MAX_SCROLL_MULTI_ON_SCREEN 6 diff --git a/include/constants/field_tasks.h b/include/constants/field_tasks.h index 7f773855d9bf..f2265eded89f 100644 --- a/include/constants/field_tasks.h +++ b/include/constants/field_tasks.h @@ -9,5 +9,6 @@ #define STEP_CB_TRUCK 5 #define STEP_CB_SECRET_BASE 6 #define STEP_CB_CRACKED_FLOOR 7 +#define STEP_CB_ICEFALL_CAVE 8 #endif // GUARD_CONSTANTS_FIELD_TASKS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index e00e5422a292..21d85d4626b1 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1,9 +1,11 @@ #ifndef GUARD_CONSTANTS_FLAGS_H #define GUARD_CONSTANTS_FLAGS_H +#include "constants/trainers.h" #include "constants/opponents.h" #include "constants/rematches.h" + // Temporary Flags // These temporary flags are are cleared every time a map is loaded. They are used // for things like shortening an NPCs introduction text if the player already spoke @@ -43,6 +45,12 @@ #define TEMP_FLAGS_END FLAG_TEMP_1F #define NUM_TEMP_FLAGS (TEMP_FLAGS_END - TEMP_FLAGS_START + 1) +#if IS_FRLG + +#include "constants/flags_frlg.h" + +#else + #define FLAG_UNUSED_0x020 0x20 // Unused Flag #define FLAG_UNUSED_0x021 0x21 // Unused Flag #define FLAG_UNUSED_0x022 0x22 // Unused Flag @@ -749,14 +757,6 @@ #define FLAG_HIDE_ROUTE_101_BIRCH_STARTERS_BAG 0x2BC #define FLAG_HIDE_APPRENTICE 0x2BD #define FLAG_HIDE_POKEMON_CENTER_2F_MYSTERY_GIFT_MAN 0x2BE -#define FLAG_HIDE_UNION_ROOM_PLAYER_1 0x2BF -#define FLAG_HIDE_UNION_ROOM_PLAYER_2 0x2C0 -#define FLAG_HIDE_UNION_ROOM_PLAYER_3 0x2C1 -#define FLAG_HIDE_UNION_ROOM_PLAYER_4 0x2C2 -#define FLAG_HIDE_UNION_ROOM_PLAYER_5 0x2C3 -#define FLAG_HIDE_UNION_ROOM_PLAYER_6 0x2C4 -#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x2C5 -#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x2C6 #define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_1 0x2C7 #define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_2 0x2C8 #define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_3 0x2C9 @@ -1356,15 +1356,15 @@ #define FLAG_UNLOCKED_TRENDY_SAYINGS (SYSTEM_FLAGS + 0x6) // Badges -#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x7) -#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x8) -#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x9) -#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0xA) -#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0xB) -#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0xC) -#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0xD) -#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0xE) -#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET) +#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x7) +#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x8) +#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x9) +#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0xA) +#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0xB) +#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0xC) +#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0xD) +#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0xE) +#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET) // Towns and Cities #define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF) @@ -1661,11 +1661,786 @@ #define FLAG_TEMP_HIDE_FOLLOWER FLAG_TEMP_E #define FLAG_TEMP_HIDE_MIRAGE_ISLAND_BERRY_TREE FLAG_TEMP_11 +// FRLG flags + +#define FLAG_HIDE_BULBASAUR_BALL 0 +#define FLAG_HIDE_SQUIRTLE_BALL 0 +#define FLAG_HIDE_CHARMANDER_BALL 0 +#define FLAG_HIDE_OAK_IN_HIS_LAB 0 +#define FLAG_HIDE_OAK_IN_PALLET_TOWN 0 +#define FLAG_HIDE_RIVAL_IN_LAB 0 +#define FLAG_HIDE_PEWTER_CITY_GYM_GUIDE 0 +#define FLAG_HIDE_DOME_FOSSIL 0 +#define FLAG_HIDE_HELIX_FOSSIL 0 +#define FLAG_HIDE_NUGGET_BRIDGE_ROCKET 0 +#define FLAG_HIDE_BILL_CLEFAIRY 0 +#define FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE 0 +#define FLAG_HIDE_TOWER_FUJI 0 +#define FLAG_HIDE_POKEHOUSE_FUJI 0 +#define FLAG_HIDE_LIFT_KEY 0 +#define FLAG_HIDE_SILPH_SCOPE 0 +#define FLAG_HIDE_HIDEOUT_GIOVANNI 0 +#define FLAG_HIDE_TOWN_MAP 0 +#define FLAG_HIDE_POKEDEX 0 +#define FLAG_HIDE_CERULEAN_ROCKET 0 +#define FLAG_HIDE_CERULEAN_RIVAL 0 +#define FLAG_HIDE_SS_ANNE_RIVAL 0 +#define FLAG_HIDE_SAFFRON_ROCKETS 0 +#define FLAG_HIDE_SAFFRON_CIVILIANS 0 +#define FLAG_HIDE_SEAFOAM_1F_BOULDER_1 0 +#define FLAG_HIDE_SEAFOAM_1F_BOULDER_2 0 +#define FLAG_HIDE_SEAFOAM_B1F_BOULDER_1 0 +#define FLAG_HIDE_SEAFOAM_B1F_BOULDER_2 0 +#define FLAG_HIDE_SEAFOAM_B2F_BOULDER_1 0 +#define FLAG_HIDE_SEAFOAM_B2F_BOULDER_2 0 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_1 0 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_2 0 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_3 0 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_4 0 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_5 0 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_6 0 +#define FLAG_HIDE_SEAFOAM_B4F_BOULDER_1 0 +#define FLAG_HIDE_SEAFOAM_B4F_BOULDER_2 0 +#define FLAG_HIDE_SILPH_RIVAL 0 +#define FLAG_HIDE_ROUTE_22_RIVAL 0 +#define FLAG_HIDE_PEWTER_MUSEUM_GUIDE 0 +#define FLAG_HIDE_TOWER_RIVAL 0 +#define FLAG_HIDE_MOLTRES 0 +#define FLAG_HIDE_SILPH_ROCKETS 0 +#define FLAG_HIDE_ROUTE_12_SNORLAX 0 +#define FLAG_HIDE_VIRIDIAN_GIOVANNI 0 +#define FLAG_HIDE_OLD_AMBER 0 +#define FLAG_HIDE_EEVEE_BALL 0 +#define FLAG_HIDE_VICTORY_ROAD_2F_BOULDER 0 +#define FLAG_HIDE_VICTORY_ROAD_3F_BOULDER 0 +#define FLAG_HIDE_OAK_IN_CHAMP_ROOM 0 +#define FLAG_HIDE_GAME_CORNER_ROCKET 0 +#define FLAG_HIDE_CERULEAN_CAVE_GUARD 0 +#define FLAG_HIDE_ZAPDOS 0 +#define FLAG_HIDE_TOWER_ROCKET_1 0 +#define FLAG_HIDE_CELADON_ROCKETS 0 +#define FLAG_HIDE_DOJO_HITMONLEE_BALL 0 +#define FLAG_HIDE_DOJO_HITMONCHAN_BALL 0 +#define FLAG_HIDE_CINNABAR_BILL 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_1 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_2 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_3 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_4 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_5 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_6 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0 +#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0 +#define FLAG_HIDE_CINNABAR_SEAGALLOP 0 +#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0 +#define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0 +#define FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN 0 +#define FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY 0 +#define FLAG_HIDE_MG_DELIVERYMEN 0 +#define FLAG_HIDE_ONE_ISLAND_BILL 0 +#define FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL 0 +#define FLAG_HIDE_ONE_ISLAND_POKECENTER_CELIO 0 +#define FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER 0 +#define FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE 0 +#define FLAG_HIDE_LOSTELLE_IN_HER_HOME 0 +#define FLAG_0x077 0 +#define FLAG_0x078 0 +#define FLAG_HIDE_THREE_ISLAND_BIKERS 0 +#define FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST 0 +#define FLAG_HIDE_TWO_ISLAND_WOMAN 0 +#define FLAG_HIDE_TWO_ISLAND_BEAUTY 0 +#define FLAG_HIDE_TWO_ISLAND_SUPER_NERD 0 +#define FLAG_HIDE_THREE_ISLAND_ANTIBIKERS 0 +#define FLAG_0x07F 0 +#define FLAG_HIDE_ROUTE_16_SNORLAX 0 +#define FLAG_HIDE_MEWTWO 0 +#define FLAG_HIDE_ARTICUNO 0 +#define FLAG_HIDE_TOWER_ROCKET_2 0 +#define FLAG_HIDE_TOWER_ROCKET_3 0 +#define FLAG_HIDE_POWER_PLANT_ELECTRODE_1 0 +#define FLAG_HIDE_POWER_PLANT_ELECTRODE_2 0 +#define FLAG_HIDE_SS_ANNE 0 +#define FLAG_HIDE_FIVE_ISLAND_ROCKETS 0 +#define FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS 0 +#define FLAG_HIDE_RUBY 0 +#define FLAG_HIDE_ICEFALL_CAVE_LORELEI 0 +#define FLAG_HIDE_LORELEI_IN_HER_HOUSE 0 +#define FLAG_HIDE_ICEFALL_CAVE_ROCKETS 0 +#define FLAG_HIDE_RUIN_VALLEY_SCIENTIST 0 +#define FLAG_HIDE_SAPPHIRE 0 +#define FLAG_HIDE_DOTTED_HOLE_SCIENTIST 0 +#define FLAG_HIDE_THREE_ISLAND_LONE_BIKER 0 +#define FLAG_HIDE_PEWTER_CITY_RUNNING_SHOES_GUY 0 +#define FLAG_HIDE_LOST_CAVE_SELPHY 0 +#define FLAG_HIDE_RESORT_GORGEOUS_SELPHY 0 +#define FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY 0 +#define FLAG_HIDE_SELPHYS_BUTLER 0 +#define FLAG_HIDE_FOUR_ISLAND_RIVAL 0 +#define FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL 0 +#define FLAG_HIDE_BIRTH_ISLAND_METEORITE 0 +#define FLAG_HIDE_POSTGAME_GOSSIPERS 0 +#define FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS 0 +#define FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL 0 +#define FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL 0 +#define FLAG_HIDE_VERMILION_CITY_OAKS_AIDE 0 +#define FLAG_HIDE_CINNABAR_POKECENTER_BILL 0 +#define FLAG_HIDE_CREDITS_RIVAL 0 +#define FLAG_HIDE_CREDITS_OAK 0 +#define FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL 0 +#define FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL 0 +#define FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL 0 +#define FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL 0 +#define FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL 0 +#define FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL 0 +#define FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL 0 +#define FLAG_HIDE_LORELEIS_HOUSE_LAPRAS_DOLL 0 +#define FLAG_HIDE_MISC_KANTO_ROCKETS 0 +#define FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS 0 + +#define FLAG_HIDE_ROUTE2_ETHER 0 +#define FLAG_HIDE_ROUTE2_PARALYZE_HEAL 0 +#define FLAG_HIDE_VIRIDIAN_FOREST_POKE_BALL 0 +#define FLAG_HIDE_VIRIDIAN_FOREST_ANTIDOTE 0 +#define FLAG_HIDE_VIRIDIAN_FOREST_POTION 0 +#define FLAG_HIDE_MT_MOON_1F_PARALYZE_HEAL 0 +#define FLAG_HIDE_MT_MOON_1F_TM09 0 +#define FLAG_HIDE_MT_MOON_1F_POTION 0 +#define FLAG_HIDE_MT_MOON_1F_RARE_CANDY 0 +#define FLAG_HIDE_MT_MOON_1F_ESCAPE_ROPE 0 +#define FLAG_HIDE_MT_MOON_1F_MOON_STONE 0 +#define FLAG_HIDE_MT_MOON_B2F_STAR_PIECE 0 +#define FLAG_HIDE_MT_MOON_B2F_TM46 0 +#define FLAG_HIDE_ROUTE4_TM05 0 +#define FLAG_HIDE_ROUTE24_TM45 0 +#define FLAG_HIDE_ROUTE25_TM43 0 +#define FLAG_HIDE_SSANNE_1F_ROOM2_TM31 0 +#define FLAG_HIDE_SSANNE_2F_ROOM2_STARDUST 0 +#define FLAG_HIDE_SSANNE_2F_ROOM4_X_ATTACK 0 +#define FLAG_HIDE_SSANNE_B1F_ROOM2_TM44 0 +#define FLAG_HIDE_SSANNE_B1F_ROOM3_ETHER 0 +#define FLAG_HIDE_SSANNE_B1F_ROOM5_SUPER_POTION 0 +#define FLAG_HIDE_SSANNE_KITCHEN_GREAT_BALL 0 +#define FLAG_HIDE_ROUTE9_TM40 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B1F_ESCAPE_ROPE 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B1F_HYPER_POTION 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_X_SPEED 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_MOON_STONE 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_TM12 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_SUPER_POTION 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_RARE_CANDY 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_TM21 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_TM49 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_MAX_ETHER 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_CALCIUM 0 +#define FLAG_HIDE_POKEMON_TOWER_3F_ESCAPE_ROPE 0 +#define FLAG_HIDE_POKEMON_TOWER_4F_ELIXIR 0 +#define FLAG_HIDE_POKEMON_TOWER_4F_AWAKENING 0 +#define FLAG_HIDE_POKEMON_TOWER_4F_GREAT_BALL 0 +#define FLAG_HIDE_POKEMON_TOWER_5F_NUGGET 0 +#define FLAG_HIDE_POKEMON_TOWER_6F_RARE_CANDY 0 +#define FLAG_HIDE_POKEMON_TOWER_6F_X_ACCURACY 0 +#define FLAG_HIDE_ROUTE12_TM48 0 +#define FLAG_HIDE_ROUTE12_IRON 0 +#define FLAG_HIDE_ROUTE15_TM18 0 +#define FLAG_HIDE_SAFARI_ZONE_CENTER_NUGGET 0 +#define FLAG_HIDE_SAFARI_ZONE_EAST_MAX_POTION 0 +#define FLAG_HIDE_SAFARI_ZONE_EAST_FULL_RESTORE 0 +#define FLAG_HIDE_SAFARI_ZONE_EAST_TM11 0 +#define FLAG_HIDE_SAFARI_ZONE_EAST_LEAF_STONE 0 +#define FLAG_HIDE_SAFARI_ZONE_NORTH_PROTEIN 0 +#define FLAG_HIDE_SAFARI_ZONE_NORTH_TM47 0 +#define FLAG_HIDE_SAFARI_ZONE_WEST_TM32 0 +#define FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH 0 +#define FLAG_HIDE_SAFARI_ZONE_WEST_MAX_POTION 0 +#define FLAG_HIDE_SAFARI_ZONE_WEST_MAX_REVIVE 0 +#define FLAG_HIDE_SILPH_CO_3F_HYPER_POTION 0 +#define FLAG_HIDE_SILPH_CO_4F_MAX_REVIVE 0 +#define FLAG_HIDE_SILPH_CO_4F_ESCAPE_ROPE 0 +#define FLAG_HIDE_SILPH_CO_4F_FULL_HEAL 0 +#define FLAG_HIDE_SILPH_CO_5F_PROTEIN 0 +#define FLAG_HIDE_SILPH_CO_5F_TM01 0 +#define FLAG_HIDE_SILPH_CO_5F_CARD_KEY 0 +#define FLAG_HIDE_SILPH_CO_6F_HP_UP 0 +#define FLAG_HIDE_SILPH_CO_6F_X_SPECIAL 0 +#define FLAG_HIDE_SILPH_CO_7F_CALCIUM 0 +#define FLAG_HIDE_SILPH_CO_7F_TM08 0 +#define FLAG_HIDE_SILPH_CO_10F_CARBOS 0 +#define FLAG_HIDE_SILPH_CO_10F_ULTRA_BALL 0 +#define FLAG_HIDE_SILPH_CO_10F_RARE_CANDY 0 +#define FLAG_HIDE_POWER_PLANT_MAX_POTION 0 +#define FLAG_HIDE_POWER_PLANT_TM17 0 +#define FLAG_HIDE_POWER_PLANT_TM25 0 +#define FLAG_HIDE_POWER_PLANT_THUNDER_STONE 0 +#define FLAG_HIDE_POWER_PLANT_ELIXIR 0 +#define FLAG_HIDE_POKEMON_MANSION_1F_CARBOS 0 +#define FLAG_HIDE_POKEMON_MANSION_1F_ESCAPE_ROPE 0 +#define FLAG_HIDE_POKEMON_MANSION_2F_CALCIUM 0 +#define FLAG_HIDE_POKEMON_MANSION_3F_MAX_POTION 0 +#define FLAG_HIDE_POKEMON_MANSION_3F_IRON 0 +#define FLAG_HIDE_POKEMON_MANSION_B1F_TM14 0 +#define FLAG_HIDE_POKEMON_MANSION_B1F_FULL_RESTORE 0 +#define FLAG_0x1A6 0 +#define FLAG_HIDE_POKEMON_MANSION_B1F_TM22 0 +#define FLAG_HIDE_POKEMON_MANSION_B1F_SECRET_KEY 0 +#define FLAG_HIDE_VICTORY_ROAD_1F_RARE_CANDY 0 +#define FLAG_HIDE_VICTORY_ROAD_1F_TM02 0 +#define FLAG_HIDE_VICTORY_ROAD_2F_GUARD_SPEC 0 +#define FLAG_HIDE_VICTORY_ROAD_2F_TM07 0 +#define FLAG_HIDE_VICTORY_ROAD_2F_FULL_HEAL 0 +#define FLAG_HIDE_VICTORY_ROAD_2F_TM37 0 +#define FLAG_HIDE_VICTORY_ROAD_3F_MAX_REVIVE 0 +#define FLAG_HIDE_VICTORY_ROAD_3F_TM50 0 +#define FLAG_HIDE_CERULEAN_CAVE_1F_MAX_ELIXIR 0 +#define FLAG_HIDE_CERULEAN_CAVE_1F_NUGGET 0 +#define FLAG_HIDE_CERULEAN_CAVE_1F_FULL_RESTORE 0 +#define FLAG_HIDE_CERULEAN_CAVE_2F_FULL_RESTORE 0 +#define FLAG_HIDE_CERULEAN_CAVE_2F_PP_UP 0 +#define FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL 0 +#define FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE 0 +#define FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL 0 +#define FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY 0 +#define FLAG_HIDE_TWO_ISLAND_REVIVE 0 +#define FLAG_HIDE_THREE_ISLAND_ZINC 0 +#define FLAG_0x1BC 0 +#define FLAG_0x1BD 0 +#define FLAG_HIDE_VIRIDIAN_FOREST_POTION_2 0 +#define FLAG_HIDE_MT_MOON_B2F_REVIVE 0 +#define FLAG_HIDE_MT_MOON_B2F_ANTIDOTE 0 +#define FLAG_HIDE_ROUTE11_X_DEFEND 0 +#define FLAG_HIDE_ROUTE9_BURN_HEAL 0 +#define FLAG_HIDE_ROCK_TUNNEL_1F_REPEL 0 +#define FLAG_HIDE_ROCK_TUNNEL_1F_PEARL 0 +#define FLAG_HIDE_ROCK_TUNNEL_1F_ESCAPE_ROPE 0 +#define FLAG_HIDE_ROCK_TUNNEL_B1F_REVIVE 0 +#define FLAG_HIDE_ROCK_TUNNEL_B1F_MAX_ETHER 0 +#define FLAG_HIDE_SILPH_CO_8F_IRON 0 +#define FLAG_HIDE_SILPH_CO_11F_ZINC 0 +#define FLAG_HIDE_POKEMON_MANSION_1F_PROTEIN 0 +#define FLAG_HIDE_POKEMON_MANSION_2F_ZINC 0 +#define FLAG_HIDE_POKEMON_MANSION_2F_HP_UP 0 +#define FLAG_HIDE_VIRIDIAN_CITY_POTION 0 +#define FLAG_HIDE_ROUTE11_GREAT_BALL 0 +#define FLAG_HIDE_ROUTE11_AWAKENING 0 +#define FLAG_HIDE_POKEMON_TOWER_5F_CLEANSE_TAG 0 +#define FLAG_HIDE_CELADON_CITY_ETHER 0 +#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_BLACK_GLASSES 0 +#define FLAG_HIDE_SAFARI_ZONE_NORTH_QUICK_CLAW 0 +#define FLAG_HIDE_SEAFOAM_ISLANDS_1F_ICE_HEAL 0 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B1F_WATER_STONE 0 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B1F_REVIVE 0 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B2F_BIG_PEARL 0 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B4F_ULTRA_BALL 0 +#define FLAG_HIDE_FOUR_ISLAND_STAR_PIECE 0 +#define FLAG_HIDE_FOUR_ISLAND_STARDUST 0 +#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_ETHER 0 +#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_MAX_REPEL 0 +#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_CARBOS 0 +#define FLAG_HIDE_FIVE_ISLAND_MEADOW_MAX_POTION 0 +#define FLAG_HIDE_FIVE_ISLAND_MEADOW_PP_UP 0 +#define FLAG_HIDE_FIVE_ISLAND_MEMORIAL_PILLAR_METAL_COAT 0 +#define FLAG_HIDE_SIX_ISLAND_OUTCAST_ISLAND_PP_UP 0 +#define FLAG_HIDE_SIX_ISLAND_WATER_PATH_ELIXIR 0 +#define FLAG_HIDE_SIX_ISLAND_WATER_PATH_DRAGON_SCALE 0 +#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_FULL_RESTORE 0 +#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_HP_UP 0 +#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_SUN_STONE 0 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_KINGS_ROCK 0 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_MAX_ELIXIR 0 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_NUGGET 0 +#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ETHER 0 +#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_FULL_HEAL 0 +#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ELIXIR 0 +#define FLAG_HIDE_MT_EMBER_EXTERIOR_ULTRA_BALL 0 +#define FLAG_HIDE_MT_EMBER_EXTERIOR_FIRE_STONE 0 +#define FLAG_HIDE_MT_EMBER_EXTERIOR_DIRE_HIT 0 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_ULTRA_BALL 0 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_HM07 0 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_FULL_RESTORE 0 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_NEVER_MELT_ICE 0 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_BIG_PEARL 0 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_TM36 0 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_PEARL 0 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_UP_GRADE 0 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM10_SILK_SCARF 0 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM11_LAX_INCENSE 0 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM12_SEA_INCENSE 0 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM13_MAX_REVIVE 0 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM14_RARE_CANDY 0 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE_LUCKY_PUNCH 0 +#define FLAG_HIDE_SILPH_CO_4F_TM41 0 + +#define STORY_FLAGS_START 0 +#define FLAG_GOT_POTION_ON_ROUTE_1 0 +#define FLAG_GOT_TM34_FROM_SURGE 0 +#define FLAG_GOT_FOSSIL_FROM_MT_MOON 0 +#define FLAG_HELPED_BILL_IN_SEA_COTTAGE 0 +#define FLAG_GOT_SS_TICKET 0 +#define FLAG_GOT_SS_TICKET_DUP 0 +#define FLAG_GOT_TM42_AT_MEMORIAL_PILLAR 0 +#define FLAG_GOT_HM01 0 +#define FLAG_GOT_HM02 0 +#define FLAG_GOT_HM03 0 +#define FLAG_GOT_HM04 0 +#define FLAG_GOT_HM05 0 +#define FLAG_RESCUED_MR_FUJI 0 +#define FLAG_GOT_POKE_FLUTE 0 +#define FLAG_0x23E 0 +#define FLAG_GOT_TM28_FROM_ROCKET 0 +#define FLAG_GOT_OLD_ROD 0 +#define FLAG_GOT_BIKE_VOUCHER 0 +#define FLAG_0x242 0 +#define FLAG_GOT_COIN_CASE 0 +#define FLAG_GOT_GOOD_ROD 0 +#define FLAG_GOT_TM29_FROM_MR_PSYCHIC 0 +#define FLAG_GOT_LAPRAS_FROM_SILPH 0 +#define FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL 0 +#define FLAG_DID_MIMIEN_TRADE 0 +#define FLAG_BOUGHT_MAGIKARP 0 +#define FLAG_DID_ZYNX_TRADE 0 +#define FLAG_DID_MS_NIDO_TRADE 0 +#define FLAG_0x24C 0 +#define FLAG_DID_CH_DING_TRADE 0 +#define FLAG_GOT_TM38_FROM_BLAINE 0 +#define FLAG_OAK_SKIP_22_RIVAL_CHECK 0 +#define FLAG_GOT_MASTER_BALL_FROM_SILPH 0 +#define FLAG_DID_NINA_TRADE 0 +#define FLAG_GOT_ITEMFINDER 0 +#define FLAG_WOKE_UP_ROUTE_12_SNORLAX 0 +#define FLAG_GOT_TM39_FROM_BROCK 0 +#define FLAG_GOT_SUPER_ROD 0 +#define FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE 0 +#define FLAG_DID_MARC_TRADE 0 +#define FLAG_BEAT_RIVAL_IN_OAKS_LAB 0 +#define FLAG_GOT_TM06_FROM_KOGA 0 +#define FLAG_0x25A 0 +#define FLAG_GOT_TM27 0 +#define FLAG_0x25C 0 +#define FLAG_0x25D 0 +#define FLAG_GOT_OLD_AMBER 0 +#define FLAG_0x25F 0 +#define FLAG_0x260 0 +#define FLAG_0x261 0 +#define FLAG_0x262 0 +#define FLAG_GOT_EEVEE 0 +#define FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES 0 +#define FLAG_CINNABAR_GYM_QUIZ_1 0 +#define FLAG_CINNABAR_GYM_QUIZ_2 0 +#define FLAG_CINNABAR_GYM_QUIZ_3 0 +#define FLAG_CINNABAR_GYM_QUIZ_4 0 +#define FLAG_CINNABAR_GYM_QUIZ_5 0 +#define FLAG_CINNABAR_GYM_QUIZ_6 0 +#define FLAG_POKEMON_MANSION_SWITCH_STATE 0 +#define FLAG_OPENED_ROCKET_HIDEOUT 0 +#define FLAG_GOT_10_COINS_FROM_GAMBLER 0 +#define FLAG_GOT_20_COINS_FROM_GAMBLER 0 +#define FLAG_GOT_20_COINS_FROM_GAMBLER_2 0 +#define FLAG_GOT_BICYCLE 0 +#define FLAG_GOT_DOME_FOSSIL 0 +#define FLAG_GOT_HELIX_FOSSIL 0 +#define FLAG_DID_ESPHERE_TRADE 0 +#define FLAG_DID_TANGENY_TRADE 0 +#define FLAG_DID_SEELOR_TRADE 0 +#define FLAG_0x277 0 +#define FLAG_GOT_HITMON_FROM_DOJO 0 +#define FLAG_0x279 0 +#define FLAG_SILPH_2F_DOOR_1 0 +#define FLAG_SILPH_2F_DOOR_2 0 +#define FLAG_SILPH_3F_DOOR_1 0 +#define FLAG_SILPH_3F_DOOR_2 0 +#define FLAG_SILPH_4F_DOOR_1 0 +#define FLAG_SILPH_4F_DOOR_2 0 +#define FLAG_SILPH_5F_DOOR_1 0 +#define FLAG_SILPH_5F_DOOR_2 0 +#define FLAG_SILPH_5F_DOOR_3 0 +#define FLAG_SILPH_6F_DOOR 0 +#define FLAG_SILPH_7F_DOOR_1 0 +#define FLAG_SILPH_7F_DOOR_2 0 +#define FLAG_SILPH_7F_DOOR_3 0 +#define FLAG_SILPH_8F_DOOR 0 +#define FLAG_SILPH_9F_DOOR_1 0 +#define FLAG_SILPH_9F_DOOR_2 0 +#define FLAG_SILPH_9F_DOOR_3 0 +#define FLAG_SILPH_9F_DOOR_4 0 +#define FLAG_SILPH_10F_DOOR 0 +#define FLAG_SILPH_11F_DOOR 0 +#define FLAG_0x28E 0 +#define FLAG_0x28F 0 +#define FLAG_MET_STICKER_MAN 0 +#define FLAG_PALLET_LADY_NOT_BLOCKING_SIGN 0 +#define FLAG_GOT_VS_SEEKER 0 +#define FLAG_GOT_TM19_FROM_ERIKA 0 +#define FLAG_GOT_TM33_FROM_THIRSTY_GIRL 0 +#define FLAG_GOT_TM20_FROM_THIRSTY_GIRL 0 +#define FLAG_GOT_TM16_FROM_THIRSTY_GIRL 0 +#define FLAG_GOT_TM03_FROM_MISTY 0 +#define FLAG_GOT_TM26_FROM_GIOVANNI 0 +#define FLAG_0x299 0 +#define FLAG_GOT_TM04_FROM_SABRINA 0 +#define FLAG_GOT_FAME_CHECKER 0 +#define FLAG_GOT_RECORD_SETTING_MAGIKARP 0 +#define FLAG_TWO_ISLAND_SHOP_INTRODUCED 0 +#define FLAG_TWO_ISLAND_SHOP_EXPANDED_1 0 +#define FLAG_TWO_ISLAND_SHOP_EXPANDED_2 0 +#define FLAG_TWO_ISLAND_SHOP_EXPANDED_3 0 +#define FLAG_SEVII_DETOUR_FINISHED 0 +#define FLAG_VISITED_TWO_ISLAND 0 +#define FLAG_RESCUED_LOSTELLE 0 +#define FLAG_0x2A4 0 +#define FLAG_CAN_USE_ROCKET_HIDEOUT_LIFT 0 +#define FLAG_GOT_TEA 0 +#define FLAG_GOT_POWDER_JAR 0 +#define FLAG_FOUGHT_MEWTWO 0 +#define FLAG_FOUGHT_MOLTRES 0 +#define FLAG_FOUGHT_ARTICUNO 0 +#define FLAG_FOUGHT_ZAPDOS 0 +#define FLAG_TUTOR_DOUBLE_EDGE 0 +#define FLAG_TUTOR_THUNDER_WAVE 0 +#define FLAG_TUTOR_ROCK_SLIDE 0 +#define FLAG_TUTOR_EXPLOSION 0 +#define FLAG_TUTOR_MEGA_PUNCH 0 +#define FLAG_TUTOR_MEGA_KICK 0 +#define FLAG_TUTOR_DREAM_EATER 0 +#define FLAG_TUTOR_SOFT_BOILED 0 +#define FLAG_TUTOR_SUBSTITUTE 0 +#define FLAG_TUTOR_SWORDS_DANCE 0 +#define FLAG_TUTOR_SEISMIC_TOSS 0 +#define FLAG_TUTOR_COUNTER 0 +#define FLAG_TUTOR_METRONOME 0 +#define FLAG_TUTOR_MIMIC 0 +#define FLAG_TUTOR_BODY_SLAM 0 +#define FLAG_VISITED_OAKS_LAB 0 +#define FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1 0 +#define FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2 0 +#define FLAG_STOPPED_SEAFOAM_B3F_CURRENT 0 +#define FLAG_STOPPED_SEAFOAM_B4F_CURRENT 0 +#define FLAG_TALKED_TO_LORELEI_AFTER_WAREHOUSE 0 +#define FLAG_DEFEATED_ROCKETS_IN_WAREHOUSE 0 +#define FLAG_UNLOCKED_ROCKET_WAREHOUSE 0 +#define FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR 0 +#define FLAG_LEARNED_YES_NAH_CHANSEY 0 +#define FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1 0 +#define FLAG_GOT_TOGEPI_EGG 0 +#define FLAG_NO_ROOM_FOR_TOGEPI_EGG 0 +#define FLAG_RECOVERED_SAPPHIRE 0 +#define FLAG_GOT_RUBY 0 +#define FLAG_TUTOR_FRENZY_PLANT 0 +#define FLAG_TUTOR_BLAST_BURN 0 +#define FLAG_TUTOR_HYDRO_CANNON 0 +#define FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK 0 +#define FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL 0 +#define FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE 0 +#define FLAG_FOUGHT_DEOXYS 0 +#define FLAG_0x2E5 0 +#define FLAG_0x2E6 0 +#define FLAG_0x2E7 0 +#define FLAG_0x2E8 0 +#define FLAG_0x2E9 0 +#define FLAG_0x2EA 0 +#define FLAG_0x2EB 0 +#define FLAG_REVIVED_DOME 0 +#define FLAG_REVIVED_HELIX 0 +#define FLAG_REVIVED_AMBER 0 +#define FLAG_GOT_HM06 0 +#define FLAG_FOUGHT_LUGIA 0 +#define FLAG_FOUGHT_HO_OH 0 +#define FLAG_OAK_SAW_DEX_COMPLETION 0 +#define FLAG_LUGIA_FLEW_AWAY 0 +#define FLAG_HO_OH_FLEW_AWAY 0 +#define FLAG_DEOXYS_FLEW_AWAY 0 +#define FLAG_TALKED_TO_TEA_LADY_AFTER_HOF 0 +#define FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION 0 +#define FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE 0 +#define FLAG_GOT_MOON_STONE_FROM_JOYFUL_GAME_CORNER 0 +#define FLAG_GOT_FULL_RESTORE_FROM_THREE_ISLAND_DEFENDER 0 +#define FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE 0 +#define FLAG_NO_ROOM_FOR_JOYFUL_GAME_CORNER_MOON_STONE 0 +#define FLAG_OAKS_RATING_IS_VIA_PC 0 + +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION 0 +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER 0 +#define FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_ROUTE25_ETHER 0 +#define FLAG_HIDDEN_ITEM_ROUTE9_ETHER 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x07 0 +#define FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION 0 +#define FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION 0 +#define FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER 0 +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP 0 +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET 0 +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL 0 +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM 0 +#define FLAG_HIDDEN_ITEM_ROUTE13_PP_UP 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x10 0 +#define FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE 0 +#define FLAG_HIDDEN_ITEM_ROUTE17_PP_UP 0 +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE 0 +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION 0 +#define FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET 0 +#define FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE 0 +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET 0 +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE 0 +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE 0 +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER 0 +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE 0 +#define FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x28 0 +#define FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE 0 +#define FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x2B 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x2C 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x2D 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x2E 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP 0 +#define FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER 0 +#define FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 0 +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL 0 +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 0 +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE 0 +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL 0 +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY 0 +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY 0 +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_UNUSED_0x7C 0 +#define FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS 0 +#define FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS 0 +#define FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP 0 +#define FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE14_ZINC 0 +#define FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE20_STARDUST 0 +#define FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL 0 +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY 0 +#define FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY 0 +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE 0 +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL 0 +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH 0 +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX 0 +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL 0 +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST 0 +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL 0 +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE 0 +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY 0 +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY 0 +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY 0 +#define FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE 0 +#define FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE 0 + +#define FLAG_DEFEATED_BROCK 0 +#define FLAG_DEFEATED_MISTY 0 +#define FLAG_DEFEATED_LT_SURGE 0 +#define FLAG_DEFEATED_ERIKA 0 +#define FLAG_DEFEATED_KOGA 0 +#define FLAG_DEFEATED_SABRINA 0 +#define FLAG_DEFEATED_BLAINE 0 +#define FLAG_DEFEATED_LEADER_GIOVANNI 0 +#define FLAG_DEFEATED_LORELEI 0 +#define FLAG_DEFEATED_BRUNO 0 +#define FLAG_DEFEATED_AGATHA 0 +#define FLAG_DEFEATED_LANCE 0 +#define FLAG_DEFEATED_CHAMP 0 + +#define FLAG_0x82A 0 +#define FLAG_0x82B 0 +#define FLAG_SYS_SET_TRAINER_CARD_PROFILE 0 +#define FLAG_0x82E 0 +#define FLAG_SYS_ON_CYCLING_ROAD 0 +#define FLAG_0x831 0 +#define FLAG_0x832 0 +#define FLAG_0x833 0 +#define FLAG_0x835 0 +#define FLAG_0x836 0 +#define FLAG_0x838 0 // Set, never read +#define FLAG_0x83A 0 +#define FLAG_SYS_SAW_HELP_SYSTEM_INTRO 0 +#define FLAG_0x83D 0 +#define FLAG_OPENED_START_MENU 0 +#define FLAG_SYS_PC_STORAGE_DISABLED 0 +#define FLAG_SYS_SEVII_MAP_123 0 +#define FLAG_SYS_SEVII_MAP_4567 0 +#define FLAG_SYS_GOT_BERRY_POUCH 0 +#define FLAG_SYS_UNLOCKED_TANOBY_RUINS 0 + +// World Map Flags +#define FLAG_WORLD_MAP_PALLET_TOWN 0 +#define FLAG_WORLD_MAP_VIRIDIAN_CITY 0 +#define FLAG_WORLD_MAP_PEWTER_CITY 0 +#define FLAG_WORLD_MAP_CERULEAN_CITY 0 +#define FLAG_WORLD_MAP_LAVENDER_TOWN 0 +#define FLAG_WORLD_MAP_VERMILION_CITY 0 +#define FLAG_WORLD_MAP_CELADON_CITY 0 +#define FLAG_WORLD_MAP_FUCHSIA_CITY 0 +#define FLAG_WORLD_MAP_CINNABAR_ISLAND 0 +#define FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR 0 +#define FLAG_WORLD_MAP_SAFFRON_CITY 0 +#define FLAG_WORLD_MAP_ONE_ISLAND 0 +#define FLAG_WORLD_MAP_TWO_ISLAND 0 +#define FLAG_WORLD_MAP_THREE_ISLAND 0 +#define FLAG_WORLD_MAP_FOUR_ISLAND 0 +#define FLAG_WORLD_MAP_FIVE_ISLAND 0 +#define FLAG_WORLD_MAP_SEVEN_ISLAND 0 +#define FLAG_WORLD_MAP_SIX_ISLAND 0 +#define FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F 0 +#define FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F 0 +#define FLAG_WORLD_MAP_VIRIDIAN_FOREST 0 +#define FLAG_WORLD_MAP_MT_MOON_1F 0 +#define FLAG_WORLD_MAP_SSANNE_EXTERIOR 0 +#define FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL 0 +#define FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL 0 +#define FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F 0 +#define FLAG_WORLD_MAP_VICTORY_ROAD_1F 0 +#define FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F 0 +#define FLAG_WORLD_MAP_SILPH_CO_1F 0 +#define FLAG_WORLD_MAP_POKEMON_MANSION_1F 0 +#define FLAG_WORLD_MAP_SAFARI_ZONE_CENTER 0 +#define FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM 0 +#define FLAG_WORLD_MAP_ROCK_TUNNEL_1F 0 +#define FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F 0 +#define FLAG_WORLD_MAP_POKEMON_TOWER_1F 0 +#define FLAG_WORLD_MAP_CERULEAN_CAVE_1F 0 +#define FLAG_WORLD_MAP_POWER_PLANT 0 +#define FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR 0 +#define FLAG_WORLD_MAP_MT_EMBER_EXTERIOR 0 +#define FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST 0 +#define FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE 0 +#define FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE 0 +#define FLAG_WORLD_MAP_TRAINER_TOWER_LOBBY 0 +#define FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F 0 +#define FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE 0 +#define FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH 0 +#define FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE 0 +#define FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER 0 +#define FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL 0 +#define FLAG_WORLD_MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY 0 +#define FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR 0 + +#endif + #if TESTING #define TESTING_FLAGS_START 0x5000 #define TESTING_FLAG_SLEEP_CLAUSE (TESTING_FLAGS_START + 0x0) #define TESTING_FLAG_INVERSE_BATTLE (TESTING_FLAGS_START + 0x1) -#define TESTING_FLAG_UNUSED_2 (TESTING_FLAGS_START + 0x2) +#define TESTING_FLAG_TRAINER_SLIDES (TESTING_FLAGS_START + 0x2) #define TESTING_FLAG_UNUSED_3 (TESTING_FLAGS_START + 0x3) #define TESTING_FLAG_UNUSED_4 (TESTING_FLAGS_START + 0x4) #define TESTING_FLAG_UNUSED_5 (TESTING_FLAGS_START + 0x5) @@ -1673,4 +2448,5 @@ #define TESTING_FLAG_UNUSED_7 (TESTING_FLAGS_START + 0x7) #endif // TESTING + #endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/constants/flags_frlg.h b/include/constants/flags_frlg.h new file mode 100644 index 000000000000..0425c28fc6ca --- /dev/null +++ b/include/constants/flags_frlg.h @@ -0,0 +1,2699 @@ +#ifndef GUARD_CONSTANTS_FLAGS_FRLG_H +#define GUARD_CONSTANTS_FLAGS_FRLG_H + + +#define FLAG_0x020 0x020 +#define FLAG_0x021 0x021 +#define FLAG_0x022 0x022 +#define FLAG_0x023 0x023 +#define FLAG_0x024 0x024 +#define FLAG_0x025 0x025 +#define FLAG_0x026 0x026 +#define FLAG_0x027 0x027 + +// Hide/show flags +#define FLAG_HIDE_BULBASAUR_BALL 0x028 +#define FLAG_HIDE_SQUIRTLE_BALL 0x029 +#define FLAG_HIDE_CHARMANDER_BALL 0x02A +#define FLAG_HIDE_OAK_IN_HIS_LAB 0x02B +#define FLAG_HIDE_OAK_IN_PALLET_TOWN 0x02C +#define FLAG_HIDE_RIVAL_IN_LAB 0x02D +#define FLAG_HIDE_PEWTER_CITY_GYM_GUIDE 0x02E +#define FLAG_HIDE_DOME_FOSSIL 0x02F +#define FLAG_HIDE_HELIX_FOSSIL 0x030 +#define FLAG_HIDE_NUGGET_BRIDGE_ROCKET 0x031 +#define FLAG_HIDE_BILL_CLEFAIRY 0x032 +#define FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE 0x033 +#define FLAG_HIDE_TOWER_FUJI 0x034 +#define FLAG_HIDE_POKEHOUSE_FUJI 0x035 +#define FLAG_HIDE_LIFT_KEY 0x036 +#define FLAG_HIDE_SILPH_SCOPE 0x037 +#define FLAG_HIDE_HIDEOUT_GIOVANNI 0x038 +#define FLAG_HIDE_TOWN_MAP 0x039 +#define FLAG_HIDE_POKEDEX 0x03A +#define FLAG_HIDE_CERULEAN_ROCKET 0x03B +#define FLAG_HIDE_CERULEAN_RIVAL 0x03C +#define FLAG_HIDE_SS_ANNE_RIVAL 0x03D +#define FLAG_HIDE_SAFFRON_ROCKETS 0x03E +#define FLAG_HIDE_SAFFRON_CIVILIANS 0x03F +#define FLAG_HIDE_SEAFOAM_1F_BOULDER_1 0x040 +#define FLAG_HIDE_SEAFOAM_1F_BOULDER_2 0x041 +#define FLAG_HIDE_SEAFOAM_B1F_BOULDER_1 0x042 +#define FLAG_HIDE_SEAFOAM_B1F_BOULDER_2 0x043 +#define FLAG_HIDE_SEAFOAM_B2F_BOULDER_1 0x044 +#define FLAG_HIDE_SEAFOAM_B2F_BOULDER_2 0x045 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_1 0x046 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_2 0x047 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_3 0x048 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_4 0x049 +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_5 0x04A +#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_6 0x04B +#define FLAG_HIDE_SEAFOAM_B4F_BOULDER_1 0x04C +#define FLAG_HIDE_SEAFOAM_B4F_BOULDER_2 0x04D +#define FLAG_HIDE_SILPH_RIVAL 0x04E +#define FLAG_HIDE_ROUTE_22_RIVAL 0x04F +#define FLAG_HIDE_PEWTER_MUSEUM_GUIDE 0x050 +#define FLAG_HIDE_TOWER_RIVAL 0x051 +#define FLAG_HIDE_MOLTRES 0x052 +#define FLAG_HIDE_SILPH_ROCKETS 0x053 +#define FLAG_HIDE_ROUTE_12_SNORLAX 0x054 +#define FLAG_HIDE_VIRIDIAN_GIOVANNI 0x055 +#define FLAG_HIDE_OLD_AMBER 0x056 +#define FLAG_HIDE_EEVEE_BALL 0x057 +#define FLAG_HIDE_VICTORY_ROAD_2F_BOULDER 0x058 +#define FLAG_HIDE_VICTORY_ROAD_3F_BOULDER 0x059 +#define FLAG_HIDE_OAK_IN_CHAMP_ROOM 0x05A +#define FLAG_HIDE_GAME_CORNER_ROCKET 0x05B +#define FLAG_HIDE_CERULEAN_CAVE_GUARD 0x05C +#define FLAG_HIDE_ZAPDOS 0x05D +#define FLAG_HIDE_TOWER_ROCKET_1 0x05E +#define FLAG_HIDE_CELADON_ROCKETS 0x05F +#define FLAG_HIDE_DOJO_HITMONLEE_BALL 0x060 +#define FLAG_HIDE_DOJO_HITMONCHAN_BALL 0x061 +#define FLAG_HIDE_CINNABAR_BILL 0x062 +#define FLAG_HIDE_UNION_ROOM_PLAYER_1 0x063 +#define FLAG_HIDE_UNION_ROOM_PLAYER_2 0x064 +#define FLAG_HIDE_UNION_ROOM_PLAYER_3 0x065 +#define FLAG_HIDE_UNION_ROOM_PLAYER_4 0x066 +#define FLAG_HIDE_UNION_ROOM_PLAYER_5 0x067 +#define FLAG_HIDE_UNION_ROOM_PLAYER_6 0x068 +#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x069 +#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x06A +#define FLAG_HIDE_CINNABAR_SEAGALLOP 0x06B +#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0x06C +#define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0x06D +#define FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN 0x06E +#define FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY 0x06F +#define FLAG_HIDE_MG_DELIVERYMEN 0x070 +#define FLAG_HIDE_ONE_ISLAND_BILL 0x071 +#define FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL 0x072 +#define FLAG_HIDE_ONE_ISLAND_POKECENTER_CELIO 0x073 +#define FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER 0x074 +#define FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE 0x075 +#define FLAG_HIDE_LOSTELLE_IN_HER_HOME 0x076 +#define FLAG_0x077 0x077 +#define FLAG_0x078 0x078 +#define FLAG_HIDE_THREE_ISLAND_BIKERS 0x079 +#define FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST 0x07A +#define FLAG_HIDE_TWO_ISLAND_WOMAN 0x07B +#define FLAG_HIDE_TWO_ISLAND_BEAUTY 0x07C +#define FLAG_HIDE_TWO_ISLAND_SUPER_NERD 0x07D +#define FLAG_HIDE_THREE_ISLAND_ANTIBIKERS 0x07E +#define FLAG_0x07F 0x07F +#define FLAG_HIDE_ROUTE_16_SNORLAX 0x080 +#define FLAG_HIDE_MEWTWO 0x081 +#define FLAG_HIDE_ARTICUNO 0x082 +#define FLAG_HIDE_TOWER_ROCKET_2 0x083 +#define FLAG_HIDE_TOWER_ROCKET_3 0x084 +#define FLAG_HIDE_POWER_PLANT_ELECTRODE_1 0x085 +#define FLAG_HIDE_POWER_PLANT_ELECTRODE_2 0x086 +#define FLAG_HIDE_SS_ANNE 0x087 +#define FLAG_HIDE_FIVE_ISLAND_ROCKETS 0x088 +#define FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS 0x089 +#define FLAG_HIDE_RUBY 0x08A +#define FLAG_HIDE_ICEFALL_CAVE_LORELEI 0x08B +#define FLAG_HIDE_LORELEI_IN_HER_HOUSE 0x08C +#define FLAG_HIDE_ICEFALL_CAVE_ROCKETS 0x08D +#define FLAG_HIDE_RUIN_VALLEY_SCIENTIST 0x08E +#define FLAG_HIDE_SAPPHIRE 0x08F +#define FLAG_HIDE_DOTTED_HOLE_SCIENTIST 0x090 +#define FLAG_HIDE_THREE_ISLAND_LONE_BIKER 0x091 +#define FLAG_HIDE_PEWTER_CITY_RUNNING_SHOES_GUY 0x092 +#define FLAG_HIDE_LOST_CAVE_SELPHY 0x093 +#define FLAG_HIDE_RESORT_GORGEOUS_SELPHY 0x094 +#define FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY 0x095 +#define FLAG_HIDE_SELPHYS_BUTLER 0x096 +#define FLAG_HIDE_FOUR_ISLAND_RIVAL 0x097 +#define FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL 0x098 +#define FLAG_HIDE_DEOXYS 0x099 +#define FLAG_HIDE_BIRTH_ISLAND_METEORITE 0x09A +#define FLAG_HIDE_LUGIA 0x09B +#define FLAG_HIDE_HO_OH 0x09C +#define FLAG_HIDE_POSTGAME_GOSSIPERS 0x09D +#define FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS 0x09E +#define FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL 0x09F +#define FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL 0x0A0 +#define FLAG_HIDE_VERMILION_CITY_OAKS_AIDE 0x0A1 +#define FLAG_HIDE_CINNABAR_POKECENTER_BILL 0x0A2 +#define FLAG_HIDE_CREDITS_RIVAL 0x0A3 +#define FLAG_HIDE_CREDITS_OAK 0x0A4 +#define FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL 0x0A5 +#define FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL 0x0A6 +#define FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL 0x0A7 +#define FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL 0x0A8 +#define FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL 0x0A9 +#define FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL 0x0AA +#define FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL 0x0AB +#define FLAG_HIDE_LORELEIS_HOUSE_LAPRAS_DOLL 0x0AC +#define FLAG_HIDE_MISC_KANTO_ROCKETS 0x0AD +#define FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS 0x0AE + +// Unused? +#define FLAG_0x0AF 0x0AF +#define FLAG_0x0B0 0x0B0 +#define FLAG_0x0B1 0x0B1 +#define FLAG_0x0B2 0x0B2 +#define FLAG_0x0B3 0x0B3 +#define FLAG_0x0B4 0x0B4 +#define FLAG_0x0B5 0x0B5 +#define FLAG_0x0B6 0x0B6 +#define FLAG_0x0B7 0x0B7 +#define FLAG_0x0B8 0x0B8 +#define FLAG_0x0B9 0x0B9 +#define FLAG_0x0BA 0x0BA +#define FLAG_0x0BB 0x0BB +#define FLAG_0x0BC 0x0BC +#define FLAG_0x0BD 0x0BD +#define FLAG_0x0BE 0x0BE +#define FLAG_0x0BF 0x0BF +#define FLAG_0x0C0 0x0C0 +#define FLAG_0x0C1 0x0C1 +#define FLAG_0x0C2 0x0C2 +#define FLAG_0x0C3 0x0C3 +#define FLAG_0x0C4 0x0C4 +#define FLAG_0x0C5 0x0C5 +#define FLAG_0x0C6 0x0C6 +#define FLAG_0x0C7 0x0C7 +#define FLAG_0x0C8 0x0C8 +#define FLAG_0x0C9 0x0C9 +#define FLAG_0x0CA 0x0CA +#define FLAG_0x0CB 0x0CB +#define FLAG_0x0CC 0x0CC +#define FLAG_0x0CD 0x0CD +#define FLAG_0x0CE 0x0CE +#define FLAG_0x0CF 0x0CF +#define FLAG_0x0D0 0x0D0 +#define FLAG_0x0D1 0x0D1 +#define FLAG_0x0D2 0x0D2 +#define FLAG_0x0D3 0x0D3 +#define FLAG_0x0D4 0x0D4 +#define FLAG_0x0D5 0x0D5 +#define FLAG_0x0D6 0x0D6 +#define FLAG_0x0D7 0x0D7 +#define FLAG_0x0D8 0x0D8 +#define FLAG_0x0D9 0x0D9 +#define FLAG_0x0DA 0x0DA +#define FLAG_0x0DB 0x0DB +#define FLAG_0x0DC 0x0DC +#define FLAG_0x0DD 0x0DD +#define FLAG_0x0DE 0x0DE +#define FLAG_0x0DF 0x0DF +#define FLAG_0x0E0 0x0E0 +#define FLAG_0x0E1 0x0E1 +#define FLAG_0x0E2 0x0E2 +#define FLAG_0x0E3 0x0E3 +#define FLAG_0x0E4 0x0E4 +#define FLAG_0x0E5 0x0E5 +#define FLAG_0x0E6 0x0E6 +#define FLAG_0x0E7 0x0E7 +#define FLAG_0x0E8 0x0E8 +#define FLAG_0x0E9 0x0E9 +#define FLAG_0x0EA 0x0EA +#define FLAG_0x0EB 0x0EB +#define FLAG_0x0EC 0x0EC +#define FLAG_0x0ED 0x0ED +#define FLAG_0x0EE 0x0EE +#define FLAG_0x0EF 0x0EF +#define FLAG_0x0F0 0x0F0 +#define FLAG_0x0F1 0x0F1 +#define FLAG_0x0F2 0x0F2 +#define FLAG_0x0F3 0x0F3 +#define FLAG_0x0F4 0x0F4 +#define FLAG_0x0F5 0x0F5 +#define FLAG_0x0F6 0x0F6 +#define FLAG_0x0F7 0x0F7 +#define FLAG_0x0F8 0x0F8 +#define FLAG_0x0F9 0x0F9 +#define FLAG_0x0FA 0x0FA +#define FLAG_0x0FB 0x0FB +#define FLAG_0x0FC 0x0FC +#define FLAG_0x0FD 0x0FD +#define FLAG_0x0FE 0x0FE +#define FLAG_0x0FF 0x0FF +#define FLAG_0x100 0x100 +#define FLAG_0x101 0x101 +#define FLAG_0x102 0x102 +#define FLAG_0x103 0x103 +#define FLAG_0x104 0x104 +#define FLAG_0x105 0x105 +#define FLAG_0x106 0x106 +#define FLAG_0x107 0x107 +#define FLAG_0x108 0x108 +#define FLAG_0x109 0x109 +#define FLAG_0x10A 0x10A +#define FLAG_0x10B 0x10B +#define FLAG_0x10C 0x10C +#define FLAG_0x10D 0x10D +#define FLAG_0x10E 0x10E +#define FLAG_0x10F 0x10F +#define FLAG_0x110 0x110 +#define FLAG_0x111 0x111 +#define FLAG_0x112 0x112 +#define FLAG_0x113 0x113 +#define FLAG_0x114 0x114 +#define FLAG_0x115 0x115 +#define FLAG_0x116 0x116 +#define FLAG_0x117 0x117 +#define FLAG_0x118 0x118 +#define FLAG_0x119 0x119 +#define FLAG_0x11A 0x11A +#define FLAG_0x11B 0x11B +#define FLAG_0x11C 0x11C +#define FLAG_0x11D 0x11D +#define FLAG_0x11E 0x11E +#define FLAG_0x11F 0x11F +#define FLAG_0x120 0x120 +#define FLAG_0x121 0x121 +#define FLAG_0x122 0x122 +#define FLAG_0x123 0x123 +#define FLAG_0x124 0x124 +#define FLAG_0x125 0x125 +#define FLAG_0x126 0x126 +#define FLAG_0x127 0x127 +#define FLAG_0x128 0x128 +#define FLAG_0x129 0x129 +#define FLAG_0x12A 0x12A +#define FLAG_0x12B 0x12B +#define FLAG_0x12C 0x12C +#define FLAG_0x12D 0x12D +#define FLAG_0x12E 0x12E +#define FLAG_0x12F 0x12F +#define FLAG_0x130 0x130 +#define FLAG_0x131 0x131 +#define FLAG_0x132 0x132 +#define FLAG_0x133 0x133 +#define FLAG_0x134 0x134 +#define FLAG_0x135 0x135 +#define FLAG_0x136 0x136 +#define FLAG_0x137 0x137 +#define FLAG_0x138 0x138 +#define FLAG_0x139 0x139 +#define FLAG_0x13A 0x13A +#define FLAG_0x13B 0x13B +#define FLAG_0x13C 0x13C +#define FLAG_0x13D 0x13D +#define FLAG_0x13E 0x13E +#define FLAG_0x13F 0x13F +#define FLAG_0x140 0x140 +#define FLAG_0x141 0x141 +#define FLAG_0x142 0x142 +#define FLAG_0x143 0x143 +#define FLAG_0x144 0x144 +#define FLAG_0x145 0x145 +#define FLAG_0x146 0x146 +#define FLAG_0x147 0x147 +#define FLAG_0x148 0x148 +#define FLAG_0x149 0x149 +#define FLAG_0x14A 0x14A +#define FLAG_0x14B 0x14B +#define FLAG_0x14C 0x14C +#define FLAG_0x14D 0x14D +#define FLAG_0x14E 0x14E +#define FLAG_0x14F 0x14F +#define FLAG_0x150 0x150 +#define FLAG_0x151 0x151 +#define FLAG_0x152 0x152 +#define FLAG_0x153 0x153 + +// Item ball hide/show +#define FLAG_HIDE_ROUTE2_ETHER 0x154 +#define FLAG_HIDE_ROUTE2_PARALYZE_HEAL 0x155 +#define FLAG_HIDE_VIRIDIAN_FOREST_POKE_BALL 0x156 +#define FLAG_HIDE_VIRIDIAN_FOREST_ANTIDOTE 0x157 +#define FLAG_HIDE_VIRIDIAN_FOREST_POTION 0x158 +#define FLAG_HIDE_MT_MOON_1F_PARALYZE_HEAL 0x159 +#define FLAG_HIDE_MT_MOON_1F_TM09 0x15A +#define FLAG_HIDE_MT_MOON_1F_POTION 0x15B +#define FLAG_HIDE_MT_MOON_1F_RARE_CANDY 0x15C +#define FLAG_HIDE_MT_MOON_1F_ESCAPE_ROPE 0x15D +#define FLAG_HIDE_MT_MOON_1F_MOON_STONE 0x15E +#define FLAG_HIDE_MT_MOON_B2F_STAR_PIECE 0x15F +#define FLAG_HIDE_MT_MOON_B2F_TM46 0x160 +#define FLAG_HIDE_ROUTE4_TM05 0x161 +#define FLAG_HIDE_ROUTE24_TM45 0x162 +#define FLAG_HIDE_ROUTE25_TM43 0x163 +#define FLAG_HIDE_SSANNE_1F_ROOM2_TM31 0x164 +#define FLAG_HIDE_SSANNE_2F_ROOM2_STARDUST 0x165 +#define FLAG_HIDE_SSANNE_2F_ROOM4_X_ATTACK 0x166 +#define FLAG_HIDE_SSANNE_B1F_ROOM2_TM44 0x167 +#define FLAG_HIDE_SSANNE_B1F_ROOM3_ETHER 0x168 +#define FLAG_HIDE_SSANNE_B1F_ROOM5_SUPER_POTION 0x169 +#define FLAG_HIDE_SSANNE_KITCHEN_GREAT_BALL 0x16A +#define FLAG_HIDE_ROUTE9_TM40 0x16B +#define FLAG_HIDE_ROCKET_HIDEOUT_B1F_ESCAPE_ROPE 0x16C +#define FLAG_HIDE_ROCKET_HIDEOUT_B1F_HYPER_POTION 0x16D +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_X_SPEED 0x16E +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_MOON_STONE 0x16F +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_TM12 0x170 +#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_SUPER_POTION 0x171 +#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_RARE_CANDY 0x172 +#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_TM21 0x173 +#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_TM49 0x174 +#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_MAX_ETHER 0x175 +#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_CALCIUM 0x176 +#define FLAG_HIDE_POKEMON_TOWER_3F_ESCAPE_ROPE 0x177 +#define FLAG_HIDE_POKEMON_TOWER_4F_ELIXIR 0x178 +#define FLAG_HIDE_POKEMON_TOWER_4F_AWAKENING 0x179 +#define FLAG_HIDE_POKEMON_TOWER_4F_GREAT_BALL 0x17A +#define FLAG_HIDE_POKEMON_TOWER_5F_NUGGET 0x17B +#define FLAG_HIDE_POKEMON_TOWER_6F_RARE_CANDY 0x17C +#define FLAG_HIDE_POKEMON_TOWER_6F_X_ACCURACY 0x17D +#define FLAG_HIDE_ROUTE12_TM48 0x17E +#define FLAG_HIDE_ROUTE12_IRON 0x17F +#define FLAG_HIDE_ROUTE15_TM18 0x180 +#define FLAG_HIDE_SAFARI_ZONE_CENTER_NUGGET 0x181 +#define FLAG_HIDE_SAFARI_ZONE_EAST_MAX_POTION 0x182 +#define FLAG_HIDE_SAFARI_ZONE_EAST_FULL_RESTORE 0x183 +#define FLAG_HIDE_SAFARI_ZONE_EAST_TM11 0x184 +#define FLAG_HIDE_SAFARI_ZONE_EAST_LEAF_STONE 0x185 +#define FLAG_HIDE_SAFARI_ZONE_NORTH_PROTEIN 0x186 +#define FLAG_HIDE_SAFARI_ZONE_NORTH_TM47 0x187 +#define FLAG_HIDE_SAFARI_ZONE_WEST_TM32 0x188 +#define FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH 0x189 +#define FLAG_HIDE_SAFARI_ZONE_WEST_MAX_POTION 0x18A +#define FLAG_HIDE_SAFARI_ZONE_WEST_MAX_REVIVE 0x18B +#define FLAG_HIDE_SILPH_CO_3F_HYPER_POTION 0x18C +#define FLAG_HIDE_SILPH_CO_4F_MAX_REVIVE 0x18D +#define FLAG_HIDE_SILPH_CO_4F_ESCAPE_ROPE 0x18E +#define FLAG_HIDE_SILPH_CO_4F_FULL_HEAL 0x18F +#define FLAG_HIDE_SILPH_CO_5F_PROTEIN 0x190 +#define FLAG_HIDE_SILPH_CO_5F_TM01 0x191 +#define FLAG_HIDE_SILPH_CO_5F_CARD_KEY 0x192 +#define FLAG_HIDE_SILPH_CO_6F_HP_UP 0x193 +#define FLAG_HIDE_SILPH_CO_6F_X_SPECIAL 0x194 +#define FLAG_HIDE_SILPH_CO_7F_CALCIUM 0x195 +#define FLAG_HIDE_SILPH_CO_7F_TM08 0x196 +#define FLAG_HIDE_SILPH_CO_10F_CARBOS 0x197 +#define FLAG_HIDE_SILPH_CO_10F_ULTRA_BALL 0x198 +#define FLAG_HIDE_SILPH_CO_10F_RARE_CANDY 0x199 +#define FLAG_HIDE_POWER_PLANT_MAX_POTION 0x19A +#define FLAG_HIDE_POWER_PLANT_TM17 0x19B +#define FLAG_HIDE_POWER_PLANT_TM25 0x19C +#define FLAG_HIDE_POWER_PLANT_THUNDER_STONE 0x19D +#define FLAG_HIDE_POWER_PLANT_ELIXIR 0x19E +#define FLAG_HIDE_POKEMON_MANSION_1F_CARBOS 0x19F +#define FLAG_HIDE_POKEMON_MANSION_1F_ESCAPE_ROPE 0x1A0 +#define FLAG_HIDE_POKEMON_MANSION_2F_CALCIUM 0x1A1 +#define FLAG_HIDE_POKEMON_MANSION_3F_MAX_POTION 0x1A2 +#define FLAG_HIDE_POKEMON_MANSION_3F_IRON 0x1A3 +#define FLAG_HIDE_POKEMON_MANSION_B1F_TM14 0x1A4 +#define FLAG_HIDE_POKEMON_MANSION_B1F_FULL_RESTORE 0x1A5 +#define FLAG_0x1A6 0x1A6 +#define FLAG_HIDE_POKEMON_MANSION_B1F_TM22 0x1A7 +#define FLAG_HIDE_POKEMON_MANSION_B1F_SECRET_KEY 0x1A8 +#define FLAG_HIDE_VICTORY_ROAD_1F_RARE_CANDY 0x1A9 +#define FLAG_HIDE_VICTORY_ROAD_1F_TM02 0x1AA +#define FLAG_HIDE_VICTORY_ROAD_2F_GUARD_SPEC 0x1AB +#define FLAG_HIDE_VICTORY_ROAD_2F_TM07 0x1AC +#define FLAG_HIDE_VICTORY_ROAD_2F_FULL_HEAL 0x1AD +#define FLAG_HIDE_VICTORY_ROAD_2F_TM37 0x1AE +#define FLAG_HIDE_VICTORY_ROAD_3F_MAX_REVIVE 0x1AF +#define FLAG_HIDE_VICTORY_ROAD_3F_TM50 0x1B0 +#define FLAG_HIDE_CERULEAN_CAVE_1F_MAX_ELIXIR 0x1B1 +#define FLAG_HIDE_CERULEAN_CAVE_1F_NUGGET 0x1B2 +#define FLAG_HIDE_CERULEAN_CAVE_1F_FULL_RESTORE 0x1B3 +#define FLAG_HIDE_CERULEAN_CAVE_2F_FULL_RESTORE 0x1B4 +#define FLAG_HIDE_CERULEAN_CAVE_2F_PP_UP 0x1B5 +#define FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL 0x1B6 +#define FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE 0x1B7 +#define FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL 0x1B8 +#define FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY 0x1B9 +#define FLAG_HIDE_TWO_ISLAND_REVIVE 0x1BA +#define FLAG_HIDE_THREE_ISLAND_ZINC 0x1BB +#define FLAG_0x1BC 0x1BC +#define FLAG_0x1BD 0x1BD +#define FLAG_HIDE_VIRIDIAN_FOREST_POTION_2 0x1BE +#define FLAG_HIDE_MT_MOON_B2F_REVIVE 0x1BF +#define FLAG_HIDE_MT_MOON_B2F_ANTIDOTE 0x1C0 +#define FLAG_HIDE_ROUTE11_X_DEFEND 0x1C1 +#define FLAG_HIDE_ROUTE9_BURN_HEAL 0x1C2 +#define FLAG_HIDE_ROCK_TUNNEL_1F_REPEL 0x1C3 +#define FLAG_HIDE_ROCK_TUNNEL_1F_PEARL 0x1C4 +#define FLAG_HIDE_ROCK_TUNNEL_1F_ESCAPE_ROPE 0x1C5 +#define FLAG_HIDE_ROCK_TUNNEL_B1F_REVIVE 0x1C6 +#define FLAG_HIDE_ROCK_TUNNEL_B1F_MAX_ETHER 0x1C7 +#define FLAG_HIDE_SILPH_CO_8F_IRON 0x1C8 +#define FLAG_HIDE_SILPH_CO_11F_ZINC 0x1C9 +#define FLAG_HIDE_POKEMON_MANSION_1F_PROTEIN 0x1CA +#define FLAG_HIDE_POKEMON_MANSION_2F_ZINC 0x1CB +#define FLAG_HIDE_POKEMON_MANSION_2F_HP_UP 0x1CC +#define FLAG_HIDE_VIRIDIAN_CITY_POTION 0x1CD +#define FLAG_HIDE_ROUTE11_GREAT_BALL 0x1CE +#define FLAG_HIDE_ROUTE11_AWAKENING 0x1CF +#define FLAG_HIDE_POKEMON_TOWER_5F_CLEANSE_TAG 0x1D0 +#define FLAG_HIDE_CELADON_CITY_ETHER 0x1D1 +#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_BLACK_GLASSES 0x1D2 +#define FLAG_HIDE_SAFARI_ZONE_NORTH_QUICK_CLAW 0x1D3 +#define FLAG_HIDE_SEAFOAM_ISLANDS_1F_ICE_HEAL 0x1D4 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B1F_WATER_STONE 0x1D5 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B1F_REVIVE 0x1D6 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B2F_BIG_PEARL 0x1D7 +#define FLAG_HIDE_SEAFOAM_ISLANDS_B4F_ULTRA_BALL 0x1D8 +#define FLAG_HIDE_FOUR_ISLAND_STAR_PIECE 0x1D9 +#define FLAG_HIDE_FOUR_ISLAND_STARDUST 0x1DA +#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_ETHER 0x1DB +#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_MAX_REPEL 0x1DC +#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_CARBOS 0x1DD +#define FLAG_HIDE_FIVE_ISLAND_MEADOW_MAX_POTION 0x1DE +#define FLAG_HIDE_FIVE_ISLAND_MEADOW_PP_UP 0x1DF +#define FLAG_HIDE_FIVE_ISLAND_MEMORIAL_PILLAR_METAL_COAT 0x1E0 +#define FLAG_HIDE_SIX_ISLAND_OUTCAST_ISLAND_PP_UP 0x1E1 +#define FLAG_HIDE_SIX_ISLAND_WATER_PATH_ELIXIR 0x1E2 +#define FLAG_HIDE_SIX_ISLAND_WATER_PATH_DRAGON_SCALE 0x1E3 +#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_FULL_RESTORE 0x1E4 +#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_HP_UP 0x1E5 +#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_SUN_STONE 0x1E6 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_KINGS_ROCK 0x1E7 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_MAX_ELIXIR 0x1E8 +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_NUGGET 0x1E9 +#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ETHER 0x1EA +#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_FULL_HEAL 0x1EB +#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ELIXIR 0x1EC +#define FLAG_HIDE_MT_EMBER_EXTERIOR_ULTRA_BALL 0x1ED +#define FLAG_HIDE_MT_EMBER_EXTERIOR_FIRE_STONE 0x1EE +#define FLAG_HIDE_MT_EMBER_EXTERIOR_DIRE_HIT 0x1EF +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_ULTRA_BALL 0x1F0 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_HM07 0x1F1 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_FULL_RESTORE 0x1F2 +#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_NEVER_MELT_ICE 0x1F3 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_BIG_PEARL 0x1F4 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_TM36 0x1F5 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_PEARL 0x1F6 +#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_UP_GRADE 0x1F7 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM10_SILK_SCARF 0x1F8 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM11_LAX_INCENSE 0x1F9 +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM12_SEA_INCENSE 0x1FA +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM13_MAX_REVIVE 0x1FB +#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM14_RARE_CANDY 0x1FC +#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE_LUCKY_PUNCH 0x1FD +#define FLAG_HIDE_SILPH_CO_4F_TM41 0x1FE + +// Unused? +#define FLAG_0x1FF 0x1FF +#define FLAG_0x200 0x200 +#define FLAG_0x201 0x201 +#define FLAG_0x202 0x202 +#define FLAG_0x203 0x203 +#define FLAG_0x204 0x204 +#define FLAG_0x205 0x205 +#define FLAG_0x206 0x206 +#define FLAG_0x207 0x207 +#define FLAG_0x208 0x208 +#define FLAG_0x209 0x209 +#define FLAG_0x20A 0x20A +#define FLAG_0x20B 0x20B +#define FLAG_0x20C 0x20C +#define FLAG_0x20D 0x20D +#define FLAG_0x20E 0x20E +#define FLAG_0x20F 0x20F +#define FLAG_0x210 0x210 +#define FLAG_0x211 0x211 +#define FLAG_0x212 0x212 +#define FLAG_0x213 0x213 +#define FLAG_0x214 0x214 +#define FLAG_0x215 0x215 +#define FLAG_0x216 0x216 +#define FLAG_0x217 0x217 +#define FLAG_0x218 0x218 +#define FLAG_0x219 0x219 +#define FLAG_0x21A 0x21A +#define FLAG_0x21B 0x21B +#define FLAG_0x21C 0x21C +#define FLAG_0x21D 0x21D +#define FLAG_0x21E 0x21E +#define FLAG_0x21F 0x21F +#define FLAG_0x220 0x220 +#define FLAG_0x221 0x221 +#define FLAG_0x222 0x222 +#define FLAG_0x223 0x223 +#define FLAG_0x224 0x224 +#define FLAG_0x225 0x225 +#define FLAG_0x226 0x226 +#define FLAG_0x227 0x227 +#define FLAG_0x228 0x228 +#define FLAG_0x229 0x229 +#define FLAG_0x22A 0x22A +#define FLAG_0x22B 0x22B +#define FLAG_0x22C 0x22C +#define FLAG_0x22D 0x22D +#define FLAG_0x22E 0x22E +#define FLAG_0x22F 0x22F + +// Story flags +#define STORY_FLAGS_START 0x230 +#define FLAG_GOT_POTION_ON_ROUTE_1 0x230 +#define FLAG_GOT_TM34_FROM_SURGE 0x231 +#define FLAG_GOT_FOSSIL_FROM_MT_MOON 0x232 +#define FLAG_HELPED_BILL_IN_SEA_COTTAGE 0x233 +#define FLAG_GOT_SS_TICKET 0x234 +#define FLAG_GOT_SS_TICKET_DUP 0x235 +#define FLAG_GOT_TM42_AT_MEMORIAL_PILLAR 0x236 +#define FLAG_GOT_HM01 0x237 +#define FLAG_GOT_HM02 0x238 +#define FLAG_GOT_HM03 0x239 +#define FLAG_GOT_HM04 0x23A +#define FLAG_GOT_HM05 0x23B +#define FLAG_RESCUED_MR_FUJI 0x23C +#define FLAG_GOT_POKE_FLUTE 0x23D +#define FLAG_0x23E 0x23E +#define FLAG_GOT_TM28_FROM_ROCKET 0x23F +#define FLAG_GOT_OLD_ROD 0x240 +#define FLAG_GOT_BIKE_VOUCHER 0x241 +#define FLAG_0x242 0x242 +#define FLAG_GOT_COIN_CASE 0x243 +#define FLAG_GOT_GOOD_ROD 0x244 +#define FLAG_GOT_TM29_FROM_MR_PSYCHIC 0x245 +#define FLAG_GOT_LAPRAS_FROM_SILPH 0x246 +#define FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL 0x247 +#define FLAG_DID_MIMIEN_TRADE 0x248 +#define FLAG_BOUGHT_MAGIKARP 0x249 +#define FLAG_DID_ZYNX_TRADE 0x24A +#define FLAG_DID_MS_NIDO_TRADE 0x24B +#define FLAG_0x24C 0x24C +#define FLAG_DID_CH_DING_TRADE 0x24D +#define FLAG_GOT_TM38_FROM_BLAINE 0x24E +#define FLAG_OAK_SKIP_22_RIVAL_CHECK 0x24F +#define FLAG_GOT_MASTER_BALL_FROM_SILPH 0x250 +#define FLAG_DID_NINA_TRADE 0x251 +#define FLAG_GOT_ITEMFINDER 0x252 +#define FLAG_WOKE_UP_ROUTE_12_SNORLAX 0x253 +#define FLAG_GOT_TM39_FROM_BROCK 0x254 +#define FLAG_GOT_SUPER_ROD 0x255 +#define FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE 0x256 +#define FLAG_DID_MARC_TRADE 0x257 +#define FLAG_BEAT_RIVAL_IN_OAKS_LAB 0x258 +#define FLAG_GOT_TM06_FROM_KOGA 0x259 +#define FLAG_0x25A 0x25A +#define FLAG_GOT_TM27 0x25B +#define FLAG_0x25C 0x25C +#define FLAG_0x25D 0x25D +#define FLAG_GOT_OLD_AMBER 0x25E +#define FLAG_0x25F 0x25F +#define FLAG_0x260 0x260 +#define FLAG_0x261 0x261 +#define FLAG_0x262 0x262 +#define FLAG_GOT_EEVEE 0x263 +#define FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES 0x264 +#define FLAG_CINNABAR_GYM_QUIZ_1 0x265 +#define FLAG_PENDING_DAYCARE_EGG 0x266 +#define FLAG_CINNABAR_GYM_QUIZ_2 0x267 +#define FLAG_CINNABAR_GYM_QUIZ_3 0x268 +#define FLAG_CINNABAR_GYM_QUIZ_4 0x269 +#define FLAG_CINNABAR_GYM_QUIZ_5 0x26A +#define FLAG_CINNABAR_GYM_QUIZ_6 0x26B +#define FLAG_POKEMON_MANSION_SWITCH_STATE 0x26C +#define FLAG_OPENED_ROCKET_HIDEOUT 0x26D +#define FLAG_GOT_10_COINS_FROM_GAMBLER 0x26E +#define FLAG_GOT_20_COINS_FROM_GAMBLER 0x26F +#define FLAG_GOT_20_COINS_FROM_GAMBLER_2 0x270 +#define FLAG_GOT_BICYCLE 0x271 +#define FLAG_GOT_DOME_FOSSIL 0x272 +#define FLAG_GOT_HELIX_FOSSIL 0x273 +#define FLAG_DID_ESPHERE_TRADE 0x274 +#define FLAG_DID_TANGENY_TRADE 0x275 +#define FLAG_DID_SEELOR_TRADE 0x276 +#define FLAG_0x277 0x277 +#define FLAG_GOT_HITMON_FROM_DOJO 0x278 +#define FLAG_0x279 0x279 +#define FLAG_SILPH_2F_DOOR_1 0x27A +#define FLAG_SILPH_2F_DOOR_2 0x27B +#define FLAG_SILPH_3F_DOOR_1 0x27C +#define FLAG_SILPH_3F_DOOR_2 0x27D +#define FLAG_SILPH_4F_DOOR_1 0x27E +#define FLAG_SILPH_4F_DOOR_2 0x27F +#define FLAG_SILPH_5F_DOOR_1 0x280 +#define FLAG_SILPH_5F_DOOR_2 0x281 +#define FLAG_SILPH_5F_DOOR_3 0x282 +#define FLAG_SILPH_6F_DOOR 0x283 +#define FLAG_SILPH_7F_DOOR_1 0x284 +#define FLAG_SILPH_7F_DOOR_2 0x285 +#define FLAG_SILPH_7F_DOOR_3 0x286 +#define FLAG_SILPH_8F_DOOR 0x287 +#define FLAG_SILPH_9F_DOOR_1 0x288 +#define FLAG_SILPH_9F_DOOR_2 0x289 +#define FLAG_SILPH_9F_DOOR_3 0x28A +#define FLAG_SILPH_9F_DOOR_4 0x28B +#define FLAG_SILPH_10F_DOOR 0x28C +#define FLAG_SILPH_11F_DOOR 0x28D +#define FLAG_0x28E 0x28E +#define FLAG_0x28F 0x28F +#define FLAG_MET_STICKER_MAN 0x290 +#define FLAG_PALLET_LADY_NOT_BLOCKING_SIGN 0x291 +#define FLAG_GOT_VS_SEEKER 0x292 +#define FLAG_GOT_TM19_FROM_ERIKA 0x293 +#define FLAG_GOT_TM33_FROM_THIRSTY_GIRL 0x294 +#define FLAG_GOT_TM20_FROM_THIRSTY_GIRL 0x295 +#define FLAG_GOT_TM16_FROM_THIRSTY_GIRL 0x296 +#define FLAG_GOT_TM03_FROM_MISTY 0x297 +#define FLAG_GOT_TM26_FROM_GIOVANNI 0x298 +#define FLAG_0x299 0x299 +#define FLAG_GOT_TM04_FROM_SABRINA 0x29A +#define FLAG_GOT_FAME_CHECKER 0x29B +#define FLAG_GOT_RECORD_SETTING_MAGIKARP 0x29C +#define FLAG_TWO_ISLAND_SHOP_INTRODUCED 0x29D +#define FLAG_TWO_ISLAND_SHOP_EXPANDED_1 0x29E +#define FLAG_TWO_ISLAND_SHOP_EXPANDED_2 0x29F +#define FLAG_TWO_ISLAND_SHOP_EXPANDED_3 0x2A0 +#define FLAG_SEVII_DETOUR_FINISHED 0x2A1 +#define FLAG_VISITED_TWO_ISLAND 0x2A2 +#define FLAG_RESCUED_LOSTELLE 0x2A3 +#define FLAG_0x2A4 0x2A4 +#define FLAG_CAN_USE_ROCKET_HIDEOUT_LIFT 0x2A5 +#define FLAG_GOT_TEA 0x2A6 +#define FLAG_RECEIVED_AURORA_TICKET 0x2A7 +#define FLAG_RECEIVED_MYSTIC_TICKET 0x2A8 +#define FLAG_RECEIVED_OLD_SEA_MAP 0x2A9 +#define FLAG_WONDER_CARD_UNUSED_1 0x2AA +#define FLAG_WONDER_CARD_UNUSED_2 0x2AB +#define FLAG_WONDER_CARD_UNUSED_3 0x2AC +#define FLAG_WONDER_CARD_UNUSED_4 0x2AD +#define FLAG_WONDER_CARD_UNUSED_5 0x2AE +#define FLAG_WONDER_CARD_UNUSED_6 0x2AF +#define FLAG_WONDER_CARD_UNUSED_7 0x2B0 +#define FLAG_WONDER_CARD_UNUSED_8 0x2B1 +#define FLAG_WONDER_CARD_UNUSED_9 0x2B2 +#define FLAG_WONDER_CARD_UNUSED_10 0x2B3 +#define FLAG_WONDER_CARD_UNUSED_11 0x2B4 +#define FLAG_WONDER_CARD_UNUSED_12 0x2B5 +#define FLAG_WONDER_CARD_UNUSED_13 0x2B6 +#define FLAG_WONDER_CARD_UNUSED_14 0x2B7 +#define FLAG_WONDER_CARD_UNUSED_15 0x2B8 +#define FLAG_WONDER_CARD_UNUSED_16 0x2B9 +#define FLAG_WONDER_CARD_UNUSED_17 0x2BA +#define NUM_WONDER_CARD_FLAGS (1 + FLAG_WONDER_CARD_UNUSED_17 - FLAG_RECEIVED_AURORA_TICKET) + +#define FLAG_GOT_POWDER_JAR 0x2BB +#define FLAG_FOUGHT_MEWTWO 0x2BC +#define FLAG_FOUGHT_MOLTRES 0x2BD +#define FLAG_FOUGHT_ARTICUNO 0x2BE +#define FLAG_FOUGHT_ZAPDOS 0x2BF +#define FLAG_TUTOR_DOUBLE_EDGE 0x2C0 +#define FLAG_TUTOR_THUNDER_WAVE 0x2C1 +#define FLAG_TUTOR_ROCK_SLIDE 0x2C2 +#define FLAG_TUTOR_EXPLOSION 0x2C3 +#define FLAG_TUTOR_MEGA_PUNCH 0x2C4 +#define FLAG_TUTOR_MEGA_KICK 0x2C5 +#define FLAG_TUTOR_DREAM_EATER 0x2C6 +#define FLAG_TUTOR_SOFT_BOILED 0x2C7 +#define FLAG_TUTOR_SUBSTITUTE 0x2C8 +#define FLAG_TUTOR_SWORDS_DANCE 0x2C9 +#define FLAG_TUTOR_SEISMIC_TOSS 0x2CA +#define FLAG_TUTOR_COUNTER 0x2CB +#define FLAG_TUTOR_METRONOME 0x2CC +#define FLAG_TUTOR_MIMIC 0x2CD +#define FLAG_TUTOR_BODY_SLAM 0x2CE +#define FLAG_VISITED_OAKS_LAB 0x2CF +#define FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1 0x2D0 +#define FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2 0x2D1 +#define FLAG_STOPPED_SEAFOAM_B3F_CURRENT 0x2D2 +#define FLAG_STOPPED_SEAFOAM_B4F_CURRENT 0x2D3 +#define FLAG_TALKED_TO_LORELEI_AFTER_WAREHOUSE 0x2D4 +#define FLAG_DEFEATED_ROCKETS_IN_WAREHOUSE 0x2D5 +#define FLAG_UNLOCKED_ROCKET_WAREHOUSE 0x2D6 +#define FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR 0x2D7 +#define FLAG_LEARNED_YES_NAH_CHANSEY 0x2D8 +#define FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1 0x2D9 +#define FLAG_GOT_TOGEPI_EGG 0x2DA +#define FLAG_NO_ROOM_FOR_TOGEPI_EGG 0x2DB +#define FLAG_RECOVERED_SAPPHIRE 0x2DC +#define FLAG_GOT_RUBY 0x2DD +#define FLAG_TUTOR_FRENZY_PLANT 0x2DE +#define FLAG_TUTOR_BLAST_BURN 0x2DF +#define FLAG_TUTOR_HYDRO_CANNON 0x2E0 +#define FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK 0x2E1 +#define FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL 0x2E2 +#define FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE 0x2E3 +#define FLAG_FOUGHT_DEOXYS 0x2E4 +#define FLAG_0x2E5 0x2E5 +#define FLAG_0x2E6 0x2E6 +#define FLAG_0x2E7 0x2E7 +#define FLAG_0x2E8 0x2E8 +#define FLAG_0x2E9 0x2E9 +#define FLAG_0x2EA 0x2EA +#define FLAG_0x2EB 0x2EB +#define FLAG_REVIVED_DOME 0x2EC +#define FLAG_REVIVED_HELIX 0x2ED +#define FLAG_REVIVED_AMBER 0x2EE +#define FLAG_GOT_HM06 0x2EF +#define FLAG_SHOWN_MYSTIC_TICKET 0x2F0 +#define FLAG_SHOWN_AURORA_TICKET 0x2F1 +#define FLAG_FOUGHT_LUGIA 0x2F2 +#define FLAG_FOUGHT_HO_OH 0x2F3 +#define FLAG_OAK_SAW_DEX_COMPLETION 0x2F4 +#define FLAG_LUGIA_FLEW_AWAY 0x2F5 +#define FLAG_HO_OH_FLEW_AWAY 0x2F6 +#define FLAG_DEOXYS_FLEW_AWAY 0x2F7 +#define FLAG_TALKED_TO_TEA_LADY_AFTER_HOF 0x2F8 +#define FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION 0x2F9 +#define FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE 0x2FA +#define FLAG_GOT_MOON_STONE_FROM_JOYFUL_GAME_CORNER 0x2FB +#define FLAG_GOT_FULL_RESTORE_FROM_THREE_ISLAND_DEFENDER 0x2FC +#define FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE 0x2FD +#define FLAG_NO_ROOM_FOR_JOYFUL_GAME_CORNER_MOON_STONE 0x2FE +#define FLAG_OAKS_RATING_IS_VIA_PC 0x2FF + +// Unused? +#define FLAG_0x300 0x300 +#define FLAG_0x301 0x301 +#define FLAG_0x302 0x302 +#define FLAG_0x303 0x303 +#define FLAG_0x304 0x304 +#define FLAG_0x305 0x305 +#define FLAG_0x306 0x306 +#define FLAG_0x307 0x307 +#define FLAG_0x308 0x308 +#define FLAG_0x309 0x309 +#define FLAG_0x30A 0x30A +#define FLAG_0x30B 0x30B +#define FLAG_0x30C 0x30C +#define FLAG_0x30D 0x30D +#define FLAG_0x30E 0x30E +#define FLAG_0x30F 0x30F +#define FLAG_0x310 0x310 +#define FLAG_0x311 0x311 +#define FLAG_0x312 0x312 +#define FLAG_0x313 0x313 +#define FLAG_0x314 0x314 +#define FLAG_0x315 0x315 +#define FLAG_0x316 0x316 +#define FLAG_0x317 0x317 +#define FLAG_0x318 0x318 +#define FLAG_0x319 0x319 +#define FLAG_0x31A 0x31A +#define FLAG_0x31B 0x31B +#define FLAG_0x31C 0x31C +#define FLAG_0x31D 0x31D +#define FLAG_0x31E 0x31E +#define FLAG_0x31F 0x31F +#define FLAG_0x320 0x320 +#define FLAG_0x321 0x321 +#define FLAG_0x322 0x322 +#define FLAG_0x323 0x323 +#define FLAG_0x324 0x324 +#define FLAG_0x325 0x325 +#define FLAG_0x326 0x326 +#define FLAG_0x327 0x327 +#define FLAG_0x328 0x328 +#define FLAG_0x329 0x329 +#define FLAG_0x32A 0x32A +#define FLAG_0x32B 0x32B +#define FLAG_0x32C 0x32C +#define FLAG_0x32D 0x32D +#define FLAG_0x32E 0x32E +#define FLAG_0x32F 0x32F +#define FLAG_0x330 0x330 +#define FLAG_0x331 0x331 +#define FLAG_0x332 0x332 +#define FLAG_0x333 0x333 +#define FLAG_0x334 0x334 +#define FLAG_0x335 0x335 +#define FLAG_0x336 0x336 +#define FLAG_0x337 0x337 +#define FLAG_0x338 0x338 +#define FLAG_0x339 0x339 +#define FLAG_0x33A 0x33A +#define FLAG_0x33B 0x33B +#define FLAG_0x33C 0x33C +#define FLAG_0x33D 0x33D +#define FLAG_0x33E 0x33E +#define FLAG_0x33F 0x33F +#define FLAG_0x340 0x340 +#define FLAG_0x341 0x341 +#define FLAG_0x342 0x342 +#define FLAG_0x343 0x343 +#define FLAG_0x344 0x344 +#define FLAG_0x345 0x345 +#define FLAG_0x346 0x346 +#define FLAG_0x347 0x347 +#define FLAG_0x348 0x348 +#define FLAG_0x349 0x349 +#define FLAG_0x34A 0x34A +#define FLAG_0x34B 0x34B +#define FLAG_0x34C 0x34C +#define FLAG_0x34D 0x34D +#define FLAG_0x34E 0x34E +#define FLAG_0x34F 0x34F +#define FLAG_0x350 0x350 +#define FLAG_0x351 0x351 +#define FLAG_0x352 0x352 +#define FLAG_0x353 0x353 +#define FLAG_0x354 0x354 +#define FLAG_0x355 0x355 +#define FLAG_0x356 0x356 +#define FLAG_0x357 0x357 +#define FLAG_0x358 0x358 +#define FLAG_0x359 0x359 +#define FLAG_0x35A 0x35A +#define FLAG_0x35B 0x35B +#define FLAG_SET_WALL_CLOCK 0x35C +#define FLAG_0x35D 0x35D +#define FLAG_0x35E 0x35E +#define FLAG_0x35F 0x35F +#define FLAG_0x360 0x360 +#define FLAG_0x361 0x361 +#define FLAG_0x362 0x362 +#define FLAG_0x363 0x363 +#define FLAG_0x364 0x364 +#define FLAG_0x365 0x365 +#define FLAG_0x366 0x366 +#define FLAG_0x367 0x367 +#define FLAG_0x368 0x368 +#define FLAG_0x369 0x369 +#define FLAG_0x36A 0x36A +#define FLAG_0x36B 0x36B +#define FLAG_0x36C 0x36C +#define FLAG_0x36D 0x36D +#define FLAG_0x36E 0x36E +#define FLAG_0x36F 0x36F +#define FLAG_0x370 0x370 +#define FLAG_0x371 0x371 +#define FLAG_0x372 0x372 +#define FLAG_0x373 0x373 +#define FLAG_0x374 0x374 +#define FLAG_0x375 0x375 +#define FLAG_0x376 0x376 +#define FLAG_0x377 0x377 +#define FLAG_0x378 0x378 +#define FLAG_0x379 0x379 +#define FLAG_0x37A 0x37A +#define FLAG_0x37B 0x37B +#define FLAG_0x37C 0x37C +#define FLAG_0x37D 0x37D +#define FLAG_0x37E 0x37E +#define FLAG_0x37F 0x37F +#define FLAG_0x380 0x380 +#define FLAG_0x381 0x381 +#define FLAG_0x382 0x382 +#define FLAG_0x383 0x383 +#define FLAG_0x384 0x384 +#define FLAG_0x385 0x385 +#define FLAG_0x386 0x386 +#define FLAG_0x387 0x387 +#define FLAG_0x388 0x388 +#define FLAG_0x389 0x389 +#define FLAG_0x38A 0x38A +#define FLAG_0x38B 0x38B +#define FLAG_0x38C 0x38C +#define FLAG_0x38D 0x38D +#define FLAG_0x38E 0x38E +#define FLAG_0x38F 0x38F + +#define DAILY_FLAGS_START (FLAG_0x38F + (8 - FLAG_0x38F % 8)) + +#define FLAG_0x390 0x390 +#define FLAG_0x391 0x391 +#define FLAG_0x392 0x392 +#define FLAG_0x393 0x393 +#define FLAG_0x394 0x394 +#define FLAG_0x395 0x395 +#define FLAG_0x396 0x396 +#define FLAG_0x397 0x397 +#define FLAG_0x398 0x398 +#define FLAG_0x399 0x399 +#define FLAG_0x39A 0x39A +#define FLAG_0x39B 0x39B +#define FLAG_0x39C 0x39C +#define FLAG_0x39D 0x39D +#define FLAG_0x39E 0x39E +#define FLAG_0x39F 0x39F +#define FLAG_0x3A0 0x3A0 +#define FLAG_0x3A1 0x3A1 +#define FLAG_0x3A2 0x3A2 +#define FLAG_0x3A3 0x3A3 +#define FLAG_0x3A4 0x3A4 +#define FLAG_0x3A5 0x3A5 +#define FLAG_0x3A6 0x3A6 +#define FLAG_0x3A7 0x3A7 +#define FLAG_0x3A8 0x3A8 +#define FLAG_0x3A9 0x3A9 +#define FLAG_0x3AA 0x3AA +#define FLAG_0x3AB 0x3AB +#define FLAG_0x3AC 0x3AC +#define FLAG_0x3AD 0x3AD +#define FLAG_0x3AE 0x3AE +#define FLAG_0x3AF 0x3AF +#define FLAG_0x3B0 0x3B0 +#define FLAG_0x3B1 0x3B1 +#define FLAG_0x3B2 0x3B2 +#define FLAG_0x3B3 0x3B3 +#define FLAG_0x3B4 0x3B4 +#define FLAG_0x3B5 0x3B5 +#define FLAG_0x3B6 0x3B6 +#define FLAG_0x3B7 0x3B7 +#define FLAG_0x3B8 0x3B8 +#define FLAG_0x3B9 0x3B9 +#define FLAG_0x3BA 0x3BA +#define FLAG_0x3BB 0x3BB +#define FLAG_0x3BC 0x3BC +#define FLAG_0x3BD 0x3BD +#define FLAG_0x3BE 0x3BE +#define FLAG_0x3BF 0x3BF +#define FLAG_0x3C0 0x3C0 +#define FLAG_0x3C1 0x3C1 +#define FLAG_0x3C2 0x3C2 +#define FLAG_0x3C3 0x3C3 +#define FLAG_0x3C4 0x3C4 +#define FLAG_0x3C5 0x3C5 +#define FLAG_0x3C6 0x3C6 +#define FLAG_0x3C7 0x3C7 +#define FLAG_0x3C8 0x3C8 +#define FLAG_0x3C9 0x3C9 +#define FLAG_0x3CA 0x3CA +#define FLAG_0x3CB 0x3CB +#define FLAG_0x3CC 0x3CC +#define FLAG_0x3CD 0x3CD +#define FLAG_0x3CE 0x3CE +#define FLAG_0x3CF 0x3CF + +#define DAILY_FLAGS_END (FLAG_0x3CF + (7 - FLAG_0x3CF % 8)) +#define NUM_DAILY_FLAGS (DAILY_FLAGS_END - DAILY_FLAGS_START + 1) + +#define FLAG_0x3D0 0x3D0 +#define FLAG_0x3D1 0x3D1 +#define FLAG_0x3D2 0x3D2 +#define FLAG_0x3D3 0x3D3 +#define FLAG_0x3D4 0x3D4 +#define FLAG_0x3D5 0x3D5 +#define FLAG_0x3D6 0x3D6 +#define FLAG_0x3D7 0x3D7 +#define FLAG_MYSTERY_GIFT_DONE 0x3D8 +#define FLAG_MYSTERY_GIFT_1 0x3D9 +#define FLAG_MYSTERY_GIFT_2 0x3DA +#define FLAG_MYSTERY_GIFT_3 0x3DB +#define FLAG_MYSTERY_GIFT_4 0x3DC +#define FLAG_MYSTERY_GIFT_5 0x3DD +#define FLAG_MYSTERY_GIFT_6 0x3DE +#define FLAG_MYSTERY_GIFT_7 0x3DF +#define FLAG_MYSTERY_GIFT_8 0x3E0 +#define FLAG_MYSTERY_GIFT_9 0x3E1 +#define FLAG_MYSTERY_GIFT_10 0x3E2 +#define FLAG_MYSTERY_GIFT_11 0x3E3 +#define FLAG_MYSTERY_GIFT_12 0x3E4 +#define FLAG_MYSTERY_GIFT_13 0x3E5 +#define FLAG_MYSTERY_GIFT_14 0x3E6 +#define FLAG_MYSTERY_GIFT_15 0x3E7 + +#define FLAG_HIDDEN_ITEMS_START 1000 // 0x3E8 + +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION (FLAG_HIDDEN_ITEMS_START + 0) +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 1) +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 2) +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER (FLAG_HIDDEN_ITEMS_START + 3) +#define FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR (FLAG_HIDDEN_ITEMS_START + 4) +#define FLAG_HIDDEN_ITEM_ROUTE25_ETHER (FLAG_HIDDEN_ITEMS_START + 5) +#define FLAG_HIDDEN_ITEM_ROUTE9_ETHER (FLAG_HIDDEN_ITEMS_START + 6) +#define FLAG_HIDDEN_ITEM_UNUSED_0x07 (FLAG_HIDDEN_ITEMS_START + 7) +#define FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 8) +#define FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 9) +#define FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 10) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP (FLAG_HIDDEN_ITEMS_START + 11) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 12) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 13) +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 14) +#define FLAG_HIDDEN_ITEM_ROUTE13_PP_UP (FLAG_HIDDEN_ITEMS_START + 15) +#define FLAG_HIDDEN_ITEM_UNUSED_0x10 (FLAG_HIDDEN_ITEMS_START + 16) +#define FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 17) +#define FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 18) +#define FLAG_HIDDEN_ITEM_ROUTE17_PP_UP (FLAG_HIDDEN_ITEMS_START + 19) +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 20) +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 21) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE (FLAG_HIDDEN_ITEMS_START + 22) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE (FLAG_HIDDEN_ITEMS_START + 23) +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 24) +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION (FLAG_HIDDEN_ITEMS_START + 25) +#define FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET (FLAG_HIDDEN_ITEMS_START + 26) +#define FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 27) +#define FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE (FLAG_HIDDEN_ITEMS_START + 28) +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 29) +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE (FLAG_HIDDEN_ITEMS_START + 30) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 31) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 32) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 33) +#define FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 34) +#define FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 35) +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 36) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 37) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 38) +#define FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 39) +#define FLAG_HIDDEN_ITEM_UNUSED_0x28 (FLAG_HIDDEN_ITEMS_START + 40) +#define FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE (FLAG_HIDDEN_ITEMS_START + 41) +#define FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 42) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2B (FLAG_HIDDEN_ITEMS_START + 43) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2C (FLAG_HIDDEN_ITEMS_START + 44) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2D (FLAG_HIDDEN_ITEMS_START + 45) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2E (FLAG_HIDDEN_ITEMS_START + 46) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 47) +#define FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 48) +#define FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 49) +#define FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 50) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS (FLAG_HIDDEN_ITEMS_START + 51) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 (FLAG_HIDDEN_ITEMS_START + 52) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 (FLAG_HIDDEN_ITEMS_START + 53) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 (FLAG_HIDDEN_ITEMS_START + 54) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 (FLAG_HIDDEN_ITEMS_START + 55) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 (FLAG_HIDDEN_ITEMS_START + 56) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 (FLAG_HIDDEN_ITEMS_START + 57) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 (FLAG_HIDDEN_ITEMS_START + 58) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 (FLAG_HIDDEN_ITEMS_START + 59) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 (FLAG_HIDDEN_ITEMS_START + 60) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 (FLAG_HIDDEN_ITEMS_START + 61) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 (FLAG_HIDDEN_ITEMS_START + 62) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 63) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 (FLAG_HIDDEN_ITEMS_START + 64) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 65) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 66) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 67) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 68) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL (FLAG_HIDDEN_ITEMS_START + 69) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 70) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 71) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 72) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 73) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 74) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 75) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 76) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 77) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 78) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 79) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 80) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 81) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 82) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 83) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 84) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 85) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 86) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 87) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 88) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 89) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 90) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 91) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 92) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 93) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 94) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 95) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 96) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 97) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 98) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 99) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 100) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 101) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 102) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST (FLAG_HIDDEN_ITEMS_START + 103) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 104) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL (FLAG_HIDDEN_ITEMS_START + 105) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 (FLAG_HIDDEN_ITEMS_START + 106) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 107) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 (FLAG_HIDDEN_ITEMS_START + 108) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 109) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 110) +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 111) +#define FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 112) +#define FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 113) +#define FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 114) +#define FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 115) +#define FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 116) +#define FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 117) +#define FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 118) +#define FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 119) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 120) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 121) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 122) +#define FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 123) +#define FLAG_HIDDEN_ITEM_UNUSED_0x7C (FLAG_HIDDEN_ITEMS_START + 124) +#define FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 125) +#define FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 126) +#define FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 127) +#define FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 128) +#define FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 129) +#define FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 130) +#define FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 131) +#define FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 132) +#define FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 133) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL (FLAG_HIDDEN_ITEMS_START + 134) +#define FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 135) +#define FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 136) +#define FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON (FLAG_HIDDEN_ITEMS_START + 137) +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP (FLAG_HIDDEN_ITEMS_START + 138) +#define FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS (FLAG_HIDDEN_ITEMS_START + 139) +#define FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC (FLAG_HIDDEN_ITEMS_START + 140) +#define FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET (FLAG_HIDDEN_ITEMS_START + 141) +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 142) +#define FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP (FLAG_HIDDEN_ITEMS_START + 143) +#define FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE (FLAG_HIDDEN_ITEMS_START + 144) +#define FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 145) +#define FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 146) +#define FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 147) +#define FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 148) +#define FLAG_HIDDEN_ITEM_ROUTE14_ZINC (FLAG_HIDDEN_ITEMS_START + 149) +#define FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 150) +#define FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 151) +#define FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 152) +#define FLAG_HIDDEN_ITEM_ROUTE20_STARDUST (FLAG_HIDDEN_ITEMS_START + 153) +#define FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL (FLAG_HIDDEN_ITEMS_START + 154) +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 155) +#define FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 156) +#define FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 157) +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE (FLAG_HIDDEN_ITEMS_START + 158) +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL (FLAG_HIDDEN_ITEMS_START + 159) +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 160) +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX (FLAG_HIDDEN_ITEMS_START + 161) +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 162) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET (FLAG_HIDDEN_ITEMS_START + 163) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP (FLAG_HIDDEN_ITEMS_START + 164) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 165) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL (FLAG_HIDDEN_ITEMS_START + 166) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST (FLAG_HIDDEN_ITEMS_START + 167) +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL (FLAG_HIDDEN_ITEMS_START + 168) +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 169) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 170) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 171) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 172) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 173) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 174) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST (FLAG_HIDDEN_ITEMS_START + 175) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 176) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 177) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 178) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL (FLAG_HIDDEN_ITEMS_START + 179) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 180) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 181) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 182) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 183) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 184) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 185) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL (FLAG_HIDDEN_ITEMS_START + 186) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 187) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 188) +#define FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE (FLAG_HIDDEN_ITEMS_START + 189) +#define FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE (FLAG_HIDDEN_ITEMS_START + 190) + +// Unused hidden item flags +#define FLAG_UNUSED_0x4A7 0x4A7 // Unused Flag +#define FLAG_UNUSED_0x4A8 0x4A8 // Unused Flag +#define FLAG_UNUSED_0x4A9 0x4A9 // Unused Flag +#define FLAG_UNUSED_0x4AA 0x4AA // Unused Flag +#define FLAG_UNUSED_0x4AB 0x4AB // Unused Flag +#define FLAG_UNUSED_0x4AC 0x4AC // Unused Flag +#define FLAG_UNUSED_0x4AD 0x4AD // Unused Flag +#define FLAG_UNUSED_0x4AE 0x4AE // Unused Flag +#define FLAG_UNUSED_0x4AF 0x4AF // Unused Flag + +// Boss clear flags, 1200 +#define FLAG_DEFEATED_BROCK 0x4B0 +#define FLAG_DEFEATED_MISTY 0x4B1 +#define FLAG_DEFEATED_LT_SURGE 0x4B2 +#define FLAG_DEFEATED_ERIKA 0x4B3 +#define FLAG_DEFEATED_KOGA 0x4B4 +#define FLAG_DEFEATED_SABRINA 0x4B5 +#define FLAG_DEFEATED_BLAINE 0x4B6 +#define FLAG_DEFEATED_LEADER_GIOVANNI 0x4B7 +#define FLAG_DEFEATED_LORELEI 0x4B8 +#define FLAG_DEFEATED_BRUNO 0x4B9 +#define FLAG_DEFEATED_AGATHA 0x4BA +#define FLAG_DEFEATED_LANCE 0x4BB +#define FLAG_DEFEATED_CHAMP 0x4BC + +// Unused? +#define FLAG_0x4BD 0x4BD +#define FLAG_0x4BE 0x4BE +#define FLAG_0x4BF 0x4BF +#define FLAG_0x4C0 0x4C0 +#define FLAG_0x4C1 0x4C1 +#define FLAG_0x4C2 0x4C2 +#define FLAG_0x4C3 0x4C3 +#define FLAG_0x4C4 0x4C4 +#define FLAG_0x4C5 0x4C5 +#define FLAG_0x4C6 0x4C6 +#define FLAG_0x4C7 0x4C7 +#define FLAG_0x4C8 0x4C8 +#define FLAG_0x4C9 0x4C9 +#define FLAG_0x4CA 0x4CA +#define FLAG_0x4CB 0x4CB +#define FLAG_0x4CC 0x4CC +#define FLAG_0x4CD 0x4CD +#define FLAG_0x4CE 0x4CE +#define FLAG_0x4CF 0x4CF +#define FLAG_0x4D0 0x4D0 +#define FLAG_0x4D1 0x4D1 +#define FLAG_0x4D2 0x4D2 +#define FLAG_0x4D3 0x4D3 +#define FLAG_0x4D4 0x4D4 +#define FLAG_0x4D5 0x4D5 +#define FLAG_0x4D6 0x4D6 +#define FLAG_0x4D7 0x4D7 +#define FLAG_0x4D8 0x4D8 +#define FLAG_0x4D9 0x4D9 +#define FLAG_0x4DA 0x4DA +#define FLAG_0x4DB 0x4DB +#define FLAG_0x4DC 0x4DC +#define FLAG_0x4DD 0x4DD +#define FLAG_0x4DE 0x4DE +#define FLAG_0x4DF 0x4DF +#define FLAG_0x4E0 0x4E0 +#define FLAG_0x4E1 0x4E1 +#define FLAG_0x4E2 0x4E2 +#define FLAG_0x4E3 0x4E3 +#define FLAG_0x4E4 0x4E4 +#define FLAG_0x4E5 0x4E5 +#define FLAG_0x4E6 0x4E6 +#define FLAG_0x4E7 0x4E7 +#define FLAG_0x4E8 0x4E8 +#define FLAG_0x4E9 0x4E9 +#define FLAG_0x4EA 0x4EA +#define FLAG_0x4EB 0x4EB +#define FLAG_0x4EC 0x4EC +#define FLAG_0x4ED 0x4ED +#define FLAG_0x4EE 0x4EE +#define FLAG_0x4EF 0x4EF +#define FLAG_0x4F0 0x4F0 +#define FLAG_0x4F1 0x4F1 +#define FLAG_0x4F2 0x4F2 +#define FLAG_0x4F3 0x4F3 +#define FLAG_0x4F4 0x4F4 +#define FLAG_0x4F5 0x4F5 +#define FLAG_0x4F6 0x4F6 +#define FLAG_0x4F7 0x4F7 +#define FLAG_0x4F8 0x4F8 +#define FLAG_0x4F9 0x4F9 +#define FLAG_0x4FA 0x4FA +#define FLAG_0x4FB 0x4FB +#define FLAG_0x4FC 0x4FC +#define FLAG_0x4FD 0x4FD +#define FLAG_0x4FE 0x4FE +#define FLAG_0x4FF 0x4FF + +#define TRAINER_FLAGS_START (FLAG_0x4FF + 1) +#define TRAINER_FLAGS_END (TRAINER_FLAGS_START + MAX_TRAINERS_COUNT - 1) // 0x7FF + +// SYSTEM FLAGS + +#define SYS_FLAGS (TRAINER_FLAGS_END + 1) // 0x800 + +// Temporary system flags +#define FLAG_SYS_SAFARI_MODE (SYS_FLAGS + 0x0) +#define FLAG_SYS_VS_SEEKER_CHARGING (SYS_FLAGS + 0x1) +#define FLAG_SYS_CRUISE_MODE (SYS_FLAGS + 0x2) +#define FLAG_SYS_ENC_UP_ITEM (SYS_FLAGS + 0x3) +#define FLAG_SYS_ENC_DOWN_ITEM (SYS_FLAGS + 0x4) +#define FLAG_SYS_USE_STRENGTH (SYS_FLAGS + 0x5) +#define FLAG_SYS_USE_FLASH (SYS_FLAGS + 0x6) +#define FLAG_SYS_CTRL_OBJ_DELETE (SYS_FLAGS + 0x7) +#define FLAG_SYS_QL_DEPARTED (SYS_FLAGS + 0x8) +#define FLAG_0x809 (SYS_FLAGS + 0x9) +#define FLAG_0x80A (SYS_FLAGS + 0xA) +#define FLAG_0x80B (SYS_FLAGS + 0xB) +#define FLAG_0x80C (SYS_FLAGS + 0xC) +#define FLAG_0x80D (SYS_FLAGS + 0xD) +#define FLAG_0x80E (SYS_FLAGS + 0xE) +#define FLAG_0x80F (SYS_FLAGS + 0xF) +#define FLAG_0x810 (SYS_FLAGS + 0x10) +#define FLAG_0x811 (SYS_FLAGS + 0x11) +#define FLAG_0x812 (SYS_FLAGS + 0x12) +#define FLAG_0x813 (SYS_FLAGS + 0x13) +#define FLAG_0x814 (SYS_FLAGS + 0x14) +#define FLAG_0x815 (SYS_FLAGS + 0x15) +#define FLAG_0x816 (SYS_FLAGS + 0x16) +#define FLAG_0x817 (SYS_FLAGS + 0x17) +#define FLAG_0x818 (SYS_FLAGS + 0x18) +#define FLAG_0x819 (SYS_FLAGS + 0x19) +#define FLAG_0x81A (SYS_FLAGS + 0x1A) +#define FLAG_0x81B (SYS_FLAGS + 0x1B) +#define FLAG_0x81C (SYS_FLAGS + 0x1C) +#define FLAG_0x81D (SYS_FLAGS + 0x1D) +#define FLAG_0x81E (SYS_FLAGS + 0x1E) +#define FLAG_0x81F (SYS_FLAGS + 0x1F) + +// Permanent system flags +#define PERMA_SYS_FLAGS_START (FLAG_0x81F + 1) + +#define FLAG_BADGE01_GET (SYS_FLAGS + 0x20) +#define FLAG_BADGE02_GET (SYS_FLAGS + 0x21) +#define FLAG_BADGE03_GET (SYS_FLAGS + 0x22) +#define FLAG_BADGE04_GET (SYS_FLAGS + 0x23) +#define FLAG_BADGE05_GET (SYS_FLAGS + 0x24) +#define FLAG_BADGE06_GET (SYS_FLAGS + 0x25) +#define FLAG_BADGE07_GET (SYS_FLAGS + 0x26) +#define FLAG_BADGE08_GET (SYS_FLAGS + 0x27) +#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET) + +#define FLAG_SYS_POKEMON_GET (SYS_FLAGS + 0x28) +#define FLAG_SYS_POKEDEX_GET (SYS_FLAGS + 0x29) +#define FLAG_0x82A (SYS_FLAGS + 0x2A) +#define FLAG_0x82B (SYS_FLAGS + 0x2B) +#define FLAG_SYS_GAME_CLEAR (SYS_FLAGS + 0x2C) +#define FLAG_SYS_SET_TRAINER_CARD_PROFILE (SYS_FLAGS + 0x2D) +#define FLAG_0x82E (SYS_FLAGS + 0x2E) +#define FLAG_SYS_B_DASH (SYS_FLAGS + 0x2F) +#define FLAG_SYS_ON_CYCLING_ROAD (SYS_FLAGS + 0x30) +#define FLAG_0x831 (SYS_FLAGS + 0x31) +#define FLAG_0x832 (SYS_FLAGS + 0x32) +#define FLAG_0x833 (SYS_FLAGS + 0x33) +#define FLAG_SYS_PC_LANETTE (SYS_FLAGS + 0x34) +#define FLAG_0x835 (SYS_FLAGS + 0x35) +#define FLAG_0x836 (SYS_FLAGS + 0x36) +#define FLAG_SYS_RESET_RTC_ENABLE (SYS_FLAGS + 0x37) +#define FLAG_0x838 (SYS_FLAGS + 0x38) // Set, never read +#define FLAG_SYS_MYSTERY_GIFT_ENABLE (SYS_FLAGS + 0x39) +#define FLAG_SYS_MYSTERY_EVENT_ENABLE FLAG_SYS_MYSTERY_GIFT_ENABLE +#define FLAG_0x83A (SYS_FLAGS + 0x3A) +#define FLAG_SYS_RIBBON_GET (SYS_FLAGS + 0x3B) +#define FLAG_SYS_SAW_HELP_SYSTEM_INTRO (SYS_FLAGS + 0x3C) +#define FLAG_0x83D (SYS_FLAGS + 0x3D) +#define FLAG_OPENED_START_MENU (SYS_FLAGS + 0x3E) +#define FLAG_SYS_CLOCK_SET (SYS_FLAGS + 0x3F) // FLAG_0x83F +#define FLAG_SYS_NATIONAL_DEX (SYS_FLAGS + 0x40) +#define FLAG_SYS_PC_STORAGE_DISABLED (SYS_FLAGS + 0x41) +#define FLAG_NURSE_UNION_ROOM_REMINDER (SYS_FLAGS + 0x42) +#define FLAG_SHOWN_BOX_WAS_FULL_MESSAGE (SYS_FLAGS + 0x43) +#define FLAG_IS_CHAMPION (SYS_FLAGS + 0x44) +#define FLAG_SYS_SEVII_MAP_123 (SYS_FLAGS + 0x45) +#define FLAG_SYS_SEVII_MAP_4567 (SYS_FLAGS + 0x46) +#define FLAG_SYS_GOT_BERRY_POUCH (SYS_FLAGS + 0x47) +#define FLAG_DEOXYS_ROCK_COMPLETE (SYS_FLAGS + 0x48) +#define FLAG_SYS_UNLOCKED_TANOBY_RUINS (SYS_FLAGS + 0x49) +#define FLAG_ENABLE_SHIP_NAVEL_ROCK (SYS_FLAGS + 0x4A) +#define FLAG_ENABLE_SHIP_BIRTH_ISLAND (SYS_FLAGS + 0x4B) + +// World Map Flags +#define FLAG_WORLD_MAP_PALLET_TOWN (SYS_FLAGS + 0x90) +#define FLAG_WORLD_MAP_VIRIDIAN_CITY (SYS_FLAGS + 0x91) +#define FLAG_WORLD_MAP_PEWTER_CITY (SYS_FLAGS + 0x92) +#define FLAG_WORLD_MAP_CERULEAN_CITY (SYS_FLAGS + 0x93) +#define FLAG_WORLD_MAP_LAVENDER_TOWN (SYS_FLAGS + 0x94) +#define FLAG_WORLD_MAP_VERMILION_CITY (SYS_FLAGS + 0x95) +#define FLAG_WORLD_MAP_CELADON_CITY (SYS_FLAGS + 0x96) +#define FLAG_WORLD_MAP_FUCHSIA_CITY (SYS_FLAGS + 0x97) +#define FLAG_WORLD_MAP_CINNABAR_ISLAND (SYS_FLAGS + 0x98) +#define FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR (SYS_FLAGS + 0x99) +#define FLAG_WORLD_MAP_SAFFRON_CITY (SYS_FLAGS + 0x9A) +#define FLAG_WORLD_MAP_ONE_ISLAND (SYS_FLAGS + 0x9B) +#define FLAG_WORLD_MAP_TWO_ISLAND (SYS_FLAGS + 0x9C) +#define FLAG_WORLD_MAP_THREE_ISLAND (SYS_FLAGS + 0x9D) +#define FLAG_WORLD_MAP_FOUR_ISLAND (SYS_FLAGS + 0x9E) +#define FLAG_WORLD_MAP_FIVE_ISLAND (SYS_FLAGS + 0x9F) +#define FLAG_WORLD_MAP_SEVEN_ISLAND (SYS_FLAGS + 0xA0) +#define FLAG_WORLD_MAP_SIX_ISLAND (SYS_FLAGS + 0xA1) +#define FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F (SYS_FLAGS + 0xA2) +#define FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F (SYS_FLAGS + 0xA3) +#define FLAG_WORLD_MAP_VIRIDIAN_FOREST (SYS_FLAGS + 0xA4) +#define FLAG_WORLD_MAP_MT_MOON_1F (SYS_FLAGS + 0xA5) +#define FLAG_WORLD_MAP_SSANNE_EXTERIOR (SYS_FLAGS + 0xA6) +#define FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL (SYS_FLAGS + 0xA7) +#define FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL (SYS_FLAGS + 0xA8) +#define FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F (SYS_FLAGS + 0xA9) +#define FLAG_WORLD_MAP_VICTORY_ROAD_1F (SYS_FLAGS + 0xAA) +#define FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F (SYS_FLAGS + 0xAB) +#define FLAG_WORLD_MAP_SILPH_CO_1F (SYS_FLAGS + 0xAC) +#define FLAG_WORLD_MAP_POKEMON_MANSION_1F (SYS_FLAGS + 0xAD) +#define FLAG_WORLD_MAP_SAFARI_ZONE_CENTER (SYS_FLAGS + 0xAE) +#define FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM (SYS_FLAGS + 0xAF) +#define FLAG_WORLD_MAP_ROCK_TUNNEL_1F (SYS_FLAGS + 0xB0) +#define FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F (SYS_FLAGS + 0xB1) +#define FLAG_WORLD_MAP_POKEMON_TOWER_1F (SYS_FLAGS + 0xB2) +#define FLAG_WORLD_MAP_CERULEAN_CAVE_1F (SYS_FLAGS + 0xB3) +#define FLAG_WORLD_MAP_POWER_PLANT (SYS_FLAGS + 0xB4) +#define FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR (SYS_FLAGS + 0xB5) +#define FLAG_WORLD_MAP_MT_EMBER_EXTERIOR (SYS_FLAGS + 0xB6) +#define FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST (SYS_FLAGS + 0xB7) +#define FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE (SYS_FLAGS + 0xB8) +#define FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE (SYS_FLAGS + 0xB9) +#define FLAG_WORLD_MAP_TRAINER_TOWER_LOBBY (SYS_FLAGS + 0xBA) +#define FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F (SYS_FLAGS + 0xBB) +#define FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE (SYS_FLAGS + 0xBC) +#define FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH (SYS_FLAGS + 0xBD) +#define FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE (SYS_FLAGS + 0xBE) +#define FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER (SYS_FLAGS + 0xBF) +#define FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL (SYS_FLAGS + 0xC0) +#define FLAG_WORLD_MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY (SYS_FLAGS + 0xC1) +#define FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR (SYS_FLAGS + 0xC2) + +#define FLAG_0x8C3 (SYS_FLAGS + 0xC3) +#define FLAG_0x8C4 (SYS_FLAGS + 0xC4) +#define FLAG_0x8C5 (SYS_FLAGS + 0xC5) +#define FLAG_0x8C6 (SYS_FLAGS + 0xC6) +#define FLAG_0x8C7 (SYS_FLAGS + 0xC7) +#define FLAG_0x8C8 (SYS_FLAGS + 0xC8) +#define FLAG_0x8C9 (SYS_FLAGS + 0xC9) +#define FLAG_0x8CA (SYS_FLAGS + 0xCA) +#define FLAG_0x8CB (SYS_FLAGS + 0xCB) +#define FLAG_0x8CC (SYS_FLAGS + 0xCC) +#define FLAG_0x8CD (SYS_FLAGS + 0xCD) +#define FLAG_0x8CE (SYS_FLAGS + 0xCE) +#define FLAG_0x8CF (SYS_FLAGS + 0xCF) +#define FLAG_0x8D0 (SYS_FLAGS + 0xD0) +#define FLAG_0x8D1 (SYS_FLAGS + 0xD1) +#define FLAG_0x8D2 (SYS_FLAGS + 0xD2) +#define FLAG_0x8D3 (SYS_FLAGS + 0xD3) +#define FLAG_0x8D4 (SYS_FLAGS + 0xD4) +#define FLAG_0x8D5 (SYS_FLAGS + 0xD5) +#define FLAG_0x8D6 (SYS_FLAGS + 0xD6) +#define FLAG_0x8D7 (SYS_FLAGS + 0xD7) +#define FLAG_0x8D8 (SYS_FLAGS + 0xD8) +#define FLAG_0x8D9 (SYS_FLAGS + 0xD9) +#define FLAG_0x8DA (SYS_FLAGS + 0xDA) +#define FLAG_0x8DB (SYS_FLAGS + 0xDB) +#define FLAG_0x8DC (SYS_FLAGS + 0xDC) +#define FLAG_0x8DD (SYS_FLAGS + 0xDD) +#define FLAG_0x8DE (SYS_FLAGS + 0xDE) +#define FLAG_0x8DF (SYS_FLAGS + 0xDF) +#define FLAG_0x8E0 (SYS_FLAGS + 0xE0) +#define FLAG_0x8E1 (SYS_FLAGS + 0xE1) +#define FLAG_0x8E2 (SYS_FLAGS + 0xE2) +#define FLAG_0x8E3 (SYS_FLAGS + 0xE3) +#define FLAG_0x8E4 (SYS_FLAGS + 0xE4) +#define FLAG_0x8E5 (SYS_FLAGS + 0xE5) +#define FLAG_0x8E6 (SYS_FLAGS + 0xE6) +#define FLAG_0x8E7 (SYS_FLAGS + 0xE7) +#define FLAG_0x8E8 (SYS_FLAGS + 0xE8) +#define FLAG_0x8E9 (SYS_FLAGS + 0xE9) +#define FLAG_0x8EA (SYS_FLAGS + 0xEA) +#define FLAG_0x8EB (SYS_FLAGS + 0xEB) +#define FLAG_0x8EC (SYS_FLAGS + 0xEC) +#define FLAG_0x8ED (SYS_FLAGS + 0xED) +#define FLAG_0x8EE (SYS_FLAGS + 0xEE) +#define FLAG_0x8EF (SYS_FLAGS + 0xEF) +#define FLAG_0x8F0 (SYS_FLAGS + 0xF0) +#define FLAG_0x8F1 (SYS_FLAGS + 0xF1) +#define FLAG_0x8F2 (SYS_FLAGS + 0xF2) +#define FLAG_0x8F3 (SYS_FLAGS + 0xF3) +#define FLAG_0x8F4 (SYS_FLAGS + 0xF4) +#define FLAG_0x8F5 (SYS_FLAGS + 0xF5) +#define FLAG_0x8F6 (SYS_FLAGS + 0xF6) +#define FLAG_0x8F7 (SYS_FLAGS + 0xF7) +#define FLAG_0x8F8 (SYS_FLAGS + 0xF8) +#define FLAG_0x8F9 (SYS_FLAGS + 0xF9) +#define FLAG_0x8FA (SYS_FLAGS + 0xFA) +#define FLAG_0x8FB (SYS_FLAGS + 0xFB) +#define FLAG_0x8FC (SYS_FLAGS + 0xFC) +#define FLAG_0x8FD (SYS_FLAGS + 0xFD) +#define FLAG_0x8FE (SYS_FLAGS + 0xFE) +#define FLAG_0x8FF (SYS_FLAGS + 0xFF) + +#define FLAGS_COUNT (FLAG_0x8FF + 1) + +// Special Flags (Stored in EWRAM (sSpecialFlags, not in the SaveBlock) +#define SPECIAL_FLAGS_START 0x4000 +#define FLAG_HIDE_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0) +#define FLAG_DONT_TRANSITION_MUSIC (SPECIAL_FLAGS_START + 0x1) +#define FLAG_SPECIAL_FLAG_UNUSED_0x4002 (SPECIAL_FLAGS_START + 0x2) // Unused Flag +#define FLAG_SPECIAL_FLAG_UNUSED_0x4003 (SPECIAL_FLAGS_START + 0x3) // Unused Flag +#define FLAG_SPECIAL_FLAG_UNUSED_0x4004 (SPECIAL_FLAGS_START + 0x4) // Unused Flag +#define FLAG_SAFE_FOLLOWER_MOVEMENT (SPECIAL_FLAGS_START + 0x5) // When set, applymovement does not put the follower inside a pokeball +// FLAG_SPECIAL_FLAG_0x4002 - 0x407F also exist and are unused +#define SPECIAL_FLAGS_END (SPECIAL_FLAGS_START + 0x7F) +#define NUM_SPECIAL_FLAGS (SPECIAL_FLAGS_END - SPECIAL_FLAGS_START + 1) + + +// emerald flags +// Scripts +#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL 0 +#define FLAG_RESCUED_BIRCH 0 +#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0 + +#define FLAG_HIDE_CONTEST_POKE_BALL 0 // Always set after new game, object it hides is added directly +#define FLAG_MET_RIVAL_MOM 0 +#define FLAG_BIRCH_AIDE_MET 0 +#define FLAG_DECLINED_BIKE 0 +#define FLAG_RECEIVED_BIKE 0 +#define FLAG_WATTSON_REMATCH_AVAILABLE 0 +#define FLAG_COLLECTED_ALL_SILVER_SYMBOLS 0 +#define FLAG_GOOD_LUCK_SAFARI_ZONE 0 // Set after talking to NPC blocking Safari Zone entrance/exit once. +#define FLAG_RECEIVED_WAILMER_PAIL 0 +#define FLAG_RECEIVED_POKEBLOCK_CASE 0 +#define FLAG_RECEIVED_SECRET_POWER 0 +#define FLAG_MET_TEAM_AQUA_HARBOR 0 +#define FLAG_TV_EXPLAINED 0 +#define FLAG_MAUVILLE_GYM_BARRIERS_STATE 0 +#define FLAG_MOSSDEEP_GYM_SWITCH_1 0 // Leftover from the RS version of Mossdeep Gym, functionally unused +#define FLAG_MOSSDEEP_GYM_SWITCH_2 0 // +#define FLAG_MOSSDEEP_GYM_SWITCH_3 0 // +#define FLAG_MOSSDEEP_GYM_SWITCH_4 0 // + +#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0 +#define FLAG_RECEIVED_HM_STRENGTH 0 +#define FLAG_RECEIVED_HM_ROCK_SMASH 0 +#define FLAG_WHITEOUT_TO_LAVARIDGE 0 // Set after defeating Flannery, so the player cant white out from poison before receiving Go Goggles +#define FLAG_RECEIVED_HM_FLASH 0 +#define FLAG_RECEIVED_HM_FLY 0 +#define FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT 0 +#define FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE 0 +#define FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE 0 // Unused Flag. Used in R/S to indicate whether player defeated or caught Groudon/Kyogre in Cave of Origin. +#define FLAG_SCOTT_CALL_BATTLE_FRONTIER 0 // Used in order to activate a phone call from Scott, inviting the player to the SS Tidal. +#define FLAG_RECEIVED_METEORITE 0 +#define FLAG_ADVENTURE_STARTED 0 // RECEIVED Pokédex. +#define FLAG_DEFEATED_MAGMA_SPACE_CENTER 0 // Set when Team Magma is defeated at Mossdeep's Space Center. +#define FLAG_MET_HIDDEN_POWER_GIVER 0 + +#define FLAG_CANCEL_BATTLE_ROOM_CHALLENGE 0 + +#define FLAG_LANDMARK_MIRAGE_TOWER 0 +#define FLAG_RECEIVED_TM_BRICK_BREAK 0 +#define FLAG_RECEIVED_HM_SURF 0 +#define FLAG_RECEIVED_HM_DIVE 0 +#define FLAG_REGISTER_RIVAL_POKENAV 0 +#define FLAG_DEFEATED_RIVAL_ROUTE_104 0 +#define FLAG_DEFEATED_WALLY_VICTORY_ROAD 0 +#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER 0 +#define FLAG_ENABLE_ROXANNE_FIRST_CALL 0 // Set after defeating Brawly. This will activate a call with Roxanne in order to register her. +#define FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN 0 +#define FLAG_DEFEATED_RIVAL_ROUTE103 0 +#define FLAG_RECEIVED_DOLL_LANETTE 0 +#define FLAG_RECEIVED_POTION_OLDALE 0 +#define FLAG_RECEIVED_AMULET_COIN 0 +#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0 +#define FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL 0 // Set after defeating Wally outside Mauville Gym. Will activate a call later to register Wally. +#define FLAG_RECEIVED_HM_CUT 0 +#define FLAG_SCOTT_CALL_FORTREE_GYM 0 // Triggers call from Scott after defeating Winona +#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0 +#define FLAG_RECEIVED_6_SODA_POP 0 +#define FLAG_DEFEATED_SEASHORE_HOUSE 0 +#define FLAG_DEVON_GOODS_STOLEN 0 +#define FLAG_RECOVERED_DEVON_GOODS 0 +#define FLAG_RETURNED_DEVON_GOODS 0 +#define FLAG_CAUGHT_LUGIA 0 +#define FLAG_CAUGHT_HO_OH 0 +#define FLAG_MR_BRINEY_SAILING_INTRO 0 +#define FLAG_DOCK_REJECTED_DEVON_GOODS 0 +#define FLAG_DELIVERED_DEVON_GOODS 0 +#define FLAG_RECEIVED_CONTEST_PASS 0 // Unused, leftover from R/S +#define FLAG_RECEIVED_CASTFORM 0 +#define FLAG_RECEIVED_SUPER_ROD 0 +#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED 0 +#define FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED 0 +#define FLAG_FORTREE_NPC_TRADE_COMPLETED 0 +#define FLAG_BATTLE_FRONTIER_TRADE_DONE 0 +#define FLAG_FORCE_MIRAGE_TOWER_VISIBLE 0 +#define FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE 0 +#define FLAG_INTERACTED_WITH_DEVON_EMPLOYEE_GOODS_STOLEN 0 +#define FLAG_COOL_PAINTING_MADE 0 +#define FLAG_BEAUTY_PAINTING_MADE 0 +#define FLAG_CUTE_PAINTING_MADE 0 +#define FLAG_SMART_PAINTING_MADE 0 +#define FLAG_TOUGH_PAINTING_MADE 0 +#define FLAG_RECEIVED_TM_ROCK_TOMB 0 +#define FLAG_RECEIVED_TM_BULK_UP 0 +#define FLAG_RECEIVED_TM_SHOCK_WAVE 0 +#define FLAG_RECEIVED_TM_OVERHEAT 0 +#define FLAG_RECEIVED_TM_FACADE 0 +#define FLAG_RECEIVED_TM_AERIAL_ACE 0 +#define FLAG_RECEIVED_TM_CALM_MIND 0 +#define FLAG_RECEIVED_TM_WATER_PULSE 0 +#define FLAG_HIDE_SECRET_BASE_TRAINER 0 +#define FLAG_DECORATION_1 0 +#define FLAG_DECORATION_2 0 +#define FLAG_DECORATION_3 0 +#define FLAG_DECORATION_4 0 +#define FLAG_DECORATION_5 0 +#define FLAG_DECORATION_6 0 +#define FLAG_DECORATION_7 0 +#define FLAG_DECORATION_8 0 +#define FLAG_DECORATION_9 0 +#define FLAG_DECORATION_10 0 +#define FLAG_DECORATION_11 0 +#define FLAG_DECORATION_12 0 +#define FLAG_DECORATION_13 0 +#define FLAG_DECORATION_14 0 +#define FLAG_RECEIVED_POKENAV 0 +#define FLAG_DELIVERED_STEVEN_LETTER 0 +#define FLAG_DEFEATED_WALLY_MAUVILLE 0 +#define FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F 0 +#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0 +#define FLAG_WALLY_SPEECH 0 +#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0 // Leftover from the RS version of Puzzle Room 7, functionally unused +#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0 // +#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0 // +#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0 // +#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0 // +#define FLAG_RUSTURF_TUNNEL_OPENED 0 +#define FLAG_RECEIVED_RED_SCARF 0 +#define FLAG_RECEIVED_BLUE_SCARF 0 +#define FLAG_RECEIVED_PINK_SCARF 0 +#define FLAG_RECEIVED_GREEN_SCARF 0 +#define FLAG_RECEIVED_YELLOW_SCARF 0 +#define FLAG_INTERACTED_WITH_STEVEN_SPACE_CENTER 0 +#define FLAG_ENCOUNTERED_LATIAS_OR_LATIOS 0 +#define FLAG_MET_ARCHIE_METEOR_FALLS 0 +#define FLAG_GOT_BASEMENT_KEY_FROM_WATTSON 0 +#define FLAG_GOT_TM_THUNDERBOLT_FROM_WATTSON 0 +#define FLAG_FAN_CLUB_STRENGTH_SHARED 0 // Set when you rate the strength of another trainer in Lilycove's Trainer Fan Club. +#define FLAG_DEFEATED_RIVAL_RUSTBORO 0 +#define FLAG_RECEIVED_RED_OR_BLUE_ORB 0 +#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0 +#define FLAG_ENABLE_WALLY_MATCH_CALL 0 +#define FLAG_ENABLE_SCOTT_MATCH_CALL 0 +#define FLAG_ENABLE_MOM_MATCH_CALL 0 +#define FLAG_MET_DIVING_TREASURE_HUNTER 0 +#define FLAG_MET_WAILMER_TRAINER 0 +#define FLAG_EVIL_LEADER_PLEASE_STOP 0 + +#define FLAG_NEVER_SET_0x0DC 0 // This flag is read, but never written to + +#define FLAG_RECEIVED_GO_GOGGLES 0 +#define FLAG_WINGULL_SENT_ON_ERRAND 0 +#define FLAG_RECEIVED_MENTAL_HERB 0 +#define FLAG_WINGULL_DELIVERED_MAIL 0 +#define FLAG_RECEIVED_20_COINS 0 +#define FLAG_RECEIVED_STARTER_DOLL 0 +#define FLAG_RECEIVED_GOOD_ROD 0 +#define FLAG_REGI_DOORS_OPENED 0 +#define FLAG_RECEIVED_TM_RETURN 0 +#define FLAG_RECEIVED_TM_SLUDGE_BOMB 0 +#define FLAG_RECEIVED_TM_ROAR 0 +#define FLAG_RECEIVED_TM_GIGA_DRAIN 0 + +#define FLAG_RECEIVED_TM_REST 0 +#define FLAG_RECEIVED_TM_ATTRACT 0 +#define FLAG_RECEIVED_GLASS_ORNAMENT 0 +#define FLAG_RECEIVED_SILVER_SHIELD 0 +#define FLAG_RECEIVED_GOLD_SHIELD 0 +#define FLAG_USED_STORAGE_KEY 0 +#define FLAG_USED_ROOM_1_KEY 0 +#define FLAG_USED_ROOM_2_KEY 0 +#define FLAG_USED_ROOM_4_KEY 0 +#define FLAG_USED_ROOM_6_KEY 0 +#define FLAG_MET_PROF_COZMO 0 +#define FLAG_RECEIVED_WAILMER_DOLL 0 +#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104 0 +#define FLAG_DEFEATED_SS_TIDAL_TRAINERS 0 +#define FLAG_RECEIVED_SPELON_BERRY 0 +#define FLAG_RECEIVED_PAMTRE_BERRY 0 +#define FLAG_RECEIVED_WATMEL_BERRY 0 +#define FLAG_RECEIVED_DURIN_BERRY 0 +#define FLAG_RECEIVED_BELUE_BERRY 0 +#define FLAG_ENABLE_RIVAL_MATCH_CALL 0 +#define FLAG_RECEIVED_CHARCOAL 0 +#define FLAG_LATIOS_OR_LATIAS_ROAMING 0 +#define FLAG_RECEIVED_REPEAT_BALL 0 +#define FLAG_RECEIVED_OLD_ROD 0 +#define FLAG_RECEIVED_COIN_CASE 0 +#define FLAG_RETURNED_RED_OR_BLUE_ORB 0 +#define FLAG_RECEIVED_TM_SNATCH 0 +#define FLAG_RECEIVED_TM_DIG 0 +#define FLAG_RECEIVED_TM_BULLET_SEED 0 +#define FLAG_ENTERED_ELITE_FOUR 0 +#define FLAG_RECEIVED_TM_HIDDEN_POWER 0 +#define FLAG_RECEIVED_TM_TORMENT 0 +#define FLAG_RECEIVED_LAVARIDGE_EGG 0 +#define FLAG_RECEIVED_REVIVED_FOSSIL_MON 0 +#define FLAG_SECRET_BASE_REGISTRY_ENABLED 0 +#define FLAG_RECEIVED_TM_THIEF 0 +#define FLAG_CONTEST_SKETCH_CREATED 0 // Set but never read +#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0 +#define FLAG_RECEIVED_EXP_SHARE 0 +#define FLAG_POKERUS_EXPLAINED 0 +#define FLAG_RECEIVED_RUNNING_SHOES 0 +#define FLAG_RECEIVED_QUICK_CLAW 0 +#define FLAG_RECEIVED_KINGS_ROCK 0 +#define FLAG_RECEIVED_MACHO_BRACE 0 +#define FLAG_RECEIVED_SOOTHE_BELL 0 +#define FLAG_RECEIVED_WHITE_HERB 0 +#define FLAG_RECEIVED_SOFT_SAND 0 +#define FLAG_ENABLE_PROF_BIRCH_MATCH_CALL 0 +#define FLAG_RECEIVED_CLEANSE_TAG 0 +#define FLAG_RECEIVED_FOCUS_BAND 0 +#define FLAG_DECLINED_WALLY_BATTLE_MAUVILLE 0 +#define FLAG_RECEIVED_DEVON_SCOPE 0 +#define FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE 0 +#define FLAG_MET_DEVON_EMPLOYEE 0 +#define FLAG_MET_RIVAL_RUSTBORO 0 +#define FLAG_RECEIVED_SILK_SCARF 0 +#define FLAG_NOT_READY_FOR_BATTLE_ROUTE_120 0 +#define FLAG_RECEIVED_SS_TICKET 0 +#define FLAG_MET_RIVAL_LILYCOVE 0 +#define FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE 0 +#define FLAG_EXCHANGED_SCANNER 0 +#define FLAG_KECLEON_FLED_FORTREE 0 +#define FLAG_PETALBURG_MART_EXPANDED_ITEMS 0 +#define FLAG_RECEIVED_MIRACLE_SEED 0 +#define FLAG_RECEIVED_BELDUM 0 +#define FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK 0 +#define FLAG_MET_FANCLUB_YOUNGER_BROTHER 0 +#define FLAG_RIVAL_LEFT_FOR_ROUTE103 0 +#define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER 0 +#define FLAG_HAS_MATCH_CALL 0 +#define FLAG_ADDED_MATCH_CALL_TO_POKENAV 0 +#define FLAG_REGISTERED_STEVEN_POKENAV 0 +#define FLAG_ENABLE_NORMAN_MATCH_CALL 0 +#define FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN 0 // Set after you follow Steven to the entrance of the Cave of Origin. +#define FLAG_MET_ARCHIE_SOOTOPOLIS 0 +#define FLAG_MET_MAXIE_SOOTOPOLIS 0 +#define FLAG_MET_SCOTT_RUSTBORO 0 +#define FLAG_WALLACE_GOES_TO_SKY_PILLAR 0 // Set after speaking to Wallace within the Cave of Origin. +#define FLAG_RECEIVED_HM_WATERFALL 0 +#define FLAG_BEAT_MAGMA_GRUNT_JAGGED_PASS 0 + +#define FLAG_MIRAGE_TOWER_VISIBLE 0 +#define FLAG_CHOSE_ROOT_FOSSIL 0 +#define FLAG_CHOSE_CLAW_FOSSIL 0 +#define FLAG_RECEIVED_POWDER_JAR 0 + +#define FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER 0 + +#define FLAG_MET_BATTLE_FRONTIER_BREEDER 0 +#define FLAG_MET_BATTLE_FRONTIER_MANIAC 0 +#define FLAG_ENTERED_CONTEST 0 +#define FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN 0 +#define FLAG_MET_BATTLE_FRONTIER_GAMBLER 0 +#define FLAG_ENABLE_MR_STONE_POKENAV 0 +#define FLAG_NURSE_MENTIONS_GOLD_CARD 0 +#define FLAG_MET_FRONTIER_BEAUTY_MOVE_TUTOR 0 +#define FLAG_MET_FRONTIER_SWIMMER_MOVE_TUTOR 0 + +// Flags for whether a rematchable trainer has been registered in the player's Match Call. +// Most are used implicitly by adding their REMATCH_* id to TRAINER_REGISTERED_FLAGS_START. +// Some Match Call entries (like those for gym leaders, Wally, and all non-trainer NPCs like Prof. Birch) +// have their own separate flag that needs to be set to be enabled; see src/pokenav_match_call_data.c +#define TRAINER_REGISTERED_FLAGS_START 0 +#define FLAG_REGISTERED_ROSE 0 +#define FLAG_REGISTERED_ANDRES 0 +#define FLAG_REGISTERED_DUSTY 0 +#define FLAG_REGISTERED_LOLA 0 +#define FLAG_REGISTERED_RICKY 0 +#define FLAG_REGISTERED_LILA_AND_ROY 0 +#define FLAG_REGISTERED_CRISTIN 0 +#define FLAG_REGISTERED_BROOKE 0 +#define FLAG_REGISTERED_WILTON 0 +#define FLAG_REGISTERED_VALERIE 0 +#define FLAG_REGISTERED_CINDY 0 +#define FLAG_REGISTERED_THALIA 0 +#define FLAG_REGISTERED_JESSICA 0 +#define FLAG_REGISTERED_WINSTON 0 +#define FLAG_REGISTERED_STEVE 0 +#define FLAG_REGISTERED_TONY 0 +#define FLAG_REGISTERED_NOB 0 +#define FLAG_REGISTERED_KOJI 0 +#define FLAG_REGISTERED_FERNANDO 0 +#define FLAG_REGISTERED_DALTON 0 +#define FLAG_REGISTERED_BERNIE 0 +#define FLAG_REGISTERED_ETHAN 0 +#define FLAG_REGISTERED_JOHN_AND_JAY 0 +#define FLAG_REGISTERED_JEFFREY 0 +#define FLAG_REGISTERED_CAMERON 0 +#define FLAG_REGISTERED_JACKI 0 +#define FLAG_REGISTERED_WALTER 0 +#define FLAG_REGISTERED_KAREN 0 +#define FLAG_REGISTERED_JERRY 0 +#define FLAG_REGISTERED_ANNA_AND_MEG 0 +#define FLAG_REGISTERED_ISABEL 0 +#define FLAG_REGISTERED_MIGUEL 0 +#define FLAG_REGISTERED_TIMOTHY 0 +#define FLAG_REGISTERED_SHELBY 0 +#define FLAG_REGISTERED_CALVIN 0 +#define FLAG_REGISTERED_ELLIOT 0 +#define FLAG_REGISTERED_ISAIAH 0 +#define FLAG_REGISTERED_MARIA 0 +#define FLAG_REGISTERED_ABIGAIL 0 +#define FLAG_REGISTERED_DYLAN 0 +#define FLAG_REGISTERED_KATELYN 0 +#define FLAG_REGISTERED_BENJAMIN 0 +#define FLAG_REGISTERED_PABLO 0 +#define FLAG_REGISTERED_NICOLAS 0 +#define FLAG_REGISTERED_ROBERT 0 +#define FLAG_REGISTERED_LAO 0 +#define FLAG_REGISTERED_CYNDY 0 +#define FLAG_REGISTERED_MADELINE 0 +#define FLAG_REGISTERED_JENNY 0 +#define FLAG_REGISTERED_DIANA 0 +#define FLAG_REGISTERED_AMY_AND_LIV 0 +#define FLAG_REGISTERED_ERNEST 0 +#define FLAG_REGISTERED_CORY 0 +#define FLAG_REGISTERED_EDWIN 0 +#define FLAG_REGISTERED_LYDIA 0 +#define FLAG_REGISTERED_ISAAC 0 +#define FLAG_REGISTERED_GABRIELLE 0 +#define FLAG_REGISTERED_CATHERINE 0 +#define FLAG_REGISTERED_JACKSON 0 +#define FLAG_REGISTERED_HALEY 0 +#define FLAG_REGISTERED_JAMES 0 +#define FLAG_REGISTERED_TRENT 0 +#define FLAG_REGISTERED_SAWYER 0 +#define FLAG_REGISTERED_KIRA_AND_DAN 0 +#define FLAG_REGISTERED_WALLY 0 +#define FLAG_REGISTERED_ROXANNE 0 +#define FLAG_REGISTERED_BRAWLY 0 +#define FLAG_REGISTERED_WATTSON 0 +#define FLAG_REGISTERED_FLANNERY 0 +#define FLAG_REGISTERED_NORMAN 0 +#define FLAG_REGISTERED_WINONA 0 +#define FLAG_REGISTERED_TATE_AND_LIZA 0 +#define FLAG_REGISTERED_JUAN 0 +#define FLAG_REGISTERED_SIDNEY 0 +#define FLAG_REGISTERED_PHOEBE 0 +#define FLAG_REGISTERED_GLACIA 0 +#define FLAG_REGISTERED_DRAKE 0 +#define FLAG_REGISTERED_WALLACE 0 + +#define FLAG_DEFEATED_DEOXYS 0 +#define FLAG_BATTLED_DEOXYS 0 +#define FLAG_SHOWN_EON_TICKET 0 +#define FLAG_SHOWN_OLD_SEA_MAP 0 +#define FLAG_MOVE_TUTOR_TAUGHT_SWAGGER 0 +#define FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT 0 +#define FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER 0 +#define FLAG_MOVE_TUTOR_TAUGHT_MIMIC 0 +#define FLAG_MOVE_TUTOR_TAUGHT_METRONOME 0 +#define FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK 0 +#define FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE 0 +#define FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH 0 +#define FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE 0 +#define FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION 0 +#define FLAG_DEFEATED_REGIROCK 0 +#define FLAG_DEFEATED_REGICE 0 +#define FLAG_DEFEATED_REGISTEEL 0 +#define FLAG_DEFEATED_KYOGRE 0 +#define FLAG_DEFEATED_GROUDON 0 +#define FLAG_DEFEATED_RAYQUAZA 0 +#define FLAG_DEFEATED_VOLTORB_1_NEW_MAUVILLE 0 +#define FLAG_DEFEATED_VOLTORB_2_NEW_MAUVILLE 0 +#define FLAG_DEFEATED_VOLTORB_3_NEW_MAUVILLE 0 +#define FLAG_DEFEATED_ELECTRODE_1_AQUA_HIDEOUT 0 +#define FLAG_DEFEATED_ELECTRODE_2_AQUA_HIDEOUT 0 +#define FLAG_DEFEATED_SUDOWOODO 0 +#define FLAG_DEFEATED_MEW 0 +#define FLAG_DEFEATED_LATIAS_OR_LATIOS 0 +#define FLAG_CAUGHT_LATIAS_OR_LATIOS 0 +#define FLAG_CAUGHT_MEW 0 +#define FLAG_MET_SCOTT_AFTER_OBTAINING_STONE_BADGE 0 +#define FLAG_MET_SCOTT_IN_VERDANTURF 0 +#define FLAG_MET_SCOTT_IN_FALLARBOR 0 +#define FLAG_MET_SCOTT_IN_LILYCOVE 0 +#define FLAG_MET_SCOTT_IN_EVERGRANDE 0 +#define FLAG_MET_SCOTT_ON_SS_TIDAL 0 +#define FLAG_SCOTT_GIVES_BATTLE_POINTS 0 +#define FLAG_COLLECTED_ALL_GOLD_SYMBOLS 0 +#define FLAG_ENABLE_ROXANNE_MATCH_CALL 0 +#define FLAG_ENABLE_BRAWLY_MATCH_CALL 0 +#define FLAG_ENABLE_WATTSON_MATCH_CALL 0 +#define FLAG_ENABLE_FLANNERY_MATCH_CALL 0 +#define FLAG_ENABLE_WINONA_MATCH_CALL 0 +#define FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL 0 +#define FLAG_ENABLE_JUAN_MATCH_CALL 0 + +#define FLAG_UNUSED_0x1DA 0 // Unused Flag + +#define FLAG_DEFEATED_HO_OH 0 +#define FLAG_DEFEATED_LUGIA 0 + +// Hidden Items +#define FLAG_HIDDEN_ITEM_LAVARIDGE_TOWN_ICE_HEAL 0 +#define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET 0 +#define FLAG_HIDDEN_ITEM_ROUTE_111_STARDUST 0 +#define FLAG_HIDDEN_ITEM_ROUTE_113_ETHER 0 +#define FLAG_HIDDEN_ITEM_ROUTE_114_CARBOS 0 +#define FLAG_HIDDEN_ITEM_ROUTE_119_CALCIUM 0 +#define FLAG_HIDDEN_ITEM_ROUTE_119_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_123_SUPER_REPEL 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CARBOS 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_GREEN_SHARD 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_PEARL 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_BIG_PEARL 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BLUE_SHARD 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_1 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_STARDUST 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_PEARL 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_YELLOW_SHARD 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_IRON 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BIG_PEARL 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_127_STAR_PIECE 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_127_HP_UP 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_127_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_127_RED_SHARD 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_128_PROTEIN 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_128_PEARL 0 +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_FALLARBOR_TOWN_NUGGET 0 +#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_DOUBLE_TEAM 0 +#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY 0 +#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY 0 +#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY 0 +#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_6_KEY 0 +#define FLAG_HIDDEN_ITEM_SS_TIDAL_LOWER_DECK_LEFTOVERS 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CALCIUM 0 +#define FLAG_HIDDEN_ITEM_ROUTE_104_POTION 0 +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_2 0 +#define FLAG_HIDDEN_ITEM_ROUTE_121_HP_UP 0 +#define FLAG_HIDDEN_ITEM_ROUTE_121_NUGGET 0 +#define FLAG_HIDDEN_ITEM_ROUTE_123_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_114_REVIVE 0 +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_PP_UP 0 +#define FLAG_HIDDEN_ITEM_ROUTE_104_SUPER_POTION 0 +#define FLAG_HIDDEN_ITEM_ROUTE_116_SUPER_POTION 0 +#define FLAG_HIDDEN_ITEM_ROUTE_106_STARDUST 0 +#define FLAG_HIDDEN_ITEM_ROUTE_106_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_1 0 +#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_2 0 +#define FLAG_HIDDEN_ITEM_ROUTE_109_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_109_GREAT_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_1 0 +#define FLAG_HIDDEN_ITEM_ROUTE_110_GREAT_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_110_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_110_FULL_HEAL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_111_PROTEIN 0 +#define FLAG_HIDDEN_ITEM_ROUTE_111_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POTION 0 +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_1 0 +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_2 0 +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POKE_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_104_POKE_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_106_POKE_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_109_ETHER 0 +#define FLAG_HIDDEN_ITEM_ROUTE_110_POKE_BALL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_118_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_118_IRON 0 +#define FLAG_HIDDEN_ITEM_ROUTE_119_FULL_HEAL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_2 0 +#define FLAG_HIDDEN_ITEM_ROUTE_120_ZINC 0 +#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_1 0 +#define FLAG_HIDDEN_ITEM_ROUTE_117_REPEL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_121_FULL_HEAL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_123_HYPER_POTION 0 +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_POKE_BALL 0 +#define FLAG_HIDDEN_ITEM_JAGGED_PASS_GREAT_BALL 0 +#define FLAG_HIDDEN_ITEM_JAGGED_PASS_FULL_HEAL 0 +#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_MAX_ETHER 0 +#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_ZINC 0 +#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_ELIXIR 0 +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_MAX_REPEL 0 +#define FLAG_HIDDEN_ITEM_ROUTE_120_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_104_ANTIDOTE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_108_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_ROUTE_119_MAX_ETHER 0 +#define FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_105_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_2 0 +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_3 0 +#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_1 0 +#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_2 0 +#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_3 0 +#define FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES 0 +#define FLAG_HIDDEN_ITEM_ROUTE_115_HEART_SCALE 0 +#define FLAG_HIDDEN_ITEM_ROUTE_113_NUGGET 0 +#define FLAG_HIDDEN_ITEM_ROUTE_123_PP_UP 0 +#define FLAG_HIDDEN_ITEM_ROUTE_121_MAX_REVIVE 0 +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_CALCIUM 0 +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_ZINC 0 +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_PROTEIN 0 +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_IRON 0 +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_FULL_RESTORE 0 +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_ZINC 0 +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_PP_UP 0 +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_TOP_SACRED_ASH 0 +#define FLAG_HIDDEN_ITEM_ROUTE_123_RARE_CANDY 0 +#define FLAG_HIDDEN_ITEM_ROUTE_105_BIG_PEARL 0 + + +// Event Flags +#define FLAG_HIDE_ROUTE_101_BIRCH_STARTERS_BAG 0 +#define FLAG_HIDE_APPRENTICE 0 +#define FLAG_HIDE_POKEMON_CENTER_2F_MYSTERY_GIFT_MAN 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_1 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_2 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_3 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_4 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_5 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_6 0 +#define FLAG_HIDE_SAFARI_ZONE_SOUTH_CONSTRUCTION_WORKERS 0 +#define FLAG_HIDE_MEW 0 +#define FLAG_HIDE_ROUTE_104_RIVAL 0 +#define FLAG_HIDE_ROUTE_101_BIRCH_ZIGZAGOON_BATTLE 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_BIRCH 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM 0 +#define FLAG_HIDE_ROUTE_103_RIVAL 0 +#define FLAG_HIDE_PETALBURG_WOODS_DEVON_EMPLOYEE 0 +#define FLAG_HIDE_PETALBURG_WOODS_AQUA_GRUNT 0 +#define FLAG_HIDE_PETALBURG_CITY_WALLY 0 +#define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_INVISIBLE_NINJA_BOY 0 +#define FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM 0 + +#define FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER 0 +#define FLAG_HIDE_RUSTBORO_CITY_AQUA_GRUNT 0 +#define FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP 0 +#define FLAG_HIDE_PLAYERS_HOUSE_DAD 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0 +#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_MAGMA_NOTE 0 +#define FLAG_HIDE_ROUTE_104_MR_BRINEY 0 +#define FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY 0 +#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0 +#define FLAG_HIDE_ROUTE_109_MR_BRINEY 0 +#define FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT 0 +#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN 0 +#define FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY 0 +#define FLAG_HIDE_SAFARI_ZONE_SOUTH_EAST_EXPANSION 0 +#define FLAG_HIDE_LILYCOVE_HARBOR_EVENT_TICKET_TAKER 0 +#define FLAG_HIDE_SLATEPORT_CITY_SCOTT 0 +#define FLAG_HIDE_ROUTE_101_ZIGZAGOON 0 +#define FLAG_HIDE_VICTORY_ROAD_EXIT_WALLY 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE 0 +#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_STEVEN 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_1 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_2 0 +#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_MOM 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MOM 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_TRUCK 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_TRUCK 0 +#define FLAG_HIDE_BIRTH_ISLAND_DEOXYS_TRIANGLE 0 +#define FLAG_HIDE_MAUVILLE_CITY_SCOTT 0 +#define FLAG_HIDE_VERDANTURF_TOWN_SCOTT 0 +#define FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT 0 +#define FLAG_HIDE_ROUTE_111_VICTOR_WINSTRATE 0 +#define FLAG_HIDE_ROUTE_111_VICTORIA_WINSTRATE 0 +#define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0 +#define FLAG_HIDE_ROUTE_111_VICKY_WINSTRATE 0 +#define FLAG_HIDE_PETALBURG_GYM_NORMAN 0 +#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA 0 +#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_1 0 +#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 0 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_2 0 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_3 0 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_4 0 +#define FLAG_HIDE_LILYCOVE_MUSEUM_TOURISTS 0 +#define FLAG_HIDE_PETALBURG_GYM_GREETER 0 +#define FLAG_HIDE_MARINE_CAVE_KYOGRE 0 +#define FLAG_HIDE_TERRA_CAVE_GROUDON 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_MOM 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_MOM 0 +#define FLAG_HIDE_ROUTE_119_SCOTT 0 +#define FLAG_HIDE_LILYCOVE_MOTEL_SCOTT 0 +#define FLAG_HIDE_MOSSDEEP_CITY_SCOTT 0 +#define FLAG_HIDE_FANCLUB_OLD_LADY 0 +#define FLAG_HIDE_FANCLUB_BOY 0 +#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0 +#define FLAG_HIDE_FANCLUB_LADY 0 +#define FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_RIVAL 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCH 0 +#define FLAG_HIDE_ROUTE_111_GABBY_AND_TY_1 0 +#define FLAG_HIDE_ROUTE_118_GABBY_AND_TY_1 0 +#define FLAG_HIDE_ROUTE_120_GABBY_AND_TY_1 0 +#define FLAG_HIDE_ROUTE_111_GABBY_AND_TY_2 0 +#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_REPORTER 0 +#define FLAG_HIDE_SLATEPORT_CITY_CONTEST_REPORTER 0 +#define FLAG_HIDE_MAUVILLE_CITY_WALLY 0 +#define FLAG_HIDE_MAUVILLE_CITY_WALLYS_UNCLE 0 +#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_WANDAS_BOYFRIEND 0 +#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDAS_BOYFRIEND 0 +#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLYS_UNCLE 0 +#define FLAG_HIDE_SS_TIDAL_CORRIDOR_SCOTT 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_CYNDAQUIL 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_TOTODILE 0 +#define FLAG_HIDE_ROUTE_116_DROPPED_GLASSES_MAN 0 +#define FLAG_HIDE_RUSTBORO_CITY_RIVAL 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_SWABLU_DOLL 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL 0 +#define FLAG_HIDE_ROUTE_112_TEAM_MAGMA 0 +#define FLAG_HIDE_CAVE_OF_ORIGIN_B1F_WALLACE 0 +#define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE 0 +#define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE 0 +#define FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA 0 +#define FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD 0 +#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0 // Unused, leftover from R/S +#define FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE 0 +#define FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS 0 +#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER 0 +#define FLAG_HIDE_GRANITE_CAVE_STEVEN 0 +#define FLAG_HIDE_ROUTE_128_STEVEN 0 +#define FLAG_HIDE_SLATEPORT_CITY_GABBY_AND_TY 0 +#define FLAG_HIDE_BATTLE_FRONTIER_RECEPTION_GATE_SCOTT 0 +#define FLAG_HIDE_ROUTE_110_BIRCH 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_CHIKORITA 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_MAN_1 0 +#define FLAG_HIDE_SLATEPORT_CITY_CAPTAIN_STERN 0 +#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN 0 +#define FLAG_HIDE_BATTLE_FRONTIER_SUDOWOODO 0 +#define FLAG_HIDE_ROUTE_111_ROCK_SMASH_TIP_GUY 0 +#define FLAG_HIDE_RUSTBORO_CITY_SCIENTIST 0 +#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT 0 +#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE 0 +#define FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD 0 +#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL 0 +#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP 0 +#define FLAG_HIDE_ROUTE_119_RIVAL 0 +#define FLAG_HIDE_LILYCOVE_CITY_AQUA_GRUNTS 0 +#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS 0 +#define FLAG_HIDE_SKY_PILLAR_WALLACE 0 +#define FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE 0 +#define FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS 0 +#define FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE 0 +#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL 0 +#define FLAG_HIDE_LILYCOVE_HARBOR_SSTIDAL 0 +#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA 0 +#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_STEVEN 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_1 0 +#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_2 0 +#define FLAG_HIDE_PETALBURG_GYM_WALLY 0 +#define FLAG_UNKNOWN_0x363 0 // Set, however has no purpose. +#define FLAG_HIDE_LITTLEROOT_TOWN_FAT_MAN 0 +#define FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY 0 +#define FLAG_HIDE_LANETTES_HOUSE_LANETTE 0 +#define FLAG_HIDE_FALLARBOR_POKEMON_CENTER_LANETTE 0 +#define FLAG_HIDE_TRICK_HOUSE_ENTRANCE_MAN 0 +#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT 0 +#define FLAG_HIDE_DESERT_UNDERPASS_FOSSIL 0 +#define FLAG_HIDE_ROUTE_111_PLAYER_DESCENT 0 +#define FLAG_HIDE_ROUTE_111_DESERT_FOSSIL 0 +#define FLAG_HIDE_MT_CHIMNEY_TRAINERS 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_AQUA_GRUNT 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_BRINEY 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_PEEKO 0 +#define FLAG_HIDE_BRINEYS_HOUSE_PEEKO 0 +#define FLAG_HIDE_SLATEPORT_CITY_TEAM_AQUA 0 +#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_AQUA_GRUNTS 0 +#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_AQUA_GRUNT_1 0 +#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_AQUA_GRUNT_2 0 +#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_ARCHIE 0 +#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_CAPTAIN_STERN 0 +#define FLAG_HIDE_BATTLE_TOWER_OPPONENT 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL 0 +#define FLAG_HIDE_ROUTE_119_TEAM_AQUA 0 +#define FLAG_HIDE_ROUTE_116_MR_BRINEY 0 +#define FLAG_HIDE_WEATHER_INSTITUTE_1F_WORKERS 0 +#define FLAG_HIDE_WEATHER_INSTITUTE_2F_WORKERS 0 +#define FLAG_HIDE_ROUTE_116_WANDAS_BOYFRIEND 0 +#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_2 0 +#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 0 +#define FLAG_HIDE_ROUTE_101_BIRCH 0 +#define FLAG_HIDE_ROUTE_103_BIRCH 0 +#define FLAG_HIDE_TRICK_HOUSE_END_MAN 0 +#define FLAG_HIDE_ROUTE_110_TEAM_AQUA 0 +#define FLAG_HIDE_ROUTE_118_GABBY_AND_TY_2 0 +#define FLAG_HIDE_ROUTE_120_GABBY_AND_TY_2 0 +#define FLAG_HIDE_ROUTE_111_GABBY_AND_TY_3 0 +#define FLAG_HIDE_ROUTE_118_GABBY_AND_TY_3 0 +#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_PATRONS 0 +#define FLAG_HIDE_ROUTE_104_WHITE_HERB_FLORIST 0 +#define FLAG_HIDE_FALLARBOR_AZURILL 0 +#define FLAG_HIDE_LILYCOVE_HARBOR_FERRY_ATTENDANT 0 +#define FLAG_HIDE_LILYCOVE_HARBOR_FERRY_SAILOR 0 +#define FLAG_HIDE_SOUTHERN_ISLAND_EON_STONE 0 +#define FLAG_HIDE_SOUTHERN_ISLAND_UNCHOSEN_EON_DUO_MON 0 +#define FLAG_HIDE_MAUVILLE_CITY_WATTSON 0 +#define FLAG_HIDE_MAUVILLE_GYM_WATTSON 0 +#define FLAG_HIDE_ROUTE_121_TEAM_AQUA_GRUNTS 0 +#define FLAG_UNKNOWN_0x393 0 // Set, however has no purpose. +#define FLAG_HIDE_MT_PYRE_SUMMIT_ARCHIE 0 +#define FLAG_HIDE_MT_PYRE_SUMMIT_TEAM_AQUA 0 +#define FLAG_HIDE_BATTLE_TOWER_REPORTER 0 +#define FLAG_HIDE_ROUTE_110_RIVAL 0 +#define FLAG_HIDE_CHAMPIONS_ROOM_RIVAL 0 +#define FLAG_HIDE_CHAMPIONS_ROOM_BIRCH 0 +#define FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE 0 +#define FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE 0 +#define FLAG_HIDE_AQUA_HIDEOUT_GRUNTS 0 +#define FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS 0 +#define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0 +#define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0 +#define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0 +#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL 0 +#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_ON_BIKE 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0 +#define FLAG_HIDE_FORTREE_CITY_HOUSE_4_WINGULL 0 +#define FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL 0 +#define FLAG_HIDE_REGIROCK 0 +#define FLAG_HIDE_REGICE 0 +#define FLAG_HIDE_REGISTEEL 0 +#define FLAG_HIDE_METEOR_FALLS_TEAM_AQUA 0 +#define FLAG_HIDE_METEOR_FALLS_TEAM_MAGMA 0 +#define FLAG_HIDE_DEWFORD_HALL_SLUDGE_BOMB_MAN 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_ENTRANCE_AQUA_GRUNT 0 +#define FLAG_HIDE_METEOR_FALLS_1F_1R_COZMO 0 +#define FLAG_HIDE_AQUA_HIDEOUT_B2F_SUBMARINE_SHADOW 0 +#define FLAG_HIDE_ROUTE_128_ARCHIE 0 +#define FLAG_HIDE_ROUTE_128_MAXIE 0 +#define FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS 0 +#define FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE 0 +#define FLAG_HIDE_SLATEPORT_CITY_TM_SALESMAN 0 +#define FLAG_HIDE_RUSTBORO_CITY_DEVON_CORP_3F_EMPLOYEE 0 +#define FLAG_HIDE_SS_TIDAL_CORRIDOR_MR_BRINEY 0 +#define FLAG_HIDE_SS_TIDAL_ROOMS_SNATCH_GIVER 0 +#define FLAG_RECEIVED_SHOAL_SALT_1 0 +#define FLAG_RECEIVED_SHOAL_SALT_2 0 +#define FLAG_RECEIVED_SHOAL_SALT_3 0 +#define FLAG_RECEIVED_SHOAL_SALT_4 0 +#define FLAG_RECEIVED_SHOAL_SHELL_1 0 +#define FLAG_RECEIVED_SHOAL_SHELL_2 0 +#define FLAG_RECEIVED_SHOAL_SHELL_3 0 +#define FLAG_RECEIVED_SHOAL_SHELL_4 0 +#define FLAG_HIDE_ROUTE_111_SECRET_POWER_MAN 0 +#define FLAG_HIDE_SLATEPORT_MUSEUM_POPULATION 0 +#define FLAG_HIDE_LILYCOVE_DEPARTMENT_STORE_ROOFTOP_SALE_WOMAN 0 +#define FLAG_HIDE_MIRAGE_TOWER_ROOT_FOSSIL 0 +#define FLAG_HIDE_MIRAGE_TOWER_CLAW_FOSSIL 0 +#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_FAMILIAR_AQUA_GRUNT 0 +#define FLAG_HIDE_ROUTE_118_STEVEN 0 +#define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_STEVEN 0 +#define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_BELDUM_POKEBALL 0 +#define FLAG_HIDE_FORTREE_CITY_KECLEON 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_BRIDGE 0 +#define FLAG_HIDE_LILYCOVE_CITY_RIVAL 0 +#define FLAG_HIDE_ROUTE_120_STEVEN 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN 0 +#define FLAG_HIDE_NEW_MAUVILLE_VOLTORB_1 0 +#define FLAG_HIDE_NEW_MAUVILLE_VOLTORB_2 0 +#define FLAG_HIDE_NEW_MAUVILLE_VOLTORB_3 0 +#define FLAG_HIDE_AQUA_HIDEOUT_B1F_ELECTRODE_1 0 +#define FLAG_HIDE_AQUA_HIDEOUT_B1F_ELECTRODE_2 0 +#define FLAG_HIDE_OLDALE_TOWN_RIVAL 0 +#define FLAG_HIDE_UNDERWATER_SEA_FLOOR_CAVERN_STOLEN_SUBMARINE 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_BRIDGE_SHADOW 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_1 0 +#define FLAG_HIDE_RUSTURF_TUNNEL_WANDA 0 +#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDA 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_2 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_3 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_4 0 +#define FLAG_HIDE_ROUTE_120_KECLEON_5 0 +#define FLAG_HIDE_ROUTE_119_KECLEON_1 0 +#define FLAG_HIDE_ROUTE_119_KECLEON_2 0 +#define FLAG_HIDE_ROUTE_101_BOY 0 +#define FLAG_HIDE_WEATHER_INSTITUTE_2F_AQUA_GRUNT_M 0 +#define FLAG_HIDE_LILYCOVE_POKEMON_CENTER_CONTEST_LADY_MON 0 +#define FLAG_HIDE_MT_CHIMNEY_LAVA_COOKIE_LADY 0 +#define FLAG_HIDE_PETALBURG_CITY_SCOTT 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_KYOGRE 0 +#define FLAG_HIDE_SOOTOPOLIS_CITY_GROUDON 0 +#define FLAG_HIDE_RUSTBORO_CITY_POKEMON_SCHOOL_SCOTT 0 + +// Item Ball Flags +#define FLAG_ITEM_ROUTE_102_POTION 0 +#define FLAG_ITEM_ROUTE_116_X_SPECIAL 0 +#define FLAG_ITEM_ROUTE_104_PP_UP 0 +#define FLAG_ITEM_ROUTE_105_IRON 0 +#define FLAG_ITEM_ROUTE_106_PROTEIN 0 +#define FLAG_ITEM_ROUTE_109_PP_UP 0 +#define FLAG_ITEM_ROUTE_110_RARE_CANDY 0 +#define FLAG_ITEM_ROUTE_110_DIRE_HIT 0 +#define FLAG_ITEM_ROUTE_111_TM_SANDSTORM 0 +#define FLAG_ITEM_ROUTE_111_STARDUST 0 +#define FLAG_ITEM_ROUTE_111_HP_UP 0 +#define FLAG_ITEM_ROUTE_112_NUGGET 0 +#define FLAG_ITEM_ROUTE_113_MAX_ETHER 0 +#define FLAG_ITEM_ROUTE_113_SUPER_REPEL 0 +#define FLAG_ITEM_ROUTE_114_RARE_CANDY 0 +#define FLAG_ITEM_ROUTE_114_PROTEIN 0 +#define FLAG_ITEM_ROUTE_115_SUPER_POTION 0 +#define FLAG_ITEM_ROUTE_115_TM_FOCUS_PUNCH 0 +#define FLAG_ITEM_ROUTE_115_IRON 0 +#define FLAG_ITEM_ROUTE_116_ETHER 0 +#define FLAG_ITEM_ROUTE_116_REPEL 0 +#define FLAG_ITEM_ROUTE_116_HP_UP 0 +#define FLAG_ITEM_ROUTE_117_GREAT_BALL 0 +#define FLAG_ITEM_ROUTE_117_REVIVE 0 +#define FLAG_ITEM_ROUTE_119_SUPER_REPEL 0 +#define FLAG_ITEM_ROUTE_119_ZINC 0 +#define FLAG_ITEM_ROUTE_119_ELIXIR_1 0 +#define FLAG_ITEM_ROUTE_119_LEAF_STONE 0 +#define FLAG_ITEM_ROUTE_119_RARE_CANDY 0 +#define FLAG_ITEM_ROUTE_119_HYPER_POTION_1 0 +#define FLAG_ITEM_ROUTE_120_NUGGET 0 +#define FLAG_ITEM_ROUTE_120_FULL_HEAL 0 +#define FLAG_ITEM_ROUTE_123_CALCIUM 0 +#define FLAG_ITEM_ROUTE_123_RARE_CANDY 0 // Unused Flag, leftover from R/S. In Emerald this is a hidden item and uses a different flag +#define FLAG_ITEM_ROUTE_127_ZINC 0 +#define FLAG_ITEM_ROUTE_127_CARBOS 0 +#define FLAG_ITEM_ROUTE_132_RARE_CANDY 0 +#define FLAG_ITEM_ROUTE_133_BIG_PEARL 0 +#define FLAG_ITEM_ROUTE_133_STAR_PIECE 0 +#define FLAG_ITEM_PETALBURG_CITY_MAX_REVIVE 0 +#define FLAG_ITEM_PETALBURG_CITY_ETHER 0 +#define FLAG_ITEM_RUSTBORO_CITY_X_DEFEND 0 +#define FLAG_ITEM_LILYCOVE_CITY_MAX_REPEL 0 +#define FLAG_ITEM_MOSSDEEP_CITY_NET_BALL 0 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_TM_IRON_TAIL 0 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_FULL_HEAL 0 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_MOON_STONE 0 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_PP_UP 0 +#define FLAG_ITEM_RUSTURF_TUNNEL_POKE_BALL 0 +#define FLAG_ITEM_RUSTURF_TUNNEL_MAX_ETHER 0 +#define FLAG_ITEM_GRANITE_CAVE_1F_ESCAPE_ROPE 0 +#define FLAG_ITEM_GRANITE_CAVE_B1F_POKE_BALL 0 +#define FLAG_ITEM_MT_PYRE_5F_LAX_INCENSE 0 +#define FLAG_ITEM_GRANITE_CAVE_B2F_REPEL 0 +#define FLAG_ITEM_GRANITE_CAVE_B2F_RARE_CANDY 0 +#define FLAG_ITEM_PETALBURG_WOODS_X_ATTACK 0 +#define FLAG_ITEM_PETALBURG_WOODS_GREAT_BALL 0 +#define FLAG_ITEM_ROUTE_104_POKE_BALL 0 +#define FLAG_ITEM_PETALBURG_WOODS_ETHER 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_3F_3R_ECAPE_ROPE 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_ORANGE_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_HARBOR_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_WAVE_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_SHADOW_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_WOOD_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_MECH_MAIL 0 +#define FLAG_ITEM_ROUTE_124_YELLOW_SHARD 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_GLITTER_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_TROPIC_MAIL 0 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_BEAD_MAIL 0 +#define FLAG_ITEM_JAGGED_PASS_BURN_HEAL 0 +#define FLAG_ITEM_AQUA_HIDEOUT_B1F_MAX_ELIXIR 0 +#define FLAG_ITEM_AQUA_HIDEOUT_B2F_NEST_BALL 0 +#define FLAG_ITEM_MT_PYRE_EXTERIOR_MAX_POTION 0 +#define FLAG_ITEM_MT_PYRE_EXTERIOR_TM_SKILL_SWAP 0 +#define FLAG_ITEM_NEW_MAUVILLE_ULTRA_BALL 0 +#define FLAG_ITEM_NEW_MAUVILLE_ESCAPE_ROPE 0 +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_6_LUXURY_BALL 0 +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_2_SCANNER 0 +#define FLAG_ITEM_SCORCHED_SLAB_TM_SUNNY_DAY 0 +#define FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_DRAGON_CLAW 0 +#define FLAG_ITEM_SHOAL_CAVE_ENTRANCE_BIG_PEARL 0 +#define FLAG_ITEM_SHOAL_CAVE_INNER_ROOM_RARE_CANDY 0 +#define FLAG_ITEM_SHOAL_CAVE_STAIRS_ROOM_ICE_HEAL 0 +#define FLAG_ITEM_VICTORY_ROAD_1F_MAX_ELIXIR 0 +#define FLAG_ITEM_VICTORY_ROAD_1F_PP_UP 0 +#define FLAG_ITEM_VICTORY_ROAD_B1F_TM_PSYCHIC 0 +#define FLAG_ITEM_VICTORY_ROAD_B1F_FULL_RESTORE 0 +#define FLAG_ITEM_VICTORY_ROAD_B2F_FULL_HEAL 0 +#define FLAG_ITEM_MT_PYRE_6F_TM_SHADOW_BALL 0 +#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_EARTHQUAKE 0 +#define FLAG_ITEM_FIERY_PATH_TM_TOXIC 0 +#define FLAG_ITEM_ROUTE_124_RED_SHARD 0 +#define FLAG_ITEM_ROUTE_124_BLUE_SHARD 0 +#define FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM_SOLAR_BEAM 0 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_HARBOR_MAIL 0 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_ESCAPE_ROPE 0 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_DIVE_BALL 0 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_ICE_BEAM 0 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_REVIVE 0 +#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_STORAGE_KEY 0 +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_3_WATER_STONE 0 +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_RAIN_DANCE 0 +#define FLAG_ITEM_ROUTE_121_CARBOS 0 +#define FLAG_ITEM_ROUTE_123_ULTRA_BALL 0 +#define FLAG_ITEM_ROUTE_126_GREEN_SHARD 0 +#define FLAG_ITEM_ROUTE_119_HYPER_POTION_2 0 +#define FLAG_ITEM_ROUTE_120_HYPER_POTION 0 +#define FLAG_ITEM_ROUTE_120_NEST_BALL 0 +#define FLAG_ITEM_ROUTE_123_ELIXIR 0 +#define FLAG_ITEM_NEW_MAUVILLE_THUNDER_STONE 0 +#define FLAG_ITEM_FIERY_PATH_FIRE_STONE 0 +#define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM_HAIL 0 +#define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_NEVER_MELT_ICE 0 +#define FLAG_ITEM_ROUTE_103_GUARD_SPEC 0 +#define FLAG_ITEM_ROUTE_104_X_ACCURACY 0 +#define FLAG_ITEM_MAUVILLE_CITY_X_SPEED 0 +#define FLAG_ITEM_PETALBURG_WOODS_PARALYZE_HEAL 0 +#define FLAG_ITEM_ROUTE_115_GREAT_BALL 0 +#define FLAG_ITEM_SAFARI_ZONE_NORTH_CALCIUM 0 +#define FLAG_ITEM_MT_PYRE_3F_SUPER_REPEL 0 +#define FLAG_ITEM_ROUTE_118_HYPER_POTION 0 +#define FLAG_ITEM_NEW_MAUVILLE_FULL_HEAL 0 +#define FLAG_ITEM_NEW_MAUVILLE_PARALYZE_HEAL 0 +#define FLAG_ITEM_AQUA_HIDEOUT_B1F_MASTER_BALL 0 +#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MASTER_BALL 0 // Unused Flag, leftover from the Ruby Magma hideout +#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MAX_ELIXIR 0 // Unused Flag, leftover from the Ruby Magma hideout +#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B2F_NEST_BALL 0 // Unused Flag, leftover from the Ruby Magma hideout +#define FLAG_UNUSED_0x468 0 // Unused Flag +#define FLAG_ITEM_MT_PYRE_2F_ULTRA_BALL 0 +#define FLAG_ITEM_MT_PYRE_4F_SEA_INCENSE 0 +#define FLAG_ITEM_SAFARI_ZONE_SOUTH_WEST_MAX_REVIVE 0 +#define FLAG_ITEM_AQUA_HIDEOUT_B1F_NUGGET 0 +#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_HM08 0 // Unused Flag, leftover from R/S. HM08 is given to the player directly in Emerald +#define FLAG_ITEM_ROUTE_119_NUGGET 0 +#define FLAG_ITEM_ROUTE_104_POTION 0 +#define FLAG_UNUSED_0x470 0 // Unused Flag +#define FLAG_ITEM_ROUTE_103_PP_UP 0 +#define FLAG_UNUSED_0x472 0 // Unused Flag +#define FLAG_ITEM_ROUTE_108_STAR_PIECE 0 +#define FLAG_ITEM_ROUTE_109_POTION 0 +#define FLAG_ITEM_ROUTE_110_ELIXIR 0 +#define FLAG_ITEM_ROUTE_111_ELIXIR 0 +#define FLAG_ITEM_ROUTE_113_HYPER_POTION 0 +#define FLAG_ITEM_ROUTE_115_HEAL_POWDER 0 +#define FLAG_UNUSED_0x479 0 // Unused Flag +#define FLAG_ITEM_ROUTE_116_POTION 0 +#define FLAG_ITEM_ROUTE_119_ELIXIR_2 0 +#define FLAG_ITEM_ROUTE_120_REVIVE 0 +#define FLAG_ITEM_ROUTE_121_REVIVE 0 +#define FLAG_ITEM_ROUTE_121_ZINC 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_1F_RARE_CANDY 0 +#define FLAG_ITEM_ROUTE_123_PP_UP 0 +#define FLAG_ITEM_ROUTE_123_REVIVAL_HERB 0 +#define FLAG_ITEM_ROUTE_125_BIG_PEARL 0 +#define FLAG_ITEM_ROUTE_127_RARE_CANDY 0 +#define FLAG_ITEM_ROUTE_132_PROTEIN 0 +#define FLAG_ITEM_ROUTE_133_MAX_REVIVE 0 +#define FLAG_ITEM_ROUTE_134_CARBOS 0 +#define FLAG_ITEM_ROUTE_134_STAR_PIECE 0 +#define FLAG_ITEM_ROUTE_114_ENERGY_POWDER 0 +#define FLAG_ITEM_ROUTE_115_PP_UP 0 +#define FLAG_ITEM_ARTISAN_CAVE_B1F_HP_UP 0 +#define FLAG_ITEM_ARTISAN_CAVE_1F_CARBOS 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_MAX_ELIXIR 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_FULL_RESTORE 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_3F_1R_NUGGET 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_3F_2R_PP_MAX 0 +#define FLAG_ITEM_MAGMA_HIDEOUT_4F_MAX_REVIVE 0 +#define FLAG_ITEM_SAFARI_ZONE_NORTH_EAST_NUGGET 0 +#define FLAG_ITEM_SAFARI_ZONE_SOUTH_EAST_BIG_PEARL 0 + +#define FLAG_DEFEATED_RUSTBORO_GYM 0 +#define FLAG_DEFEATED_DEWFORD_GYM 0 +#define FLAG_DEFEATED_MAUVILLE_GYM 0 +#define FLAG_DEFEATED_LAVARIDGE_GYM 0 +#define FLAG_DEFEATED_PETALBURG_GYM 0 +#define FLAG_DEFEATED_FORTREE_GYM 0 +#define FLAG_DEFEATED_MOSSDEEP_GYM 0 +#define FLAG_DEFEATED_SOOTOPOLIS_GYM 0 +#define FLAG_DEFEATED_METEOR_FALLS_STEVEN 0 + +#define FLAG_DEFEATED_ELITE_4_SIDNEY 0 +#define FLAG_DEFEATED_ELITE_4_PHOEBE 0 +#define FLAG_DEFEATED_ELITE_4_GLACIA 0 +#define FLAG_DEFEATED_ELITE_4_DRAKE 0 + +// Trainer Flags +// Trainer flags occupy 0x500 - 0x85F, the last 9 of which are unused +// See constants/opponents.h. The values there + FLAG_TRAINER_FLAG_START are the flag IDs + +// System Flags +#define FLAG_SYS_POKENAV_GET 0 +#define FLAG_UNUSED_0x863 0 +#define FLAG_SYS_CHAT_USED 0 +#define FLAG_UNLOCKED_TRENDY_SAYINGS 0 + +// Towns and Cities +#define FLAG_VISITED_LITTLEROOT_TOWN 0 +#define FLAG_VISITED_OLDALE_TOWN 0 +#define FLAG_VISITED_DEWFORD_TOWN 0 +#define FLAG_VISITED_LAVARIDGE_TOWN 0 +#define FLAG_VISITED_FALLARBOR_TOWN 0 +#define FLAG_VISITED_VERDANTURF_TOWN 0 +#define FLAG_VISITED_PACIFIDLOG_TOWN 0 +#define FLAG_VISITED_PETALBURG_CITY 0 +#define FLAG_VISITED_SLATEPORT_CITY 0 +#define FLAG_VISITED_MAUVILLE_CITY 0 +#define FLAG_VISITED_RUSTBORO_CITY 0 +#define FLAG_VISITED_FORTREE_CITY 0 +#define FLAG_VISITED_LILYCOVE_CITY 0 +#define FLAG_VISITED_MOSSDEEP_CITY 0 +#define FLAG_VISITED_SOOTOPOLIS_CITY 0 +#define FLAG_VISITED_EVER_GRANDE_CITY 0 + +#define FLAG_SYS_WEATHER_CTRL 0 +#define FLAG_SYS_CYCLING_ROAD 0 +#define FLAG_UNUSED_0x88E 0 // Unused Flag +#define FLAG_UNUSED_0x88F 0 // Unused Flag +#define FLAG_SYS_TV_HOME 0 +#define FLAG_SYS_TV_WATCH 0 +#define FLAG_SYS_TV_START 0 +#define FLAG_SYS_CHANGED_DEWFORD_TREND 0 +#define FLAG_SYS_MIX_RECORD 0 +#define FLAG_SYS_CAVE_SHIP 0 // Unused Flag, leftover from R/S debug, presumably used by Emerald's debug too +#define FLAG_SYS_CAVE_WONDER 0 // Unused Flag, same as above +#define FLAG_SYS_CAVE_BATTLE 0 // Unused Flag, same as above +#define FLAG_SYS_SHOAL_TIDE 0 +#define FLAG_LANDMARK_FLOWER_SHOP 0 +#define FLAG_LANDMARK_MR_BRINEY_HOUSE 0 +#define FLAG_LANDMARK_ABANDONED_SHIP 0 +#define FLAG_LANDMARK_SEASHORE_HOUSE 0 +#define FLAG_LANDMARK_NEW_MAUVILLE 0 +#define FLAG_LANDMARK_OLD_LADY_REST_SHOP 0 +#define FLAG_LANDMARK_TRICK_HOUSE 0 +#define FLAG_LANDMARK_WINSTRATE_FAMILY 0 +#define FLAG_LANDMARK_GLASS_WORKSHOP 0 +#define FLAG_LANDMARK_LANETTES_HOUSE 0 +#define FLAG_LANDMARK_POKEMON_DAYCARE 0 +#define FLAG_LANDMARK_SEAFLOOR_CAVERN 0 +#define FLAG_LANDMARK_BATTLE_FRONTIER 0 +#define FLAG_LANDMARK_SOUTHERN_ISLAND 0 +#define FLAG_LANDMARK_FIERY_PATH 0 +#define FLAG_SYS_BRAILLE_DIG 0 +#define FLAG_SYS_REGIROCK_PUZZLE_COMPLETED 0 +#define FLAG_SYS_BRAILLE_REGICE_COMPLETED 0 +#define FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED 0 +#define FLAG_ENABLE_SHIP_SOUTHERN_ISLAND 0 +#define FLAG_LANDMARK_POKEMON_LEAGUE 0 +#define FLAG_LANDMARK_ISLAND_CAVE 0 +#define FLAG_LANDMARK_DESERT_RUINS 0 +#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE 0 +#define FLAG_LANDMARK_SCORCHED_SLAB 0 +#define FLAG_LANDMARK_ANCIENT_TOMB 0 +#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE 0 +#define FLAG_LANDMARK_HUNTERS_HOUSE 0 +#define FLAG_LANDMARK_SEALED_CHAMBER 0 +#define FLAG_SYS_TV_LATIAS_LATIOS 0 +#define FLAG_LANDMARK_SKY_PILLAR 0 +#define FLAG_SYS_SHOAL_ITEM 0 +#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE 0 +#define FLAG_SYS_TOWER_SILVER 0 +#define FLAG_SYS_TOWER_GOLD 0 +#define FLAG_SYS_DOME_SILVER 0 +#define FLAG_SYS_DOME_GOLD 0 +#define FLAG_SYS_PALACE_SILVER 0 +#define FLAG_SYS_PALACE_GOLD 0 +#define FLAG_SYS_ARENA_SILVER 0 +#define FLAG_SYS_ARENA_GOLD 0 +#define FLAG_SYS_FACTORY_SILVER 0 +#define FLAG_SYS_FACTORY_GOLD 0 +#define FLAG_SYS_PIKE_SILVER 0 +#define FLAG_SYS_PIKE_GOLD 0 +#define FLAG_SYS_PYRAMID_SILVER 0 +#define FLAG_SYS_PYRAMID_GOLD 0 +#define FLAG_SYS_FRONTIER_PASS 0 +#define FLAG_MAP_SCRIPT_CHECKED_DEOXYS 0 +#define FLAG_ENABLE_SHIP_FARAWAY_ISLAND 0 +#define FLAG_ARRIVED_ON_FARAWAY_ISLAND 0 +#define FLAG_ARRIVED_AT_MARINE_CAVE_EMERGE_SPOT 0 +#define FLAG_ARRIVED_AT_TERRA_CAVE_ENTRANCE 0 +#define FLAG_ENTERED_MIRAGE_TOWER 0 +#define FLAG_LANDMARK_ALTERING_CAVE 0 +#define FLAG_LANDMARK_DESERT_UNDERPASS 0 +#define FLAG_LANDMARK_ARTISAN_CAVE 0 +#define FLAG_ARRIVED_AT_NAVEL_ROCK 0 +#define FLAG_LANDMARK_TRAINER_HILL 0 +#define FLAG_UNUSED_0x8E3 0 // Unused Flag +#define FLAG_RECEIVED_POKEDEX_FROM_BIRCH 0 + +#define FLAG_UNUSED_0x8E5 0 +#define FLAG_UNUSED_0x8E6 0 +#define FLAG_UNUSED_0x8E7 0 +#define FLAG_UNUSED_0x8E8 0 +#define FLAG_UNUSED_0x8E9 0 +#define FLAG_UNUSED_0x8EA 0 +#define FLAG_UNUSED_0x8EB 0 +#define FLAG_UNUSED_0x8EC 0 +#define FLAG_UNUSED_0x8ED 0 +#define FLAG_UNUSED_0x8EE 0 +#define FLAG_UNUSED_0x8EF 0 +#define FLAG_UNUSED_0x8F0 0 +#define FLAG_UNUSED_0x8F1 0 +#define FLAG_UNUSED_0x8F2 0 +#define FLAG_UNUSED_0x8F3 0 +#define FLAG_UNUSED_0x8F4 0 +#define FLAG_UNUSED_0x8F5 0 +#define FLAG_UNUSED_0x8F6 0 +#define FLAG_UNUSED_0x8F7 0 +#define FLAG_UNUSED_0x8F8 0 +#define FLAG_UNUSED_0x8F9 0 +#define FLAG_UNUSED_0x8FA 0 +#define FLAG_UNUSED_0x8FB 0 +#define FLAG_UNUSED_0x8FC 0 +#define FLAG_UNUSED_0x8FD 0 +#define FLAG_UNUSED_0x8FE 0 +#define FLAG_UNUSED_0x8FF 0 +#define FLAG_UNUSED_0x900 0 +#define FLAG_UNUSED_0x901 0 +#define FLAG_UNUSED_0x902 0 +#define FLAG_UNUSED_0x903 0 +#define FLAG_UNUSED_0x904 0 +#define FLAG_UNUSED_0x905 0 +#define FLAG_UNUSED_0x906 0 +#define FLAG_UNUSED_0x907 0 +#define FLAG_UNUSED_0x908 0 +#define FLAG_UNUSED_0x909 0 +#define FLAG_UNUSED_0x90A 0 +#define FLAG_UNUSED_0x90B 0 +#define FLAG_UNUSED_0x90C 0 +#define FLAG_UNUSED_0x90D 0 +#define FLAG_UNUSED_0x90E 0 +#define FLAG_UNUSED_0x90F 0 +#define FLAG_UNUSED_0x910 0 +#define FLAG_UNUSED_0x911 0 +#define FLAG_UNUSED_0x912 0 +#define FLAG_UNUSED_0x913 0 +#define FLAG_UNUSED_0x914 0 +#define FLAG_UNUSED_0x915 0 +#define FLAG_UNUSED_0x916 0 +#define FLAG_UNUSED_0x917 0 +#define FLAG_UNUSED_0x918 0 +#define FLAG_UNUSED_0x919 0 +#define FLAG_UNUSED_0x91A 0 +#define FLAG_UNUSED_0x91B 0 +#define FLAG_UNUSED_0x91C 0 +#define FLAG_UNUSED_0x91D 0 +#define FLAG_UNUSED_0x91E 0 +#define FLAG_UNUSED_0x91F 0 + +// Daily Flags +// These flags are cleared once per day +// The start and end are byte-aligned because the flags are cleared in byte increments +#define FLAG_UNUSED_0x920 0 +#define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY 0 +#define FLAG_DAILY_SECRET_BASE 0 +#define FLAG_UNUSED_0x923 0 +#define FLAG_UNUSED_0x924 0 +#define FLAG_UNUSED_0x925 0 +#define FLAG_UNUSED_0x926 0 +#define FLAG_UNUSED_0x927 0 +#define FLAG_UNUSED_0x928 0 +#define FLAG_UNUSED_0x929 0 +#define FLAG_DAILY_PICKED_LOTO_TICKET 0 +#define FLAG_DAILY_ROUTE_114_RECEIVED_BERRY 0 +#define FLAG_DAILY_ROUTE_111_RECEIVED_BERRY 0 +#define FLAG_DAILY_BERRY_MASTER_RECEIVED_BERRY 0 +#define FLAG_DAILY_ROUTE_120_RECEIVED_BERRY 0 +#define FLAG_DAILY_LILYCOVE_RECEIVED_BERRY 0 +#define FLAG_DAILY_FLOWER_SHOP_RECEIVED_BERRY 0 +#define FLAG_DAILY_BERRY_MASTERS_WIFE 0 +#define FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY 0 +#define FLAG_UNUSED_0x933 0 +#define FLAG_DAILY_APPRENTICE_LEAVES 0 + +// Special Flags (Stored in EWRAM (sSpecialFlags), not in the SaveBlock) +#define SPECIAL_FLAGS_START 0x4000 +#define FLAG_HIDE_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0) +#define FLAG_DONT_TRANSITION_MUSIC (SPECIAL_FLAGS_START + 0x1) +#define FLAG_ENABLE_MULTI_CORRIDOR_DOOR (SPECIAL_FLAGS_START + 0x2) +#define FLAG_SPECIAL_FLAG_UNUSED_0x4003 (SPECIAL_FLAGS_START + 0x3) // Unused Flag +#define FLAG_STORING_ITEMS_IN_PYRAMID_BAG (SPECIAL_FLAGS_START + 0x4) +#define FLAG_SAFE_FOLLOWER_MOVEMENT (SPECIAL_FLAGS_START + 0x5) // When set, applymovement does not put the follower inside a pokeball + // Also, scripted movements on the player will move follower(s), too +// FLAG_SPECIAL_FLAG_0x4005 - 0x407F also exist and are unused +#define SPECIAL_FLAGS_END (SPECIAL_FLAGS_START + 0x7F) +#define NUM_SPECIAL_FLAGS (SPECIAL_FLAGS_END - SPECIAL_FLAGS_START + 1) + +// Temp flag aliases +#define FLAG_TEMP_SKIP_GABBY_INTERVIEW FLAG_TEMP_1 +#define FLAG_TEMP_REGICE_PUZZLE_STARTED FLAG_TEMP_2 +#define FLAG_TEMP_REGICE_PUZZLE_FAILED FLAG_TEMP_3 +#define FLAG_TEMP_HIDE_FOLLOWER FLAG_TEMP_E +#define FLAG_TEMP_HIDE_MIRAGE_ISLAND_BERRY_TREE FLAG_TEMP_11 + + +#endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/constants/form_change_types.h b/include/constants/form_change_types.h index f43f3bddc68f..7f4b77a036fa 100644 --- a/include/constants/form_change_types.h +++ b/include/constants/form_change_types.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_FORM_CHANGE_TYPES_H #define GUARD_CONSTANTS_FORM_CHANGE_TYPES_H -// FORM_CHANGE_BATTLE_HP_PERCENT param2 arguments +// FORM_CHANGE_BATTLE_HP_PERCENT_TURN_END / FORM_CHANGE_BATTLE_HP_PERCENT_SEND_OUT param2 arguments enum FormChangeBattleHPPercentArguments { HP_HIGHER_THAN = 1, @@ -47,8 +47,6 @@ enum FormChanges // - No parameters. FORM_CHANGE_WITHDRAW, // Form change that activates when the Pokémon faints, either in battle or in the overworld by poison. - // If species is not specified and it's on the player's side, it will try to use the value - // saved in gBattleStruct->partyState[x][y].changedSpecies from a previous form change. // - No parameters. FORM_CHANGE_FAINT, // Form change that activates when the Pokémon is sent out at the beginning of a battle @@ -65,15 +63,36 @@ enum FormChanges // param1: battle environment to check. FORM_CHANGE_END_BATTLE_ENVIRONMENT, // Form change that activates when the Pokémon is switched out in battle. - // param1: ability to check, optional - FORM_CHANGE_BATTLE_SWITCH, + // param1: (optional) ability to check + FORM_CHANGE_BATTLE_SWITCH_OUT, + // Form change that activates when the Pokémon is switched-in in battle. + // This form change happens before other abilities like Neutralizing Gas. + // param1: ability to check + FORM_CHANGE_BATTLE_SWITCH_IN, // Form change that activates when the Pokémon's HP % passes a certain threshold. // param1: Ability to check. // param2: HP comparer // - HP_HIGHER_THAN if the form triggers when the current HP is higher than the specified threshold. // - HP_LOWER_EQ_THAN if the form triggers when the current HP is lower or equal than the specified threshold. // param3: HP percentage threshold. - FORM_CHANGE_BATTLE_HP_PERCENT, + // param4: (optional) Minimum level to do form change + FORM_CHANGE_BATTLE_HP_PERCENT_TURN_END, + // Form change that activates when the Pokémon's HP % passes a certain threshold when sent out into battle. + // param1: Ability to check. + // param2: HP comparer + // - HP_HIGHER_THAN if the form triggers when the current HP is higher than the specified threshold. + // - HP_LOWER_EQ_THAN if the form triggers when the current HP is lower or equal than the specified threshold. + // param3: HP percentage threshold. + // param4: (optional) Minimum level to do form change + FORM_CHANGE_BATTLE_HP_PERCENT_SEND_OUT, + // Form change that activates when the Pokémon's HP % passes a certain threshold when using a move. + // param1: Ability to check. + // param2: HP comparer + // - HP_HIGHER_THAN if the form triggers when the current HP is higher than the specified threshold. + // - HP_LOWER_EQ_THAN if the form triggers when the current HP is lower or equal than the specified threshold. + // param3: HP percentage threshold. + // param4: Move used. + FORM_CHANGE_BATTLE_HP_PERCENT_DURING_MOVE, // Form change that activates when the mon has the defined item. // If it's on the player's side, it also requires ITEM_MEGA_RING in the user's bag and for the player to trigger it by pressing START before selecting a move. // param1: item to hold. @@ -112,8 +131,13 @@ enum FormChanges // Form change that activates when inflicted with a specific status // param1: status FORM_CHANGE_STATUS, - // Form change that activates after move is used. Currently only used for activating Gulp Missile. - FORM_CHANGE_HIT_BY_MOVE, + // Form change that activates after receiving an attack. + // param1: ability + // param2: move category to check + FORM_CHANGE_BATTLE_HIT_BY_MOVE_CATEGORY, + // Form change that activates after hitting itself in confusion. + // param1: ability + FORM_CHANGE_BATTLE_HIT_BY_CONFUSION_SELF_DMG, // Form change that activates when terastallized as as a specific type // param1: tera type FORM_CHANGE_BATTLE_TERASTALLIZATION, @@ -137,6 +161,8 @@ enum FormChanges FORM_CHANGE_OVERWORLD_WEATHER, // Form change that activates when the Pokémon is deposited into the PC or Daycare. FORM_CHANGE_DEPOSIT, + // Form change for Minior, which appears unchanged when encountered in the wild + FORM_CHANGE_BEGIN_WILD_ENCOUNTER, }; #endif // GUARD_CONSTANTS_FORM_CHANGE_TYPES_H diff --git a/include/constants/generational_changes.h b/include/constants/generational_changes.h index 8a8a31e83065..5b6d7cb76f22 100644 --- a/include/constants/generational_changes.h +++ b/include/constants/generational_changes.h @@ -2,7 +2,7 @@ #define GUARD_CONSTANTS_GENERATIONAL_CHANGES_H /* Config definitions */ -#define CONFIG_DEFINITIONS(F) \ +#define BATTLE_CONFIG_DEFINITIONS(F) \ /* Calculation settings */ \ F(B_CRIT_CHANCE, critChance, (u32, GEN_COUNT - 1)) \ F(B_CRIT_MULTIPLIER, critMultiplier, (u32, GEN_COUNT - 1)) \ @@ -46,6 +46,7 @@ F(B_SHEER_COLD_IMMUNITY, sheerColdImmunity, (u32, GEN_COUNT - 1)) \ F(B_ROOST_PURE_FLYING, roostPureFlying, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_STATUS_TYPE_IMMUNITY, statusTypeImmunity, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ + F(B_HIDDEN_POWER_COUNTER, hiddenPowerCounter, (u32, GEN_COUNT - 1)) \ /* Turn settings */ \ F(B_BINDING_TURNS, bindingTurns, (u32, GEN_COUNT - 1)) \ F(B_UPROAR_TURNS, uproarTurns, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ @@ -69,6 +70,7 @@ F(B_UPDATED_CONVERSION_2, updatedConversion2, (u32, GEN_COUNT - 1)) \ F(B_PP_REDUCED_BY_SPITE, ppReducedBySpite, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_EXTRAPOLATED_MOVE_FLAGS, extrapolatedMoveFlags, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ + F(B_MODERN_TRICK_CHOICE_LOCK, modernTrickChoiceLock, (u32, GEN_COUNT - 1)) \ /* Ability data settings */ \ F(B_UPDATED_ABILITY_DATA, updatedAbilityData, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ /* Move accuracy settings */ \ @@ -91,6 +93,7 @@ F(B_CRASH_IF_TARGET_IMMUNE, crashIfTargetImmune, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_MEMENTO_FAIL, mementoFail, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_PARTING_SHOT_SWITCH, partingShotSwitch, (u32, GEN_COUNT - 1)) \ + F(B_BATON_PASS_TRAPPING, batonPassTrapping, (u32, GEN_COUNT - 1)) \ F(B_GLARE_GHOST, glareGhost, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_SKILL_SWAP, skillSwap, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_BRICK_BREAK, brickBreak, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ @@ -102,7 +105,7 @@ F(B_TELEPORT_BEHAVIOR, teleportBehavior, (u32, GEN_COUNT - 1)) \ F(B_BEAT_UP, beatUp, (u32, GEN_COUNT - 1)) \ F(B_DARK_VOID_FAIL, darkVoidFail, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ - F(B_BURN_HIT_THAW, burnHitThaw, (u32, GEN_COUNT - 1)) \ + F(B_HIT_THAW, hitThaw, (u32, GEN_COUNT - 1)) \ F(B_HEALING_WISH_SWITCH, healingWishSwitch, (u32, GEN_COUNT - 1)) \ F(B_DEFOG_EFFECT_CLEARING, defogEffectClearing, (u32, GEN_COUNT - 1)) \ F(B_STOCKPILE_RAISES_DEFS, stockpileRaisesDefs, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ @@ -121,7 +124,7 @@ F(B_KNOCK_OFF_REMOVAL, knockOffRemoval, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_HEAL_BELL_SOUNDPROOF, healBellSoundproof, (u32, GEN_COUNT - 1)) \ F(B_CHARGE, charge, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ - F(B_POWDER_RAIN, powderRain, (u32, GEN_COUNT - 1)) \ + F(B_POWDER_STATUS_HEAVY_RAIN, powderStatusHeavyRain, (u32, GEN_COUNT - 1)) \ F(B_AFTER_YOU_TURN_ORDER, afterYouTurnOrder, (u32, GEN_COUNT - 1)) \ F(B_QUASH_TURN_ORDER, quashTurnOrder, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_DESTINY_BOND_FAIL, destinyBondFail, (u32, GEN_COUNT - 1)) \ @@ -132,6 +135,10 @@ F(B_ENCORE_TARGET, encoreTarget, (u32, GEN_COUNT - 1)) \ F(B_TIME_OF_DAY_HEALING_MOVES, timeOfDayHealingMoves, (u32, GEN_COUNT - 1)) \ F(B_DREAM_EATER_LIQUID_OOZE, dreamEaterLiquidOoze, (u32, GEN_COUNT - 1)) \ + F(B_FOCUS_PUNCH_FAILURE, focusPunchFailure, (u32, GEN_COUNT - 1)) \ + F(B_RAGE_BUILDS, rageBuilds, (u32, GEN_COUNT - 1)) \ + F(B_CHECK_USER_FAILURE, checkUserFailure, (u32, GEN_COUNT - 1)) \ + F(B_ABSORB_MESSAGE, absorbMessge, (u32, GEN_COUNT - 1)) \ /* Ability settings */ \ F(B_GALE_WINGS, galeWings, (u32, GEN_COUNT - 1)) \ F(B_STANCE_CHANGE_FAIL, stanceChangeFail, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ @@ -145,7 +152,6 @@ F(B_PLUS_MINUS_INTERACTION, plusMinusInteraction, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_WEATHER_FORMS, weatherForms, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_SYMBIOSIS_GEMS, symbiosisGems, (u32, GEN_COUNT - 1)) \ - F(B_ABSORBING_ABILITY_STRING, absorbingAbilityString, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_REDIRECT_ABILITY_IMMUNITY, redirectAbilityImmunity, (u32, GEN_COUNT - 1)) \ F(B_REDIRECT_ABILITY_ALLIES, redirectAbilityAllies, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_LEAF_GUARD_PREVENTS_REST, leafGuardPreventsRest, (u32, GEN_COUNT - 1)) \ @@ -200,11 +206,30 @@ F(B_SECRET_POWER_ANIMATION, secretPowerAnimation, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_NATURE_POWER_MOVES, naturePowerMoves, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_CAMOUFLAGE_TYPES, camouflageTypes, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ + /* Catching settings */ \ + F(B_SEMI_INVULNERABLE_CATCH, semiInvulnerableCatch, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ + F(B_INCAPACITATED_CATCH_BONUS, incapacitatedCatchBonus, (u32, GEN_COUNT - 1)) \ + F(B_LOW_LEVEL_CATCH_BONUS, lowLevlCatchBonus, (u32, GEN_COUNT - 1)) \ + F(B_MISSING_BADGE_CATCH_MALUS, missingBadgeCatchMalue, (u32, GEN_COUNT - 1)) \ + F(B_CRITICAL_CAPTURE_IF_OWNED, criticalCaptureIfOwned, (u32, GEN_COUNT - 1)) \ /* Other settings */ \ F(B_WILD_NATURAL_ENEMIES, wildNaturalEnemies, (u32, TRUE)) /* TODO: use in tests */ \ F(B_AFFECTION_MECHANICS, affectionMechanics, (u32, TRUE)) /* TODO: use in tests */ \ F(B_OBEDIENCE_MECHANICS, obedienceMechanics, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(B_USE_FROSTBITE, useFrostbite, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ + F(B_SANDSTORM_SOLAR_BEAM, standstormSolarBeam, (u32, GEN_COUNT - 1)) \ + F(B_COUNTER_MIRROR_COAT_ALLY, counterMirrorCoatAlly, (u32, GEN_COUNT - 1)) \ + F(B_COUNTER_TRY_HIT_PARTNER, counterTryHitPartner, (u32, GEN_COUNT - 1)) \ + + +#define POKEMON_CONFIG_DEFINITIONS(F) \ + F(POKERUS_ENABLED, pokerusEnabled, (u32, TRUE)) \ + F(POKERUS_SPREAD_ADJACENCY, pokerusSpreadAdjacency, (u32, GEN_COUNT - 1)) \ + F(POKERUS_SPREAD_DAYS_LEFT, pokerusSpreadDaysLeft, (u32, GEN_COUNT - 1)) \ + F(POKERUS_INFECT_AGAIN, pokerusInfectAgain, (u32, GEN_COUNT - 1)) \ + F(POKERUS_INFECT_EGG, pokerusInfectEgg, (u32, TRUE)) \ + F(POKERUS_HERD_IMMUNITY, pokerusHerdImmunity, (u32, TRUE)) \ + F(POKERUS_WEAK_VARIANT, pokerusWeakVariant, (u32, TRUE)) \ #define GET_CONFIG_MAXIMUM(_typeMaxValue, ...) INVOKE_WITH_B(GET_CONFIG_MAXIMUM_, _typeMaxValue) @@ -214,7 +239,8 @@ enum ConfigTag { - CONFIG_DEFINITIONS(UNPACK_CONFIG_ENUMS) + BATTLE_CONFIG_DEFINITIONS(UNPACK_CONFIG_ENUMS) + POKEMON_CONFIG_DEFINITIONS(UNPACK_CONFIG_ENUMS) CONFIG_COUNT }; diff --git a/include/constants/global.h b/include/constants/global.h index fa0ebbcc0fb2..4f2f5bd7ab8b 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -23,6 +23,7 @@ #include "config/debug.h" #include "config/dexnav.h" #include "config/follower_npc.h" +#include "config/game_corner_expansion.h" #include "config/general.h" #include "config/item.h" #include "config/overworld.h" @@ -34,30 +35,46 @@ // In Gen 4 only, migrated Pokémon with Diamond, Pearl, or Platinum's ID show as "----------". // Gen 5 and up read Diamond, Pearl, or Platinum's ID as "Sinnoh". // In Gen 4 and up, migrated Pokémon with HeartGold or SoulSilver's ID show the otherwise unused "Johto" string. -#define VERSION_SAPPHIRE 1 -#define VERSION_RUBY 2 -#define VERSION_EMERALD 3 -#define VERSION_FIRE_RED 4 -#define VERSION_LEAF_GREEN 5 -#define VERSION_HEART_GOLD 7 -#define VERSION_SOUL_SILVER 8 -#define VERSION_DIAMOND 10 -#define VERSION_PEARL 11 -#define VERSION_PLATINUM 12 -#define VERSION_GAMECUBE 15 - -#define NUM_VERSIONS 15 - -#define LANGUAGE_JAPANESE 1 -#define LANGUAGE_ENGLISH 2 -#define LANGUAGE_FRENCH 3 -#define LANGUAGE_ITALIAN 4 -#define LANGUAGE_GERMAN 5 -#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean -#define LANGUAGE_SPANISH 7 -#define NUM_LANGUAGES 7 - -#define GAME_VERSION (VERSION_EMERALD) +enum __attribute__((packed)) GameVersion +{ + VERSION_SAPPHIRE = 1, + VERSION_RUBY = 2, + VERSION_EMERALD = 3, + VERSION_FIRE_RED = 4, + VERSION_LEAF_GREEN = 5, + VERSION_HEART_GOLD = 7, + VERSION_SOUL_SILVER = 8, + VERSION_DIAMOND = 10, + VERSION_PEARL = 11, + VERSION_PLATINUM = 12, + VERSION_GAMECUBE = 15, + NUM_VERSIONS = VERSION_GAMECUBE, +}; + +enum Language +{ + LANGUAGE_JAPANESE = 1, + LANGUAGE_ENGLISH = 2, + LANGUAGE_FRENCH = 3, + LANGUAGE_ITALIAN = 4, + LANGUAGE_GERMAN = 5, + LANGUAGE_KOREAN = 6, // 6 goes unused but the theory is it was meant to be Korean, + LANGUAGE_SPANISH = 7, + NUM_LANGUAGES = LANGUAGE_SPANISH, +}; + +#ifdef FIRERED + #define GAME_VERSION (VERSION_FIRE_RED) + #define IS_FRLG 1 +#else + #ifdef LEAFGREEN + #define GAME_VERSION (VERSION_LEAF_GREEN) + #define IS_FRLG 1 + #else + #define GAME_VERSION (VERSION_EMERALD) + #define IS_FRLG 0 + #endif +#endif #define GAME_LANGUAGE (LANGUAGE_ENGLISH) // party sizes @@ -107,24 +124,31 @@ #define HALL_RECORDS_COUNT 3 // Battle Frontier level modes. -#define FRONTIER_LVL_50 0 -#define FRONTIER_LVL_OPEN 1 -#define FRONTIER_LVL_MODE_COUNT 2 -#define FRONTIER_LVL_TENT FRONTIER_LVL_MODE_COUNT // Special usage for indicating Battle Tent +enum FrontierLevelMode +{ + FRONTIER_LVL_50, + FRONTIER_LVL_OPEN, + FRONTIER_LVL_TENT, // Special usage for indicating Battle Tent + FRONTIER_LVL_MODE_COUNT = FRONTIER_LVL_TENT, +}; #define TRAINER_ID_LENGTH 4 #define MAX_MON_MOVES 4 #define ALL_MOVES_MASK ((1 << MAX_MON_MOVES) - 1) #define CONTESTANT_COUNT 4 -#define CONTEST_CATEGORY_COOL 0 -#define CONTEST_CATEGORY_BEAUTIFUL 1 -#define CONTEST_CATEGORY_BEAUTY CONTEST_CATEGORY_BEAUTIFUL -#define CONTEST_CATEGORY_CUTE 2 -#define CONTEST_CATEGORY_CLEVER 3 -#define CONTEST_CATEGORY_SMART CONTEST_CATEGORY_CLEVER -#define CONTEST_CATEGORY_TOUGH 4 -#define CONTEST_CATEGORIES_COUNT 5 + +enum ContestCategories +{ + CONTEST_CATEGORY_COOL, + CONTEST_CATEGORY_BEAUTIFUL, + CONTEST_CATEGORY_BEAUTY = CONTEST_CATEGORY_BEAUTIFUL, + CONTEST_CATEGORY_CUTE, + CONTEST_CATEGORY_CLEVER, + CONTEST_CATEGORY_SMART = CONTEST_CATEGORY_CLEVER, + CONTEST_CATEGORY_TOUGH, + CONTEST_CATEGORIES_COUNT +}; // string lengths #define ITEM_NAME_LENGTH 20 @@ -149,9 +173,12 @@ #define MAX_STAMP_CARD_STAMPS 7 -#define MALE 0 -#define FEMALE 1 -#define GENDER_COUNT 2 +enum Gender +{ + MALE, + FEMALE, + GENDER_COUNT, +}; #define NUM_BARD_SONG_WORDS 6 #define NUM_STORYTELLER_TALES 4 @@ -174,29 +201,31 @@ #define OPTIONS_BATTLE_STYLE_SHIFT 0 #define OPTIONS_BATTLE_STYLE_SET 1 -#define DIR_NONE 0 -#define DIR_SOUTH 1 -#define DIR_NORTH 2 -#define DIR_WEST 3 -#define DIR_EAST 4 -#define DIR_SOUTHWEST 5 -#define DIR_SOUTHEAST 6 -#define DIR_NORTHWEST 7 -#define DIR_NORTHEAST 8 -#define CARDINAL_DIRECTION_COUNT DIR_SOUTHWEST - -#define AXIS_X 0 -#define AXIS_Y 1 -#define AXIS_COUNT 2 - -#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 +enum __attribute__((packed)) Direction +{ + DIR_NONE, + DIR_SOUTH, + DIR_NORTH, + DIR_WEST, + DIR_EAST, + CARDINAL_DIRECTION_COUNT, + DIR_SOUTHWEST = CARDINAL_DIRECTION_COUNT, + DIR_SOUTHEAST, + DIR_NORTHWEST, + DIR_NORTHEAST, +}; + +enum Connection +{ + CONNECTION_INVALID = -1, + CONNECTION_NONE, + CONNECTION_SOUTH, + CONNECTION_NORTH, + CONNECTION_WEST, + CONNECTION_EAST, + CONNECTION_DIVE, + CONNECTION_EMERGE +}; #if TESTING #include "config/test.h" diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index 8be7b39bf2a0..bec914c689ee 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -45,10 +45,8 @@ enum __attribute__((packed)) HoldEffect HOLD_EFFECT_LUCKY_EGG, HOLD_EFFECT_SCOPE_LENS, HOLD_EFFECT_LEFTOVERS, - HOLD_EFFECT_DRAGON_SCALE, HOLD_EFFECT_LIGHT_BALL, HOLD_EFFECT_TYPE_POWER, - HOLD_EFFECT_UPGRADE, HOLD_EFFECT_SHELL_BELL, HOLD_EFFECT_LUCKY_PUNCH, HOLD_EFFECT_METAL_POWDER, diff --git a/include/constants/item_effects.h b/include/constants/item_effects.h index 037f28c4bcdd..f8f151670cd9 100644 --- a/include/constants/item_effects.h +++ b/include/constants/item_effects.h @@ -69,29 +69,32 @@ #define ITEM6_RESET_EV 0 // Used for GetItemEffectType. -#define ITEM_EFFECT_X_ITEM 0 -#define ITEM_EFFECT_RAISE_LEVEL 1 -#define ITEM_EFFECT_HEAL_HP 2 -#define ITEM_EFFECT_CURE_POISON 3 -#define ITEM_EFFECT_CURE_SLEEP 4 -#define ITEM_EFFECT_CURE_BURN 5 -#define ITEM_EFFECT_CURE_FREEZE_FROSTBITE 6 -#define ITEM_EFFECT_CURE_PARALYSIS 7 -#define ITEM_EFFECT_CURE_CONFUSION 8 -#define ITEM_EFFECT_CURE_INFATUATION 9 -#define ITEM_EFFECT_SACRED_ASH 10 -#define ITEM_EFFECT_CURE_ALL_STATUS 11 -#define ITEM_EFFECT_ATK_EV 12 -#define ITEM_EFFECT_HP_EV 13 -#define ITEM_EFFECT_SPATK_EV 14 -#define ITEM_EFFECT_SPDEF_EV 15 -#define ITEM_EFFECT_SPEED_EV 16 -#define ITEM_EFFECT_DEF_EV 17 -#define ITEM_EFFECT_EVO_STONE 18 -#define ITEM_EFFECT_PP_UP 19 -#define ITEM_EFFECT_PP_MAX 20 -#define ITEM_EFFECT_HEAL_PP 21 -#define ITEM_EFFECT_NONE 22 +enum ItemEffectType +{ + ITEM_EFFECT_X_ITEM, + ITEM_EFFECT_RAISE_LEVEL, + ITEM_EFFECT_HEAL_HP, + ITEM_EFFECT_CURE_POISON, + ITEM_EFFECT_CURE_SLEEP, + ITEM_EFFECT_CURE_BURN, + ITEM_EFFECT_CURE_FREEZE_FROSTBITE, + ITEM_EFFECT_CURE_PARALYSIS, + ITEM_EFFECT_CURE_CONFUSION, + ITEM_EFFECT_CURE_INFATUATION, + ITEM_EFFECT_SACRED_ASH, + ITEM_EFFECT_CURE_ALL_STATUS, + ITEM_EFFECT_ATK_EV, + ITEM_EFFECT_HP_EV, + ITEM_EFFECT_SPATK_EV, + ITEM_EFFECT_SPDEF_EV, + ITEM_EFFECT_SPEED_EV, + ITEM_EFFECT_DEF_EV, + ITEM_EFFECT_EVO_STONE, + ITEM_EFFECT_PP_UP, + ITEM_EFFECT_PP_MAX, + ITEM_EFFECT_HEAL_PP, + ITEM_EFFECT_NONE +}; #define ITEM_FRIENDSHIP_MAPSEC_BONUS 1 // The amount of bonus friendship gained when an item is used on a Pokémon whose met location matches the current map section. #define ITEM_FRIENDSHIP_LUXURY_BONUS 1 // The amount of bonus friendship gained when a Pokémon is in the Luxury Ball. diff --git a/include/constants/items.h b/include/constants/items.h index ca25c57c3c51..e718890a1c68 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -1,640 +1,1064 @@ #ifndef GUARD_CONSTANTS_ITEMS_H #define GUARD_CONSTANTS_ITEMS_H -#define ITEM_NONE 0 - -// Poké Balls -#define ITEM_POKE_BALL 1 -#define ITEM_GREAT_BALL 2 -#define ITEM_ULTRA_BALL 3 -#define ITEM_MASTER_BALL 4 -#define ITEM_PREMIER_BALL 5 -#define ITEM_HEAL_BALL 6 -#define ITEM_NET_BALL 7 -#define ITEM_NEST_BALL 8 -#define ITEM_DIVE_BALL 9 -#define ITEM_DUSK_BALL 10 -#define ITEM_TIMER_BALL 11 -#define ITEM_QUICK_BALL 12 -#define ITEM_REPEAT_BALL 13 -#define ITEM_LUXURY_BALL 14 -#define ITEM_LEVEL_BALL 15 -#define ITEM_LURE_BALL 16 -#define ITEM_MOON_BALL 17 -#define ITEM_FRIEND_BALL 18 -#define ITEM_LOVE_BALL 19 -#define ITEM_FAST_BALL 20 -#define ITEM_HEAVY_BALL 21 -#define ITEM_DREAM_BALL 22 -#define ITEM_SAFARI_BALL 23 -#define ITEM_SPORT_BALL 24 -#define ITEM_PARK_BALL 25 -#define ITEM_BEAST_BALL 26 -#define ITEM_CHERISH_BALL 27 - -// Medicine -#define ITEM_POTION 28 -#define ITEM_SUPER_POTION 29 -#define ITEM_HYPER_POTION 30 -#define ITEM_MAX_POTION 31 -#define ITEM_FULL_RESTORE 32 -#define ITEM_REVIVE 33 -#define ITEM_MAX_REVIVE 34 -#define ITEM_FRESH_WATER 35 -#define ITEM_SODA_POP 36 -#define ITEM_LEMONADE 37 -#define ITEM_MOOMOO_MILK 38 -#define ITEM_ENERGY_POWDER 39 -#define ITEM_ENERGYPOWDER ITEM_ENERGY_POWDER // Pre-Gen VI name -#define ITEM_ENERGY_ROOT 40 -#define ITEM_HEAL_POWDER 41 -#define ITEM_REVIVAL_HERB 42 -#define ITEM_ANTIDOTE 43 -#define ITEM_PARALYZE_HEAL 44 -#define ITEM_PARLYZ_HEAL ITEM_PARALYZE_HEAL // Pre-Gen VI name -#define ITEM_BURN_HEAL 45 -#define ITEM_ICE_HEAL 46 -#define ITEM_AWAKENING 47 -#define ITEM_FULL_HEAL 48 -#define ITEM_ETHER 49 -#define ITEM_MAX_ETHER 50 -#define ITEM_ELIXIR 51 -#define ITEM_ELIXER ITEM_ELIXIR // Pre-Gen III name -#define ITEM_MAX_ELIXIR 52 -#define ITEM_MAX_ELIXER ITEM_MAX_ELIXIR // Pre-Gen III name -#define ITEM_BERRY_JUICE 53 -#define ITEM_SACRED_ASH 54 -#define ITEM_SWEET_HEART 55 -#define ITEM_MAX_HONEY 56 - -// Regional Specialties -#define ITEM_PEWTER_CRUNCHIES 57 -#define ITEM_RAGE_CANDY_BAR 58 -#define ITEM_RAGECANDYBAR ITEM_RAGE_CANDY_BAR // Pre-Gen VI name -#define ITEM_LAVA_COOKIE 59 -#define ITEM_OLD_GATEAU 60 -#define ITEM_CASTELIACONE 61 -#define ITEM_LUMIOSE_GALETTE 62 -#define ITEM_SHALOUR_SABLE 63 -#define ITEM_BIG_MALASADA 64 - -// Vitamins -#define ITEM_HP_UP 65 -#define ITEM_PROTEIN 66 -#define ITEM_IRON 67 -#define ITEM_CALCIUM 68 -#define ITEM_ZINC 69 -#define ITEM_CARBOS 70 -#define ITEM_PP_UP 71 -#define ITEM_PP_MAX 72 - -// EV Feathers -#define ITEM_HEALTH_FEATHER 73 -#define ITEM_HEALTH_WING ITEM_HEALTH_FEATHER // Pre-Gen VIII name -#define ITEM_MUSCLE_FEATHER 74 -#define ITEM_MUSCLE_WING ITEM_MUSCLE_FEATHER // Pre-Gen VIII name -#define ITEM_RESIST_FEATHER 75 -#define ITEM_RESIST_WING ITEM_RESIST_FEATHER // Pre-Gen VIII name -#define ITEM_GENIUS_FEATHER 76 -#define ITEM_GENIUS_WING ITEM_GENIUS_FEATHER // Pre-Gen VIII name -#define ITEM_CLEVER_FEATHER 77 -#define ITEM_CLEVER_WING ITEM_CLEVER_FEATHER // Pre-Gen VIII name -#define ITEM_SWIFT_FEATHER 78 -#define ITEM_SWIFT_WING ITEM_SWIFT_FEATHER // Pre-Gen VIII name - -// Ability Modifiers -#define ITEM_ABILITY_CAPSULE 79 -#define ITEM_ABILITY_PATCH 80 - -// Mints -#define ITEM_LONELY_MINT 81 -#define ITEM_ADAMANT_MINT 82 -#define ITEM_NAUGHTY_MINT 83 -#define ITEM_BRAVE_MINT 84 -#define ITEM_BOLD_MINT 85 -#define ITEM_IMPISH_MINT 86 -#define ITEM_LAX_MINT 87 -#define ITEM_RELAXED_MINT 88 -#define ITEM_MODEST_MINT 89 -#define ITEM_MILD_MINT 90 -#define ITEM_RASH_MINT 91 -#define ITEM_QUIET_MINT 92 -#define ITEM_CALM_MINT 93 -#define ITEM_GENTLE_MINT 94 -#define ITEM_CAREFUL_MINT 95 -#define ITEM_SASSY_MINT 96 -#define ITEM_TIMID_MINT 97 -#define ITEM_HASTY_MINT 98 -#define ITEM_JOLLY_MINT 99 -#define ITEM_NAIVE_MINT 100 -#define ITEM_SERIOUS_MINT 101 - -// Candy -#define ITEM_RARE_CANDY 102 -#define ITEM_EXP_CANDY_XS 103 -#define ITEM_EXP_CANDY_S 104 -#define ITEM_EXP_CANDY_M 105 -#define ITEM_EXP_CANDY_L 106 -#define ITEM_EXP_CANDY_XL 107 -#define ITEM_DYNAMAX_CANDY 108 - -// Medicinal Flutes -#define ITEM_BLUE_FLUTE 109 -#define ITEM_YELLOW_FLUTE 110 -#define ITEM_RED_FLUTE 111 - -// Encounter-modifying Flutes -#define ITEM_BLACK_FLUTE 112 -#define ITEM_WHITE_FLUTE 113 - -// Encounter Modifiers -#define ITEM_REPEL 114 -#define ITEM_SUPER_REPEL 115 -#define ITEM_MAX_REPEL 116 -#define ITEM_LURE 117 -#define ITEM_SUPER_LURE 118 -#define ITEM_MAX_LURE 119 - -#define ITEM_ESCAPE_ROPE 120 - -// X Items -#define ITEM_X_ATTACK 121 -#define ITEM_X_DEFENSE 122 -#define ITEM_X_DEFEND ITEM_X_DEFENSE // Pre-Gen VI name -#define ITEM_X_SP_ATK 123 -#define ITEM_X_SPECIAL ITEM_X_SP_ATK // Pre-Gen VI name -#define ITEM_X_SP_DEF 124 -#define ITEM_X_SPEED 125 -#define ITEM_X_ACCURACY 126 - -#define ITEM_DIRE_HIT 127 -#define ITEM_GUARD_SPEC 128 - -// Escape Items -#define ITEM_POKE_DOLL 129 -#define ITEM_FLUFFY_TAIL 130 -#define ITEM_POKE_TOY 131 - -#define ITEM_MAX_MUSHROOMS 132 - -// Treasures -#define ITEM_BOTTLE_CAP 133 -#define ITEM_GOLD_BOTTLE_CAP 134 -#define ITEM_NUGGET 135 -#define ITEM_BIG_NUGGET 136 -#define ITEM_TINY_MUSHROOM 137 -#define ITEM_TINYMUSHROOM ITEM_TINY_MUSHROOM // Pre-Gen VI name -#define ITEM_BIG_MUSHROOM 138 -#define ITEM_BALM_MUSHROOM 139 -#define ITEM_BALMMUSHROOM ITEM_BALM_MUSHROOM // Pre-Gen VI name -#define ITEM_PEARL 140 -#define ITEM_BIG_PEARL 141 -#define ITEM_PEARL_STRING 142 -#define ITEM_STARDUST 143 -#define ITEM_STAR_PIECE 144 -#define ITEM_COMET_SHARD 145 -#define ITEM_SHOAL_SALT 146 -#define ITEM_SHOAL_SHELL 147 -#define ITEM_RED_SHARD 148 -#define ITEM_BLUE_SHARD 149 -#define ITEM_YELLOW_SHARD 150 -#define ITEM_GREEN_SHARD 151 -#define ITEM_HEART_SCALE 152 -#define ITEM_HONEY 153 -#define ITEM_RARE_BONE 154 -#define ITEM_ODD_KEYSTONE 155 -#define ITEM_PRETTY_FEATHER 156 -#define ITEM_PRETTY_WING ITEM_PRETTY_FEATHER // Pre-Gen VIII name -#define ITEM_RELIC_COPPER 157 -#define ITEM_RELIC_SILVER 158 -#define ITEM_RELIC_GOLD 159 -#define ITEM_RELIC_VASE 160 -#define ITEM_RELIC_BAND 161 -#define ITEM_RELIC_STATUE 162 -#define ITEM_RELIC_CROWN 163 -#define ITEM_STRANGE_SOUVENIR 164 - -// Fossils -#define ITEM_HELIX_FOSSIL 165 -#define ITEM_DOME_FOSSIL 166 -#define ITEM_OLD_AMBER 167 -#define ITEM_ROOT_FOSSIL 168 -#define ITEM_CLAW_FOSSIL 169 -#define ITEM_ARMOR_FOSSIL 170 -#define ITEM_SKULL_FOSSIL 171 -#define ITEM_COVER_FOSSIL 172 -#define ITEM_PLUME_FOSSIL 173 -#define ITEM_JAW_FOSSIL 174 -#define ITEM_SAIL_FOSSIL 175 -#define ITEM_FOSSILIZED_BIRD 176 -#define ITEM_FOSSILIZED_FISH 177 -#define ITEM_FOSSILIZED_DRAKE 178 -#define ITEM_FOSSILIZED_DINO 179 - -// Mulch -#define ITEM_GROWTH_MULCH 180 -#define ITEM_DAMP_MULCH 181 -#define ITEM_STABLE_MULCH 182 -#define ITEM_GOOEY_MULCH 183 -#define ITEM_RICH_MULCH 184 -#define ITEM_SURPRISE_MULCH 185 -#define ITEM_BOOST_MULCH 186 -#define ITEM_AMAZE_MULCH 187 - -// Apricorns -#define ITEM_RED_APRICORN 188 -#define ITEM_BLUE_APRICORN 189 -#define ITEM_BLU_APRICORN ITEM_BLUE_APRICORN // Pre-Gen VI name -#define ITEM_YELLOW_APRICORN 190 -#define ITEM_YLW_APRICORN ITEM_YELLOW_APRICORN // Pre-Gen VI name -#define ITEM_GREEN_APRICORN 191 -#define ITEM_GRN_APRICORN ITEM_GREEN_APRICORN // Pre-Gen VI name -#define ITEM_PINK_APRICORN 192 -#define ITEM_PNK_APRICORN ITEM_PINK_APRICORN // Pre-Gen VI name -#define ITEM_WHITE_APRICORN 193 -#define ITEM_WHT_APRICORN ITEM_WHITE_APRICORN // Pre-Gen VI name -#define ITEM_BLACK_APRICORN 194 -#define ITEM_BLK_APRICORN ITEM_BLACK_APRICORN // Pre-Gen VI name - -#define ITEM_WISHING_PIECE 195 -#define ITEM_GALARICA_TWIG 196 -#define ITEM_ARMORITE_ORE 197 -#define ITEM_DYNITE_ORE 198 - -// Mail -#define ITEM_ORANGE_MAIL 199 -#define ITEM_HARBOR_MAIL 200 -#define ITEM_GLITTER_MAIL 201 -#define ITEM_MECH_MAIL 202 -#define ITEM_WOOD_MAIL 203 -#define ITEM_WAVE_MAIL 204 -#define ITEM_BEAD_MAIL 205 -#define ITEM_SHADOW_MAIL 206 -#define ITEM_TROPIC_MAIL 207 -#define ITEM_DREAM_MAIL 208 -#define ITEM_FAB_MAIL 209 -#define ITEM_RETRO_MAIL 210 - -#define FIRST_MAIL_INDEX ITEM_ORANGE_MAIL - -// Evolution Items -#define ITEM_FIRE_STONE 211 -#define ITEM_WATER_STONE 212 -#define ITEM_THUNDER_STONE 213 -#define ITEM_THUNDERSTONE ITEM_THUNDER_STONE // Pre-Gen VI name -#define ITEM_LEAF_STONE 214 -#define ITEM_ICE_STONE 215 -#define ITEM_SUN_STONE 216 -#define ITEM_MOON_STONE 217 -#define ITEM_SHINY_STONE 218 -#define ITEM_DUSK_STONE 219 -#define ITEM_DAWN_STONE 220 -#define ITEM_SWEET_APPLE 221 -#define ITEM_TART_APPLE 222 -#define ITEM_CRACKED_POT 223 -#define ITEM_CHIPPED_POT 224 -#define ITEM_GALARICA_CUFF 225 -#define ITEM_GALARICA_WREATH 226 -#define ITEM_DRAGON_SCALE 227 -#define ITEM_UPGRADE 228 -#define ITEM_UP_GRADE ITEM_UPGRADE // Pre-Gen VIII name -#define ITEM_PROTECTOR 229 -#define ITEM_ELECTIRIZER 230 -#define ITEM_MAGMARIZER 231 -#define ITEM_DUBIOUS_DISC 232 -#define ITEM_REAPER_CLOTH 233 -#define ITEM_PRISM_SCALE 234 -#define ITEM_WHIPPED_DREAM 235 -#define ITEM_SACHET 236 -#define ITEM_OVAL_STONE 237 -#define ITEM_STRAWBERRY_SWEET 238 -#define ITEM_LOVE_SWEET 239 -#define ITEM_BERRY_SWEET 240 -#define ITEM_CLOVER_SWEET 241 -#define ITEM_FLOWER_SWEET 242 -#define ITEM_STAR_SWEET 243 -#define ITEM_RIBBON_SWEET 244 - -#define ITEM_EVERSTONE 245 - -// Nectars -#define ITEM_RED_NECTAR 246 -#define ITEM_YELLOW_NECTAR 247 -#define ITEM_PINK_NECTAR 248 -#define ITEM_PURPLE_NECTAR 249 - -// Plates -#define ITEM_FLAME_PLATE 250 -#define ITEM_SPLASH_PLATE 251 -#define ITEM_ZAP_PLATE 252 -#define ITEM_MEADOW_PLATE 253 -#define ITEM_ICICLE_PLATE 254 -#define ITEM_FIST_PLATE 255 -#define ITEM_TOXIC_PLATE 256 -#define ITEM_EARTH_PLATE 257 -#define ITEM_SKY_PLATE 258 -#define ITEM_MIND_PLATE 259 -#define ITEM_INSECT_PLATE 260 -#define ITEM_STONE_PLATE 261 -#define ITEM_SPOOKY_PLATE 262 -#define ITEM_DRACO_PLATE 263 -#define ITEM_DREAD_PLATE 264 -#define ITEM_IRON_PLATE 265 -#define ITEM_PIXIE_PLATE 266 - -// Drives -#define ITEM_DOUSE_DRIVE 267 -#define ITEM_SHOCK_DRIVE 268 -#define ITEM_BURN_DRIVE 269 -#define ITEM_CHILL_DRIVE 270 - -// Memories -#define ITEM_FIRE_MEMORY 271 -#define ITEM_WATER_MEMORY 272 -#define ITEM_ELECTRIC_MEMORY 273 -#define ITEM_GRASS_MEMORY 274 -#define ITEM_ICE_MEMORY 275 -#define ITEM_FIGHTING_MEMORY 276 -#define ITEM_POISON_MEMORY 277 -#define ITEM_GROUND_MEMORY 278 -#define ITEM_FLYING_MEMORY 279 -#define ITEM_PSYCHIC_MEMORY 280 -#define ITEM_BUG_MEMORY 281 -#define ITEM_ROCK_MEMORY 282 -#define ITEM_GHOST_MEMORY 283 -#define ITEM_DRAGON_MEMORY 284 -#define ITEM_DARK_MEMORY 285 -#define ITEM_STEEL_MEMORY 286 -#define ITEM_FAIRY_MEMORY 287 - -#define ITEM_RUSTED_SWORD 288 -#define ITEM_RUSTED_SHIELD 289 - -// Colored Orbs -#define ITEM_RED_ORB 290 -#define ITEM_BLUE_ORB 291 - -// Mega Stones -#define ITEM_VENUSAURITE 292 -#define ITEM_CHARIZARDITE_X 293 -#define ITEM_CHARIZARDITE_Y 294 -#define ITEM_BLASTOISINITE 295 -#define ITEM_BEEDRILLITE 296 -#define ITEM_PIDGEOTITE 297 -#define ITEM_ALAKAZITE 298 -#define ITEM_SLOWBRONITE 299 -#define ITEM_GENGARITE 300 -#define ITEM_KANGASKHANITE 301 -#define ITEM_PINSIRITE 302 -#define ITEM_GYARADOSITE 303 -#define ITEM_AERODACTYLITE 304 -#define ITEM_MEWTWONITE_X 305 -#define ITEM_MEWTWONITE_Y 306 -#define ITEM_AMPHAROSITE 307 -#define ITEM_STEELIXITE 308 -#define ITEM_SCIZORITE 309 -#define ITEM_HERACRONITE 310 -#define ITEM_HOUNDOOMINITE 311 -#define ITEM_TYRANITARITE 312 -#define ITEM_SCEPTILITE 313 -#define ITEM_BLAZIKENITE 314 -#define ITEM_SWAMPERTITE 315 -#define ITEM_GARDEVOIRITE 316 -#define ITEM_SABLENITE 317 -#define ITEM_MAWILITE 318 -#define ITEM_AGGRONITE 319 -#define ITEM_MEDICHAMITE 320 -#define ITEM_MANECTITE 321 -#define ITEM_SHARPEDONITE 322 -#define ITEM_CAMERUPTITE 323 -#define ITEM_ALTARIANITE 324 -#define ITEM_BANETTITE 325 -#define ITEM_ABSOLITE 326 -#define ITEM_GLALITITE 327 -#define ITEM_SALAMENCITE 328 -#define ITEM_METAGROSSITE 329 -#define ITEM_LATIASITE 330 -#define ITEM_LATIOSITE 331 -#define ITEM_LOPUNNITE 332 -#define ITEM_GARCHOMPITE 333 -#define ITEM_LUCARIONITE 334 -#define ITEM_ABOMASITE 335 -#define ITEM_GALLADITE 336 -#define ITEM_AUDINITE 337 -#define ITEM_DIANCITE 338 - -// Gems -#define ITEM_NORMAL_GEM 339 -#define ITEM_FIRE_GEM 340 -#define ITEM_WATER_GEM 341 -#define ITEM_ELECTRIC_GEM 342 -#define ITEM_GRASS_GEM 343 -#define ITEM_ICE_GEM 344 -#define ITEM_FIGHTING_GEM 345 -#define ITEM_POISON_GEM 346 -#define ITEM_GROUND_GEM 347 -#define ITEM_FLYING_GEM 348 -#define ITEM_PSYCHIC_GEM 349 -#define ITEM_BUG_GEM 350 -#define ITEM_ROCK_GEM 351 -#define ITEM_GHOST_GEM 352 -#define ITEM_DRAGON_GEM 353 -#define ITEM_DARK_GEM 354 -#define ITEM_STEEL_GEM 355 -#define ITEM_FAIRY_GEM 356 - -// Z-Crystals -#define ITEM_NORMALIUM_Z 357 -#define ITEM_FIRIUM_Z 358 -#define ITEM_WATERIUM_Z 359 -#define ITEM_ELECTRIUM_Z 360 -#define ITEM_GRASSIUM_Z 361 -#define ITEM_ICIUM_Z 362 -#define ITEM_FIGHTINIUM_Z 363 -#define ITEM_POISONIUM_Z 364 -#define ITEM_GROUNDIUM_Z 365 -#define ITEM_FLYINIUM_Z 366 -#define ITEM_PSYCHIUM_Z 367 -#define ITEM_BUGINIUM_Z 368 -#define ITEM_ROCKIUM_Z 369 -#define ITEM_GHOSTIUM_Z 370 -#define ITEM_DRAGONIUM_Z 371 -#define ITEM_DARKINIUM_Z 372 -#define ITEM_STEELIUM_Z 373 -#define ITEM_FAIRIUM_Z 374 -#define ITEM_PIKANIUM_Z 375 -#define ITEM_EEVIUM_Z 376 -#define ITEM_SNORLIUM_Z 377 -#define ITEM_MEWNIUM_Z 378 -#define ITEM_DECIDIUM_Z 379 -#define ITEM_INCINIUM_Z 380 -#define ITEM_PRIMARIUM_Z 381 -#define ITEM_LYCANIUM_Z 382 -#define ITEM_MIMIKIUM_Z 383 -#define ITEM_KOMMONIUM_Z 384 -#define ITEM_TAPUNIUM_Z 385 -#define ITEM_SOLGANIUM_Z 386 -#define ITEM_LUNALIUM_Z 387 -#define ITEM_MARSHADIUM_Z 388 -#define ITEM_ALORAICHIUM_Z 389 -#define ITEM_PIKASHUNIUM_Z 390 -#define ITEM_ULTRANECROZIUM_Z 391 - -// Species-specific Held Items -#define ITEM_LIGHT_BALL 392 -#define ITEM_LEEK 393 -#define ITEM_STICK ITEM_LEEK // Pre-Gen VIII name -#define ITEM_THICK_CLUB 394 -#define ITEM_LUCKY_PUNCH 395 -#define ITEM_METAL_POWDER 396 -#define ITEM_QUICK_POWDER 397 -#define ITEM_DEEP_SEA_SCALE 398 -#define ITEM_DEEPSEASCALE ITEM_DEEP_SEA_SCALE // Pre-Gen VI name -#define ITEM_DEEP_SEA_TOOTH 399 -#define ITEM_DEEPSEATOOTH ITEM_DEEP_SEA_TOOTH // Pre-Gen VI name -#define ITEM_SOUL_DEW 400 -#define ITEM_ADAMANT_ORB 401 -#define ITEM_LUSTROUS_ORB 402 -#define ITEM_GRISEOUS_ORB 403 - -// Incenses -#define ITEM_SEA_INCENSE 404 -#define ITEM_LAX_INCENSE 405 -#define ITEM_ODD_INCENSE 406 -#define ITEM_ROCK_INCENSE 407 -#define ITEM_FULL_INCENSE 408 -#define ITEM_WAVE_INCENSE 409 -#define ITEM_ROSE_INCENSE 410 -#define ITEM_LUCK_INCENSE 411 -#define ITEM_PURE_INCENSE 412 - -// Contest Scarves -#define ITEM_RED_SCARF 413 -#define ITEM_BLUE_SCARF 414 -#define ITEM_PINK_SCARF 415 -#define ITEM_GREEN_SCARF 416 -#define ITEM_YELLOW_SCARF 417 - -// EV Gain Modifiers -#define ITEM_MACHO_BRACE 418 -#define ITEM_POWER_WEIGHT 419 -#define ITEM_POWER_BRACER 420 -#define ITEM_POWER_BELT 421 -#define ITEM_POWER_LENS 422 -#define ITEM_POWER_BAND 423 -#define ITEM_POWER_ANKLET 424 - -// Type-boosting Held Items -#define ITEM_SILK_SCARF 425 -#define ITEM_CHARCOAL 426 -#define ITEM_MYSTIC_WATER 427 -#define ITEM_MAGNET 428 -#define ITEM_MIRACLE_SEED 429 -#define ITEM_NEVER_MELT_ICE 430 -#define ITEM_NEVERMELTICE ITEM_NEVER_MELT_ICE // Pre-Gen VI name -#define ITEM_BLACK_BELT 431 -#define ITEM_BLACKBELT ITEM_BLACK_BELT // Gen II name -#define ITEM_POISON_BARB 432 -#define ITEM_SOFT_SAND 433 -#define ITEM_SHARP_BEAK 434 -#define ITEM_TWISTED_SPOON 435 -#define ITEM_TWISTEDSPOON ITEM_TWISTED_SPOON // Pre-Gen VI name -#define ITEM_SILVER_POWDER 436 -#define ITEM_SILVERPOWDER ITEM_SILVER_POWDER // Pre-Gen VI name -#define ITEM_HARD_STONE 437 -#define ITEM_SPELL_TAG 438 -#define ITEM_DRAGON_FANG 439 -#define ITEM_BLACK_GLASSES 440 -#define ITEM_BLACKGLASSES ITEM_BLACK_GLASSES // Pre-Gen VI name -#define ITEM_METAL_COAT 441 - -// Choice Items -#define ITEM_CHOICE_BAND 442 -#define ITEM_CHOICE_SPECS 443 -#define ITEM_CHOICE_SCARF 444 - -// Status Orbs -#define ITEM_FLAME_ORB 445 -#define ITEM_TOXIC_ORB 446 - -// Weather Rocks -#define ITEM_DAMP_ROCK 447 -#define ITEM_HEAT_ROCK 448 -#define ITEM_SMOOTH_ROCK 449 -#define ITEM_ICY_ROCK 450 - -// Terrain Seeds -#define ITEM_ELECTRIC_SEED 451 -#define ITEM_PSYCHIC_SEED 452 -#define ITEM_MISTY_SEED 453 -#define ITEM_GRASSY_SEED 454 - -// Type-activated Stat Modifiers -#define ITEM_ABSORB_BULB 455 -#define ITEM_CELL_BATTERY 456 -#define ITEM_LUMINOUS_MOSS 457 -#define ITEM_SNOWBALL 458 - -// Misc. Held Items -#define ITEM_BRIGHT_POWDER 459 -#define ITEM_BRIGHTPOWDER ITEM_BRIGHT_POWDER // Pre-Gen VI name -#define ITEM_WHITE_HERB 460 -#define ITEM_EXP_SHARE 461 -#define ITEM_EXP_ALL ITEM_EXP_SHARE // Gen I name -#define ITEM_QUICK_CLAW 462 -#define ITEM_SOOTHE_BELL 463 -#define ITEM_MENTAL_HERB 464 -#define ITEM_KINGS_ROCK 465 -#define ITEM_AMULET_COIN 466 -#define ITEM_CLEANSE_TAG 467 -#define ITEM_SMOKE_BALL 468 -#define ITEM_FOCUS_BAND 469 -#define ITEM_LUCKY_EGG 470 -#define ITEM_SCOPE_LENS 471 -#define ITEM_LEFTOVERS 472 -#define ITEM_SHELL_BELL 473 -#define ITEM_WIDE_LENS 474 -#define ITEM_MUSCLE_BAND 475 -#define ITEM_WISE_GLASSES 476 -#define ITEM_EXPERT_BELT 477 -#define ITEM_LIGHT_CLAY 478 -#define ITEM_LIFE_ORB 479 -#define ITEM_POWER_HERB 480 -#define ITEM_FOCUS_SASH 481 -#define ITEM_ZOOM_LENS 482 -#define ITEM_METRONOME 483 -#define ITEM_IRON_BALL 484 -#define ITEM_LAGGING_TAIL 485 -#define ITEM_DESTINY_KNOT 486 -#define ITEM_BLACK_SLUDGE 487 -#define ITEM_GRIP_CLAW 488 -#define ITEM_STICKY_BARB 489 -#define ITEM_SHED_SHELL 490 -#define ITEM_BIG_ROOT 491 -#define ITEM_RAZOR_CLAW 492 -#define ITEM_RAZOR_FANG 493 -#define ITEM_EVIOLITE 494 -#define ITEM_FLOAT_STONE 495 -#define ITEM_ROCKY_HELMET 496 -#define ITEM_AIR_BALLOON 497 -#define ITEM_RED_CARD 498 -#define ITEM_RING_TARGET 499 -#define ITEM_BINDING_BAND 500 -#define ITEM_EJECT_BUTTON 501 -#define ITEM_WEAKNESS_POLICY 502 -#define ITEM_ASSAULT_VEST 503 -#define ITEM_SAFETY_GOGGLES 504 -#define ITEM_ADRENALINE_ORB 505 -#define ITEM_TERRAIN_EXTENDER 506 -#define ITEM_PROTECTIVE_PADS 507 -#define ITEM_THROAT_SPRAY 508 -#define ITEM_EJECT_PACK 509 -#define ITEM_HEAVY_DUTY_BOOTS 510 -#define ITEM_BLUNDER_POLICY 511 -#define ITEM_ROOM_SERVICE 512 -#define ITEM_UTILITY_UMBRELLA 513 - -// Berries +#include "metaprogram.h" +#include "constants/tms_hms.h" + +enum __attribute__((packed)) Item +{ + ITEM_NONE = 0, + + // Poké Balls + ITEM_POKE_BALL = 1, + ITEM_GREAT_BALL = 2, + ITEM_ULTRA_BALL = 3, + ITEM_MASTER_BALL = 4, + ITEM_PREMIER_BALL = 5, + ITEM_HEAL_BALL = 6, + ITEM_NET_BALL = 7, + ITEM_NEST_BALL = 8, + ITEM_DIVE_BALL = 9, + ITEM_DUSK_BALL = 10, + ITEM_TIMER_BALL = 11, + ITEM_QUICK_BALL = 12, + ITEM_REPEAT_BALL = 13, + ITEM_LUXURY_BALL = 14, + ITEM_LEVEL_BALL = 15, + ITEM_LURE_BALL = 16, + ITEM_MOON_BALL = 17, + ITEM_FRIEND_BALL = 18, + ITEM_LOVE_BALL = 19, + ITEM_FAST_BALL = 20, + ITEM_HEAVY_BALL = 21, + ITEM_DREAM_BALL = 22, + ITEM_SAFARI_BALL = 23, + ITEM_SPORT_BALL = 24, + ITEM_PARK_BALL = 25, + ITEM_BEAST_BALL = 26, + ITEM_CHERISH_BALL = 27, + + // Medicine + ITEM_POTION = 28, + ITEM_SUPER_POTION = 29, + ITEM_HYPER_POTION = 30, + ITEM_MAX_POTION = 31, + ITEM_FULL_RESTORE = 32, + ITEM_REVIVE = 33, + ITEM_MAX_REVIVE = 34, + ITEM_FRESH_WATER = 35, + ITEM_SODA_POP = 36, + ITEM_LEMONADE = 37, + ITEM_MOOMOO_MILK = 38, + ITEM_ENERGY_POWDER = 39, + ITEM_ENERGYPOWDER = ITEM_ENERGY_POWDER, // Pre-Gen VI name + ITEM_ENERGY_ROOT = 40, + ITEM_HEAL_POWDER = 41, + ITEM_REVIVAL_HERB = 42, + ITEM_ANTIDOTE = 43, + ITEM_PARALYZE_HEAL = 44, + ITEM_PARLYZ_HEAL = ITEM_PARALYZE_HEAL, // Pre-Gen VI name + ITEM_BURN_HEAL = 45, + ITEM_ICE_HEAL = 46, + ITEM_AWAKENING = 47, + ITEM_FULL_HEAL = 48, + ITEM_ETHER = 49, + ITEM_MAX_ETHER = 50, + ITEM_ELIXIR = 51, + ITEM_ELIXER = ITEM_ELIXIR, // Pre-Gen III name + ITEM_MAX_ELIXIR = 52, + ITEM_MAX_ELIXER = ITEM_MAX_ELIXIR, // Pre-Gen III name + ITEM_BERRY_JUICE = 53, + ITEM_SACRED_ASH = 54, + ITEM_SWEET_HEART = 55, + ITEM_MAX_HONEY = 56, + + // Regional Specialties + ITEM_PEWTER_CRUNCHIES = 57, + ITEM_RAGE_CANDY_BAR = 58, + ITEM_RAGECANDYBAR = ITEM_RAGE_CANDY_BAR, // Pre-Gen VI name + ITEM_LAVA_COOKIE = 59, + ITEM_OLD_GATEAU = 60, + ITEM_CASTELIACONE = 61, + ITEM_LUMIOSE_GALETTE = 62, + ITEM_SHALOUR_SABLE = 63, + ITEM_BIG_MALASADA = 64, + + // Vitamins + ITEM_HP_UP = 65, + ITEM_PROTEIN = 66, + ITEM_IRON = 67, + ITEM_CALCIUM = 68, + ITEM_ZINC = 69, + ITEM_CARBOS = 70, + ITEM_PP_UP = 71, + ITEM_PP_MAX = 72, + + // EV Feathers + ITEM_HEALTH_FEATHER = 73, + ITEM_HEALTH_WING = ITEM_HEALTH_FEATHER, // Pre-Gen VIII name + ITEM_MUSCLE_FEATHER = 74, + ITEM_MUSCLE_WING = ITEM_MUSCLE_FEATHER, // Pre-Gen VIII name + ITEM_RESIST_FEATHER = 75, + ITEM_RESIST_WING = ITEM_RESIST_FEATHER, // Pre-Gen VIII name + ITEM_GENIUS_FEATHER = 76, + ITEM_GENIUS_WING = ITEM_GENIUS_FEATHER, // Pre-Gen VIII name + ITEM_CLEVER_FEATHER = 77, + ITEM_CLEVER_WING = ITEM_CLEVER_FEATHER, // Pre-Gen VIII name + ITEM_SWIFT_FEATHER = 78, + ITEM_SWIFT_WING = ITEM_SWIFT_FEATHER, // Pre-Gen VIII name + + // Ability Modifiers + ITEM_ABILITY_CAPSULE = 79, + ITEM_ABILITY_PATCH = 80, + + // Mints + ITEM_LONELY_MINT = 81, + ITEM_ADAMANT_MINT = 82, + ITEM_NAUGHTY_MINT = 83, + ITEM_BRAVE_MINT = 84, + ITEM_BOLD_MINT = 85, + ITEM_IMPISH_MINT = 86, + ITEM_LAX_MINT = 87, + ITEM_RELAXED_MINT = 88, + ITEM_MODEST_MINT = 89, + ITEM_MILD_MINT = 90, + ITEM_RASH_MINT = 91, + ITEM_QUIET_MINT = 92, + ITEM_CALM_MINT = 93, + ITEM_GENTLE_MINT = 94, + ITEM_CAREFUL_MINT = 95, + ITEM_SASSY_MINT = 96, + ITEM_TIMID_MINT = 97, + ITEM_HASTY_MINT = 98, + ITEM_JOLLY_MINT = 99, + ITEM_NAIVE_MINT = 100, + ITEM_SERIOUS_MINT = 101, + + // Candy + ITEM_RARE_CANDY = 102, + ITEM_EXP_CANDY_XS = 103, + ITEM_EXP_CANDY_S = 104, + ITEM_EXP_CANDY_M = 105, + ITEM_EXP_CANDY_L = 106, + ITEM_EXP_CANDY_XL = 107, + ITEM_DYNAMAX_CANDY = 108, + + // Medicinal Flutes + ITEM_BLUE_FLUTE = 109, + ITEM_YELLOW_FLUTE = 110, + ITEM_RED_FLUTE = 111, + + // Encounter-modifying Flutes + ITEM_BLACK_FLUTE = 112, + ITEM_WHITE_FLUTE = 113, + + // Encounter Modifiers + ITEM_REPEL = 114, + ITEM_SUPER_REPEL = 115, + ITEM_MAX_REPEL = 116, + ITEM_LURE = 117, + ITEM_SUPER_LURE = 118, + ITEM_MAX_LURE = 119, + + ITEM_ESCAPE_ROPE = 120, + + // X Items + ITEM_X_ATTACK = 121, + ITEM_X_DEFENSE = 122, + ITEM_X_DEFEND = ITEM_X_DEFENSE, // Pre-Gen VI name + ITEM_X_SP_ATK = 123, + ITEM_X_SPECIAL = ITEM_X_SP_ATK, // Pre-Gen VI name + ITEM_X_SP_DEF = 124, + ITEM_X_SPEED = 125, + ITEM_X_ACCURACY = 126, + + ITEM_DIRE_HIT = 127, + ITEM_GUARD_SPEC = 128, + + // Escape Items + ITEM_POKE_DOLL = 129, + ITEM_FLUFFY_TAIL = 130, + ITEM_POKE_TOY = 131, + + ITEM_MAX_MUSHROOMS = 132, + + // Treasures + ITEM_BOTTLE_CAP = 133, + ITEM_GOLD_BOTTLE_CAP = 134, + ITEM_NUGGET = 135, + ITEM_BIG_NUGGET = 136, + ITEM_TINY_MUSHROOM = 137, + ITEM_TINYMUSHROOM = ITEM_TINY_MUSHROOM, // Pre-Gen VI name + ITEM_BIG_MUSHROOM = 138, + ITEM_BALM_MUSHROOM = 139, + ITEM_BALMMUSHROOM = ITEM_BALM_MUSHROOM, // Pre-Gen VI name + ITEM_PEARL = 140, + ITEM_BIG_PEARL = 141, + ITEM_PEARL_STRING = 142, + ITEM_STARDUST = 143, + ITEM_STAR_PIECE = 144, + ITEM_COMET_SHARD = 145, + ITEM_SHOAL_SALT = 146, + ITEM_SHOAL_SHELL = 147, + ITEM_RED_SHARD = 148, + ITEM_BLUE_SHARD = 149, + ITEM_YELLOW_SHARD = 150, + ITEM_GREEN_SHARD = 151, + ITEM_HEART_SCALE = 152, + ITEM_HONEY = 153, + ITEM_RARE_BONE = 154, + ITEM_ODD_KEYSTONE = 155, + ITEM_PRETTY_FEATHER = 156, + ITEM_PRETTY_WING = ITEM_PRETTY_FEATHER, // Pre-Gen VIII name + ITEM_RELIC_COPPER = 157, + ITEM_RELIC_SILVER = 158, + ITEM_RELIC_GOLD = 159, + ITEM_RELIC_VASE = 160, + ITEM_RELIC_BAND = 161, + ITEM_RELIC_STATUE = 162, + ITEM_RELIC_CROWN = 163, + ITEM_STRANGE_SOUVENIR = 164, + + // Fossils + ITEM_HELIX_FOSSIL = 165, + ITEM_DOME_FOSSIL = 166, + ITEM_OLD_AMBER = 167, + ITEM_ROOT_FOSSIL = 168, + ITEM_CLAW_FOSSIL = 169, + ITEM_ARMOR_FOSSIL = 170, + ITEM_SKULL_FOSSIL = 171, + ITEM_COVER_FOSSIL = 172, + ITEM_PLUME_FOSSIL = 173, + ITEM_JAW_FOSSIL = 174, + ITEM_SAIL_FOSSIL = 175, + ITEM_FOSSILIZED_BIRD = 176, + ITEM_FOSSILIZED_FISH = 177, + ITEM_FOSSILIZED_DRAKE = 178, + ITEM_FOSSILIZED_DINO = 179, + + // Mulch + ITEM_GROWTH_MULCH = 180, + ITEM_DAMP_MULCH = 181, + ITEM_STABLE_MULCH = 182, + ITEM_GOOEY_MULCH = 183, + ITEM_RICH_MULCH = 184, + ITEM_SURPRISE_MULCH = 185, + ITEM_BOOST_MULCH = 186, + ITEM_AMAZE_MULCH = 187, + + // Apricorns + ITEM_RED_APRICORN = 188, + ITEM_BLUE_APRICORN = 189, + ITEM_BLU_APRICORN = ITEM_BLUE_APRICORN, // Pre-Gen VI name + ITEM_YELLOW_APRICORN = 190, + ITEM_YLW_APRICORN = ITEM_YELLOW_APRICORN, // Pre-Gen VI name + ITEM_GREEN_APRICORN = 191, + ITEM_GRN_APRICORN = ITEM_GREEN_APRICORN, // Pre-Gen VI name + ITEM_PINK_APRICORN = 192, + ITEM_PNK_APRICORN = ITEM_PINK_APRICORN, // Pre-Gen VI name + ITEM_WHITE_APRICORN = 193, + ITEM_WHT_APRICORN = ITEM_WHITE_APRICORN, // Pre-Gen VI name + ITEM_BLACK_APRICORN = 194, + ITEM_BLK_APRICORN = ITEM_BLACK_APRICORN, // Pre-Gen VI name + + ITEM_WISHING_PIECE = 195, + ITEM_GALARICA_TWIG = 196, + ITEM_ARMORITE_ORE = 197, + ITEM_DYNITE_ORE = 198, + + // Mail + FIRST_MAIL_INDEX = 199, + ITEM_ORANGE_MAIL = FIRST_MAIL_INDEX, + ITEM_HARBOR_MAIL = 200, + ITEM_GLITTER_MAIL = 201, + ITEM_MECH_MAIL = 202, + ITEM_WOOD_MAIL = 203, + ITEM_WAVE_MAIL = 204, + ITEM_BEAD_MAIL = 205, + ITEM_SHADOW_MAIL = 206, + ITEM_TROPIC_MAIL = 207, + ITEM_DREAM_MAIL = 208, + ITEM_FAB_MAIL = 209, + ITEM_RETRO_MAIL = 210, + + // Evolution Items + ITEM_FIRE_STONE = 211, + ITEM_WATER_STONE = 212, + ITEM_THUNDER_STONE = 213, + ITEM_THUNDERSTONE = ITEM_THUNDER_STONE, // Pre-Gen VI name + ITEM_LEAF_STONE = 214, + ITEM_ICE_STONE = 215, + ITEM_SUN_STONE = 216, + ITEM_MOON_STONE = 217, + ITEM_SHINY_STONE = 218, + ITEM_DUSK_STONE = 219, + ITEM_DAWN_STONE = 220, + ITEM_SWEET_APPLE = 221, + ITEM_TART_APPLE = 222, + ITEM_CRACKED_POT = 223, + ITEM_CHIPPED_POT = 224, + ITEM_GALARICA_CUFF = 225, + ITEM_GALARICA_WREATH = 226, + ITEM_DRAGON_SCALE = 227, + ITEM_UPGRADE = 228, + ITEM_UP_GRADE = ITEM_UPGRADE, // Pre-Gen VIII name + ITEM_PROTECTOR = 229, + ITEM_ELECTIRIZER = 230, + ITEM_MAGMARIZER = 231, + ITEM_DUBIOUS_DISC = 232, + ITEM_REAPER_CLOTH = 233, + ITEM_PRISM_SCALE = 234, + ITEM_WHIPPED_DREAM = 235, + ITEM_SACHET = 236, + ITEM_OVAL_STONE = 237, + ITEM_STRAWBERRY_SWEET = 238, + ITEM_LOVE_SWEET = 239, + ITEM_BERRY_SWEET = 240, + ITEM_CLOVER_SWEET = 241, + ITEM_FLOWER_SWEET = 242, + ITEM_STAR_SWEET = 243, + ITEM_RIBBON_SWEET = 244, + + ITEM_EVERSTONE = 245, + + // Nectars + ITEM_RED_NECTAR = 246, + ITEM_YELLOW_NECTAR = 247, + ITEM_PINK_NECTAR = 248, + ITEM_PURPLE_NECTAR = 249, + + // Plates + ITEM_FLAME_PLATE = 250, + ITEM_SPLASH_PLATE = 251, + ITEM_ZAP_PLATE = 252, + ITEM_MEADOW_PLATE = 253, + ITEM_ICICLE_PLATE = 254, + ITEM_FIST_PLATE = 255, + ITEM_TOXIC_PLATE = 256, + ITEM_EARTH_PLATE = 257, + ITEM_SKY_PLATE = 258, + ITEM_MIND_PLATE = 259, + ITEM_INSECT_PLATE = 260, + ITEM_STONE_PLATE = 261, + ITEM_SPOOKY_PLATE = 262, + ITEM_DRACO_PLATE = 263, + ITEM_DREAD_PLATE = 264, + ITEM_IRON_PLATE = 265, + ITEM_PIXIE_PLATE = 266, + + // Drives + ITEM_DOUSE_DRIVE = 267, + ITEM_SHOCK_DRIVE = 268, + ITEM_BURN_DRIVE = 269, + ITEM_CHILL_DRIVE = 270, + + // Memories + ITEM_FIRE_MEMORY = 271, + ITEM_WATER_MEMORY = 272, + ITEM_ELECTRIC_MEMORY = 273, + ITEM_GRASS_MEMORY = 274, + ITEM_ICE_MEMORY = 275, + ITEM_FIGHTING_MEMORY = 276, + ITEM_POISON_MEMORY = 277, + ITEM_GROUND_MEMORY = 278, + ITEM_FLYING_MEMORY = 279, + ITEM_PSYCHIC_MEMORY = 280, + ITEM_BUG_MEMORY = 281, + ITEM_ROCK_MEMORY = 282, + ITEM_GHOST_MEMORY = 283, + ITEM_DRAGON_MEMORY = 284, + ITEM_DARK_MEMORY = 285, + ITEM_STEEL_MEMORY = 286, + ITEM_FAIRY_MEMORY = 287, + + ITEM_RUSTED_SWORD = 288, + ITEM_RUSTED_SHIELD = 289, + + // Colored Orbs + ITEM_RED_ORB = 290, + ITEM_BLUE_ORB = 291, + + // Mega Stones + ITEM_VENUSAURITE = 292, + ITEM_CHARIZARDITE_X = 293, + ITEM_CHARIZARDITE_Y = 294, + ITEM_BLASTOISINITE = 295, + ITEM_BEEDRILLITE = 296, + ITEM_PIDGEOTITE = 297, + ITEM_ALAKAZITE = 298, + ITEM_SLOWBRONITE = 299, + ITEM_GENGARITE = 300, + ITEM_KANGASKHANITE = 301, + ITEM_PINSIRITE = 302, + ITEM_GYARADOSITE = 303, + ITEM_AERODACTYLITE = 304, + ITEM_MEWTWONITE_X = 305, + ITEM_MEWTWONITE_Y = 306, + ITEM_AMPHAROSITE = 307, + ITEM_STEELIXITE = 308, + ITEM_SCIZORITE = 309, + ITEM_HERACRONITE = 310, + ITEM_HOUNDOOMINITE = 311, + ITEM_TYRANITARITE = 312, + ITEM_SCEPTILITE = 313, + ITEM_BLAZIKENITE = 314, + ITEM_SWAMPERTITE = 315, + ITEM_GARDEVOIRITE = 316, + ITEM_SABLENITE = 317, + ITEM_MAWILITE = 318, + ITEM_AGGRONITE = 319, + ITEM_MEDICHAMITE = 320, + ITEM_MANECTITE = 321, + ITEM_SHARPEDONITE = 322, + ITEM_CAMERUPTITE = 323, + ITEM_ALTARIANITE = 324, + ITEM_BANETTITE = 325, + ITEM_ABSOLITE = 326, + ITEM_GLALITITE = 327, + ITEM_SALAMENCITE = 328, + ITEM_METAGROSSITE = 329, + ITEM_LATIASITE = 330, + ITEM_LATIOSITE = 331, + ITEM_LOPUNNITE = 332, + ITEM_GARCHOMPITE = 333, + ITEM_LUCARIONITE = 334, + ITEM_ABOMASITE = 335, + ITEM_GALLADITE = 336, + ITEM_AUDINITE = 337, + ITEM_DIANCITE = 338, + + // Gems + ITEM_NORMAL_GEM = 339, + ITEM_FIRE_GEM = 340, + ITEM_WATER_GEM = 341, + ITEM_ELECTRIC_GEM = 342, + ITEM_GRASS_GEM = 343, + ITEM_ICE_GEM = 344, + ITEM_FIGHTING_GEM = 345, + ITEM_POISON_GEM = 346, + ITEM_GROUND_GEM = 347, + ITEM_FLYING_GEM = 348, + ITEM_PSYCHIC_GEM = 349, + ITEM_BUG_GEM = 350, + ITEM_ROCK_GEM = 351, + ITEM_GHOST_GEM = 352, + ITEM_DRAGON_GEM = 353, + ITEM_DARK_GEM = 354, + ITEM_STEEL_GEM = 355, + ITEM_FAIRY_GEM = 356, + + // Z-Crystals + ITEM_NORMALIUM_Z = 357, + ITEM_FIRIUM_Z = 358, + ITEM_WATERIUM_Z = 359, + ITEM_ELECTRIUM_Z = 360, + ITEM_GRASSIUM_Z = 361, + ITEM_ICIUM_Z = 362, + ITEM_FIGHTINIUM_Z = 363, + ITEM_POISONIUM_Z = 364, + ITEM_GROUNDIUM_Z = 365, + ITEM_FLYINIUM_Z = 366, + ITEM_PSYCHIUM_Z = 367, + ITEM_BUGINIUM_Z = 368, + ITEM_ROCKIUM_Z = 369, + ITEM_GHOSTIUM_Z = 370, + ITEM_DRAGONIUM_Z = 371, + ITEM_DARKINIUM_Z = 372, + ITEM_STEELIUM_Z = 373, + ITEM_FAIRIUM_Z = 374, + ITEM_PIKANIUM_Z = 375, + ITEM_EEVIUM_Z = 376, + ITEM_SNORLIUM_Z = 377, + ITEM_MEWNIUM_Z = 378, + ITEM_DECIDIUM_Z = 379, + ITEM_INCINIUM_Z = 380, + ITEM_PRIMARIUM_Z = 381, + ITEM_LYCANIUM_Z = 382, + ITEM_MIMIKIUM_Z = 383, + ITEM_KOMMONIUM_Z = 384, + ITEM_TAPUNIUM_Z = 385, + ITEM_SOLGANIUM_Z = 386, + ITEM_LUNALIUM_Z = 387, + ITEM_MARSHADIUM_Z = 388, + ITEM_ALORAICHIUM_Z = 389, + ITEM_PIKASHUNIUM_Z = 390, + ITEM_ULTRANECROZIUM_Z = 391, + + // Species-specific Held Items + ITEM_LIGHT_BALL = 392, + ITEM_LEEK = 393, + ITEM_STICK = ITEM_LEEK, // Pre-Gen VIII name + ITEM_THICK_CLUB = 394, + ITEM_LUCKY_PUNCH = 395, + ITEM_METAL_POWDER = 396, + ITEM_QUICK_POWDER = 397, + ITEM_DEEP_SEA_SCALE = 398, + ITEM_DEEPSEASCALE = ITEM_DEEP_SEA_SCALE, // Pre-Gen VI name + ITEM_DEEP_SEA_TOOTH = 399, + ITEM_DEEPSEATOOTH = ITEM_DEEP_SEA_TOOTH, // Pre-Gen VI name + ITEM_SOUL_DEW = 400, + ITEM_ADAMANT_ORB = 401, + ITEM_LUSTROUS_ORB = 402, + ITEM_GRISEOUS_ORB = 403, + + // Incenses + ITEM_SEA_INCENSE = 404, + ITEM_LAX_INCENSE = 405, + ITEM_ODD_INCENSE = 406, + ITEM_ROCK_INCENSE = 407, + ITEM_FULL_INCENSE = 408, + ITEM_WAVE_INCENSE = 409, + ITEM_ROSE_INCENSE = 410, + ITEM_LUCK_INCENSE = 411, + ITEM_PURE_INCENSE = 412, + + // Contest Scarves + ITEM_RED_SCARF = 413, + ITEM_BLUE_SCARF = 414, + ITEM_PINK_SCARF = 415, + ITEM_GREEN_SCARF = 416, + ITEM_YELLOW_SCARF = 417, + + // EV Gain Modifiers + ITEM_MACHO_BRACE = 418, + ITEM_POWER_WEIGHT = 419, + ITEM_POWER_BRACER = 420, + ITEM_POWER_BELT = 421, + ITEM_POWER_LENS = 422, + ITEM_POWER_BAND = 423, + ITEM_POWER_ANKLET = 424, + + // Type-boosting Held Items + ITEM_SILK_SCARF = 425, + ITEM_CHARCOAL = 426, + ITEM_MYSTIC_WATER = 427, + ITEM_MAGNET = 428, + ITEM_MIRACLE_SEED = 429, + ITEM_NEVER_MELT_ICE = 430, + ITEM_NEVERMELTICE = ITEM_NEVER_MELT_ICE, // Pre-Gen VI name + ITEM_BLACK_BELT = 431, + ITEM_BLACKBELT = ITEM_BLACK_BELT, // Gen II name + ITEM_POISON_BARB = 432, + ITEM_SOFT_SAND = 433, + ITEM_SHARP_BEAK = 434, + ITEM_TWISTED_SPOON = 435, + ITEM_TWISTEDSPOON = ITEM_TWISTED_SPOON, // Pre-Gen VI name + ITEM_SILVER_POWDER = 436, + ITEM_SILVERPOWDER = ITEM_SILVER_POWDER, // Pre-Gen VI name + ITEM_HARD_STONE = 437, + ITEM_SPELL_TAG = 438, + ITEM_DRAGON_FANG = 439, + ITEM_BLACK_GLASSES = 440, + ITEM_BLACKGLASSES = ITEM_BLACK_GLASSES, // Pre-Gen VI name + ITEM_METAL_COAT = 441, + + // Choice Items + ITEM_CHOICE_BAND = 442, + ITEM_CHOICE_SPECS = 443, + ITEM_CHOICE_SCARF = 444, + + // Status Orbs + ITEM_FLAME_ORB = 445, + ITEM_TOXIC_ORB = 446, + + // Weather Rocks + ITEM_DAMP_ROCK = 447, + ITEM_HEAT_ROCK = 448, + ITEM_SMOOTH_ROCK = 449, + ITEM_ICY_ROCK = 450, + + // Terrain Seeds + ITEM_ELECTRIC_SEED = 451, + ITEM_PSYCHIC_SEED = 452, + ITEM_MISTY_SEED = 453, + ITEM_GRASSY_SEED = 454, + + // Type-activated Stat Modifiers + ITEM_ABSORB_BULB = 455, + ITEM_CELL_BATTERY = 456, + ITEM_LUMINOUS_MOSS = 457, + ITEM_SNOWBALL = 458, + + // Misc. Held Items + ITEM_BRIGHT_POWDER = 459, + ITEM_BRIGHTPOWDER = ITEM_BRIGHT_POWDER, // Pre-Gen VI name + ITEM_WHITE_HERB = 460, + ITEM_EXP_SHARE = 461, + ITEM_EXP_ALL = ITEM_EXP_SHARE, // Gen I name + ITEM_QUICK_CLAW = 462, + ITEM_SOOTHE_BELL = 463, + ITEM_MENTAL_HERB = 464, + ITEM_KINGS_ROCK = 465, + ITEM_AMULET_COIN = 466, + ITEM_CLEANSE_TAG = 467, + ITEM_SMOKE_BALL = 468, + ITEM_FOCUS_BAND = 469, + ITEM_LUCKY_EGG = 470, + ITEM_SCOPE_LENS = 471, + ITEM_LEFTOVERS = 472, + ITEM_SHELL_BELL = 473, + ITEM_WIDE_LENS = 474, + ITEM_MUSCLE_BAND = 475, + ITEM_WISE_GLASSES = 476, + ITEM_EXPERT_BELT = 477, + ITEM_LIGHT_CLAY = 478, + ITEM_LIFE_ORB = 479, + ITEM_POWER_HERB = 480, + ITEM_FOCUS_SASH = 481, + ITEM_ZOOM_LENS = 482, + ITEM_METRONOME = 483, + ITEM_IRON_BALL = 484, + ITEM_LAGGING_TAIL = 485, + ITEM_DESTINY_KNOT = 486, + ITEM_BLACK_SLUDGE = 487, + ITEM_GRIP_CLAW = 488, + ITEM_STICKY_BARB = 489, + ITEM_SHED_SHELL = 490, + ITEM_BIG_ROOT = 491, + ITEM_RAZOR_CLAW = 492, + ITEM_RAZOR_FANG = 493, + ITEM_EVIOLITE = 494, + ITEM_FLOAT_STONE = 495, + ITEM_ROCKY_HELMET = 496, + ITEM_AIR_BALLOON = 497, + ITEM_RED_CARD = 498, + ITEM_RING_TARGET = 499, + ITEM_BINDING_BAND = 500, + ITEM_EJECT_BUTTON = 501, + ITEM_WEAKNESS_POLICY = 502, + ITEM_ASSAULT_VEST = 503, + ITEM_SAFETY_GOGGLES = 504, + ITEM_ADRENALINE_ORB = 505, + ITEM_TERRAIN_EXTENDER = 506, + ITEM_PROTECTIVE_PADS = 507, + ITEM_THROAT_SPRAY = 508, + ITEM_EJECT_PACK = 509, + ITEM_HEAVY_DUTY_BOOTS = 510, + ITEM_BLUNDER_POLICY = 511, + ITEM_ROOM_SERVICE = 512, + ITEM_UTILITY_UMBRELLA = 513, + + // Berries + FIRST_BERRY_INDEX = 514, + ITEM_CHERI_BERRY = FIRST_BERRY_INDEX, + ITEM_CHESTO_BERRY = 515, + ITEM_PECHA_BERRY = 516, + ITEM_RAWST_BERRY = 517, + ITEM_ASPEAR_BERRY = 518, + ITEM_LEPPA_BERRY = 519, + ITEM_ORAN_BERRY = 520, + ITEM_PERSIM_BERRY = 521, + ITEM_LUM_BERRY = 522, + ITEM_SITRUS_BERRY = 523, + ITEM_FIGY_BERRY = 524, + ITEM_WIKI_BERRY = 525, + ITEM_MAGO_BERRY = 526, + ITEM_AGUAV_BERRY = 527, + ITEM_IAPAPA_BERRY = 528, + ITEM_RAZZ_BERRY = 529, + ITEM_BLUK_BERRY = 530, + ITEM_NANAB_BERRY = 531, + ITEM_WEPEAR_BERRY = 532, + ITEM_PINAP_BERRY = 533, + ITEM_POMEG_BERRY = 534, + ITEM_KELPSY_BERRY = 535, + ITEM_QUALOT_BERRY = 536, + ITEM_HONDEW_BERRY = 537, + ITEM_GREPA_BERRY = 538, + ITEM_TAMATO_BERRY = 539, + ITEM_CORNN_BERRY = 540, + ITEM_MAGOST_BERRY = 541, + ITEM_RABUTA_BERRY = 542, + ITEM_NOMEL_BERRY = 543, + ITEM_SPELON_BERRY = 544, + ITEM_PAMTRE_BERRY = 545, + ITEM_WATMEL_BERRY = 546, + ITEM_DURIN_BERRY = 547, + ITEM_BELUE_BERRY = 548, + ITEM_CHILAN_BERRY = 549, + ITEM_OCCA_BERRY = 550, + ITEM_PASSHO_BERRY = 551, + ITEM_WACAN_BERRY = 552, + ITEM_RINDO_BERRY = 553, + ITEM_YACHE_BERRY = 554, + ITEM_CHOPLE_BERRY = 555, + ITEM_KEBIA_BERRY = 556, + ITEM_SHUCA_BERRY = 557, + ITEM_COBA_BERRY = 558, + ITEM_PAYAPA_BERRY = 559, + ITEM_TANGA_BERRY = 560, + ITEM_CHARTI_BERRY = 561, + ITEM_KASIB_BERRY = 562, + ITEM_HABAN_BERRY = 563, + ITEM_COLBUR_BERRY = 564, + ITEM_BABIRI_BERRY = 565, + ITEM_ROSELI_BERRY = 566, + ITEM_LIECHI_BERRY = 567, + ITEM_GANLON_BERRY = 568, + ITEM_SALAC_BERRY = 569, + ITEM_PETAYA_BERRY = 570, + ITEM_APICOT_BERRY = 571, + ITEM_LANSAT_BERRY = 572, + ITEM_STARF_BERRY = 573, + ITEM_ENIGMA_BERRY = 574, + ITEM_MICLE_BERRY = 575, + ITEM_CUSTAP_BERRY = 576, + ITEM_JABOCA_BERRY = 577, + ITEM_ROWAP_BERRY = 578, + ITEM_KEE_BERRY = 579, + ITEM_MARANGA_BERRY = 580, + ITEM_ENIGMA_BERRY_E_READER = 581, + LAST_BERRY_INDEX = ITEM_ENIGMA_BERRY_E_READER, + + // TMs/HMs + ITEM_TM01 = 582, + ITEM_TM02 = 583, + ITEM_TM03 = 584, + ITEM_TM04 = 585, + ITEM_TM05 = 586, + ITEM_TM06 = 587, + ITEM_TM07 = 588, + ITEM_TM08 = 589, + ITEM_TM09 = 590, + ITEM_TM10 = 591, + ITEM_TM11 = 592, + ITEM_TM12 = 593, + ITEM_TM13 = 594, + ITEM_TM14 = 595, + ITEM_TM15 = 596, + ITEM_TM16 = 597, + ITEM_TM17 = 598, + ITEM_TM18 = 599, + ITEM_TM19 = 600, + ITEM_TM20 = 601, + ITEM_TM21 = 602, + ITEM_TM22 = 603, + ITEM_TM23 = 604, + ITEM_TM24 = 605, + ITEM_TM25 = 606, + ITEM_TM26 = 607, + ITEM_TM27 = 608, + ITEM_TM28 = 609, + ITEM_TM29 = 610, + ITEM_TM30 = 611, + ITEM_TM31 = 612, + ITEM_TM32 = 613, + ITEM_TM33 = 614, + ITEM_TM34 = 615, + ITEM_TM35 = 616, + ITEM_TM36 = 617, + ITEM_TM37 = 618, + ITEM_TM38 = 619, + ITEM_TM39 = 620, + ITEM_TM40 = 621, + ITEM_TM41 = 622, + ITEM_TM42 = 623, + ITEM_TM43 = 624, + ITEM_TM44 = 625, + ITEM_TM45 = 626, + ITEM_TM46 = 627, + ITEM_TM47 = 628, + ITEM_TM48 = 629, + ITEM_TM49 = 630, + ITEM_TM50 = 631, + ITEM_TM51 = 632, + ITEM_TM52 = 633, + ITEM_TM53 = 634, + ITEM_TM54 = 635, + ITEM_TM55 = 636, + ITEM_TM56 = 637, + ITEM_TM57 = 638, + ITEM_TM58 = 639, + ITEM_TM59 = 640, + ITEM_TM60 = 641, + ITEM_TM61 = 642, + ITEM_TM62 = 643, + ITEM_TM63 = 644, + ITEM_TM64 = 645, + ITEM_TM65 = 646, + ITEM_TM66 = 647, + ITEM_TM67 = 648, + ITEM_TM68 = 649, + ITEM_TM69 = 650, + ITEM_TM70 = 651, + ITEM_TM71 = 652, + ITEM_TM72 = 653, + ITEM_TM73 = 654, + ITEM_TM74 = 655, + ITEM_TM75 = 656, + ITEM_TM76 = 657, + ITEM_TM77 = 658, + ITEM_TM78 = 659, + ITEM_TM79 = 660, + ITEM_TM80 = 661, + ITEM_TM81 = 662, + ITEM_TM82 = 663, + ITEM_TM83 = 664, + ITEM_TM84 = 665, + ITEM_TM85 = 666, + ITEM_TM86 = 667, + ITEM_TM87 = 668, + ITEM_TM88 = 669, + ITEM_TM89 = 670, + ITEM_TM90 = 671, + ITEM_TM91 = 672, + ITEM_TM92 = 673, + ITEM_TM93 = 674, + ITEM_TM94 = 675, + ITEM_TM95 = 676, + ITEM_TM96 = 677, + ITEM_TM97 = 678, + ITEM_TM98 = 679, + ITEM_TM99 = 680, + ITEM_TM100 = 681, + + ITEM_HM01 = 682, + ITEM_HM02 = 683, + ITEM_HM03 = 684, + ITEM_HM04 = 685, + ITEM_HM05 = 686, + ITEM_HM06 = 687, + ITEM_HM07 = 688, + ITEM_HM08 = 689, + + + /* Expands to: + * ITEM_TM_FOCUS_PUNCH = ITEM_TM01, + * ... + * ITEM_HM_CUT = ITM_HM01, + * ... */ + #define ENUM_TM(n, id) CAT(ITEM_TM_, id) = CAT(ITEM_TM, n), + #define ENUM_HM(n, id) CAT(ITEM_HM_, id) = CAT(ITEM_HM, n), + #define TO_TMHM_NUMS(a, ...) (__VA_ARGS__) + RECURSIVELY(R_ZIP(ENUM_TM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_TM(APPEND_COMMA)))) + RECURSIVELY(R_ZIP(ENUM_HM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_HM(APPEND_COMMA)))) + #undef ENUM_TM + #undef ENUM_HM + #undef TO_TMHM_NUMS + + // Charms + ITEM_OVAL_CHARM = 690, + ITEM_SHINY_CHARM = 691, + ITEM_CATCHING_CHARM = 692, + ITEM_EXP_CHARM = 693, + + // Form-changing Key Items + ITEM_ROTOM_CATALOG = 694, + ITEM_GRACIDEA = 695, + ITEM_REVEAL_GLASS = 696, + ITEM_DNA_SPLICERS = 697, + ITEM_ZYGARDE_CUBE = 698, + ITEM_PRISON_BOTTLE = 699, + ITEM_N_SOLARIZER = 700, + ITEM_N_LUNARIZER = 701, + ITEM_REINS_OF_UNITY = 702, + + // Battle Mechanic Key Items + ITEM_MEGA_RING = 703, + ITEM_Z_POWER_RING = 704, + ITEM_DYNAMAX_BAND = 705, + + // Misc. Key Items + ITEM_BICYCLE = 706, + ITEM_MACH_BIKE = 707, + ITEM_ACRO_BIKE = 708, + ITEM_OLD_ROD = 709, + ITEM_GOOD_ROD = 710, + ITEM_SUPER_ROD = 711, + ITEM_DOWSING_MACHINE = 712, + ITEM_ITEMFINDER = ITEM_DOWSING_MACHINE, // Pre-Gen IV name + ITEM_DOWSING_MCHN = ITEM_DOWSING_MACHINE, // Gen IV-V name + ITEM_TOWN_MAP = 713, + ITEM_VS_SEEKER = 714, + ITEM_TM_CASE = 715, + ITEM_BERRY_POUCH = 716, + ITEM_POKEMON_BOX_LINK = 717, + ITEM_POKEMON_BOX = ITEM_POKEMON_BOX_LINK, // Pre-Gen VIII name + ITEM_COIN_CASE = 718, + ITEM_POWDER_JAR = 719, + ITEM_WAILMER_PAIL = 720, + ITEM_POKE_RADAR = 721, + ITEM_POKEBLOCK_CASE = 722, + ITEM_SOOT_SACK = 723, + ITEM_POKE_FLUTE = 724, + ITEM_FAME_CHECKER = 725, + ITEM_TEACHY_TV = 726, + + // Story Key Items + ITEM_SS_TICKET = 727, + ITEM_EON_TICKET = 728, + ITEM_MYSTIC_TICKET = 729, + ITEM_AURORA_TICKET = 730, + ITEM_OLD_SEA_MAP = 731, + ITEM_LETTER = 732, + ITEM_DEVON_PARTS = 733, + ITEM_DEVON_GOODS = ITEM_DEVON_PARTS, // Pre-Gen VI name + ITEM_GO_GOGGLES = 734, + ITEM_DEVON_SCOPE = 735, + ITEM_BASEMENT_KEY = 736, + ITEM_SCANNER = 737, + ITEM_STORAGE_KEY = 738, + ITEM_KEY_TO_ROOM_1 = 739, + ITEM_RM_1_KEY = ITEM_KEY_TO_ROOM_1, // Pre-Gen VI name + ITEM_KEY_TO_ROOM_2 = 740, + ITEM_RM_2_KEY = ITEM_KEY_TO_ROOM_2, // Pre-Gen VI name + ITEM_KEY_TO_ROOM_4 = 741, + ITEM_RM_4_KEY = ITEM_KEY_TO_ROOM_4, // Pre-Gen VI name + ITEM_KEY_TO_ROOM_6 = 742, + ITEM_RM_6_KEY = ITEM_KEY_TO_ROOM_6, // Pre-Gen VI name + ITEM_METEORITE = 743, + ITEM_MAGMA_EMBLEM = 744, + ITEM_CONTEST_PASS = 745, + ITEM_PARCEL = 746, + ITEM_OAKS_PARCEL = ITEM_PARCEL, // Pre-Gen IV name + ITEM_SECRET_KEY = 747, + ITEM_BIKE_VOUCHER = 748, + ITEM_GOLD_TEETH = 749, + ITEM_CARD_KEY = 750, + ITEM_LIFT_KEY = 751, + ITEM_SILPH_SCOPE = 752, + ITEM_TRI_PASS = 753, + ITEM_RAINBOW_PASS = 754, + ITEM_TEA = 755, + ITEM_RUBY = 756, + ITEM_SAPPHIRE = 757, + + // GEN IX ITEMS + ITEM_ABILITY_SHIELD = 758, + ITEM_CLEAR_AMULET = 759, + ITEM_PUNCHING_GLOVE = 760, + ITEM_COVERT_CLOAK = 761, + ITEM_LOADED_DICE = 762, + ITEM_AUSPICIOUS_ARMOR = 763, + ITEM_BOOSTER_ENERGY = 764, + ITEM_BIG_BAMBOO_SHOOT = 765, + ITEM_GIMMIGHOUL_COIN = 766, + ITEM_LEADERS_CREST = 767, + ITEM_MALICIOUS_ARMOR = 768, + ITEM_MIRROR_HERB = 769, + ITEM_SCROLL_OF_DARKNESS = 770, + ITEM_SCROLL_OF_WATERS = 771, + ITEM_TERA_ORB = 772, + ITEM_TINY_BAMBOO_SHOOT = 773, + + ITEM_BUG_TERA_SHARD = 774, + ITEM_DARK_TERA_SHARD = 775, + ITEM_DRAGON_TERA_SHARD = 776, + ITEM_ELECTRIC_TERA_SHARD = 777, + ITEM_FAIRY_TERA_SHARD = 778, + ITEM_FIGHTING_TERA_SHARD = 779, + ITEM_FIRE_TERA_SHARD = 780, + ITEM_FLYING_TERA_SHARD = 781, + ITEM_GHOST_TERA_SHARD = 782, + ITEM_GRASS_TERA_SHARD = 783, + ITEM_GROUND_TERA_SHARD = 784, + ITEM_ICE_TERA_SHARD = 785, + ITEM_NORMAL_TERA_SHARD = 786, + ITEM_POISON_TERA_SHARD = 787, + ITEM_PSYCHIC_TERA_SHARD = 788, + ITEM_ROCK_TERA_SHARD = 789, + ITEM_STEEL_TERA_SHARD = 790, + ITEM_WATER_TERA_SHARD = 791, + + ITEM_ADAMANT_CRYSTAL = 792, + ITEM_GRISEOUS_CORE = 793, + ITEM_LUSTROUS_GLOBE = 794, + + ITEM_BLACK_AUGURITE = 795, + ITEM_LINKING_CORD = 796, + ITEM_PEAT_BLOCK = 797, + ITEM_BERSERK_GENE = 798, + + ITEM_FAIRY_FEATHER = 799, + ITEM_SYRUPY_APPLE = 800, + ITEM_UNREMARKABLE_TEACUP = 801, + ITEM_MASTERPIECE_TEACUP = 802, + ITEM_CORNERSTONE_MASK = 803, + ITEM_WELLSPRING_MASK = 804, + ITEM_HEARTHFLAME_MASK = 805, + ITEM_HEALTH_MOCHI = 806, + ITEM_MUSCLE_MOCHI = 807, + ITEM_RESIST_MOCHI = 808, + ITEM_GENIUS_MOCHI = 809, + ITEM_CLEVER_MOCHI = 810, + ITEM_SWIFT_MOCHI = 811, + ITEM_FRESH_START_MOCHI = 812, + ITEM_GLIMMERING_CHARM = 813, + ITEM_METAL_ALLOY = 814, + ITEM_STELLAR_TERA_SHARD = 815, + + ITEM_JUBILIFE_MUFFIN = 816, + ITEM_REMEDY = 817, + ITEM_FINE_REMEDY = 818, + ITEM_SUPERB_REMEDY = 819, + ITEM_AUX_EVASION = 820, + ITEM_AUX_GUARD = 821, + ITEM_AUX_POWER = 822, + ITEM_AUX_POWERGUARD = 823, + ITEM_CHOICE_DUMPLING = 824, + ITEM_SWAP_SNACK = 825, + ITEM_TWICE_SPICED_RADISH = 826, + ITEM_POKESHI_DOLL = 827, + + ITEM_STRANGE_BALL = 828, + + // Legends Z-A Mega Stones + ITEM_CLEFABLITE = 829, + ITEM_VICTREEBELITE = 830, + ITEM_STARMINITE = 831, + ITEM_DRAGONINITE = 832, + ITEM_MEGANIUMITE = 833, + ITEM_FERALIGITE = 834, + ITEM_SKARMORITE = 835, + ITEM_FROSLASSITE = 836, + ITEM_EMBOARITE = 837, + ITEM_EXCADRITE = 838, + ITEM_SCOLIPITE = 839, + ITEM_SCRAFTINITE = 840, + ITEM_EELEKTROSSITE = 841, + ITEM_CHANDELURITE = 842, + ITEM_CHESNAUGHTITE = 843, + ITEM_DELPHOXITE = 844, + ITEM_GRENINJITE = 845, + ITEM_PYROARITE = 846, + ITEM_FLOETTITE = 847, + ITEM_MALAMARITE = 848, + ITEM_BARBARACITE = 849, + ITEM_DRAGALGITE = 850, + ITEM_HAWLUCHANITE = 851, + ITEM_ZYGARDITE = 852, + ITEM_DRAMPANITE = 853, + ITEM_FALINKSITE = 854, + + // Legends Z-A: Mega Dimension DLC Mega Stones + ITEM_HEATRANITE = 855, + ITEM_DARKRANITE = 856, + ITEM_ZERAORITE = 857, + ITEM_RAICHUNITE_X = 858, + ITEM_RAICHUNITE_Y = 859, + ITEM_CHIMECHITE = 860, + ITEM_ABSOLITE_Z = 861, + ITEM_STARAPTITE = 862, + ITEM_GARCHOMPITE_Z = 863, + ITEM_LUCARIONITE_Z = 864, + ITEM_GOLURKITE = 865, + ITEM_MEOWSTICITE = 866, + ITEM_CRABOMINITE = 867, + ITEM_GOLISOPITE = 868, + ITEM_MAGEARNITE = 869, + ITEM_SCOVILLAINITE = 870, + ITEM_BAXCALIBRITE = 871, + ITEM_TATSUGIRINITE = 872, + ITEM_GLIMMORANITE = 873, + + ITEMS_COUNT, + ITEM_FIELD_ARROW = ITEMS_COUNT, +}; + +// A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations +// Its icon is defined at ITEMS_COUNT as the "return to field" arrow +#define ITEM_LIST_END 0xFFFF + #if B_CONFUSE_BERRIES_HEAL >= GEN_8 #define CONFUSE_BERRY_HEAL_FRACTION 3 #elif B_CONFUSE_BERRIES_HEAL == GEN_7 @@ -645,389 +1069,6 @@ #define CONFUSE_BERRY_HP_FRACTION ((B_CONFUSE_BERRIES_HEAL >= GEN_7) ? 4 : 2) -#define ITEM_CHERI_BERRY 514 -#define ITEM_CHESTO_BERRY 515 -#define ITEM_PECHA_BERRY 516 -#define ITEM_RAWST_BERRY 517 -#define ITEM_ASPEAR_BERRY 518 -#define ITEM_LEPPA_BERRY 519 -#define ITEM_ORAN_BERRY 520 -#define ITEM_PERSIM_BERRY 521 -#define ITEM_LUM_BERRY 522 -#define ITEM_SITRUS_BERRY 523 -#define ITEM_FIGY_BERRY 524 -#define ITEM_WIKI_BERRY 525 -#define ITEM_MAGO_BERRY 526 -#define ITEM_AGUAV_BERRY 527 -#define ITEM_IAPAPA_BERRY 528 -#define ITEM_RAZZ_BERRY 529 -#define ITEM_BLUK_BERRY 530 -#define ITEM_NANAB_BERRY 531 -#define ITEM_WEPEAR_BERRY 532 -#define ITEM_PINAP_BERRY 533 -#define ITEM_POMEG_BERRY 534 -#define ITEM_KELPSY_BERRY 535 -#define ITEM_QUALOT_BERRY 536 -#define ITEM_HONDEW_BERRY 537 -#define ITEM_GREPA_BERRY 538 -#define ITEM_TAMATO_BERRY 539 -#define ITEM_CORNN_BERRY 540 -#define ITEM_MAGOST_BERRY 541 -#define ITEM_RABUTA_BERRY 542 -#define ITEM_NOMEL_BERRY 543 -#define ITEM_SPELON_BERRY 544 -#define ITEM_PAMTRE_BERRY 545 -#define ITEM_WATMEL_BERRY 546 -#define ITEM_DURIN_BERRY 547 -#define ITEM_BELUE_BERRY 548 -#define ITEM_CHILAN_BERRY 549 -#define ITEM_OCCA_BERRY 550 -#define ITEM_PASSHO_BERRY 551 -#define ITEM_WACAN_BERRY 552 -#define ITEM_RINDO_BERRY 553 -#define ITEM_YACHE_BERRY 554 -#define ITEM_CHOPLE_BERRY 555 -#define ITEM_KEBIA_BERRY 556 -#define ITEM_SHUCA_BERRY 557 -#define ITEM_COBA_BERRY 558 -#define ITEM_PAYAPA_BERRY 559 -#define ITEM_TANGA_BERRY 560 -#define ITEM_CHARTI_BERRY 561 -#define ITEM_KASIB_BERRY 562 -#define ITEM_HABAN_BERRY 563 -#define ITEM_COLBUR_BERRY 564 -#define ITEM_BABIRI_BERRY 565 -#define ITEM_ROSELI_BERRY 566 -#define ITEM_LIECHI_BERRY 567 -#define ITEM_GANLON_BERRY 568 -#define ITEM_SALAC_BERRY 569 -#define ITEM_PETAYA_BERRY 570 -#define ITEM_APICOT_BERRY 571 -#define ITEM_LANSAT_BERRY 572 -#define ITEM_STARF_BERRY 573 -#define ITEM_ENIGMA_BERRY 574 -#define ITEM_MICLE_BERRY 575 -#define ITEM_CUSTAP_BERRY 576 -#define ITEM_JABOCA_BERRY 577 -#define ITEM_ROWAP_BERRY 578 -#define ITEM_KEE_BERRY 579 -#define ITEM_MARANGA_BERRY 580 -#define ITEM_ENIGMA_BERRY_E_READER 581 - -#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY -#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY_E_READER - -// TMs/HMs -#define ITEM_TM01 582 -#define ITEM_TM02 583 -#define ITEM_TM03 584 -#define ITEM_TM04 585 -#define ITEM_TM05 586 -#define ITEM_TM06 587 -#define ITEM_TM07 588 -#define ITEM_TM08 589 -#define ITEM_TM09 590 -#define ITEM_TM10 591 -#define ITEM_TM11 592 -#define ITEM_TM12 593 -#define ITEM_TM13 594 -#define ITEM_TM14 595 -#define ITEM_TM15 596 -#define ITEM_TM16 597 -#define ITEM_TM17 598 -#define ITEM_TM18 599 -#define ITEM_TM19 600 -#define ITEM_TM20 601 -#define ITEM_TM21 602 -#define ITEM_TM22 603 -#define ITEM_TM23 604 -#define ITEM_TM24 605 -#define ITEM_TM25 606 -#define ITEM_TM26 607 -#define ITEM_TM27 608 -#define ITEM_TM28 609 -#define ITEM_TM29 610 -#define ITEM_TM30 611 -#define ITEM_TM31 612 -#define ITEM_TM32 613 -#define ITEM_TM33 614 -#define ITEM_TM34 615 -#define ITEM_TM35 616 -#define ITEM_TM36 617 -#define ITEM_TM37 618 -#define ITEM_TM38 619 -#define ITEM_TM39 620 -#define ITEM_TM40 621 -#define ITEM_TM41 622 -#define ITEM_TM42 623 -#define ITEM_TM43 624 -#define ITEM_TM44 625 -#define ITEM_TM45 626 -#define ITEM_TM46 627 -#define ITEM_TM47 628 -#define ITEM_TM48 629 -#define ITEM_TM49 630 -#define ITEM_TM50 631 -#define ITEM_TM51 632 -#define ITEM_TM52 633 -#define ITEM_TM53 634 -#define ITEM_TM54 635 -#define ITEM_TM55 636 -#define ITEM_TM56 637 -#define ITEM_TM57 638 -#define ITEM_TM58 639 -#define ITEM_TM59 640 -#define ITEM_TM60 641 -#define ITEM_TM61 642 -#define ITEM_TM62 643 -#define ITEM_TM63 644 -#define ITEM_TM64 645 -#define ITEM_TM65 646 -#define ITEM_TM66 647 -#define ITEM_TM67 648 -#define ITEM_TM68 649 -#define ITEM_TM69 650 -#define ITEM_TM70 651 -#define ITEM_TM71 652 -#define ITEM_TM72 653 -#define ITEM_TM73 654 -#define ITEM_TM74 655 -#define ITEM_TM75 656 -#define ITEM_TM76 657 -#define ITEM_TM77 658 -#define ITEM_TM78 659 -#define ITEM_TM79 660 -#define ITEM_TM80 661 -#define ITEM_TM81 662 -#define ITEM_TM82 663 -#define ITEM_TM83 664 -#define ITEM_TM84 665 -#define ITEM_TM85 666 -#define ITEM_TM86 667 -#define ITEM_TM87 668 -#define ITEM_TM88 669 -#define ITEM_TM89 670 -#define ITEM_TM90 671 -#define ITEM_TM91 672 -#define ITEM_TM92 673 -#define ITEM_TM93 674 -#define ITEM_TM94 675 -#define ITEM_TM95 676 -#define ITEM_TM96 677 -#define ITEM_TM97 678 -#define ITEM_TM98 679 -#define ITEM_TM99 680 -#define ITEM_TM100 681 - -#define ITEM_HM01 682 -#define ITEM_HM02 683 -#define ITEM_HM03 684 -#define ITEM_HM04 685 -#define ITEM_HM05 686 -#define ITEM_HM06 687 -#define ITEM_HM07 688 -#define ITEM_HM08 689 - -// Charms -#define ITEM_OVAL_CHARM 690 -#define ITEM_SHINY_CHARM 691 -#define ITEM_CATCHING_CHARM 692 -#define ITEM_EXP_CHARM 693 - -// Form-changing Key Items -#define ITEM_ROTOM_CATALOG 694 -#define ITEM_GRACIDEA 695 -#define ITEM_REVEAL_GLASS 696 -#define ITEM_DNA_SPLICERS 697 -#define ITEM_ZYGARDE_CUBE 698 -#define ITEM_PRISON_BOTTLE 699 -#define ITEM_N_SOLARIZER 700 -#define ITEM_N_LUNARIZER 701 -#define ITEM_REINS_OF_UNITY 702 - -// Battle Mechanic Key Items -#define ITEM_MEGA_RING 703 -#define ITEM_Z_POWER_RING 704 -#define ITEM_DYNAMAX_BAND 705 - -// Misc. Key Items -#define ITEM_BICYCLE 706 -#define ITEM_MACH_BIKE 707 -#define ITEM_ACRO_BIKE 708 -#define ITEM_OLD_ROD 709 -#define ITEM_GOOD_ROD 710 -#define ITEM_SUPER_ROD 711 -#define ITEM_DOWSING_MACHINE 712 -#define ITEM_ITEMFINDER ITEM_DOWSING_MACHINE // Pre-Gen IV name -#define ITEM_DOWSING_MCHN ITEM_DOWSING_MACHINE // Gen IV-V name -#define ITEM_TOWN_MAP 713 -#define ITEM_VS_SEEKER 714 -#define ITEM_TM_CASE 715 -#define ITEM_BERRY_POUCH 716 -#define ITEM_POKEMON_BOX_LINK 717 -#define ITEM_POKEMON_BOX ITEM_POKEMON_BOX_LINK // Pre-Gen VIII name -#define ITEM_COIN_CASE 718 -#define ITEM_POWDER_JAR 719 -#define ITEM_WAILMER_PAIL 720 -#define ITEM_POKE_RADAR 721 -#define ITEM_POKEBLOCK_CASE 722 -#define ITEM_SOOT_SACK 723 -#define ITEM_POKE_FLUTE 724 -#define ITEM_FAME_CHECKER 725 -#define ITEM_TEACHY_TV 726 - -// Story Key Items -#define ITEM_SS_TICKET 727 -#define ITEM_EON_TICKET 728 -#define ITEM_MYSTIC_TICKET 729 -#define ITEM_AURORA_TICKET 730 -#define ITEM_OLD_SEA_MAP 731 -#define ITEM_LETTER 732 -#define ITEM_DEVON_PARTS 733 -#define ITEM_DEVON_GOODS ITEM_DEVON_PARTS // Pre-Gen VI name -#define ITEM_GO_GOGGLES 734 -#define ITEM_DEVON_SCOPE 735 -#define ITEM_BASEMENT_KEY 736 -#define ITEM_SCANNER 737 -#define ITEM_STORAGE_KEY 738 -#define ITEM_KEY_TO_ROOM_1 739 -#define ITEM_RM_1_KEY ITEM_KEY_TO_ROOM_1 // Pre-Gen VI name -#define ITEM_KEY_TO_ROOM_2 740 -#define ITEM_RM_2_KEY ITEM_KEY_TO_ROOM_2 // Pre-Gen VI name -#define ITEM_KEY_TO_ROOM_4 741 -#define ITEM_RM_4_KEY ITEM_KEY_TO_ROOM_4 // Pre-Gen VI name -#define ITEM_KEY_TO_ROOM_6 742 -#define ITEM_RM_6_KEY ITEM_KEY_TO_ROOM_6 // Pre-Gen VI name -#define ITEM_METEORITE 743 -#define ITEM_MAGMA_EMBLEM 744 -#define ITEM_CONTEST_PASS 745 -#define ITEM_PARCEL 746 -#define ITEM_OAKS_PARCEL ITEM_PARCEL // Pre-Gen IV name -#define ITEM_SECRET_KEY 747 -#define ITEM_BIKE_VOUCHER 748 -#define ITEM_GOLD_TEETH 749 -#define ITEM_CARD_KEY 750 -#define ITEM_LIFT_KEY 751 -#define ITEM_SILPH_SCOPE 752 -#define ITEM_TRI_PASS 753 -#define ITEM_RAINBOW_PASS 754 -#define ITEM_TEA 755 -#define ITEM_RUBY 756 -#define ITEM_SAPPHIRE 757 - -// GEN IX ITEMS -#define ITEM_ABILITY_SHIELD 758 -#define ITEM_CLEAR_AMULET 759 -#define ITEM_PUNCHING_GLOVE 760 -#define ITEM_COVERT_CLOAK 761 -#define ITEM_LOADED_DICE 762 -#define ITEM_AUSPICIOUS_ARMOR 763 -#define ITEM_BOOSTER_ENERGY 764 -#define ITEM_BIG_BAMBOO_SHOOT 765 -#define ITEM_GIMMIGHOUL_COIN 766 -#define ITEM_LEADERS_CREST 767 -#define ITEM_MALICIOUS_ARMOR 768 -#define ITEM_MIRROR_HERB 769 -#define ITEM_SCROLL_OF_DARKNESS 770 -#define ITEM_SCROLL_OF_WATERS 771 -#define ITEM_TERA_ORB 772 -#define ITEM_TINY_BAMBOO_SHOOT 773 - -#define ITEM_BUG_TERA_SHARD 774 -#define ITEM_DARK_TERA_SHARD 775 -#define ITEM_DRAGON_TERA_SHARD 776 -#define ITEM_ELECTRIC_TERA_SHARD 777 -#define ITEM_FAIRY_TERA_SHARD 778 -#define ITEM_FIGHTING_TERA_SHARD 779 -#define ITEM_FIRE_TERA_SHARD 780 -#define ITEM_FLYING_TERA_SHARD 781 -#define ITEM_GHOST_TERA_SHARD 782 -#define ITEM_GRASS_TERA_SHARD 783 -#define ITEM_GROUND_TERA_SHARD 784 -#define ITEM_ICE_TERA_SHARD 785 -#define ITEM_NORMAL_TERA_SHARD 786 -#define ITEM_POISON_TERA_SHARD 787 -#define ITEM_PSYCHIC_TERA_SHARD 788 -#define ITEM_ROCK_TERA_SHARD 789 -#define ITEM_STEEL_TERA_SHARD 790 -#define ITEM_WATER_TERA_SHARD 791 - -#define ITEM_ADAMANT_CRYSTAL 792 -#define ITEM_GRISEOUS_CORE 793 -#define ITEM_LUSTROUS_GLOBE 794 - -#define ITEM_BLACK_AUGURITE 795 -#define ITEM_LINKING_CORD 796 -#define ITEM_PEAT_BLOCK 797 -#define ITEM_BERSERK_GENE 798 - -#define ITEM_FAIRY_FEATHER 799 -#define ITEM_SYRUPY_APPLE 800 -#define ITEM_UNREMARKABLE_TEACUP 801 -#define ITEM_MASTERPIECE_TEACUP 802 -#define ITEM_CORNERSTONE_MASK 803 -#define ITEM_WELLSPRING_MASK 804 -#define ITEM_HEARTHFLAME_MASK 805 -#define ITEM_HEALTH_MOCHI 806 -#define ITEM_MUSCLE_MOCHI 807 -#define ITEM_RESIST_MOCHI 808 -#define ITEM_GENIUS_MOCHI 809 -#define ITEM_CLEVER_MOCHI 810 -#define ITEM_SWIFT_MOCHI 811 -#define ITEM_FRESH_START_MOCHI 812 -#define ITEM_GLIMMERING_CHARM 813 -#define ITEM_METAL_ALLOY 814 -#define ITEM_STELLAR_TERA_SHARD 815 - -#define ITEM_JUBILIFE_MUFFIN 816 -#define ITEM_REMEDY 817 -#define ITEM_FINE_REMEDY 818 -#define ITEM_SUPERB_REMEDY 819 -#define ITEM_AUX_EVASION 820 -#define ITEM_AUX_GUARD 821 -#define ITEM_AUX_POWER 822 -#define ITEM_AUX_POWERGUARD 823 -#define ITEM_CHOICE_DUMPLING 824 -#define ITEM_SWAP_SNACK 825 -#define ITEM_TWICE_SPICED_RADISH 826 -#define ITEM_POKESHI_DOLL 827 - -#define ITEM_STRANGE_BALL 828 - -#define ITEM_CLEFABLITE 829 -#define ITEM_VICTREEBELITE 830 -#define ITEM_STARMINITE 831 -#define ITEM_DRAGONINITE 832 -#define ITEM_MEGANIUMITE 833 -#define ITEM_FERALIGITE 834 -#define ITEM_SKARMORITE 835 -#define ITEM_FROSLASSITE 836 -#define ITEM_EMBOARITE 837 -#define ITEM_EXCADRITE 838 -#define ITEM_SCOLIPITE 839 -#define ITEM_SCRAFTINITE 840 -#define ITEM_EELEKTROSSITE 841 -#define ITEM_CHANDELURITE 842 -#define ITEM_CHESNAUGHTITE 843 -#define ITEM_DELPHOXITE 844 -#define ITEM_GRENINJITE 845 -#define ITEM_PYROARITE 846 -#define ITEM_FLOETTITE 847 -#define ITEM_MALAMARITE 848 -#define ITEM_BARBARACITE 849 -#define ITEM_DRAGALGITE 850 -#define ITEM_HAWLUCHANITE 851 -#define ITEM_ZYGARDITE 852 -#define ITEM_DRAMPANITE 853 -#define ITEM_FALINKSITE 854 - -#define ITEMS_COUNT 855 -#define ITEM_FIELD_ARROW ITEMS_COUNT - -// A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations -// Its icon is defined at ITEMS_COUNT as the "return to field" arrow -#define ITEM_LIST_END 0xFFFF - // Range of berries given out by various NPCS #define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY #define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY @@ -1066,6 +1107,7 @@ // Secondary IDs for bikes #define MACH_BIKE 0 #define ACRO_BIKE 1 +#define STANDARD_BIKE 2 // Item parameters for EXP Candies #define EXP_100 1 @@ -1075,28 +1117,33 @@ #define EXP_30000 5 // Item type IDs (used to determine the exit callback) -#define ITEM_USE_MAIL 0 -#define ITEM_USE_PARTY_MENU 1 -#define ITEM_USE_FIELD 2 -#define ITEM_USE_PBLOCK_CASE 3 -#define ITEM_USE_BAG_MENU 4 // No exit callback, stays in bag menu -#define ITEM_USE_PARTY_MENU_MOVES 5 +enum ItemType +{ + ITEM_USE_MAIL, + ITEM_USE_PARTY_MENU, + ITEM_USE_FIELD, + ITEM_USE_PBLOCK_CASE, + ITEM_USE_BAG_MENU, // No exit callback, stays in bag menu + ITEM_USE_PARTY_MENU_MOVES, + ITEM_USE_BATTLER, // Auto-select in Singles but lets you choose from party menu in Doubles +}; // Item battle script IDs (need to be non-zero) -#define EFFECT_ITEM_RESTORE_HP 1 -#define EFFECT_ITEM_CURE_STATUS 2 -#define EFFECT_ITEM_HEAL_AND_CURE_STATUS 3 -#define EFFECT_ITEM_INCREASE_STAT 4 -#define EFFECT_ITEM_SET_MIST 5 -#define EFFECT_ITEM_SET_FOCUS_ENERGY 6 -#define EFFECT_ITEM_ESCAPE 7 -#define EFFECT_ITEM_THROW_BALL 8 -#define EFFECT_ITEM_REVIVE 9 -#define EFFECT_ITEM_RESTORE_PP 10 -#define EFFECT_ITEM_INCREASE_ALL_STATS 11 -#define EFFECT_ITEM_USE_POKE_FLUTE 12 - -// Enigma Berry dummy constant -#define EFFECT_ITEM_ENIGMA_BERRY_EREADER 1 +enum EffectItem +{ + EFFECT_ITEM_ENIGMA_BERRY_EREADER = 1, // dummy constant + EFFECT_ITEM_RESTORE_HP = 1, // needs to be non-zero + EFFECT_ITEM_CURE_STATUS, + EFFECT_ITEM_HEAL_AND_CURE_STATUS, + EFFECT_ITEM_INCREASE_STAT, + EFFECT_ITEM_SET_MIST, + EFFECT_ITEM_SET_FOCUS_ENERGY, + EFFECT_ITEM_ESCAPE, + EFFECT_ITEM_THROW_BALL, + EFFECT_ITEM_REVIVE, + EFFECT_ITEM_RESTORE_PP, + EFFECT_ITEM_INCREASE_ALL_STATS, + EFFECT_ITEM_USE_POKE_FLUTE, +}; #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/map_types.h b/include/constants/map_types.h index 86571434e4a2..292274c55893 100755 --- a/include/constants/map_types.h +++ b/include/constants/map_types.h @@ -28,4 +28,12 @@ enum MapBattleScene MAP_BATTLE_SCENE_FRONTIER, }; +#define MAP_BATTLE_SCENE_INDOOR_1 MAP_BATTLE_SCENE_NORMAL +#define MAP_BATTLE_SCENE_INDOOR_2 MAP_BATTLE_SCENE_NORMAL +#define MAP_BATTLE_SCENE_LORELEI MAP_BATTLE_SCENE_NORMAL +#define MAP_BATTLE_SCENE_BRUNO MAP_BATTLE_SCENE_NORMAL +#define MAP_BATTLE_SCENE_AGATHA MAP_BATTLE_SCENE_NORMAL +#define MAP_BATTLE_SCENE_LANCE MAP_BATTLE_SCENE_NORMAL +#define MAP_BATTLE_SCENE_LINK MAP_BATTLE_SCENE_NORMAL + #endif // GUARD_CONSTANTS_MAP_TYPES_H diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h index 12ced67a9f29..c0b9a711033d 100755 --- a/include/constants/metatile_behaviors.h +++ b/include/constants/metatile_behaviors.h @@ -37,7 +37,7 @@ enum { MB_ICE, MB_SAND, MB_SEAWEED, - MB_UNUSED_23, + MB_STRENGTH_BUTTON, MB_ASHGRASS, MB_FOOTPRINTS, MB_THIN_ICE, @@ -46,8 +46,8 @@ enum { MB_LAVARIDGE_GYM_B1F_WARP, MB_SEAWEED_NO_SURFACING, MB_REFLECTION_UNDER_BRIDGE, - MB_UNUSED_2C, - MB_UNUSED_2D, + MB_FAST_WATER, + MB_CYCLING_ROAD_WATER, MB_UNUSED_2E, MB_UNUSED_2F, MB_IMPASSABLE_EAST, @@ -86,18 +86,18 @@ enum { MB_WESTWARD_CURRENT, MB_NORTHWARD_CURRENT, MB_SOUTHWARD_CURRENT, - MB_UNUSED_54, - MB_UNUSED_55, - MB_UNUSED_56, - MB_UNUSED_57, - MB_UNUSED_58, - MB_UNUSED_59, - MB_UNUSED_5A, - MB_UNUSED_5B, - MB_UNUSED_5C, - MB_UNUSED_5D, - MB_UNUSED_5E, - MB_UNUSED_5F, + MB_SPIN_RIGHT, + MB_SPIN_LEFT, + MB_SPIN_UP, + MB_SPIN_DOWN, + MB_STOP_SPINNING, + MB_CABINET, + MB_KITCHEN, + MB_DRESSER, + MB_SNACKS, + MB_CABLE_CLUB_WIRELESS_MONITOR, + MB_BATTLE_RECORDS, + MB_FOOD, MB_NON_ANIMATED_DOOR, MB_LADDER, MB_EAST_ARROW_WARP, @@ -163,21 +163,21 @@ enum { MB_UNUSED_9E, MB_UNUSED_9F, MB_BERRY_TREE_SOIL, - MB_UNUSED_A1, - MB_UNUSED_A2, - MB_UNUSED_A3, - MB_UNUSED_A4, - MB_UNUSED_A5, - MB_UNUSED_A6, - MB_UNUSED_A7, - MB_UNUSED_A8, - MB_UNUSED_A9, - MB_UNUSED_AA, - MB_UNUSED_AB, - MB_UNUSED_AC, - MB_UNUSED_AD, - MB_UNUSED_AE, - MB_UNUSED_AF, + MB_INDIGO_PLATEAU_SIGN_1, + MB_INDIGO_PLATEAU_SIGN_2, + MB_BLUEPRINTS, + MB_PAINTING, + MB_POWER_PLANT_MACHINE, + MB_TELEPHONE, + MB_COMPUTER, + MB_ADVERTISING_POSTER, + MB_FOOD_SMELLS_TASTY, + MB_PORTHOLE, + MB_WINDOW, + MB_CUP, + MB_BLINKING_LIGHTS, + MB_NEATLY_LINED_UP_TOOLS, + MB_IMPRESSIVE_MACHINE, MB_SECRET_BASE_PC, MB_SECRET_BASE_REGISTER_PC, MB_SECRET_BASE_SCENERY, @@ -202,11 +202,11 @@ enum { MB_PLAYER_ROOM_PC_ON, MB_SECRET_BASE_DECORATION_BASE, MB_SECRET_BASE_POSTER, - MB_UNUSED_C8, - MB_UNUSED_C9, - MB_UNUSED_CA, - MB_UNUSED_CB, - MB_UNUSED_CC, + MB_CYCLING_ROAD_PULL_DOWN, + MB_CYCLING_ROAD_PULL_DOWN_GRASS, + MB_VIDEO_GAME, + MB_BURGLARY, + MB_TRAINER_TOWER_MONITOR, MB_UNUSED_CD, MB_UNUSED_CE, MB_UNUSED_CF, diff --git a/include/constants/metatile_behaviors_frlg.h b/include/constants/metatile_behaviors_frlg.h new file mode 100755 index 000000000000..90a238e88f75 --- /dev/null +++ b/include/constants/metatile_behaviors_frlg.h @@ -0,0 +1,131 @@ +#ifndef GUARD_METATILE_BEHAVIORS_FRLG_H +#define GUARD_METATILE_BEHAVIORS_FRLG_H + +#define MB_FRLG_NORMAL 0x00 +#define MB_FRLG_UNUSED_01 0x01 +#define MB_FRLG_TALL_GRASS 0x02 +// +#define MB_FRLG_CAVE 0x08 +// +#define MB_FRLG_RUNNING_DISALLOWED 0x0A +#define MB_FRLG_INDOOR_ENCOUNTER 0x0B +#define MB_FRLG_MOUNTAIN_TOP 0x0C +// +#define MB_FRLG_POND_WATER 0x10 +#define MB_FRLG_FAST_WATER 0x11 +#define MB_FRLG_DEEP_WATER 0x12 +#define MB_FRLG_WATERFALL 0x13 +// +#define MB_FRLG_OCEAN_WATER 0x15 +#define MB_FRLG_PUDDLE 0x16 +#define MB_FRLG_SHALLOW_WATER 0x17 +// +#define MB_FRLG_UNDERWATER_BLOCKED_ABOVE 0x19 +#define MB_FRLG_UNUSED_WATER 0x1A +#define MB_FRLG_CYCLING_ROAD_WATER 0x1B +// +#define MB_FRLG_STRENGTH_BUTTON 0x20 +#define MB_FRLG_SAND 0x21 +#define MB_FRLG_SEAWEED 0x22 +#define MB_FRLG_ICE 0x23 +// +#define MB_FRLG_THIN_ICE 0x26 +#define MB_FRLG_CRACKED_ICE 0x27 +#define MB_FRLG_HOT_SPRINGS 0x28 +// +#define MB_FRLG_ROCK_STAIRS 0x2A +#define MB_FRLG_SAND_CAVE 0x2B +// +#define MB_FRLG_IMPASSABLE_EAST 0x30 +#define MB_FRLG_IMPASSABLE_WEST 0x31 +#define MB_FRLG_IMPASSABLE_NORTH 0x32 +#define MB_FRLG_IMPASSABLE_SOUTH 0x33 +#define MB_FRLG_IMPASSABLE_NORTHEAST 0x34 +#define MB_FRLG_IMPASSABLE_NORTHWEST 0x35 +#define MB_FRLG_IMPASSABLE_SOUTHEAST 0x36 +#define MB_FRLG_IMPASSABLE_SOUTHWEST 0x37 +#define MB_FRLG_JUMP_EAST 0x38 +#define MB_FRLG_JUMP_WEST 0x39 +#define MB_FRLG_JUMP_NORTH 0x3A +#define MB_FRLG_JUMP_SOUTH 0x3B +// +#define MB_FRLG_WALK_EAST 0x40 +#define MB_FRLG_WALK_WEST 0x41 +#define MB_FRLG_WALK_NORTH 0x42 +#define MB_FRLG_WALK_SOUTH 0x43 +#define MB_FRLG_SLIDE_EAST 0x44 +#define MB_FRLG_SLIDE_WEST 0x45 +#define MB_FRLG_SLIDE_NORTH 0x46 +#define MB_FRLG_SLIDE_SOUTH 0x47 +#define MB_FRLG_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48 +// +#define MB_FRLG_EASTWARD_CURRENT 0x50 +#define MB_FRLG_WESTWARD_CURRENT 0x51 +#define MB_FRLG_NORTHWARD_CURRENT 0x52 +#define MB_FRLG_SOUTHWARD_CURRENT 0x53 +#define MB_FRLG_SPIN_RIGHT 0x54 +#define MB_FRLG_SPIN_LEFT 0x55 +#define MB_FRLG_SPIN_UP 0x56 +#define MB_FRLG_SPIN_DOWN 0x57 +#define MB_FRLG_STOP_SPINNING 0x58 +// +#define MB_FRLG_CAVE_DOOR 0x60 +#define MB_FRLG_LADDER 0x61 +#define MB_FRLG_EAST_ARROW_WARP 0x62 +#define MB_FRLG_WEST_ARROW_WARP 0x63 +#define MB_FRLG_NORTH_ARROW_WARP 0x64 +#define MB_FRLG_SOUTH_ARROW_WARP 0x65 +#define MB_FRLG_FALL_WARP 0x66 +#define MB_FRLG_REGULAR_WARP 0x67 +#define MB_FRLG_LAVARIDGE_1F_WARP 0x68 +#define MB_FRLG_WARP_DOOR 0x69 +#define MB_FRLG_UP_ESCALATOR 0x6A +#define MB_FRLG_DOWN_ESCALATOR 0x6B +#define MB_FRLG_UP_RIGHT_STAIR_WARP 0x6C +#define MB_FRLG_UP_LEFT_STAIR_WARP 0x6D +#define MB_FRLG_DOWN_RIGHT_STAIR_WARP 0x6E +#define MB_FRLG_DOWN_LEFT_STAIR_WARP 0x6F +// +#define MB_FRLG_UNION_ROOM_WARP 0x71 +// +#define MB_FRLG_COUNTER 0x80 +#define MB_FRLG_BOOKSHELF 0x81 +#define MB_FRLG_POKEMART_SHELF 0x82 +#define MB_FRLG_PC 0x83 +#define MB_FRLG_SIGNPOST 0x84 +#define MB_FRLG_REGION_MAP 0x85 +#define MB_FRLG_TELEVISION 0x86 +#define MB_FRLG_POKEMON_CENTER_SIGN 0x87 +#define MB_FRLG_POKEMART_SIGN 0x88 +#define MB_FRLG_CABINET 0x89 +#define MB_FRLG_KITCHEN 0x8A +#define MB_FRLG_DRESSER 0x8B +#define MB_FRLG_SNACKS 0x8C +#define MB_FRLG_CABLE_CLUB_WIRELESS_MONITOR 0x8D +#define MB_FRLG_BATTLE_RECORDS 0x8E +#define MB_FRLG_QUESTIONNAIRE 0x8F +#define MB_FRLG_FOOD 0x90 +#define MB_FRLG_INDIGO_PLATEAU_SIGN_1 0x91 +#define MB_FRLG_INDIGO_PLATEAU_SIGN_2 0x92 +#define MB_FRLG_BLUEPRINTS 0x93 +#define MB_FRLG_PAINTING 0x94 +#define MB_FRLG_POWER_PLANT_MACHINE 0x95 +#define MB_FRLG_TELEPHONE 0x96 +#define MB_FRLG_COMPUTER 0x97 +#define MB_FRLG_ADVERTISING_POSTER 0x98 +#define MB_FRLG_FOOD_SMELLS_TASTY 0x99 +#define MB_FRLG_TRASH_BIN 0x9A +#define MB_FRLG_CUP 0x9B +#define MB_FRLG_PORTHOLE 0x9C +#define MB_FRLG_WINDOW 0x9D +#define MB_FRLG_BLINKING_LIGHTS 0x9E +#define MB_FRLG_NEATLY_LINED_UP_TOOLS 0x9F +#define MB_FRLG_IMPRESSIVE_MACHINE 0xA0 +#define MB_FRLG_VIDEO_GAME 0xA1 +#define MB_FRLG_BURGLARY 0xA2 +#define MB_FRLG_TRAINER_TOWER_MONITOR 0xA3 +// +#define MB_FRLG_CYCLING_ROAD_PULL_DOWN 0xD0 +#define MB_FRLG_CYCLING_ROAD_PULL_DOWN_GRASS 0xD1 + +#endif // GUARD_METATILE_BEHAVIORS_FRLG_H diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 3b63d80f8482..ace1564dfd8f 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -117,10 +117,18 @@ #define METATILE_Building_TV_Off 0x002 #define METATILE_Building_TV_On 0x003 +// gTileset_BuildingFrlg +#define METATILE_BuildingFrlg_PCOff 0x062 +#define METATILE_BuildingFrlg_PCOn 0x063 + // gTileset_Cave #define METATILE_Cave_CrackedFloor 0x22F #define METATILE_Cave_CrackedFloor_Hole 0x206 #define METATILE_Cave_EntranceCover 0x229 +#define METATILE_Cave_Floor_Ledge_Bottom 0x2E1 +#define METATILE_Cave_Floor_Ledge_Top 0x2D1 +#define METATILE_Cave_RockBarrier_Bottom 0x317 +#define METATILE_Cave_RockBarrier_Top 0x307 #define METATILE_Cave_SealedChamberBraille_Mid 0x235 #define METATILE_Cave_SealedChamberEntrance_BottomLeft 0x232 #define METATILE_Cave_SealedChamberEntrance_BottomMid 0x233 @@ -133,12 +141,36 @@ #define METATILE_Cave_ShoalCave_DirtPile_Large 0x358 #define METATILE_Cave_ShoalCave_DirtPile_Small 0x35A +// gTileset_CeladonCity +#define METATILE_CeladonCity_CyclingRoad_Grass 0x352 +#define METATILE_CeladonCity_CyclingRoad_Mowed 0x33E +#define METATILE_CeladonCity_DeptStoreDoor 0x294 + +// gTileset_CeruleanCity +#define METATILE_CeruleanCity_Door 0x298 + +// gTileset_CinnabarGym +#define METATILE_CinnabarGym_Floor 0x281 +#define METATILE_CinnabarGym_Floor_ShadeDiagonal 0x282 +#define METATILE_CinnabarGym_Floor_ShadeFull 0x289 +#define METATILE_CinnabarGym_Floor_WallLeftCorner 0x2C7 +#define METATILE_CinnabarGym_Floor_WallLeftEdge 0x2CF +#define METATILE_CinnabarGym_Floor_WallRightCorner 0x2C6 +#define METATILE_CinnabarGym_Floor_WallRightEdge 0x2CE +#define METATILE_CinnabarGym_Wall_RetractedBarrier 0x2D1 + +// gTileset_CinnabarIsland +#define METATILE_CinnabarIsland_LabDoor 0x2AD + // gTileset_Contest #define METATILE_Contest_CounterFlap_Bottom 0x2D9 #define METATILE_Contest_CounterFlap_Top 0x2D1 #define METATILE_Contest_FloorShadow 0x261 #define METATILE_Contest_WallShadow 0x221 +// gTileset_DepartmentStore +#define METATILE_DepartmentStore_ElevatorDoor 0x28D + // gTileset_Dewford #define METATILE_Dewford_Door 0x225 #define METATILE_Dewford_Door_BattleTower 0x25D @@ -204,6 +236,27 @@ #define METATILE_Fortree_WoodBridge1_Bottom 0x29F #define METATILE_Fortree_WoodBridge1_Top 0x297 +// gTileset_FuchsiaCity +#define METATILE_FuchsiaCity_Door 0x2BF +#define METATILE_FuchsiaCity_SafariZoneDoor 0x2D2 +#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Grass 0x300 +#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Mowed 0x310 +#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Grass 0x301 +#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Mowed 0x311 +#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Grass 0x302 +#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Mowed 0x312 + +// gTileset_GameCorner +#define METATILE_GameCorner_CheckeredFloor_ShadeLeft 0x2E1 +#define METATILE_GameCorner_CounterBarrier 0x2F7 +#define METATILE_GameCorner_Floor_ShadeFull 0x292 +#define METATILE_GameCorner_Floor_StairsTop 0x29D +#define METATILE_GameCorner_PurpleWall_Floor 0x2CF +#define METATILE_GameCorner_PurpleWall_StairsTop 0x2A6 +#define METATILE_GameCorner_PurpleWall_stairsBottom 0x2A7 +#define METATILE_GameCorner_StairsBottom 0x29F +#define METATILE_GameCorner_StairsTop 0x29E + // gTileset_General #define METATILE_General_BlueCaveIndent 0x1B0 #define METATILE_General_BlueCaveOpen 0x1B1 @@ -249,6 +302,10 @@ #define METATILE_GenericBuilding_TrickHouse_Door_Closed 0x21B #define METATILE_GenericBuilding_TrickHouse_Stairs_Down 0x219 +// gTileset_GenericBuilding1 +#define METATILE_GenericBuilding1_PlayersPCOff 0x28F +#define METATILE_GenericBuilding1_PlayersPCOn 0x28A + // gTileset_InsideOfTruck #define METATILE_InsideOfTruck_DoorClosedFloor_Bottom 0x21D #define METATILE_InsideOfTruck_DoorClosedFloor_Mid 0x215 @@ -272,6 +329,9 @@ #define METATILE_Lavaridge_NormalGrass 0x206 #define METATILE_Lavaridge_RockWall 0x274 +// gTileset_LavenderTown +#define METATILE_LavenderTown_Door 0x2A2 + // gTileset_Lilycove #define METATILE_Lilycove_Door 0x246 #define METATILE_Lilycove_Door_DeptStore 0x30C @@ -296,6 +356,10 @@ #define METATILE_LilycoveMuseum_Painting4_Left 0x262 #define METATILE_LilycoveMuseum_Painting4_Right 0x263 +// gTileset_Mart +#define METATILE_Mart_CounterMid_Bottom 0x2C0 +#define METATILE_Mart_CounterMid_Top 0x2BF + // gTileset_Mauville #define METATILE_Mauville_DeepSand_BottomMid 0x259 #define METATILE_Mauville_DeepSand_Center 0x251 @@ -370,6 +434,9 @@ // gTileset_MossdeepGym #define METATILE_MossdeepGym_YellowArrow_Right 0x250 +// gTileset_MtEmber +#define METATILE_MtEmber_CaveEntrance 0x346 + // gTileset_Pacifidlog #define METATILE_Pacifidlog_Door 0x21A #define METATILE_Pacifidlog_FloatingLogs_HorizontalLeft 0x250 @@ -388,6 +455,10 @@ #define METATILE_Pacifidlog_SubmergedLogs_VerticalBottom 0x262 #define METATILE_Pacifidlog_SubmergedLogs_VerticalTop 0x25A +// gTileset_PalletTown +#define METATILE_PalletTown_Door 0x2A3 +#define METATILE_PalletTown_OaksLabDoor 0x2AC + // gTileset_Petalburg #define METATILE_Petalburg_Door_BirchsLab 0x249 #define METATILE_Petalburg_Door_Littleroot 0x248 @@ -403,6 +474,9 @@ #define METATILE_PetalburgGym_SlidingDoor_Frame3 0x21B #define METATILE_PetalburgGym_SlidingDoor_Frame4 0x21C +// gTileset_PewterCity +#define METATILE_PewterCity_Door 0x2CE + // gTileset_PokemonCenter #define METATILE_PokemonCenter_CounterBarrier 0x25D #define METATILE_PokemonCenter_Door_CableClub 0x264 @@ -431,10 +505,109 @@ #define METATILE_PokemonCenter_Floor_ShadowTop 0x21E #define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC +// gTileset_PokemonCenterFrlg +#define METATILE_PokemonCenterFrlg_CableClubDoor 0x2DE +#define METATILE_PokemonCenterFrlg_CounterBarrier 0x2F9 +#define METATILE_PokemonCenterFrlg_Escalator_BottomNextRail_Normal 0x2D0 +#define METATILE_PokemonCenterFrlg_Escalator_BottomNextRail_Transition1 0x30A +#define METATILE_PokemonCenterFrlg_Escalator_BottomNextRail_Transition2 0x308 +#define METATILE_PokemonCenterFrlg_Escalator_BottomNext_Normal 0x2D8 +#define METATILE_PokemonCenterFrlg_Escalator_BottomNext_Transition1 0x312 +#define METATILE_PokemonCenterFrlg_Escalator_BottomNext_Transition2 0x310 +#define METATILE_PokemonCenterFrlg_Escalator_BottomRail_Normal 0x2D1 +#define METATILE_PokemonCenterFrlg_Escalator_BottomRail_Transition1 0x30B +#define METATILE_PokemonCenterFrlg_Escalator_BottomRail_Transition2 0x309 +#define METATILE_PokemonCenterFrlg_Escalator_Bottom_Normal 0x2D9 +#define METATILE_PokemonCenterFrlg_Escalator_Bottom_Transition1 0x313 +#define METATILE_PokemonCenterFrlg_Escalator_Bottom_Transition2 0x311 +#define METATILE_PokemonCenterFrlg_Escalator_TopNextRail_Normal 0x2EB +#define METATILE_PokemonCenterFrlg_Escalator_TopNextRail_Transition1 0x31E +#define METATILE_PokemonCenterFrlg_Escalator_TopNextRail_Transition2 0x31C +#define METATILE_PokemonCenterFrlg_Escalator_TopNext_Normal 0x2E3 +#define METATILE_PokemonCenterFrlg_Escalator_TopNext_Transition1 0x316 +#define METATILE_PokemonCenterFrlg_Escalator_TopNext_Transition2 0x314 +#define METATILE_PokemonCenterFrlg_Escalator_Top_Normal 0x2E4 +#define METATILE_PokemonCenterFrlg_Escalator_Top_Transition1 0x317 +#define METATILE_PokemonCenterFrlg_Escalator_Top_Transition2 0x315 +#define METATILE_PokemonCenterFrlg_Floor_ShadeLeft 0x2C5 +#define METATILE_PokemonCenterFrlg_NetworkMachine_Ruby 0x35D +#define METATILE_PokemonCenterFrlg_NetworkMachine_Sapphire 0x35F +#define METATILE_PokemonCenterFrlg_NetworkMachine_ScreenLeft_On 0x35A +#define METATILE_PokemonCenterFrlg_NetworkMachine_ScreenRight_On 0x35B + +// gTileset_PokemonLeague +#define METATILE_PokemonLeague_Door_Mid_Open 0x296 +#define METATILE_PokemonLeague_Door_Top_Open 0x28E +#define METATILE_PokemonLeague_Entry_BottomLeft_Closed 0x2A5 +#define METATILE_PokemonLeague_Entry_BottomMid_Closed 0x2A6 +#define METATILE_PokemonLeague_Entry_BottomRight_Closed 0x2A7 +#define METATILE_PokemonLeague_Entry_TopLeft_Closed 0x29D +#define METATILE_PokemonLeague_Entry_TopMid_Closed 0x29E +#define METATILE_PokemonLeague_Entry_TopRight_Closed 0x29F +#define METATILE_PokemonLeague_Floor_ShadeFull_Lance 0x311 + +// gTileset_PokemonMansion +#define METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft 0x300 +#define METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft_Basement 0x354 +#define METATILE_PokemonMansion_Barrier_Horizontal_BottomMid 0x301 +#define METATILE_PokemonMansion_Barrier_Horizontal_BottomMid_Basement 0x355 +#define METATILE_PokemonMansion_Barrier_Horizontal_BottomRight 0x302 +#define METATILE_PokemonMansion_Barrier_Horizontal_BottomRight_Basement 0x356 +#define METATILE_PokemonMansion_Barrier_Horizontal_TopLeft 0x2F8 +#define METATILE_PokemonMansion_Barrier_Horizontal_TopMid 0x2F9 +#define METATILE_PokemonMansion_Barrier_Horizontal_TopRight 0x2FA +#define METATILE_PokemonMansion_Barrier_Vertical_Bottom 0x370 +#define METATILE_PokemonMansion_Barrier_Vertical_Bottom_Basement 0x372 +#define METATILE_PokemonMansion_Barrier_Vertical_Mid 0x368 +#define METATILE_PokemonMansion_Barrier_Vertical_MidShadow 0x360 +#define METATILE_PokemonMansion_Barrier_Vertical_MidShadow_Basement 0x362 +#define METATILE_PokemonMansion_Barrier_Vertical_Mid_Basement 0x36A +#define METATILE_PokemonMansion_Barrier_Vertical_TopBase 0x358 +#define METATILE_PokemonMansion_Barrier_Vertical_TopWall 0x350 +#define METATILE_PokemonMansion_BasementFloor 0x286 +#define METATILE_PokemonMansion_BasementFloor_ShadeFull 0x287 +#define METATILE_PokemonMansion_Floor 0x284 +#define METATILE_PokemonMansion_Floor_ShadeFull 0x285 +#define METATILE_PokemonMansion_Statue_BlackEyes 0x314 +#define METATILE_PokemonMansion_Statue_BlackEyes_Basement 0x316 +#define METATILE_PokemonMansion_Statue_BlackEyes_Shade 0x315 +#define METATILE_PokemonMansion_Statue_RedEyes 0x34D +#define METATILE_PokemonMansion_Statue_RedEyes_Basement 0x34F +#define METATILE_PokemonMansion_Statue_RedEyes_Shade 0x34E +#define METATILE_PokemonMansion_Wall_EndCap 0x2B5 +#define METATILE_PokemonMansion_Wall_EndCap_Basement 0x2B0 +#define METATILE_PokemonMansion_Wall_EndPost_Bottom 0x2AD +#define METATILE_PokemonMansion_Wall_EndPost_Mid 0x2A5 + // gTileset_Rustboro #define METATILE_Rustboro_Door_Gray 0x21F #define METATILE_Rustboro_Door_Tan 0x22F +// gTileset_SSAnne +#define METATILE_SSAnne_Door 0x281 + +// gTileset_SaffronCity +#define METATILE_SaffronCity_Door 0x284 +#define METATILE_SaffronCity_SilphCoDoor 0x2BC + +// gTileset_SeaCottage +#define METATILE_SeaCottage_Teleporter_CableBall_Bottom 0x2BA +#define METATILE_SeaCottage_Teleporter_CableBall_Top 0x2B9 +#define METATILE_SeaCottage_Teleporter_Cable_Bottom 0x2B4 +#define METATILE_SeaCottage_Teleporter_Cable_Top 0x285 +#define METATILE_SeaCottage_Teleporter_Door 0x296 +#define METATILE_SeaCottage_Teleporter_Door_FullGlowing 0x2B8 +#define METATILE_SeaCottage_Teleporter_Door_HalfGlowing 0x2B7 +#define METATILE_SeaCottage_Teleporter_Light_Green 0x28A +#define METATILE_SeaCottage_Teleporter_Light_Red 0x2B6 +#define METATILE_SeaCottage_Teleporter_Light_Yellow 0x2B5 + +// gTileset_SeafoamIslands +#define METATILE_SeafoamIslands_CrackedIce 0x35A +#define METATILE_SeafoamIslands_IceHole 0x35B +#define METATILE_SeafoamIslands_SlidingIce 0x34B +#define METATILE_SeafoamIslands_UncrackedIce 0x359 + // gTileset_SecretBase #define METATILE_SecretBase_AttractMat_BottomLeft 0x313 #define METATILE_SecretBase_AttractMat_BottomMid 0x314 @@ -707,6 +880,22 @@ #define METATILE_SecretBase_YellowBrick_Bottom 0x22E #define METATILE_SecretBase_YellowBrick_Top 0x226 +// gTileset_SeviiIslands123 +#define METATILE_SeviiIslands123_Door 0x297 +#define METATILE_SeviiIslands123_GameCornerDoor 0x29B +#define METATILE_SeviiIslands123_PokeCenterDoor 0x2EB + +// gTileset_SeviiIslands45 +#define METATILE_SeviiIslands45_DayCareDoor 0x2B9 +#define METATILE_SeviiIslands45_Door 0x29A +#define METATILE_SeviiIslands45_RocketWarehouseDoor_Locked 0x30B +#define METATILE_SeviiIslands45_RocketWarehouseDoor_Unlocked 0x2AF + +// gTileset_SeviiIslands67 +#define METATILE_SeviiIslands67_Door 0x30C +#define METATILE_SeviiIslands67_DottedHoleDoor_Closed 0x357 +#define METATILE_SeviiIslands67_DottedHoleDoor_Open 0x358 + // gTileset_Shop #define METATILE_Shop_Door_Elevator 0x285 #define METATILE_Shop_Laptop1_Flash 0x258 @@ -714,6 +903,47 @@ #define METATILE_Shop_Laptop2_Flash 0x260 #define METATILE_Shop_Laptop2_Normal 0x2A5 +// gTileset_SilphCo +#define METATILE_SilphCo_Arrow_Down 0x2A8 +#define METATILE_SilphCo_Arrow_Left 0x2A1 +#define METATILE_SilphCo_Arrow_Right 0x2A9 +#define METATILE_SilphCo_Arrow_Up 0x2A0 +#define METATILE_SilphCo_ElevatorDoor 0x2E2 +#define METATILE_SilphCo_ElevatorWindow_Bottom0 0x2F8 +#define METATILE_SilphCo_ElevatorWindow_Bottom1 0x2F9 +#define METATILE_SilphCo_ElevatorWindow_Bottom2 0x2FA +#define METATILE_SilphCo_ElevatorWindow_Mid0 0x2F0 +#define METATILE_SilphCo_ElevatorWindow_Mid1 0x2F1 +#define METATILE_SilphCo_ElevatorWindow_Mid2 0x2F2 +#define METATILE_SilphCo_ElevatorWindow_Top0 0x2E8 +#define METATILE_SilphCo_ElevatorWindow_Top1 0x2E9 +#define METATILE_SilphCo_ElevatorWindow_Top2 0x2EA +#define METATILE_SilphCo_Floor 0x334 +#define METATILE_SilphCo_Floor_ShadeFull 0x335 +#define METATILE_SilphCo_Floor_WallLeftCorner 0x339 +#define METATILE_SilphCo_Floor_WallRightCorner 0x33A +#define METATILE_SilphCo_HideoutBarrier_BottomLeft 0x2D6 +#define METATILE_SilphCo_HideoutBarrier_BottomRight 0x2D7 +#define METATILE_SilphCo_HideoutBarrier_TopLeft_Floor 0x2CE +#define METATILE_SilphCo_HideoutBarrier_TopLeft_Wall 0x2C6 +#define METATILE_SilphCo_HideoutBarrier_TopRight_Floor 0x2CF +#define METATILE_SilphCo_HideoutBarrier_TopRight_Wall 0x2C7 +#define METATILE_SilphCo_HideoutElevatorDoor 0x2AB +#define METATILE_SilphCo_HideoutFloor 0x281 +#define METATILE_SilphCo_HideoutFloor_ShadeFull 0x282 +#define METATILE_SilphCo_HorizontalBarrier_BottomLeft 0x3B8 +#define METATILE_SilphCo_HorizontalBarrier_BottomRight 0x3B9 +#define METATILE_SilphCo_HorizontalBarrier_TopLeft 0x3B0 +#define METATILE_SilphCo_HorizontalBarrier_TopRight 0x3B1 +#define METATILE_SilphCo_VerticalBarrier_BottomLeft 0x3C4 +#define METATILE_SilphCo_VerticalBarrier_BottomRight 0x3C5 +#define METATILE_SilphCo_VerticalBarrier_MidLeft 0x3C2 +#define METATILE_SilphCo_VerticalBarrier_MidRight 0x3C3 +#define METATILE_SilphCo_VerticalBarrier_TopLeft 0x3C0 +#define METATILE_SilphCo_VerticalBarrier_TopRight 0x3C1 +#define METATILE_SilphCo_Wall_LeftEdge 0x347 +#define METATILE_SilphCo_Wall_RightEdge 0x346 + // gTileset_Slateport #define METATILE_Slateport_Door 0x2DC #define METATILE_Slateport_Door_BattleTent 0x393 @@ -736,6 +966,12 @@ #define METATILE_TrainerHill_Door_Elevator_Roof 0x383 #define METATILE_TrainerHill_GreenFloorTile 0x307 +// gTileset_TrainerTower +#define METATILE_TrainerTower_CounterBarrier 0x2B4 +#define METATILE_TrainerTower_Floor_ShadeBottomLeft 0x287 +#define METATILE_TrainerTower_LobbyElevatorDoor 0x2C3 +#define METATILE_TrainerTower_RoofElevatorDoor 0x356 + // gTileset_TrickHousePuzzle #define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down 0x263 #define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left 0x261 @@ -779,12 +1015,68 @@ #define METATILE_Underwater_FloorShadow 0x228 #define METATILE_Underwater_RockWall 0x21E +// gTileset_VermilionCity +#define METATILE_VermilionCity_Door 0x29E +#define METATILE_VermilionCity_SSAnneWarp 0x2E1 + +// gTileset_VermilionGym +#define METATILE_VermilionGym_Beam_MidBottom 0x28D +#define METATILE_VermilionGym_Beam_MidBottom_HalfOn 0x2C5 +#define METATILE_VermilionGym_Beam_MidTop 0x285 +#define METATILE_VermilionGym_Beam_MidTop_HalfOn 0x2BD +#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn 0x2C4 +#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off 0x29C +#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On 0x2B2 +#define METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn 0x2C3 +#define METATILE_VermilionGym_Beam_Node_BottomLeft_Off 0x29B +#define METATILE_VermilionGym_Beam_Node_BottomLeft_On 0x2B1 +#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn 0x2C6 +#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off 0x29D +#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On 0x2B3 +#define METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn 0x2C7 +#define METATILE_VermilionGym_Beam_Node_BottomRight_Off 0x29E +#define METATILE_VermilionGym_Beam_Node_BottomRight_On 0x2B4 +#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn 0x2BC +#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off 0x294 +#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On 0x2AA +#define METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn 0x2BB +#define METATILE_VermilionGym_Beam_Node_TopLeft_Off 0x293 +#define METATILE_VermilionGym_Beam_Node_TopLeft_On 0x2A9 +#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn 0x2BE +#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off 0x295 +#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_On 0x2AB +#define METATILE_VermilionGym_Beam_Node_TopRight_HalfOn 0x2BF +#define METATILE_VermilionGym_Beam_Node_TopRight_Off 0x296 +#define METATILE_VermilionGym_Beam_Node_TopRight_On 0x2AC +#define METATILE_VermilionGym_Floor 0x281 + +// gTileset_ViridianCity +#define METATILE_ViridianCity_Door 0x299 + +// gTileset_ViridianForest +#define METATILE_ViridianForest_HugeTreeTopMiddle_Grass 0x284 +#define METATILE_ViridianForest_HugeTreeTopMiddle_Mowed 0x281 + // Other -#define METATILE_RSMossdeepGym_RedArrow_Down 0x205 -#define METATILE_RSMossdeepGym_RedArrow_Left 0x20C -#define METATILE_RSMossdeepGym_RedArrow_Right 0x204 -#define METATILE_RSMossdeepGym_RedArrow_Up 0x20D -#define METATILE_RSMossdeepGym_Switch_Down 0x239 -#define METATILE_RSMossdeepGym_Switch_Up 0x238 +#define METATILE_GeneralFrlg_CalmWater 0x12B +#define METATILE_GeneralFrlg_Door 0x03D +#define METATILE_GeneralFrlg_Plain_Grass 0x00D +#define METATILE_GeneralFrlg_Plain_Mowed 0x001 +#define METATILE_GeneralFrlg_SlidingDoubleDoor 0x15B +#define METATILE_GeneralFrlg_SlidingSingleDoor 0x062 +#define METATILE_GeneralFrlg_ThinTreeTop_Grass 0x00A +#define METATILE_GeneralFrlg_ThinTreeTop_Mowed 0x013 +#define METATILE_GeneralFrlg_WideTreeTopLeft_Grass 0x00B +#define METATILE_GeneralFrlg_WideTreeTopLeft_Mowed 0x00E +#define METATILE_GeneralFrlg_WideTreeTopRight_Grass 0x00C +#define METATILE_GeneralFrlg_WideTreeTopRight_Mowed 0x00F +#define METATILE_RSCave_CrackedFloor 0x22F +#define METATILE_RSCave_CrackedFloor_Hole 0x206 +#define METATILE_RSMossdeepGym_RedArrow_Down 0x205 +#define METATILE_RSMossdeepGym_RedArrow_Left 0x20C +#define METATILE_RSMossdeepGym_RedArrow_Right 0x204 +#define METATILE_RSMossdeepGym_RedArrow_Up 0x20D +#define METATILE_RSMossdeepGym_Switch_Down 0x239 +#define METATILE_RSMossdeepGym_Switch_Up 0x238 #endif // GUARD_METATILE_LABELS_H diff --git a/include/constants/move_relearner.h b/include/constants/move_relearner.h index 0229cb7f1759..9d3f0d382ff2 100644 --- a/include/constants/move_relearner.h +++ b/include/constants/move_relearner.h @@ -24,6 +24,8 @@ enum RelearnMode RELEARN_MODE_PSS_PAGE_BATTLE_MOVES = 2, // Relearning moves through the summary screen's battle moves page RELEARN_MODE_PSS_PAGE_CONTEST_MOVES = 3, // Relearning moves through the summary screen's contest moves page (defaults to contest page on relearner screen) RELEARN_MODE_PARTY_MENU = 4, // Relearning moves through the party menu's moves submenu + RELEARN_MODE_BOX_PSS_PAGE_BATTLE_MOVES = 5, + RELEARN_MODE_BOX_PSS_PAGE_CONTEST_MOVES = 6, }; #endif // GUARD_CONSTANTS_MOVE_RELEARNER_H diff --git a/include/constants/moves.h b/include/constants/moves.h index dc8bc59a3f94..f1d695ffc54f 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -1,1025 +1,1017 @@ #ifndef GUARD_CONSTANTS_MOVES_H #define GUARD_CONSTANTS_MOVES_H -#define MOVE_NONE 0 -#define MOVE_POUND 1 -#define MOVE_KARATE_CHOP 2 -#define MOVE_DOUBLE_SLAP 3 -#define MOVE_DOUBLESLAP MOVE_DOUBLE_SLAP // Pre-Gen VI name -#define MOVE_COMET_PUNCH 4 -#define MOVE_MEGA_PUNCH 5 -#define MOVE_PAY_DAY 6 -#define MOVE_FIRE_PUNCH 7 -#define MOVE_ICE_PUNCH 8 -#define MOVE_THUNDER_PUNCH 9 -#define MOVE_THUNDERPUNCH MOVE_THUNDER_PUNCH // Pre-Gen VI name -#define MOVE_SCRATCH 10 -#define MOVE_VISE_GRIP 11 -#define MOVE_VICEGRIP MOVE_VISE_GRIP // Pre-Gen VI name -#define MOVE_VICE_GRIP MOVE_VISE_GRIP // Pre-Gen VIII name -#define MOVE_GUILLOTINE 12 -#define MOVE_RAZOR_WIND 13 -#define MOVE_SWORDS_DANCE 14 -#define MOVE_CUT 15 -#define MOVE_GUST 16 -#define MOVE_WING_ATTACK 17 -#define MOVE_WHIRLWIND 18 -#define MOVE_FLY 19 -#define MOVE_BIND 20 -#define MOVE_SLAM 21 -#define MOVE_VINE_WHIP 22 -#define MOVE_STOMP 23 -#define MOVE_DOUBLE_KICK 24 -#define MOVE_MEGA_KICK 25 -#define MOVE_JUMP_KICK 26 -#define MOVE_ROLLING_KICK 27 -#define MOVE_SAND_ATTACK 28 -#define MOVE_HEADBUTT 29 -#define MOVE_HORN_ATTACK 30 -#define MOVE_FURY_ATTACK 31 -#define MOVE_HORN_DRILL 32 -#define MOVE_TACKLE 33 -#define MOVE_BODY_SLAM 34 -#define MOVE_WRAP 35 -#define MOVE_TAKE_DOWN 36 -#define MOVE_THRASH 37 -#define MOVE_DOUBLE_EDGE 38 -#define MOVE_TAIL_WHIP 39 -#define MOVE_POISON_STING 40 -#define MOVE_TWINEEDLE 41 -#define MOVE_PIN_MISSILE 42 -#define MOVE_LEER 43 -#define MOVE_BITE 44 -#define MOVE_GROWL 45 -#define MOVE_ROAR 46 -#define MOVE_SING 47 -#define MOVE_SUPERSONIC 48 -#define MOVE_SONIC_BOOM 49 -#define MOVE_SONICBOOM MOVE_SONIC_BOOM // Pre-Gen VI name -#define MOVE_DISABLE 50 -#define MOVE_ACID 51 -#define MOVE_EMBER 52 -#define MOVE_FLAMETHROWER 53 -#define MOVE_MIST 54 -#define MOVE_WATER_GUN 55 -#define MOVE_HYDRO_PUMP 56 -#define MOVE_SURF 57 -#define MOVE_ICE_BEAM 58 -#define MOVE_BLIZZARD 59 -#define MOVE_PSYBEAM 60 -#define MOVE_BUBBLE_BEAM 61 -#define MOVE_BUBBLEBEAM MOVE_BUBBLE_BEAM // Pre-Gen VI name -#define MOVE_AURORA_BEAM 62 -#define MOVE_HYPER_BEAM 63 -#define MOVE_PECK 64 -#define MOVE_DRILL_PECK 65 -#define MOVE_SUBMISSION 66 -#define MOVE_LOW_KICK 67 -#define MOVE_COUNTER 68 -#define MOVE_SEISMIC_TOSS 69 -#define MOVE_STRENGTH 70 -#define MOVE_ABSORB 71 -#define MOVE_MEGA_DRAIN 72 -#define MOVE_LEECH_SEED 73 -#define MOVE_GROWTH 74 -#define MOVE_RAZOR_LEAF 75 -#define MOVE_SOLAR_BEAM 76 -#define MOVE_SOLARBEAM MOVE_SOLAR_BEAM // Pre-Gen VI name -#define MOVE_POISON_POWDER 77 -#define MOVE_POISONPOWDER MOVE_POISON_POWDER // Pre-Gen VI name -#define MOVE_STUN_SPORE 78 -#define MOVE_SLEEP_POWDER 79 -#define MOVE_PETAL_DANCE 80 -#define MOVE_STRING_SHOT 81 -#define MOVE_DRAGON_RAGE 82 -#define MOVE_FIRE_SPIN 83 -#define MOVE_THUNDER_SHOCK 84 -#define MOVE_THUNDERSHOCK MOVE_THUNDER_SHOCK // Pre-Gen VI name -#define MOVE_THUNDERBOLT 85 -#define MOVE_THUNDER_WAVE 86 -#define MOVE_THUNDER 87 -#define MOVE_ROCK_THROW 88 -#define MOVE_EARTHQUAKE 89 -#define MOVE_FISSURE 90 -#define MOVE_DIG 91 -#define MOVE_TOXIC 92 -#define MOVE_CONFUSION 93 -#define MOVE_PSYCHIC 94 -#define MOVE_HYPNOSIS 95 -#define MOVE_MEDITATE 96 -#define MOVE_AGILITY 97 -#define MOVE_QUICK_ATTACK 98 -#define MOVE_RAGE 99 -#define MOVE_TELEPORT 100 -#define MOVE_NIGHT_SHADE 101 -#define MOVE_MIMIC 102 -#define MOVE_SCREECH 103 -#define MOVE_DOUBLE_TEAM 104 -#define MOVE_RECOVER 105 -#define MOVE_HARDEN 106 -#define MOVE_MINIMIZE 107 -#define MOVE_SMOKESCREEN 108 -#define MOVE_CONFUSE_RAY 109 -#define MOVE_WITHDRAW 110 -#define MOVE_DEFENSE_CURL 111 -#define MOVE_BARRIER 112 -#define MOVE_LIGHT_SCREEN 113 -#define MOVE_HAZE 114 -#define MOVE_REFLECT 115 -#define MOVE_FOCUS_ENERGY 116 -#define MOVE_BIDE 117 -#define MOVE_METRONOME 118 -#define MOVE_MIRROR_MOVE 119 -#define MOVE_SELF_DESTRUCT 120 -#define MOVE_SELFDESTRUCT MOVE_SELF_DESTRUCT // Pre-Gen VI name -#define MOVE_EGG_BOMB 121 -#define MOVE_LICK 122 -#define MOVE_SMOG 123 -#define MOVE_SLUDGE 124 -#define MOVE_BONE_CLUB 125 -#define MOVE_FIRE_BLAST 126 -#define MOVE_WATERFALL 127 -#define MOVE_CLAMP 128 -#define MOVE_SWIFT 129 -#define MOVE_SKULL_BASH 130 -#define MOVE_SPIKE_CANNON 131 -#define MOVE_CONSTRICT 132 -#define MOVE_AMNESIA 133 -#define MOVE_KINESIS 134 -#define MOVE_SOFT_BOILED 135 -#define MOVE_SOFTBOILED MOVE_SOFT_BOILED // Pre-Gen VI name -#define MOVE_HIGH_JUMP_KICK 136 -#define MOVE_HI_JUMP_KICK MOVE_HIGH_JUMP_KICK // Pre-Gen VI name -#define MOVE_GLARE 137 -#define MOVE_DREAM_EATER 138 -#define MOVE_POISON_GAS 139 -#define MOVE_BARRAGE 140 -#define MOVE_LEECH_LIFE 141 -#define MOVE_LOVELY_KISS 142 -#define MOVE_SKY_ATTACK 143 -#define MOVE_TRANSFORM 144 -#define MOVE_BUBBLE 145 -#define MOVE_DIZZY_PUNCH 146 -#define MOVE_SPORE 147 -#define MOVE_FLASH 148 -#define MOVE_PSYWAVE 149 -#define MOVE_SPLASH 150 -#define MOVE_ACID_ARMOR 151 -#define MOVE_CRABHAMMER 152 -#define MOVE_EXPLOSION 153 -#define MOVE_FURY_SWIPES 154 -#define MOVE_BONEMERANG 155 -#define MOVE_REST 156 -#define MOVE_ROCK_SLIDE 157 -#define MOVE_HYPER_FANG 158 -#define MOVE_SHARPEN 159 -#define MOVE_CONVERSION 160 -#define MOVE_TRI_ATTACK 161 -#define MOVE_SUPER_FANG 162 -#define MOVE_SLASH 163 -#define MOVE_SUBSTITUTE 164 -#define MOVE_STRUGGLE 165 +enum __attribute__((packed)) Move +{ + MOVE_NONE = 0, + MOVE_POUND = 1, + MOVE_KARATE_CHOP = 2, + MOVE_DOUBLE_SLAP = 3, + MOVE_DOUBLESLAP = MOVE_DOUBLE_SLAP, // Pre-Gen VI name + MOVE_COMET_PUNCH = 4, + MOVE_MEGA_PUNCH = 5, + MOVE_PAY_DAY = 6, + MOVE_FIRE_PUNCH = 7, + MOVE_ICE_PUNCH = 8, + MOVE_THUNDER_PUNCH = 9, + MOVE_THUNDERPUNCH = MOVE_THUNDER_PUNCH, // Pre-Gen VI name + MOVE_SCRATCH = 10, + MOVE_VISE_GRIP = 11, + MOVE_VICEGRIP = MOVE_VISE_GRIP, // Pre-Gen VI name + MOVE_VICE_GRIP = MOVE_VISE_GRIP, // Pre-Gen VIII name + MOVE_GUILLOTINE = 12, + MOVE_RAZOR_WIND = 13, + MOVE_SWORDS_DANCE = 14, + MOVE_CUT = 15, + MOVE_GUST = 16, + MOVE_WING_ATTACK = 17, + MOVE_WHIRLWIND = 18, + MOVE_FLY = 19, + MOVE_BIND = 20, + MOVE_SLAM = 21, + MOVE_VINE_WHIP = 22, + MOVE_STOMP = 23, + MOVE_DOUBLE_KICK = 24, + MOVE_MEGA_KICK = 25, + MOVE_JUMP_KICK = 26, + MOVE_ROLLING_KICK = 27, + MOVE_SAND_ATTACK = 28, + MOVE_HEADBUTT = 29, + MOVE_HORN_ATTACK = 30, + MOVE_FURY_ATTACK = 31, + MOVE_HORN_DRILL = 32, + MOVE_TACKLE = 33, + MOVE_BODY_SLAM = 34, + MOVE_WRAP = 35, + MOVE_TAKE_DOWN = 36, + MOVE_THRASH = 37, + MOVE_DOUBLE_EDGE = 38, + MOVE_TAIL_WHIP = 39, + MOVE_POISON_STING = 40, + MOVE_TWINEEDLE = 41, + MOVE_PIN_MISSILE = 42, + MOVE_LEER = 43, + MOVE_BITE = 44, + MOVE_GROWL = 45, + MOVE_ROAR = 46, + MOVE_SING = 47, + MOVE_SUPERSONIC = 48, + MOVE_SONIC_BOOM = 49, + MOVE_SONICBOOM = MOVE_SONIC_BOOM, // Pre-Gen VI name + MOVE_DISABLE = 50, + MOVE_ACID = 51, + MOVE_EMBER = 52, + MOVE_FLAMETHROWER = 53, + MOVE_MIST = 54, + MOVE_WATER_GUN = 55, + MOVE_HYDRO_PUMP = 56, + MOVE_SURF = 57, + MOVE_ICE_BEAM = 58, + MOVE_BLIZZARD = 59, + MOVE_PSYBEAM = 60, + MOVE_BUBBLE_BEAM = 61, + MOVE_BUBBLEBEAM = MOVE_BUBBLE_BEAM, // Pre-Gen VI name + MOVE_AURORA_BEAM = 62, + MOVE_HYPER_BEAM = 63, + MOVE_PECK = 64, + MOVE_DRILL_PECK = 65, + MOVE_SUBMISSION = 66, + MOVE_LOW_KICK = 67, + MOVE_COUNTER = 68, + MOVE_SEISMIC_TOSS = 69, + MOVE_STRENGTH = 70, + MOVE_ABSORB = 71, + MOVE_MEGA_DRAIN = 72, + MOVE_LEECH_SEED = 73, + MOVE_GROWTH = 74, + MOVE_RAZOR_LEAF = 75, + MOVE_SOLAR_BEAM = 76, + MOVE_SOLARBEAM = MOVE_SOLAR_BEAM, // Pre-Gen VI name + MOVE_POISON_POWDER = 77, + MOVE_POISONPOWDER = MOVE_POISON_POWDER, // Pre-Gen VI name + MOVE_STUN_SPORE = 78, + MOVE_SLEEP_POWDER = 79, + MOVE_PETAL_DANCE = 80, + MOVE_STRING_SHOT = 81, + MOVE_DRAGON_RAGE = 82, + MOVE_FIRE_SPIN = 83, + MOVE_THUNDER_SHOCK = 84, + MOVE_THUNDERSHOCK = MOVE_THUNDER_SHOCK, // Pre-Gen VI name + MOVE_THUNDERBOLT = 85, + MOVE_THUNDER_WAVE = 86, + MOVE_THUNDER = 87, + MOVE_ROCK_THROW = 88, + MOVE_EARTHQUAKE = 89, + MOVE_FISSURE = 90, + MOVE_DIG = 91, + MOVE_TOXIC = 92, + MOVE_CONFUSION = 93, + MOVE_PSYCHIC = 94, + MOVE_HYPNOSIS = 95, + MOVE_MEDITATE = 96, + MOVE_AGILITY = 97, + MOVE_QUICK_ATTACK = 98, + MOVE_RAGE = 99, + MOVE_TELEPORT = 100, + MOVE_NIGHT_SHADE = 101, + MOVE_MIMIC = 102, + MOVE_SCREECH = 103, + MOVE_DOUBLE_TEAM = 104, + MOVE_RECOVER = 105, + MOVE_HARDEN = 106, + MOVE_MINIMIZE = 107, + MOVE_SMOKESCREEN = 108, + MOVE_CONFUSE_RAY = 109, + MOVE_WITHDRAW = 110, + MOVE_DEFENSE_CURL = 111, + MOVE_BARRIER = 112, + MOVE_LIGHT_SCREEN = 113, + MOVE_HAZE = 114, + MOVE_REFLECT = 115, + MOVE_FOCUS_ENERGY = 116, + MOVE_BIDE = 117, + MOVE_METRONOME = 118, + MOVE_MIRROR_MOVE = 119, + MOVE_SELF_DESTRUCT = 120, + MOVE_SELFDESTRUCT = MOVE_SELF_DESTRUCT, // Pre-Gen VI name + MOVE_EGG_BOMB = 121, + MOVE_LICK = 122, + MOVE_SMOG = 123, + MOVE_SLUDGE = 124, + MOVE_BONE_CLUB = 125, + MOVE_FIRE_BLAST = 126, + MOVE_WATERFALL = 127, + MOVE_CLAMP = 128, + MOVE_SWIFT = 129, + MOVE_SKULL_BASH = 130, + MOVE_SPIKE_CANNON = 131, + MOVE_CONSTRICT = 132, + MOVE_AMNESIA = 133, + MOVE_KINESIS = 134, + MOVE_SOFT_BOILED = 135, + MOVE_SOFTBOILED = MOVE_SOFT_BOILED, // Pre-Gen VI name + MOVE_HIGH_JUMP_KICK = 136, + MOVE_HI_JUMP_KICK = MOVE_HIGH_JUMP_KICK, // Pre-Gen VI name + MOVE_GLARE = 137, + MOVE_DREAM_EATER = 138, + MOVE_POISON_GAS = 139, + MOVE_BARRAGE = 140, + MOVE_LEECH_LIFE = 141, + MOVE_LOVELY_KISS = 142, + MOVE_SKY_ATTACK = 143, + MOVE_TRANSFORM = 144, + MOVE_BUBBLE = 145, + MOVE_DIZZY_PUNCH = 146, + MOVE_SPORE = 147, + MOVE_FLASH = 148, + MOVE_PSYWAVE = 149, + MOVE_SPLASH = 150, + MOVE_ACID_ARMOR = 151, + MOVE_CRABHAMMER = 152, + MOVE_EXPLOSION = 153, + MOVE_FURY_SWIPES = 154, + MOVE_BONEMERANG = 155, + MOVE_REST = 156, + MOVE_ROCK_SLIDE = 157, + MOVE_HYPER_FANG = 158, + MOVE_SHARPEN = 159, + MOVE_CONVERSION = 160, + MOVE_TRI_ATTACK = 161, + MOVE_SUPER_FANG = 162, + MOVE_SLASH = 163, + MOVE_SUBSTITUTE = 164, + MOVE_STRUGGLE = 165, + MOVES_COUNT_GEN1, -#define MOVES_COUNT_GEN1 166 + // Gen 2 + MOVE_SKETCH = MOVES_COUNT_GEN1, + MOVE_TRIPLE_KICK = 167, + MOVE_THIEF = 168, + MOVE_SPIDER_WEB = 169, + MOVE_MIND_READER = 170, + MOVE_NIGHTMARE = 171, + MOVE_FLAME_WHEEL = 172, + MOVE_SNORE = 173, + MOVE_CURSE = 174, + MOVE_FLAIL = 175, + MOVE_CONVERSION_2 = 176, + MOVE_AEROBLAST = 177, + MOVE_COTTON_SPORE = 178, + MOVE_REVERSAL = 179, + MOVE_SPITE = 180, + MOVE_POWDER_SNOW = 181, + MOVE_PROTECT = 182, + MOVE_MACH_PUNCH = 183, + MOVE_SCARY_FACE = 184, + MOVE_FEINT_ATTACK = 185, + MOVE_FAINT_ATTACK = MOVE_FEINT_ATTACK, // Pre-Gen VI name + MOVE_SWEET_KISS = 186, + MOVE_BELLY_DRUM = 187, + MOVE_SLUDGE_BOMB = 188, + MOVE_MUD_SLAP = 189, + MOVE_OCTAZOOKA = 190, + MOVE_SPIKES = 191, + MOVE_ZAP_CANNON = 192, + MOVE_FORESIGHT = 193, + MOVE_DESTINY_BOND = 194, + MOVE_PERISH_SONG = 195, + MOVE_ICY_WIND = 196, + MOVE_DETECT = 197, + MOVE_BONE_RUSH = 198, + MOVE_LOCK_ON = 199, + MOVE_OUTRAGE = 200, + MOVE_SANDSTORM = 201, + MOVE_GIGA_DRAIN = 202, + MOVE_ENDURE = 203, + MOVE_CHARM = 204, + MOVE_ROLLOUT = 205, + MOVE_FALSE_SWIPE = 206, + MOVE_SWAGGER = 207, + MOVE_MILK_DRINK = 208, + MOVE_SPARK = 209, + MOVE_FURY_CUTTER = 210, + MOVE_STEEL_WING = 211, + MOVE_MEAN_LOOK = 212, + MOVE_ATTRACT = 213, + MOVE_SLEEP_TALK = 214, + MOVE_HEAL_BELL = 215, + MOVE_RETURN = 216, + MOVE_PRESENT = 217, + MOVE_FRUSTRATION = 218, + MOVE_SAFEGUARD = 219, + MOVE_PAIN_SPLIT = 220, + MOVE_SACRED_FIRE = 221, + MOVE_MAGNITUDE = 222, + MOVE_DYNAMIC_PUNCH = 223, + MOVE_DYNAMICPUNCH = MOVE_DYNAMIC_PUNCH, // Pre-Gen VI name + MOVE_MEGAHORN = 224, + MOVE_DRAGON_BREATH = 225, + MOVE_DRAGONBREATH = MOVE_DRAGON_BREATH, // Pre-Gen VI name + MOVE_BATON_PASS = 226, + MOVE_ENCORE = 227, + MOVE_PURSUIT = 228, + MOVE_RAPID_SPIN = 229, + MOVE_SWEET_SCENT = 230, + MOVE_IRON_TAIL = 231, + MOVE_METAL_CLAW = 232, + MOVE_VITAL_THROW = 233, + MOVE_MORNING_SUN = 234, + MOVE_SYNTHESIS = 235, + MOVE_MOONLIGHT = 236, + MOVE_HIDDEN_POWER = 237, + MOVE_CROSS_CHOP = 238, + MOVE_TWISTER = 239, + MOVE_RAIN_DANCE = 240, + MOVE_SUNNY_DAY = 241, + MOVE_CRUNCH = 242, + MOVE_MIRROR_COAT = 243, + MOVE_PSYCH_UP = 244, + MOVE_EXTREME_SPEED = 245, + MOVE_EXTREMESPEED = MOVE_EXTREME_SPEED, // Pre-Gen VI name + MOVE_ANCIENT_POWER = 246, + MOVE_ANCIENTPOWER = MOVE_ANCIENT_POWER, // Pre-Gen VI name + MOVE_SHADOW_BALL = 247, + MOVE_FUTURE_SIGHT = 248, + MOVE_ROCK_SMASH = 249, + MOVE_WHIRLPOOL = 250, + MOVE_BEAT_UP = 251, + MOVES_COUNT_GEN2, -#define MOVE_SKETCH 166 -#define MOVE_TRIPLE_KICK 167 -#define MOVE_THIEF 168 -#define MOVE_SPIDER_WEB 169 -#define MOVE_MIND_READER 170 -#define MOVE_NIGHTMARE 171 -#define MOVE_FLAME_WHEEL 172 -#define MOVE_SNORE 173 -#define MOVE_CURSE 174 -#define MOVE_FLAIL 175 -#define MOVE_CONVERSION_2 176 -#define MOVE_AEROBLAST 177 -#define MOVE_COTTON_SPORE 178 -#define MOVE_REVERSAL 179 -#define MOVE_SPITE 180 -#define MOVE_POWDER_SNOW 181 -#define MOVE_PROTECT 182 -#define MOVE_MACH_PUNCH 183 -#define MOVE_SCARY_FACE 184 -#define MOVE_FEINT_ATTACK 185 -#define MOVE_FAINT_ATTACK MOVE_FEINT_ATTACK // Pre-Gen VI name -#define MOVE_SWEET_KISS 186 -#define MOVE_BELLY_DRUM 187 -#define MOVE_SLUDGE_BOMB 188 -#define MOVE_MUD_SLAP 189 -#define MOVE_OCTAZOOKA 190 -#define MOVE_SPIKES 191 -#define MOVE_ZAP_CANNON 192 -#define MOVE_FORESIGHT 193 -#define MOVE_DESTINY_BOND 194 -#define MOVE_PERISH_SONG 195 -#define MOVE_ICY_WIND 196 -#define MOVE_DETECT 197 -#define MOVE_BONE_RUSH 198 -#define MOVE_LOCK_ON 199 -#define MOVE_OUTRAGE 200 -#define MOVE_SANDSTORM 201 -#define MOVE_GIGA_DRAIN 202 -#define MOVE_ENDURE 203 -#define MOVE_CHARM 204 -#define MOVE_ROLLOUT 205 -#define MOVE_FALSE_SWIPE 206 -#define MOVE_SWAGGER 207 -#define MOVE_MILK_DRINK 208 -#define MOVE_SPARK 209 -#define MOVE_FURY_CUTTER 210 -#define MOVE_STEEL_WING 211 -#define MOVE_MEAN_LOOK 212 -#define MOVE_ATTRACT 213 -#define MOVE_SLEEP_TALK 214 -#define MOVE_HEAL_BELL 215 -#define MOVE_RETURN 216 -#define MOVE_PRESENT 217 -#define MOVE_FRUSTRATION 218 -#define MOVE_SAFEGUARD 219 -#define MOVE_PAIN_SPLIT 220 -#define MOVE_SACRED_FIRE 221 -#define MOVE_MAGNITUDE 222 -#define MOVE_DYNAMIC_PUNCH 223 -#define MOVE_DYNAMICPUNCH MOVE_DYNAMIC_PUNCH // Pre-Gen VI name -#define MOVE_MEGAHORN 224 -#define MOVE_DRAGON_BREATH 225 -#define MOVE_DRAGONBREATH MOVE_DRAGON_BREATH // Pre-Gen VI name -#define MOVE_BATON_PASS 226 -#define MOVE_ENCORE 227 -#define MOVE_PURSUIT 228 -#define MOVE_RAPID_SPIN 229 -#define MOVE_SWEET_SCENT 230 -#define MOVE_IRON_TAIL 231 -#define MOVE_METAL_CLAW 232 -#define MOVE_VITAL_THROW 233 -#define MOVE_MORNING_SUN 234 -#define MOVE_SYNTHESIS 235 -#define MOVE_MOONLIGHT 236 -#define MOVE_HIDDEN_POWER 237 -#define MOVE_CROSS_CHOP 238 -#define MOVE_TWISTER 239 -#define MOVE_RAIN_DANCE 240 -#define MOVE_SUNNY_DAY 241 -#define MOVE_CRUNCH 242 -#define MOVE_MIRROR_COAT 243 -#define MOVE_PSYCH_UP 244 -#define MOVE_EXTREME_SPEED 245 -#define MOVE_EXTREMESPEED MOVE_EXTREME_SPEED // Pre-Gen VI name -#define MOVE_ANCIENT_POWER 246 -#define MOVE_ANCIENTPOWER MOVE_ANCIENT_POWER // Pre-Gen VI name -#define MOVE_SHADOW_BALL 247 -#define MOVE_FUTURE_SIGHT 248 -#define MOVE_ROCK_SMASH 249 -#define MOVE_WHIRLPOOL 250 -#define MOVE_BEAT_UP 251 + // Gen 3 + MOVE_FAKE_OUT = MOVES_COUNT_GEN2, + MOVE_UPROAR = 253, + MOVE_STOCKPILE = 254, + MOVE_SPIT_UP = 255, + MOVE_SWALLOW = 256, + MOVE_HEAT_WAVE = 257, + MOVE_HAIL = 258, + MOVE_TORMENT = 259, + MOVE_FLATTER = 260, + MOVE_WILL_O_WISP = 261, + MOVE_MEMENTO = 262, + MOVE_FACADE = 263, + MOVE_FOCUS_PUNCH = 264, + MOVE_SMELLING_SALTS = 265, + MOVE_SMELLINGSALT = MOVE_SMELLING_SALTS, // Pre-Gen VI name + MOVE_FOLLOW_ME = 266, + MOVE_NATURE_POWER = 267, + MOVE_CHARGE = 268, + MOVE_TAUNT = 269, + MOVE_HELPING_HAND = 270, + MOVE_TRICK = 271, + MOVE_ROLE_PLAY = 272, + MOVE_WISH = 273, + MOVE_ASSIST = 274, + MOVE_INGRAIN = 275, + MOVE_SUPERPOWER = 276, + MOVE_MAGIC_COAT = 277, + MOVE_RECYCLE = 278, + MOVE_REVENGE = 279, + MOVE_BRICK_BREAK = 280, + MOVE_YAWN = 281, + MOVE_KNOCK_OFF = 282, + MOVE_ENDEAVOR = 283, + MOVE_ERUPTION = 284, + MOVE_SKILL_SWAP = 285, + MOVE_IMPRISON = 286, + MOVE_REFRESH = 287, + MOVE_GRUDGE = 288, + MOVE_SNATCH = 289, + MOVE_SECRET_POWER = 290, + MOVE_DIVE = 291, + MOVE_ARM_THRUST = 292, + MOVE_CAMOUFLAGE = 293, + MOVE_TAIL_GLOW = 294, + MOVE_LUSTER_PURGE = 295, + MOVE_MIST_BALL = 296, + MOVE_FEATHER_DANCE = 297, + MOVE_FEATHERDANCE = MOVE_FEATHER_DANCE, // Pre-Gen VI name + MOVE_TEETER_DANCE = 298, + MOVE_BLAZE_KICK = 299, + MOVE_MUD_SPORT = 300, + MOVE_ICE_BALL = 301, + MOVE_NEEDLE_ARM = 302, + MOVE_SLACK_OFF = 303, + MOVE_HYPER_VOICE = 304, + MOVE_POISON_FANG = 305, + MOVE_CRUSH_CLAW = 306, + MOVE_BLAST_BURN = 307, + MOVE_HYDRO_CANNON = 308, + MOVE_METEOR_MASH = 309, + MOVE_ASTONISH = 310, + MOVE_WEATHER_BALL = 311, + MOVE_AROMATHERAPY = 312, + MOVE_FAKE_TEARS = 313, + MOVE_AIR_CUTTER = 314, + MOVE_OVERHEAT = 315, + MOVE_ODOR_SLEUTH = 316, + MOVE_ROCK_TOMB = 317, + MOVE_SILVER_WIND = 318, + MOVE_METAL_SOUND = 319, + MOVE_GRASS_WHISTLE = 320, + MOVE_GRASSWHISTLE = MOVE_GRASS_WHISTLE, // Pre-Gen VI name + MOVE_TICKLE = 321, + MOVE_COSMIC_POWER = 322, + MOVE_WATER_SPOUT = 323, + MOVE_SIGNAL_BEAM = 324, + MOVE_SHADOW_PUNCH = 325, + MOVE_EXTRASENSORY = 326, + MOVE_SKY_UPPERCUT = 327, + MOVE_SAND_TOMB = 328, + MOVE_SHEER_COLD = 329, + MOVE_MUDDY_WATER = 330, + MOVE_BULLET_SEED = 331, + MOVE_AERIAL_ACE = 332, + MOVE_ICICLE_SPEAR = 333, + MOVE_IRON_DEFENSE = 334, + MOVE_BLOCK = 335, + MOVE_HOWL = 336, + MOVE_DRAGON_CLAW = 337, + MOVE_FRENZY_PLANT = 338, + MOVE_BULK_UP = 339, + MOVE_BOUNCE = 340, + MOVE_MUD_SHOT = 341, + MOVE_POISON_TAIL = 342, + MOVE_COVET = 343, + MOVE_VOLT_TACKLE = 344, + MOVE_MAGICAL_LEAF = 345, + MOVE_WATER_SPORT = 346, + MOVE_CALM_MIND = 347, + MOVE_LEAF_BLADE = 348, + MOVE_DRAGON_DANCE = 349, + MOVE_ROCK_BLAST = 350, + MOVE_SHOCK_WAVE = 351, + MOVE_WATER_PULSE = 352, + MOVE_DOOM_DESIRE = 353, + MOVE_PSYCHO_BOOST = 354, + MOVES_COUNT_GEN3, -#define MOVES_COUNT_GEN2 252 + // Gen 4 + MOVE_ROOST = MOVES_COUNT_GEN3, + MOVE_GRAVITY = 356, + MOVE_MIRACLE_EYE = 357, + MOVE_WAKE_UP_SLAP = 358, + MOVE_HAMMER_ARM = 359, + MOVE_GYRO_BALL = 360, + MOVE_HEALING_WISH = 361, + MOVE_BRINE = 362, + MOVE_NATURAL_GIFT = 363, + MOVE_FEINT = 364, + MOVE_PLUCK = 365, + MOVE_TAILWIND = 366, + MOVE_ACUPRESSURE = 367, + MOVE_METAL_BURST = 368, + MOVE_U_TURN = 369, + MOVE_CLOSE_COMBAT = 370, + MOVE_PAYBACK = 371, + MOVE_ASSURANCE = 372, + MOVE_EMBARGO = 373, + MOVE_FLING = 374, + MOVE_PSYCHO_SHIFT = 375, + MOVE_TRUMP_CARD = 376, + MOVE_HEAL_BLOCK = 377, + MOVE_WRING_OUT = 378, + MOVE_POWER_TRICK = 379, + MOVE_GASTRO_ACID = 380, + MOVE_LUCKY_CHANT = 381, + MOVE_ME_FIRST = 382, + MOVE_COPYCAT = 383, + MOVE_POWER_SWAP = 384, + MOVE_GUARD_SWAP = 385, + MOVE_PUNISHMENT = 386, + MOVE_LAST_RESORT = 387, + MOVE_WORRY_SEED = 388, + MOVE_SUCKER_PUNCH = 389, + MOVE_TOXIC_SPIKES = 390, + MOVE_HEART_SWAP = 391, + MOVE_AQUA_RING = 392, + MOVE_MAGNET_RISE = 393, + MOVE_FLARE_BLITZ = 394, + MOVE_FORCE_PALM = 395, + MOVE_AURA_SPHERE = 396, + MOVE_ROCK_POLISH = 397, + MOVE_POISON_JAB = 398, + MOVE_DARK_PULSE = 399, + MOVE_NIGHT_SLASH = 400, + MOVE_AQUA_TAIL = 401, + MOVE_SEED_BOMB = 402, + MOVE_AIR_SLASH = 403, + MOVE_X_SCISSOR = 404, + MOVE_BUG_BUZZ = 405, + MOVE_DRAGON_PULSE = 406, + MOVE_DRAGON_RUSH = 407, + MOVE_POWER_GEM = 408, + MOVE_DRAIN_PUNCH = 409, + MOVE_VACUUM_WAVE = 410, + MOVE_FOCUS_BLAST = 411, + MOVE_ENERGY_BALL = 412, + MOVE_BRAVE_BIRD = 413, + MOVE_EARTH_POWER = 414, + MOVE_SWITCHEROO = 415, + MOVE_GIGA_IMPACT = 416, + MOVE_NASTY_PLOT = 417, + MOVE_BULLET_PUNCH = 418, + MOVE_AVALANCHE = 419, + MOVE_ICE_SHARD = 420, + MOVE_SHADOW_CLAW = 421, + MOVE_THUNDER_FANG = 422, + MOVE_ICE_FANG = 423, + MOVE_FIRE_FANG = 424, + MOVE_SHADOW_SNEAK = 425, + MOVE_MUD_BOMB = 426, + MOVE_PSYCHO_CUT = 427, + MOVE_ZEN_HEADBUTT = 428, + MOVE_MIRROR_SHOT = 429, + MOVE_FLASH_CANNON = 430, + MOVE_ROCK_CLIMB = 431, + MOVE_DEFOG = 432, + MOVE_TRICK_ROOM = 433, + MOVE_DRACO_METEOR = 434, + MOVE_DISCHARGE = 435, + MOVE_LAVA_PLUME = 436, + MOVE_LEAF_STORM = 437, + MOVE_POWER_WHIP = 438, + MOVE_ROCK_WRECKER = 439, + MOVE_CROSS_POISON = 440, + MOVE_GUNK_SHOT = 441, + MOVE_IRON_HEAD = 442, + MOVE_MAGNET_BOMB = 443, + MOVE_STONE_EDGE = 444, + MOVE_CAPTIVATE = 445, + MOVE_STEALTH_ROCK = 446, + MOVE_GRASS_KNOT = 447, + MOVE_CHATTER = 448, + MOVE_JUDGMENT = 449, + MOVE_BUG_BITE = 450, + MOVE_CHARGE_BEAM = 451, + MOVE_WOOD_HAMMER = 452, + MOVE_AQUA_JET = 453, + MOVE_ATTACK_ORDER = 454, + MOVE_DEFEND_ORDER = 455, + MOVE_HEAL_ORDER = 456, + MOVE_HEAD_SMASH = 457, + MOVE_DOUBLE_HIT = 458, + MOVE_ROAR_OF_TIME = 459, + MOVE_SPACIAL_REND = 460, + MOVE_LUNAR_DANCE = 461, + MOVE_CRUSH_GRIP = 462, + MOVE_MAGMA_STORM = 463, + MOVE_DARK_VOID = 464, + MOVE_SEED_FLARE = 465, + MOVE_OMINOUS_WIND = 466, + MOVE_SHADOW_FORCE = 467, + MOVES_COUNT_GEN4, -#define MOVE_FAKE_OUT 252 -#define MOVE_UPROAR 253 -#define MOVE_STOCKPILE 254 -#define MOVE_SPIT_UP 255 -#define MOVE_SWALLOW 256 -#define MOVE_HEAT_WAVE 257 -#define MOVE_HAIL 258 -#define MOVE_TORMENT 259 -#define MOVE_FLATTER 260 -#define MOVE_WILL_O_WISP 261 -#define MOVE_MEMENTO 262 -#define MOVE_FACADE 263 -#define MOVE_FOCUS_PUNCH 264 -#define MOVE_SMELLING_SALTS 265 -#define MOVE_SMELLINGSALT MOVE_SMELLING_SALTS // Pre-Gen VI name -#define MOVE_FOLLOW_ME 266 -#define MOVE_NATURE_POWER 267 -#define MOVE_CHARGE 268 -#define MOVE_TAUNT 269 -#define MOVE_HELPING_HAND 270 -#define MOVE_TRICK 271 -#define MOVE_ROLE_PLAY 272 -#define MOVE_WISH 273 -#define MOVE_ASSIST 274 -#define MOVE_INGRAIN 275 -#define MOVE_SUPERPOWER 276 -#define MOVE_MAGIC_COAT 277 -#define MOVE_RECYCLE 278 -#define MOVE_REVENGE 279 -#define MOVE_BRICK_BREAK 280 -#define MOVE_YAWN 281 -#define MOVE_KNOCK_OFF 282 -#define MOVE_ENDEAVOR 283 -#define MOVE_ERUPTION 284 -#define MOVE_SKILL_SWAP 285 -#define MOVE_IMPRISON 286 -#define MOVE_REFRESH 287 -#define MOVE_GRUDGE 288 -#define MOVE_SNATCH 289 -#define MOVE_SECRET_POWER 290 -#define MOVE_DIVE 291 -#define MOVE_ARM_THRUST 292 -#define MOVE_CAMOUFLAGE 293 -#define MOVE_TAIL_GLOW 294 -#define MOVE_LUSTER_PURGE 295 -#define MOVE_MIST_BALL 296 -#define MOVE_FEATHER_DANCE 297 -#define MOVE_FEATHERDANCE MOVE_FEATHER_DANCE // Pre-Gen VI name -#define MOVE_TEETER_DANCE 298 -#define MOVE_BLAZE_KICK 299 -#define MOVE_MUD_SPORT 300 -#define MOVE_ICE_BALL 301 -#define MOVE_NEEDLE_ARM 302 -#define MOVE_SLACK_OFF 303 -#define MOVE_HYPER_VOICE 304 -#define MOVE_POISON_FANG 305 -#define MOVE_CRUSH_CLAW 306 -#define MOVE_BLAST_BURN 307 -#define MOVE_HYDRO_CANNON 308 -#define MOVE_METEOR_MASH 309 -#define MOVE_ASTONISH 310 -#define MOVE_WEATHER_BALL 311 -#define MOVE_AROMATHERAPY 312 -#define MOVE_FAKE_TEARS 313 -#define MOVE_AIR_CUTTER 314 -#define MOVE_OVERHEAT 315 -#define MOVE_ODOR_SLEUTH 316 -#define MOVE_ROCK_TOMB 317 -#define MOVE_SILVER_WIND 318 -#define MOVE_METAL_SOUND 319 -#define MOVE_GRASS_WHISTLE 320 -#define MOVE_GRASSWHISTLE MOVE_GRASS_WHISTLE // Pre-Gen VI name -#define MOVE_TICKLE 321 -#define MOVE_COSMIC_POWER 322 -#define MOVE_WATER_SPOUT 323 -#define MOVE_SIGNAL_BEAM 324 -#define MOVE_SHADOW_PUNCH 325 -#define MOVE_EXTRASENSORY 326 -#define MOVE_SKY_UPPERCUT 327 -#define MOVE_SAND_TOMB 328 -#define MOVE_SHEER_COLD 329 -#define MOVE_MUDDY_WATER 330 -#define MOVE_BULLET_SEED 331 -#define MOVE_AERIAL_ACE 332 -#define MOVE_ICICLE_SPEAR 333 -#define MOVE_IRON_DEFENSE 334 -#define MOVE_BLOCK 335 -#define MOVE_HOWL 336 -#define MOVE_DRAGON_CLAW 337 -#define MOVE_FRENZY_PLANT 338 -#define MOVE_BULK_UP 339 -#define MOVE_BOUNCE 340 -#define MOVE_MUD_SHOT 341 -#define MOVE_POISON_TAIL 342 -#define MOVE_COVET 343 -#define MOVE_VOLT_TACKLE 344 -#define MOVE_MAGICAL_LEAF 345 -#define MOVE_WATER_SPORT 346 -#define MOVE_CALM_MIND 347 -#define MOVE_LEAF_BLADE 348 -#define MOVE_DRAGON_DANCE 349 -#define MOVE_ROCK_BLAST 350 -#define MOVE_SHOCK_WAVE 351 -#define MOVE_WATER_PULSE 352 -#define MOVE_DOOM_DESIRE 353 -#define MOVE_PSYCHO_BOOST 354 + // Gen 5 + MOVE_HONE_CLAWS = MOVES_COUNT_GEN4, + MOVE_WIDE_GUARD = 469, + MOVE_GUARD_SPLIT = 470, + MOVE_POWER_SPLIT = 471, + MOVE_WONDER_ROOM = 472, + MOVE_PSYSHOCK = 473, + MOVE_VENOSHOCK = 474, + MOVE_AUTOTOMIZE = 475, + MOVE_RAGE_POWDER = 476, + MOVE_TELEKINESIS = 477, + MOVE_MAGIC_ROOM = 478, + MOVE_SMACK_DOWN = 479, + MOVE_STORM_THROW = 480, + MOVE_FLAME_BURST = 481, + MOVE_SLUDGE_WAVE = 482, + MOVE_QUIVER_DANCE = 483, + MOVE_HEAVY_SLAM = 484, + MOVE_SYNCHRONOISE = 485, + MOVE_ELECTRO_BALL = 486, + MOVE_SOAK = 487, + MOVE_FLAME_CHARGE = 488, + MOVE_COIL = 489, + MOVE_LOW_SWEEP = 490, + MOVE_ACID_SPRAY = 491, + MOVE_FOUL_PLAY = 492, + MOVE_SIMPLE_BEAM = 493, + MOVE_ENTRAINMENT = 494, + MOVE_AFTER_YOU = 495, + MOVE_ROUND = 496, + MOVE_ECHOED_VOICE = 497, + MOVE_CHIP_AWAY = 498, + MOVE_CLEAR_SMOG = 499, + MOVE_STORED_POWER = 500, + MOVE_QUICK_GUARD = 501, + MOVE_ALLY_SWITCH = 502, + MOVE_SCALD = 503, + MOVE_SHELL_SMASH = 504, + MOVE_HEAL_PULSE = 505, + MOVE_HEX = 506, + MOVE_SKY_DROP = 507, + MOVE_SHIFT_GEAR = 508, + MOVE_CIRCLE_THROW = 509, + MOVE_INCINERATE = 510, + MOVE_QUASH = 511, + MOVE_ACROBATICS = 512, + MOVE_REFLECT_TYPE = 513, + MOVE_RETALIATE = 514, + MOVE_FINAL_GAMBIT = 515, + MOVE_BESTOW = 516, + MOVE_INFERNO = 517, + MOVE_WATER_PLEDGE = 518, + MOVE_FIRE_PLEDGE = 519, + MOVE_GRASS_PLEDGE = 520, + MOVE_VOLT_SWITCH = 521, + MOVE_STRUGGLE_BUG = 522, + MOVE_BULLDOZE = 523, + MOVE_FROST_BREATH = 524, + MOVE_DRAGON_TAIL = 525, + MOVE_WORK_UP = 526, + MOVE_ELECTROWEB = 527, + MOVE_WILD_CHARGE = 528, + MOVE_DRILL_RUN = 529, + MOVE_DUAL_CHOP = 530, + MOVE_HEART_STAMP = 531, + MOVE_HORN_LEECH = 532, + MOVE_SACRED_SWORD = 533, + MOVE_RAZOR_SHELL = 534, + MOVE_HEAT_CRASH = 535, + MOVE_LEAF_TORNADO = 536, + MOVE_STEAMROLLER = 537, + MOVE_COTTON_GUARD = 538, + MOVE_NIGHT_DAZE = 539, + MOVE_PSYSTRIKE = 540, + MOVE_TAIL_SLAP = 541, + MOVE_HURRICANE = 542, + MOVE_HEAD_CHARGE = 543, + MOVE_GEAR_GRIND = 544, + MOVE_SEARING_SHOT = 545, + MOVE_TECHNO_BLAST = 546, + MOVE_RELIC_SONG = 547, + MOVE_SECRET_SWORD = 548, + MOVE_GLACIATE = 549, + MOVE_BOLT_STRIKE = 550, + MOVE_BLUE_FLARE = 551, + MOVE_FIERY_DANCE = 552, + MOVE_FREEZE_SHOCK = 553, + MOVE_ICE_BURN = 554, + MOVE_SNARL = 555, + MOVE_ICICLE_CRASH = 556, + MOVE_V_CREATE = 557, + MOVE_FUSION_FLARE = 558, + MOVE_FUSION_BOLT = 559, + MOVES_COUNT_GEN5, -#define MOVES_COUNT_GEN3 355 + // Gen 6 + MOVE_FLYING_PRESS = MOVES_COUNT_GEN5, + MOVE_MAT_BLOCK = 561, + MOVE_BELCH = 562, + MOVE_ROTOTILLER = 563, + MOVE_STICKY_WEB = 564, + MOVE_FELL_STINGER = 565, + MOVE_PHANTOM_FORCE = 566, + MOVE_TRICK_OR_TREAT = 567, + MOVE_NOBLE_ROAR = 568, + MOVE_ION_DELUGE = 569, + MOVE_PARABOLIC_CHARGE = 570, + MOVE_FORESTS_CURSE = 571, + MOVE_PETAL_BLIZZARD = 572, + MOVE_FREEZE_DRY = 573, + MOVE_DISARMING_VOICE = 574, + MOVE_PARTING_SHOT = 575, + MOVE_TOPSY_TURVY = 576, + MOVE_DRAINING_KISS = 577, + MOVE_CRAFTY_SHIELD = 578, + MOVE_FLOWER_SHIELD = 579, + MOVE_GRASSY_TERRAIN = 580, + MOVE_MISTY_TERRAIN = 581, + MOVE_ELECTRIFY = 582, + MOVE_PLAY_ROUGH = 583, + MOVE_FAIRY_WIND = 584, + MOVE_MOONBLAST = 585, + MOVE_BOOMBURST = 586, + MOVE_FAIRY_LOCK = 587, + MOVE_KINGS_SHIELD = 588, + MOVE_PLAY_NICE = 589, + MOVE_CONFIDE = 590, + MOVE_DIAMOND_STORM = 591, + MOVE_STEAM_ERUPTION = 592, + MOVE_HYPERSPACE_HOLE = 593, + MOVE_WATER_SHURIKEN = 594, + MOVE_MYSTICAL_FIRE = 595, + MOVE_SPIKY_SHIELD = 596, + MOVE_AROMATIC_MIST = 597, + MOVE_EERIE_IMPULSE = 598, + MOVE_VENOM_DRENCH = 599, + MOVE_POWDER = 600, + MOVE_GEOMANCY = 601, + MOVE_MAGNETIC_FLUX = 602, + MOVE_HAPPY_HOUR = 603, + MOVE_ELECTRIC_TERRAIN = 604, + MOVE_DAZZLING_GLEAM = 605, + MOVE_CELEBRATE = 606, + MOVE_HOLD_HANDS = 607, + MOVE_BABY_DOLL_EYES = 608, + MOVE_NUZZLE = 609, + MOVE_HOLD_BACK = 610, + MOVE_INFESTATION = 611, + MOVE_POWER_UP_PUNCH = 612, + MOVE_OBLIVION_WING = 613, + MOVE_THOUSAND_ARROWS = 614, + MOVE_THOUSAND_WAVES = 615, + MOVE_LANDS_WRATH = 616, + MOVE_LIGHT_OF_RUIN = 617, + // ORAS Moves + MOVE_ORIGIN_PULSE = 618, + MOVE_PRECIPICE_BLADES = 619, + MOVE_DRAGON_ASCENT = 620, + MOVE_HYPERSPACE_FURY = 621, + MOVES_COUNT_GEN6, -// Gen 4 moves. -#define MOVE_ROOST 355 -#define MOVE_GRAVITY 356 -#define MOVE_MIRACLE_EYE 357 -#define MOVE_WAKE_UP_SLAP 358 -#define MOVE_HAMMER_ARM 359 -#define MOVE_GYRO_BALL 360 -#define MOVE_HEALING_WISH 361 -#define MOVE_BRINE 362 -#define MOVE_NATURAL_GIFT 363 -#define MOVE_FEINT 364 -#define MOVE_PLUCK 365 -#define MOVE_TAILWIND 366 -#define MOVE_ACUPRESSURE 367 -#define MOVE_METAL_BURST 368 -#define MOVE_U_TURN 369 -#define MOVE_CLOSE_COMBAT 370 -#define MOVE_PAYBACK 371 -#define MOVE_ASSURANCE 372 -#define MOVE_EMBARGO 373 -#define MOVE_FLING 374 -#define MOVE_PSYCHO_SHIFT 375 -#define MOVE_TRUMP_CARD 376 -#define MOVE_HEAL_BLOCK 377 -#define MOVE_WRING_OUT 378 -#define MOVE_POWER_TRICK 379 -#define MOVE_GASTRO_ACID 380 -#define MOVE_LUCKY_CHANT 381 -#define MOVE_ME_FIRST 382 -#define MOVE_COPYCAT 383 -#define MOVE_POWER_SWAP 384 -#define MOVE_GUARD_SWAP 385 -#define MOVE_PUNISHMENT 386 -#define MOVE_LAST_RESORT 387 -#define MOVE_WORRY_SEED 388 -#define MOVE_SUCKER_PUNCH 389 -#define MOVE_TOXIC_SPIKES 390 -#define MOVE_HEART_SWAP 391 -#define MOVE_AQUA_RING 392 -#define MOVE_MAGNET_RISE 393 -#define MOVE_FLARE_BLITZ 394 -#define MOVE_FORCE_PALM 395 -#define MOVE_AURA_SPHERE 396 -#define MOVE_ROCK_POLISH 397 -#define MOVE_POISON_JAB 398 -#define MOVE_DARK_PULSE 399 -#define MOVE_NIGHT_SLASH 400 -#define MOVE_AQUA_TAIL 401 -#define MOVE_SEED_BOMB 402 -#define MOVE_AIR_SLASH 403 -#define MOVE_X_SCISSOR 404 -#define MOVE_BUG_BUZZ 405 -#define MOVE_DRAGON_PULSE 406 -#define MOVE_DRAGON_RUSH 407 -#define MOVE_POWER_GEM 408 -#define MOVE_DRAIN_PUNCH 409 -#define MOVE_VACUUM_WAVE 410 -#define MOVE_FOCUS_BLAST 411 -#define MOVE_ENERGY_BALL 412 -#define MOVE_BRAVE_BIRD 413 -#define MOVE_EARTH_POWER 414 -#define MOVE_SWITCHEROO 415 -#define MOVE_GIGA_IMPACT 416 -#define MOVE_NASTY_PLOT 417 -#define MOVE_BULLET_PUNCH 418 -#define MOVE_AVALANCHE 419 -#define MOVE_ICE_SHARD 420 -#define MOVE_SHADOW_CLAW 421 -#define MOVE_THUNDER_FANG 422 -#define MOVE_ICE_FANG 423 -#define MOVE_FIRE_FANG 424 -#define MOVE_SHADOW_SNEAK 425 -#define MOVE_MUD_BOMB 426 -#define MOVE_PSYCHO_CUT 427 -#define MOVE_ZEN_HEADBUTT 428 -#define MOVE_MIRROR_SHOT 429 -#define MOVE_FLASH_CANNON 430 -#define MOVE_ROCK_CLIMB 431 -#define MOVE_DEFOG 432 -#define MOVE_TRICK_ROOM 433 -#define MOVE_DRACO_METEOR 434 -#define MOVE_DISCHARGE 435 -#define MOVE_LAVA_PLUME 436 -#define MOVE_LEAF_STORM 437 -#define MOVE_POWER_WHIP 438 -#define MOVE_ROCK_WRECKER 439 -#define MOVE_CROSS_POISON 440 -#define MOVE_GUNK_SHOT 441 -#define MOVE_IRON_HEAD 442 -#define MOVE_MAGNET_BOMB 443 -#define MOVE_STONE_EDGE 444 -#define MOVE_CAPTIVATE 445 -#define MOVE_STEALTH_ROCK 446 -#define MOVE_GRASS_KNOT 447 -#define MOVE_CHATTER 448 -#define MOVE_JUDGMENT 449 -#define MOVE_BUG_BITE 450 -#define MOVE_CHARGE_BEAM 451 -#define MOVE_WOOD_HAMMER 452 -#define MOVE_AQUA_JET 453 -#define MOVE_ATTACK_ORDER 454 -#define MOVE_DEFEND_ORDER 455 -#define MOVE_HEAL_ORDER 456 -#define MOVE_HEAD_SMASH 457 -#define MOVE_DOUBLE_HIT 458 -#define MOVE_ROAR_OF_TIME 459 -#define MOVE_SPACIAL_REND 460 -#define MOVE_LUNAR_DANCE 461 -#define MOVE_CRUSH_GRIP 462 -#define MOVE_MAGMA_STORM 463 -#define MOVE_DARK_VOID 464 -#define MOVE_SEED_FLARE 465 -#define MOVE_OMINOUS_WIND 466 -#define MOVE_SHADOW_FORCE 467 + // Gen 7 + MOVE_SHORE_UP = MOVES_COUNT_GEN6, + MOVE_FIRST_IMPRESSION = 623, + MOVE_BANEFUL_BUNKER = 624, + MOVE_SPIRIT_SHACKLE = 625, + MOVE_DARKEST_LARIAT = 626, + MOVE_SPARKLING_ARIA = 627, + MOVE_ICE_HAMMER = 628, + MOVE_FLORAL_HEALING = 629, + MOVE_HIGH_HORSEPOWER = 630, + MOVE_STRENGTH_SAP = 631, + MOVE_SOLAR_BLADE = 632, + MOVE_LEAFAGE = 633, + MOVE_SPOTLIGHT = 634, + MOVE_TOXIC_THREAD = 635, + MOVE_LASER_FOCUS = 636, + MOVE_GEAR_UP = 637, + MOVE_THROAT_CHOP = 638, + MOVE_POLLEN_PUFF = 639, + MOVE_ANCHOR_SHOT = 640, + MOVE_PSYCHIC_TERRAIN = 641, + MOVE_LUNGE = 642, + MOVE_FIRE_LASH = 643, + MOVE_POWER_TRIP = 644, + MOVE_BURN_UP = 645, + MOVE_SPEED_SWAP = 646, + MOVE_SMART_STRIKE = 647, + MOVE_PURIFY = 648, + MOVE_REVELATION_DANCE = 649, + MOVE_CORE_ENFORCER = 650, + MOVE_TROP_KICK = 651, + MOVE_INSTRUCT = 652, + MOVE_BEAK_BLAST = 653, + MOVE_CLANGING_SCALES = 654, + MOVE_DRAGON_HAMMER = 655, + MOVE_BRUTAL_SWING = 656, + MOVE_AURORA_VEIL = 657, + MOVE_SHELL_TRAP = 658, + MOVE_FLEUR_CANNON = 659, + MOVE_PSYCHIC_FANGS = 660, + MOVE_STOMPING_TANTRUM = 661, + MOVE_SHADOW_BONE = 662, + MOVE_ACCELEROCK = 663, + MOVE_LIQUIDATION = 664, + MOVE_PRISMATIC_LASER = 665, + MOVE_SPECTRAL_THIEF = 666, + MOVE_SUNSTEEL_STRIKE = 667, + MOVE_MOONGEIST_BEAM = 668, + MOVE_TEARFUL_LOOK = 669, + MOVE_ZING_ZAP = 670, + MOVE_NATURES_MADNESS = 671, + MOVE_MULTI_ATTACK = 672, + // USUM Moves + MOVE_MIND_BLOWN = 673, + MOVE_PLASMA_FISTS = 674, + MOVE_PHOTON_GEYSER = 675, + // LGPE Moves + MOVE_ZIPPY_ZAP = 676, + MOVE_SPLISHY_SPLASH = 677, + MOVE_FLOATY_FALL = 678, + MOVE_PIKA_PAPOW = 679, + MOVE_BOUNCY_BUBBLE = 680, + MOVE_BUZZY_BUZZ = 681, + MOVE_SIZZLY_SLIDE = 682, + MOVE_GLITZY_GLOW = 683, + MOVE_BADDY_BAD = 684, + MOVE_SAPPY_SEED = 685, + MOVE_FREEZY_FROST = 686, + MOVE_SPARKLY_SWIRL = 687, + MOVE_VEEVEE_VOLLEY = 688, + MOVE_DOUBLE_IRON_BASH = 689, + MOVES_COUNT_GEN7, -#define MOVES_COUNT_GEN4 468 + // Gen 8 + MOVE_DYNAMAX_CANNON = MOVES_COUNT_GEN7, + MOVE_SNIPE_SHOT = 691, + MOVE_JAW_LOCK = 692, + MOVE_STUFF_CHEEKS = 693, + MOVE_NO_RETREAT = 694, + MOVE_TAR_SHOT = 695, + MOVE_MAGIC_POWDER = 696, + MOVE_DRAGON_DARTS = 697, + MOVE_TEATIME = 698, + MOVE_OCTOLOCK = 699, + MOVE_BOLT_BEAK = 700, + MOVE_FISHIOUS_REND = 701, + MOVE_COURT_CHANGE = 702, + MOVE_CLANGOROUS_SOUL = 703, + MOVE_BODY_PRESS = 704, + MOVE_DECORATE = 705, + MOVE_DRUM_BEATING = 706, + MOVE_SNAP_TRAP = 707, + MOVE_PYRO_BALL = 708, + MOVE_BEHEMOTH_BLADE = 709, + MOVE_BEHEMOTH_BASH = 710, + MOVE_AURA_WHEEL = 711, + MOVE_BREAKING_SWIPE = 712, + MOVE_BRANCH_POKE = 713, + MOVE_OVERDRIVE = 714, + MOVE_APPLE_ACID = 715, + MOVE_GRAV_APPLE = 716, + MOVE_SPIRIT_BREAK = 717, + MOVE_STRANGE_STEAM = 718, + MOVE_LIFE_DEW = 719, + MOVE_OBSTRUCT = 720, + MOVE_FALSE_SURRENDER = 721, + MOVE_METEOR_ASSAULT = 722, + MOVE_ETERNABEAM = 723, + MOVE_STEEL_BEAM = 724, + // Isle of Armor Moves + MOVE_EXPANDING_FORCE = 725, + MOVE_STEEL_ROLLER = 726, + MOVE_SCALE_SHOT = 727, + MOVE_METEOR_BEAM = 728, + MOVE_SHELL_SIDE_ARM = 729, + MOVE_MISTY_EXPLOSION = 730, + MOVE_GRASSY_GLIDE = 731, + MOVE_RISING_VOLTAGE = 732, + MOVE_TERRAIN_PULSE = 733, + MOVE_SKITTER_SMACK = 734, + MOVE_BURNING_JEALOUSY = 735, + MOVE_LASH_OUT = 736, + MOVE_POLTERGEIST = 737, + MOVE_CORROSIVE_GAS = 738, + MOVE_COACHING = 739, + MOVE_FLIP_TURN = 740, + MOVE_TRIPLE_AXEL = 741, + MOVE_DUAL_WINGBEAT = 742, + MOVE_SCORCHING_SANDS = 743, + MOVE_JUNGLE_HEALING = 744, + MOVE_WICKED_BLOW = 745, + MOVE_SURGING_STRIKES = 746, + // Crown Tundra Moves + MOVE_THUNDER_CAGE = 747, + MOVE_DRAGON_ENERGY = 748, + MOVE_FREEZING_GLARE = 749, + MOVE_FIERY_WRATH = 750, + MOVE_THUNDEROUS_KICK = 751, + MOVE_GLACIAL_LANCE = 752, + MOVE_ASTRAL_BARRAGE = 753, + MOVE_EERIE_SPELL = 754, + // Legends: Arceus Moves + MOVE_DIRE_CLAW = 755, + MOVE_PSYSHIELD_BASH = 756, + MOVE_POWER_SHIFT = 757, + MOVE_STONE_AXE = 758, + MOVE_SPRINGTIDE_STORM = 759, + MOVE_MYSTICAL_POWER = 760, + MOVE_RAGING_FURY = 761, + MOVE_WAVE_CRASH = 762, + MOVE_CHLOROBLAST = 763, + MOVE_MOUNTAIN_GALE = 764, + MOVE_VICTORY_DANCE = 765, + MOVE_HEADLONG_RUSH = 766, + MOVE_BARB_BARRAGE = 767, + MOVE_ESPER_WING = 768, + MOVE_BITTER_MALICE = 769, + MOVE_SHELTER = 770, + MOVE_TRIPLE_ARROWS = 771, + MOVE_INFERNAL_PARADE = 772, + MOVE_CEASELESS_EDGE = 773, + MOVE_BLEAKWIND_STORM = 774, + MOVE_WILDBOLT_STORM = 775, + MOVE_SANDSEAR_STORM = 776, + MOVE_LUNAR_BLESSING = 777, + MOVE_TAKE_HEART = 778, + MOVES_COUNT_GEN8, -// Gen 5 moves. -#define MOVE_HONE_CLAWS 468 -#define MOVE_WIDE_GUARD 469 -#define MOVE_GUARD_SPLIT 470 -#define MOVE_POWER_SPLIT 471 -#define MOVE_WONDER_ROOM 472 -#define MOVE_PSYSHOCK 473 -#define MOVE_VENOSHOCK 474 -#define MOVE_AUTOTOMIZE 475 -#define MOVE_RAGE_POWDER 476 -#define MOVE_TELEKINESIS 477 -#define MOVE_MAGIC_ROOM 478 -#define MOVE_SMACK_DOWN 479 -#define MOVE_STORM_THROW 480 -#define MOVE_FLAME_BURST 481 -#define MOVE_SLUDGE_WAVE 482 -#define MOVE_QUIVER_DANCE 483 -#define MOVE_HEAVY_SLAM 484 -#define MOVE_SYNCHRONOISE 485 -#define MOVE_ELECTRO_BALL 486 -#define MOVE_SOAK 487 -#define MOVE_FLAME_CHARGE 488 -#define MOVE_COIL 489 -#define MOVE_LOW_SWEEP 490 -#define MOVE_ACID_SPRAY 491 -#define MOVE_FOUL_PLAY 492 -#define MOVE_SIMPLE_BEAM 493 -#define MOVE_ENTRAINMENT 494 -#define MOVE_AFTER_YOU 495 -#define MOVE_ROUND 496 -#define MOVE_ECHOED_VOICE 497 -#define MOVE_CHIP_AWAY 498 -#define MOVE_CLEAR_SMOG 499 -#define MOVE_STORED_POWER 500 -#define MOVE_QUICK_GUARD 501 -#define MOVE_ALLY_SWITCH 502 -#define MOVE_SCALD 503 -#define MOVE_SHELL_SMASH 504 -#define MOVE_HEAL_PULSE 505 -#define MOVE_HEX 506 -#define MOVE_SKY_DROP 507 -#define MOVE_SHIFT_GEAR 508 -#define MOVE_CIRCLE_THROW 509 -#define MOVE_INCINERATE 510 -#define MOVE_QUASH 511 -#define MOVE_ACROBATICS 512 -#define MOVE_REFLECT_TYPE 513 -#define MOVE_RETALIATE 514 -#define MOVE_FINAL_GAMBIT 515 -#define MOVE_BESTOW 516 -#define MOVE_INFERNO 517 -#define MOVE_WATER_PLEDGE 518 -#define MOVE_FIRE_PLEDGE 519 -#define MOVE_GRASS_PLEDGE 520 -#define MOVE_VOLT_SWITCH 521 -#define MOVE_STRUGGLE_BUG 522 -#define MOVE_BULLDOZE 523 -#define MOVE_FROST_BREATH 524 -#define MOVE_DRAGON_TAIL 525 -#define MOVE_WORK_UP 526 -#define MOVE_ELECTROWEB 527 -#define MOVE_WILD_CHARGE 528 -#define MOVE_DRILL_RUN 529 -#define MOVE_DUAL_CHOP 530 -#define MOVE_HEART_STAMP 531 -#define MOVE_HORN_LEECH 532 -#define MOVE_SACRED_SWORD 533 -#define MOVE_RAZOR_SHELL 534 -#define MOVE_HEAT_CRASH 535 -#define MOVE_LEAF_TORNADO 536 -#define MOVE_STEAMROLLER 537 -#define MOVE_COTTON_GUARD 538 -#define MOVE_NIGHT_DAZE 539 -#define MOVE_PSYSTRIKE 540 -#define MOVE_TAIL_SLAP 541 -#define MOVE_HURRICANE 542 -#define MOVE_HEAD_CHARGE 543 -#define MOVE_GEAR_GRIND 544 -#define MOVE_SEARING_SHOT 545 -#define MOVE_TECHNO_BLAST 546 -#define MOVE_RELIC_SONG 547 -#define MOVE_SECRET_SWORD 548 -#define MOVE_GLACIATE 549 -#define MOVE_BOLT_STRIKE 550 -#define MOVE_BLUE_FLARE 551 -#define MOVE_FIERY_DANCE 552 -#define MOVE_FREEZE_SHOCK 553 -#define MOVE_ICE_BURN 554 -#define MOVE_SNARL 555 -#define MOVE_ICICLE_CRASH 556 -#define MOVE_V_CREATE 557 -#define MOVE_FUSION_FLARE 558 -#define MOVE_FUSION_BOLT 559 + // Gen 9 + MOVE_TERA_BLAST = MOVES_COUNT_GEN8, + MOVE_SILK_TRAP = 780, + MOVE_AXE_KICK = 781, + MOVE_LAST_RESPECTS = 782, + MOVE_LUMINA_CRASH = 783, + MOVE_ORDER_UP = 784, + MOVE_JET_PUNCH = 785, + MOVE_SPICY_EXTRACT = 786, + MOVE_SPIN_OUT = 787, + MOVE_POPULATION_BOMB = 788, + MOVE_ICE_SPINNER = 789, + MOVE_GLAIVE_RUSH = 790, + MOVE_REVIVAL_BLESSING = 791, + MOVE_SALT_CURE = 792, + MOVE_TRIPLE_DIVE = 793, + MOVE_MORTAL_SPIN = 794, + MOVE_DOODLE = 795, + MOVE_FILLET_AWAY = 796, + MOVE_KOWTOW_CLEAVE = 797, + MOVE_FLOWER_TRICK = 798, + MOVE_TORCH_SONG = 799, + MOVE_AQUA_STEP = 800, + MOVE_RAGING_BULL = 801, + MOVE_MAKE_IT_RAIN = 802, + MOVE_RUINATION = 803, + MOVE_COLLISION_COURSE = 804, + MOVE_ELECTRO_DRIFT = 805, + MOVE_SHED_TAIL = 806, + MOVE_CHILLY_RECEPTION = 807, + MOVE_TIDY_UP = 808, + MOVE_SNOWSCAPE = 809, + MOVE_POUNCE = 810, + MOVE_TRAILBLAZE = 811, + MOVE_CHILLING_WATER = 812, + MOVE_HYPER_DRILL = 813, + MOVE_TWIN_BEAM = 814, + MOVE_RAGE_FIST = 815, + MOVE_ARMOR_CANNON = 816, + MOVE_BITTER_BLADE = 817, + MOVE_DOUBLE_SHOCK = 818, + MOVE_GIGATON_HAMMER = 819, + MOVE_COMEUPPANCE = 820, + MOVE_AQUA_CUTTER = 821, + MOVE_BLAZING_TORQUE = 822, + MOVE_WICKED_TORQUE = 823, + MOVE_NOXIOUS_TORQUE = 824, + MOVE_COMBAT_TORQUE = 825, + MOVE_MAGICAL_TORQUE = 826, + MOVE_PSYBLADE = 827, + MOVE_HYDRO_STEAM = 828, + // The Teal Mask Moves + MOVE_BLOOD_MOON = 829, + MOVE_MATCHA_GOTCHA = 830, + MOVE_SYRUP_BOMB = 831, + MOVE_IVY_CUDGEL = 832, + // The Indigo Disk Moves + MOVE_ELECTRO_SHOT = 833, + MOVE_TERA_STARSTORM = 834, + MOVE_FICKLE_BEAM = 835, + MOVE_BURNING_BULWARK = 836, + MOVE_THUNDERCLAP = 837, + MOVE_MIGHTY_CLEAVE = 838, + MOVE_TACHYON_CUTTER = 839, + MOVE_HARD_PRESS = 840, + MOVE_DRAGON_CHEER = 841, + MOVE_ALLURING_VOICE = 842, + MOVE_TEMPER_FLARE = 843, + MOVE_SUPERCELL_SLAM = 844, + MOVE_PSYCHIC_NOISE = 845, + MOVE_UPPER_HAND = 846, + MOVE_MALIGNANT_CHAIN = 847, + MOVES_COUNT_GEN9, -#define MOVES_COUNT_GEN5 560 + // Add any custom moves here, not further down! -// Gen 6 moves. -#define MOVE_FLYING_PRESS 560 -#define MOVE_MAT_BLOCK 561 -#define MOVE_BELCH 562 -#define MOVE_ROTOTILLER 563 -#define MOVE_STICKY_WEB 564 -#define MOVE_FELL_STINGER 565 -#define MOVE_PHANTOM_FORCE 566 -#define MOVE_TRICK_OR_TREAT 567 -#define MOVE_NOBLE_ROAR 568 -#define MOVE_ION_DELUGE 569 -#define MOVE_PARABOLIC_CHARGE 570 -#define MOVE_FORESTS_CURSE 571 -#define MOVE_PETAL_BLIZZARD 572 -#define MOVE_FREEZE_DRY 573 -#define MOVE_DISARMING_VOICE 574 -#define MOVE_PARTING_SHOT 575 -#define MOVE_TOPSY_TURVY 576 -#define MOVE_DRAINING_KISS 577 -#define MOVE_CRAFTY_SHIELD 578 -#define MOVE_FLOWER_SHIELD 579 -#define MOVE_GRASSY_TERRAIN 580 -#define MOVE_MISTY_TERRAIN 581 -#define MOVE_ELECTRIFY 582 -#define MOVE_PLAY_ROUGH 583 -#define MOVE_FAIRY_WIND 584 -#define MOVE_MOONBLAST 585 -#define MOVE_BOOMBURST 586 -#define MOVE_FAIRY_LOCK 587 -#define MOVE_KINGS_SHIELD 588 -#define MOVE_PLAY_NICE 589 -#define MOVE_CONFIDE 590 -#define MOVE_DIAMOND_STORM 591 -#define MOVE_STEAM_ERUPTION 592 -#define MOVE_HYPERSPACE_HOLE 593 -#define MOVE_WATER_SHURIKEN 594 -#define MOVE_MYSTICAL_FIRE 595 -#define MOVE_SPIKY_SHIELD 596 -#define MOVE_AROMATIC_MIST 597 -#define MOVE_EERIE_IMPULSE 598 -#define MOVE_VENOM_DRENCH 599 -#define MOVE_POWDER 600 -#define MOVE_GEOMANCY 601 -#define MOVE_MAGNETIC_FLUX 602 -#define MOVE_HAPPY_HOUR 603 -#define MOVE_ELECTRIC_TERRAIN 604 -#define MOVE_DAZZLING_GLEAM 605 -#define MOVE_CELEBRATE 606 -#define MOVE_HOLD_HANDS 607 -#define MOVE_BABY_DOLL_EYES 608 -#define MOVE_NUZZLE 609 -#define MOVE_HOLD_BACK 610 -#define MOVE_INFESTATION 611 -#define MOVE_POWER_UP_PUNCH 612 -#define MOVE_OBLIVION_WING 613 -#define MOVE_THOUSAND_ARROWS 614 -#define MOVE_THOUSAND_WAVES 615 -#define MOVE_LANDS_WRATH 616 -#define MOVE_LIGHT_OF_RUIN 617 -// ORAS Moves -#define MOVE_ORIGIN_PULSE 618 -#define MOVE_PRECIPICE_BLADES 619 -#define MOVE_DRAGON_ASCENT 620 -#define MOVE_HYPERSPACE_FURY 621 + MOVES_COUNT = MOVES_COUNT_GEN9, -#define MOVES_COUNT_GEN6 622 + // Z Moves + FIRST_Z_MOVE = MOVES_COUNT, + MOVE_BREAKNECK_BLITZ = FIRST_Z_MOVE, + MOVE_ALL_OUT_PUMMELING, + MOVE_SUPERSONIC_SKYSTRIKE, + MOVE_ACID_DOWNPOUR, + MOVE_TECTONIC_RAGE, + MOVE_CONTINENTAL_CRUSH, + MOVE_SAVAGE_SPIN_OUT, + MOVE_NEVER_ENDING_NIGHTMARE, + MOVE_CORKSCREW_CRASH, + MOVE_INFERNO_OVERDRIVE, + MOVE_HYDRO_VORTEX, + MOVE_BLOOM_DOOM, + MOVE_GIGAVOLT_HAVOC, + MOVE_SHATTERED_PSYCHE, + MOVE_SUBZERO_SLAMMER, + MOVE_DEVASTATING_DRAKE, + MOVE_BLACK_HOLE_ECLIPSE, + MOVE_TWINKLE_TACKLE, + // Signature Z Moves + MOVE_CATASTROPIKA, + MOVE_10000000_VOLT_THUNDERBOLT, + MOVE_10_000_000_VOLT_THUNDERBOLT = MOVE_10000000_VOLT_THUNDERBOLT, + MOVE_STOKED_SPARKSURFER, + MOVE_EXTREME_EVOBOOST, + MOVE_PULVERIZING_PANCAKE, + MOVE_GENESIS_SUPERNOVA, + MOVE_SINISTER_ARROW_RAID, + MOVE_MALICIOUS_MOONSAULT, + MOVE_OCEANIC_OPERETTA, + MOVE_SPLINTERED_STORMSHARDS, + MOVE_LETS_SNUGGLE_FOREVER, + MOVE_CLANGOROUS_SOULBLAZE, + MOVE_GUARDIAN_OF_ALOLA, + MOVE_SEARING_SUNRAZE_SMASH, + MOVE_MENACING_MOONRAZE_MAELSTROM, + MOVE_LIGHT_THAT_BURNS_THE_SKY, + MOVE_SOUL_STEALING_7_STAR_STRIKE, + LAST_Z_MOVE = MOVE_SOUL_STEALING_7_STAR_STRIKE, + MOVES_COUNT_Z, -// Gen 7 moves. -#define MOVE_SHORE_UP 622 -#define MOVE_FIRST_IMPRESSION 623 -#define MOVE_BANEFUL_BUNKER 624 -#define MOVE_SPIRIT_SHACKLE 625 -#define MOVE_DARKEST_LARIAT 626 -#define MOVE_SPARKLING_ARIA 627 -#define MOVE_ICE_HAMMER 628 -#define MOVE_FLORAL_HEALING 629 -#define MOVE_HIGH_HORSEPOWER 630 -#define MOVE_STRENGTH_SAP 631 -#define MOVE_SOLAR_BLADE 632 -#define MOVE_LEAFAGE 633 -#define MOVE_SPOTLIGHT 634 -#define MOVE_TOXIC_THREAD 635 -#define MOVE_LASER_FOCUS 636 -#define MOVE_GEAR_UP 637 -#define MOVE_THROAT_CHOP 638 -#define MOVE_POLLEN_PUFF 639 -#define MOVE_ANCHOR_SHOT 640 -#define MOVE_PSYCHIC_TERRAIN 641 -#define MOVE_LUNGE 642 -#define MOVE_FIRE_LASH 643 -#define MOVE_POWER_TRIP 644 -#define MOVE_BURN_UP 645 -#define MOVE_SPEED_SWAP 646 -#define MOVE_SMART_STRIKE 647 -#define MOVE_PURIFY 648 -#define MOVE_REVELATION_DANCE 649 -#define MOVE_CORE_ENFORCER 650 -#define MOVE_TROP_KICK 651 -#define MOVE_INSTRUCT 652 -#define MOVE_BEAK_BLAST 653 -#define MOVE_CLANGING_SCALES 654 -#define MOVE_DRAGON_HAMMER 655 -#define MOVE_BRUTAL_SWING 656 -#define MOVE_AURORA_VEIL 657 -#define MOVE_SHELL_TRAP 658 -#define MOVE_FLEUR_CANNON 659 -#define MOVE_PSYCHIC_FANGS 660 -#define MOVE_STOMPING_TANTRUM 661 -#define MOVE_SHADOW_BONE 662 -#define MOVE_ACCELEROCK 663 -#define MOVE_LIQUIDATION 664 -#define MOVE_PRISMATIC_LASER 665 -#define MOVE_SPECTRAL_THIEF 666 -#define MOVE_SUNSTEEL_STRIKE 667 -#define MOVE_MOONGEIST_BEAM 668 -#define MOVE_TEARFUL_LOOK 669 -#define MOVE_ZING_ZAP 670 -#define MOVE_NATURES_MADNESS 671 -#define MOVE_MULTI_ATTACK 672 -// USUM Moves -#define MOVE_MIND_BLOWN 673 -#define MOVE_PLASMA_FISTS 674 -#define MOVE_PHOTON_GEYSER 675 -// LGPE Moves -#define MOVE_ZIPPY_ZAP 676 -#define MOVE_SPLISHY_SPLASH 677 -#define MOVE_FLOATY_FALL 678 -#define MOVE_PIKA_PAPOW 679 -#define MOVE_BOUNCY_BUBBLE 680 -#define MOVE_BUZZY_BUZZ 681 -#define MOVE_SIZZLY_SLIDE 682 -#define MOVE_GLITZY_GLOW 683 -#define MOVE_BADDY_BAD 684 -#define MOVE_SAPPY_SEED 685 -#define MOVE_FREEZY_FROST 686 -#define MOVE_SPARKLY_SWIRL 687 -#define MOVE_VEEVEE_VOLLEY 688 -#define MOVE_DOUBLE_IRON_BASH 689 + // Max Moves + FIRST_MAX_MOVE = MOVES_COUNT_Z, + MOVE_MAX_GUARD = FIRST_MAX_MOVE, + MOVE_MAX_STRIKE, + MOVE_MAX_KNUCKLE, + MOVE_MAX_AIRSTREAM, + MOVE_MAX_OOZE, + MOVE_MAX_QUAKE, + MOVE_MAX_ROCKFALL, + MOVE_MAX_FLUTTERBY, + MOVE_MAX_PHANTASM, + MOVE_MAX_STEELSPIKE, + MOVE_MAX_FLARE, + MOVE_MAX_GEYSER, + MOVE_MAX_OVERGROWTH, + MOVE_MAX_LIGHTNING, + MOVE_MAX_MINDSTORM, + MOVE_MAX_HAILSTORM, + MOVE_MAX_WYRMWIND, + MOVE_MAX_DARKNESS, + MOVE_MAX_STARFALL, + // Gigantamax Moves + MOVE_G_MAX_VINE_LASH, + MOVE_G_MAX_WILDFIRE, + MOVE_G_MAX_CANNONADE, + MOVE_G_MAX_BEFUDDLE, + MOVE_G_MAX_VOLT_CRASH, + MOVE_G_MAX_GOLD_RUSH, + MOVE_G_MAX_CHI_STRIKE, + MOVE_G_MAX_TERROR, + MOVE_G_MAX_FOAM_BURST, + MOVE_G_MAX_RESONANCE, + MOVE_G_MAX_CUDDLE, + MOVE_G_MAX_REPLENISH, + MOVE_G_MAX_MALODOR, + MOVE_G_MAX_MELTDOWN, + MOVE_G_MAX_DRUM_SOLO, + MOVE_G_MAX_FIREBALL, + MOVE_G_MAX_HYDROSNIPE, + MOVE_G_MAX_WIND_RAGE, + MOVE_G_MAX_GRAVITAS, + MOVE_G_MAX_STONESURGE, + MOVE_G_MAX_VOLCALITH, + MOVE_G_MAX_TARTNESS, + MOVE_G_MAX_SWEETNESS, + MOVE_G_MAX_SANDBLAST, + MOVE_G_MAX_STUN_SHOCK, + MOVE_G_MAX_CENTIFERNO, + MOVE_G_MAX_SMITE, + MOVE_G_MAX_SNOOZE, + MOVE_G_MAX_FINALE, + MOVE_G_MAX_STEELSURGE, + MOVE_G_MAX_DEPLETION, + MOVE_G_MAX_ONE_BLOW, + MOVE_G_MAX_RAPID_FLOW, + LAST_MAX_MOVE = MOVE_G_MAX_RAPID_FLOW, + MOVES_COUNT_DYNAMAX, + MOVES_COUNT_ALL = MOVES_COUNT_DYNAMAX, +}; -#define MOVES_COUNT_GEN7 690 - -// Gen 8 moves. -#define MOVE_DYNAMAX_CANNON 690 -#define MOVE_SNIPE_SHOT 691 -#define MOVE_JAW_LOCK 692 -#define MOVE_STUFF_CHEEKS 693 -#define MOVE_NO_RETREAT 694 -#define MOVE_TAR_SHOT 695 -#define MOVE_MAGIC_POWDER 696 -#define MOVE_DRAGON_DARTS 697 -#define MOVE_TEATIME 698 -#define MOVE_OCTOLOCK 699 -#define MOVE_BOLT_BEAK 700 -#define MOVE_FISHIOUS_REND 701 -#define MOVE_COURT_CHANGE 702 -#define MOVE_CLANGOROUS_SOUL 703 -#define MOVE_BODY_PRESS 704 -#define MOVE_DECORATE 705 -#define MOVE_DRUM_BEATING 706 -#define MOVE_SNAP_TRAP 707 -#define MOVE_PYRO_BALL 708 -#define MOVE_BEHEMOTH_BLADE 709 -#define MOVE_BEHEMOTH_BASH 710 -#define MOVE_AURA_WHEEL 711 -#define MOVE_BREAKING_SWIPE 712 -#define MOVE_BRANCH_POKE 713 -#define MOVE_OVERDRIVE 714 -#define MOVE_APPLE_ACID 715 -#define MOVE_GRAV_APPLE 716 -#define MOVE_SPIRIT_BREAK 717 -#define MOVE_STRANGE_STEAM 718 -#define MOVE_LIFE_DEW 719 -#define MOVE_OBSTRUCT 720 -#define MOVE_FALSE_SURRENDER 721 -#define MOVE_METEOR_ASSAULT 722 -#define MOVE_ETERNABEAM 723 -#define MOVE_STEEL_BEAM 724 -// Isle of Armor Moves -#define MOVE_EXPANDING_FORCE 725 -#define MOVE_STEEL_ROLLER 726 -#define MOVE_SCALE_SHOT 727 -#define MOVE_METEOR_BEAM 728 -#define MOVE_SHELL_SIDE_ARM 729 -#define MOVE_MISTY_EXPLOSION 730 -#define MOVE_GRASSY_GLIDE 731 -#define MOVE_RISING_VOLTAGE 732 -#define MOVE_TERRAIN_PULSE 733 -#define MOVE_SKITTER_SMACK 734 -#define MOVE_BURNING_JEALOUSY 735 -#define MOVE_LASH_OUT 736 -#define MOVE_POLTERGEIST 737 -#define MOVE_CORROSIVE_GAS 738 -#define MOVE_COACHING 739 -#define MOVE_FLIP_TURN 740 -#define MOVE_TRIPLE_AXEL 741 -#define MOVE_DUAL_WINGBEAT 742 -#define MOVE_SCORCHING_SANDS 743 -#define MOVE_JUNGLE_HEALING 744 -#define MOVE_WICKED_BLOW 745 -#define MOVE_SURGING_STRIKES 746 -// Crown Tundra Moves -#define MOVE_THUNDER_CAGE 747 -#define MOVE_DRAGON_ENERGY 748 -#define MOVE_FREEZING_GLARE 749 -#define MOVE_FIERY_WRATH 750 -#define MOVE_THUNDEROUS_KICK 751 -#define MOVE_GLACIAL_LANCE 752 -#define MOVE_ASTRAL_BARRAGE 753 -#define MOVE_EERIE_SPELL 754 -// Legends: Arceus Moves -#define MOVE_DIRE_CLAW 755 -#define MOVE_PSYSHIELD_BASH 756 -#define MOVE_POWER_SHIFT 757 -#define MOVE_STONE_AXE 758 -#define MOVE_SPRINGTIDE_STORM 759 -#define MOVE_MYSTICAL_POWER 760 -#define MOVE_RAGING_FURY 761 -#define MOVE_WAVE_CRASH 762 -#define MOVE_CHLOROBLAST 763 -#define MOVE_MOUNTAIN_GALE 764 -#define MOVE_VICTORY_DANCE 765 -#define MOVE_HEADLONG_RUSH 766 -#define MOVE_BARB_BARRAGE 767 -#define MOVE_ESPER_WING 768 -#define MOVE_BITTER_MALICE 769 -#define MOVE_SHELTER 770 -#define MOVE_TRIPLE_ARROWS 771 -#define MOVE_INFERNAL_PARADE 772 -#define MOVE_CEASELESS_EDGE 773 -#define MOVE_BLEAKWIND_STORM 774 -#define MOVE_WILDBOLT_STORM 775 -#define MOVE_SANDSEAR_STORM 776 -#define MOVE_LUNAR_BLESSING 777 -#define MOVE_TAKE_HEART 778 - -#define MOVES_COUNT_GEN8 779 - -// Gen 9 moves. -#define MOVE_TERA_BLAST 779 -#define MOVE_SILK_TRAP 780 -#define MOVE_AXE_KICK 781 -#define MOVE_LAST_RESPECTS 782 -#define MOVE_LUMINA_CRASH 783 -#define MOVE_ORDER_UP 784 -#define MOVE_JET_PUNCH 785 -#define MOVE_SPICY_EXTRACT 786 -#define MOVE_SPIN_OUT 787 -#define MOVE_POPULATION_BOMB 788 -#define MOVE_ICE_SPINNER 789 -#define MOVE_GLAIVE_RUSH 790 -#define MOVE_REVIVAL_BLESSING 791 -#define MOVE_SALT_CURE 792 -#define MOVE_TRIPLE_DIVE 793 -#define MOVE_MORTAL_SPIN 794 -#define MOVE_DOODLE 795 -#define MOVE_FILLET_AWAY 796 -#define MOVE_KOWTOW_CLEAVE 797 -#define MOVE_FLOWER_TRICK 798 -#define MOVE_TORCH_SONG 799 -#define MOVE_AQUA_STEP 800 -#define MOVE_RAGING_BULL 801 -#define MOVE_MAKE_IT_RAIN 802 -#define MOVE_RUINATION 803 -#define MOVE_COLLISION_COURSE 804 -#define MOVE_ELECTRO_DRIFT 805 -#define MOVE_SHED_TAIL 806 -#define MOVE_CHILLY_RECEPTION 807 -#define MOVE_TIDY_UP 808 -#define MOVE_SNOWSCAPE 809 -#define MOVE_POUNCE 810 -#define MOVE_TRAILBLAZE 811 -#define MOVE_CHILLING_WATER 812 -#define MOVE_HYPER_DRILL 813 -#define MOVE_TWIN_BEAM 814 -#define MOVE_RAGE_FIST 815 -#define MOVE_ARMOR_CANNON 816 -#define MOVE_BITTER_BLADE 817 -#define MOVE_DOUBLE_SHOCK 818 -#define MOVE_GIGATON_HAMMER 819 -#define MOVE_COMEUPPANCE 820 -#define MOVE_AQUA_CUTTER 821 -#define MOVE_BLAZING_TORQUE 822 -#define MOVE_WICKED_TORQUE 823 -#define MOVE_NOXIOUS_TORQUE 824 -#define MOVE_COMBAT_TORQUE 825 -#define MOVE_MAGICAL_TORQUE 826 -#define MOVE_PSYBLADE 827 -#define MOVE_HYDRO_STEAM 828 -// The Teal Mask Moves -#define MOVE_BLOOD_MOON 829 -#define MOVE_MATCHA_GOTCHA 830 -#define MOVE_SYRUP_BOMB 831 -#define MOVE_IVY_CUDGEL 832 -// The Indigo Disk Moves -#define MOVE_ELECTRO_SHOT 833 -#define MOVE_TERA_STARSTORM 834 -#define MOVE_FICKLE_BEAM 835 -#define MOVE_BURNING_BULWARK 836 -#define MOVE_THUNDERCLAP 837 -#define MOVE_MIGHTY_CLEAVE 838 -#define MOVE_TACHYON_CUTTER 839 -#define MOVE_HARD_PRESS 840 -#define MOVE_DRAGON_CHEER 841 -#define MOVE_ALLURING_VOICE 842 -#define MOVE_TEMPER_FLARE 843 -#define MOVE_SUPERCELL_SLAM 844 -#define MOVE_PSYCHIC_NOISE 845 -#define MOVE_UPPER_HAND 846 -#define MOVE_MALIGNANT_CHAIN 847 - -#define MOVES_COUNT_GEN9 848 - -#define MOVES_COUNT MOVES_COUNT_GEN9 - -// Z Moves -#define MOVE_BREAKNECK_BLITZ (MOVES_COUNT + 0) -#define MOVE_ALL_OUT_PUMMELING (MOVES_COUNT + 1) -#define MOVE_SUPERSONIC_SKYSTRIKE (MOVES_COUNT + 2) -#define MOVE_ACID_DOWNPOUR (MOVES_COUNT + 3) -#define MOVE_TECTONIC_RAGE (MOVES_COUNT + 4) -#define MOVE_CONTINENTAL_CRUSH (MOVES_COUNT + 5) -#define MOVE_SAVAGE_SPIN_OUT (MOVES_COUNT + 6) -#define MOVE_NEVER_ENDING_NIGHTMARE (MOVES_COUNT + 7) -#define MOVE_CORKSCREW_CRASH (MOVES_COUNT + 8) -#define MOVE_INFERNO_OVERDRIVE (MOVES_COUNT + 9) -#define MOVE_HYDRO_VORTEX (MOVES_COUNT + 10) -#define MOVE_BLOOM_DOOM (MOVES_COUNT + 11) -#define MOVE_GIGAVOLT_HAVOC (MOVES_COUNT + 12) -#define MOVE_SHATTERED_PSYCHE (MOVES_COUNT + 13) -#define MOVE_SUBZERO_SLAMMER (MOVES_COUNT + 14) -#define MOVE_DEVASTATING_DRAKE (MOVES_COUNT + 15) -#define MOVE_BLACK_HOLE_ECLIPSE (MOVES_COUNT + 16) -#define MOVE_TWINKLE_TACKLE (MOVES_COUNT + 17) - -// Signature Z Moves -#define MOVE_CATASTROPIKA (MOVES_COUNT + 18) -#define MOVE_10000000_VOLT_THUNDERBOLT (MOVES_COUNT + 19) -#define MOVE_10_000_000_VOLT_THUNDERBOLT MOVE_10000000_VOLT_THUNDERBOLT -#define MOVE_STOKED_SPARKSURFER (MOVES_COUNT + 20) -#define MOVE_EXTREME_EVOBOOST (MOVES_COUNT + 21) -#define MOVE_PULVERIZING_PANCAKE (MOVES_COUNT + 22) -#define MOVE_GENESIS_SUPERNOVA (MOVES_COUNT + 23) -#define MOVE_SINISTER_ARROW_RAID (MOVES_COUNT + 24) -#define MOVE_MALICIOUS_MOONSAULT (MOVES_COUNT + 25) -#define MOVE_OCEANIC_OPERETTA (MOVES_COUNT + 26) -#define MOVE_SPLINTERED_STORMSHARDS (MOVES_COUNT + 27) -#define MOVE_LETS_SNUGGLE_FOREVER (MOVES_COUNT + 28) -#define MOVE_CLANGOROUS_SOULBLAZE (MOVES_COUNT + 29) -#define MOVE_GUARDIAN_OF_ALOLA (MOVES_COUNT + 30) -#define MOVE_SEARING_SUNRAZE_SMASH (MOVES_COUNT + 31) -#define MOVE_MENACING_MOONRAZE_MAELSTROM (MOVES_COUNT + 32) -#define MOVE_LIGHT_THAT_BURNS_THE_SKY (MOVES_COUNT + 33) -#define MOVE_SOUL_STEALING_7_STAR_STRIKE (MOVES_COUNT + 34) - -#define FIRST_Z_MOVE MOVE_BREAKNECK_BLITZ -#define LAST_Z_MOVE MOVE_SOUL_STEALING_7_STAR_STRIKE - -#define MOVES_COUNT_Z (LAST_Z_MOVE + 1) - -//Max Moves -#define MOVE_MAX_GUARD (FIRST_MAX_MOVE + 0) -#define MOVE_MAX_STRIKE (FIRST_MAX_MOVE + 1) -#define MOVE_MAX_KNUCKLE (FIRST_MAX_MOVE + 2) -#define MOVE_MAX_AIRSTREAM (FIRST_MAX_MOVE + 3) -#define MOVE_MAX_OOZE (FIRST_MAX_MOVE + 4) -#define MOVE_MAX_QUAKE (FIRST_MAX_MOVE + 5) -#define MOVE_MAX_ROCKFALL (FIRST_MAX_MOVE + 6) -#define MOVE_MAX_FLUTTERBY (FIRST_MAX_MOVE + 7) -#define MOVE_MAX_PHANTASM (FIRST_MAX_MOVE + 8) -#define MOVE_MAX_STEELSPIKE (FIRST_MAX_MOVE + 9) -#define MOVE_MAX_FLARE (FIRST_MAX_MOVE + 10) -#define MOVE_MAX_GEYSER (FIRST_MAX_MOVE + 11) -#define MOVE_MAX_OVERGROWTH (FIRST_MAX_MOVE + 12) -#define MOVE_MAX_LIGHTNING (FIRST_MAX_MOVE + 13) -#define MOVE_MAX_MINDSTORM (FIRST_MAX_MOVE + 14) -#define MOVE_MAX_HAILSTORM (FIRST_MAX_MOVE + 15) -#define MOVE_MAX_WYRMWIND (FIRST_MAX_MOVE + 16) -#define MOVE_MAX_DARKNESS (FIRST_MAX_MOVE + 17) -#define MOVE_MAX_STARFALL (FIRST_MAX_MOVE + 18) -// Gigantamax Moves -#define MOVE_G_MAX_VINE_LASH (FIRST_MAX_MOVE + 19) -#define MOVE_G_MAX_WILDFIRE (FIRST_MAX_MOVE + 20) -#define MOVE_G_MAX_CANNONADE (FIRST_MAX_MOVE + 21) -#define MOVE_G_MAX_BEFUDDLE (FIRST_MAX_MOVE + 22) -#define MOVE_G_MAX_VOLT_CRASH (FIRST_MAX_MOVE + 23) -#define MOVE_G_MAX_GOLD_RUSH (FIRST_MAX_MOVE + 24) -#define MOVE_G_MAX_CHI_STRIKE (FIRST_MAX_MOVE + 25) -#define MOVE_G_MAX_TERROR (FIRST_MAX_MOVE + 26) -#define MOVE_G_MAX_FOAM_BURST (FIRST_MAX_MOVE + 27) -#define MOVE_G_MAX_RESONANCE (FIRST_MAX_MOVE + 28) -#define MOVE_G_MAX_CUDDLE (FIRST_MAX_MOVE + 29) -#define MOVE_G_MAX_REPLENISH (FIRST_MAX_MOVE + 30) -#define MOVE_G_MAX_MALODOR (FIRST_MAX_MOVE + 31) -#define MOVE_G_MAX_MELTDOWN (FIRST_MAX_MOVE + 32) -#define MOVE_G_MAX_DRUM_SOLO (FIRST_MAX_MOVE + 33) -#define MOVE_G_MAX_FIREBALL (FIRST_MAX_MOVE + 34) -#define MOVE_G_MAX_HYDROSNIPE (FIRST_MAX_MOVE + 35) -#define MOVE_G_MAX_WIND_RAGE (FIRST_MAX_MOVE + 36) -#define MOVE_G_MAX_GRAVITAS (FIRST_MAX_MOVE + 37) -#define MOVE_G_MAX_STONESURGE (FIRST_MAX_MOVE + 38) -#define MOVE_G_MAX_VOLCALITH (FIRST_MAX_MOVE + 39) -#define MOVE_G_MAX_TARTNESS (FIRST_MAX_MOVE + 40) -#define MOVE_G_MAX_SWEETNESS (FIRST_MAX_MOVE + 41) -#define MOVE_G_MAX_SANDBLAST (FIRST_MAX_MOVE + 42) -#define MOVE_G_MAX_STUN_SHOCK (FIRST_MAX_MOVE + 43) -#define MOVE_G_MAX_CENTIFERNO (FIRST_MAX_MOVE + 44) -#define MOVE_G_MAX_SMITE (FIRST_MAX_MOVE + 45) -#define MOVE_G_MAX_SNOOZE (FIRST_MAX_MOVE + 46) -#define MOVE_G_MAX_FINALE (FIRST_MAX_MOVE + 47) -#define MOVE_G_MAX_STEELSURGE (FIRST_MAX_MOVE + 48) -#define MOVE_G_MAX_DEPLETION (FIRST_MAX_MOVE + 49) -#define MOVE_G_MAX_ONE_BLOW (FIRST_MAX_MOVE + 50) -#define MOVE_G_MAX_RAPID_FLOW (FIRST_MAX_MOVE + 51) - -#define FIRST_MAX_MOVE MOVES_COUNT_Z -#define LAST_MAX_MOVE MOVE_G_MAX_RAPID_FLOW - -#define MOVES_COUNT_DYNAMAX (LAST_MAX_MOVE + 1) - -#define MOVES_COUNT_ALL MOVES_COUNT_DYNAMAX - -// Used for checks for moves affected by Disable, Mimic, etc. -#define MOVE_UNAVAILABLE 0xFFFF +#define MOVE_DEFAULT 0x3FFF // Used when creating a mon to be replaced by a level-up move (needs to be less than that 0x4000 because of VarGet) +#define MOVE_UNAVAILABLE 0xFFFF // Used for checks for moves affected by Disable, Mimic, etc. #endif // GUARD_CONSTANTS_MOVES_H diff --git a/include/constants/opponents.h b/include/constants/opponents.h index 9e7131077c3b..0724da548643 100644 --- a/include/constants/opponents.h +++ b/include/constants/opponents.h @@ -2,6 +2,7 @@ #define GUARD_CONSTANTS_OPPONENTS_H #include "constants/battle_partner.h" +#include "constants/opponents_frlg.h" #define TRAINER_NONE 0 #define TRAINER_SAWYER_1 1 @@ -863,8 +864,16 @@ // More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled // MAX_TRAINERS_COUNT can be increased but will take up additional saveblock space -#define TRAINERS_COUNT 855 -#define MAX_TRAINERS_COUNT 864 +#define TRAINERS_COUNT_EMERALD 855 +#define MAX_TRAINERS_COUNT_EMERALD 864 + +#if IS_FRLG +#define TRAINERS_COUNT TRAINERS_COUNT_FRLG +#define MAX_TRAINERS_COUNT MAX_TRAINERS_COUNT_FRLG +#else +#define TRAINERS_COUNT TRAINERS_COUNT_EMERALD +#define MAX_TRAINERS_COUNT MAX_TRAINERS_COUNT_EMERALD +#endif #define TRAINER_PARTNER(partner) (MAX_TRAINERS_COUNT + partner) #endif // GUARD_CONSTANTS_OPPONENTS_H diff --git a/include/constants/opponents_frlg.h b/include/constants/opponents_frlg.h new file mode 100644 index 000000000000..f21e27af28d0 --- /dev/null +++ b/include/constants/opponents_frlg.h @@ -0,0 +1,638 @@ +#ifndef GUARD_CONSTANTS_OPPONENTS_FRLG_H +#define GUARD_CONSTANTS_OPPONENTS_FRLG_H + +#include "constants/battle_partner.h" + +#define TRAINER_NONE 0 +#define TRAINER_YOUNGSTER_BEN 1 +#define TRAINER_YOUNGSTER_CALVIN 2 +#define TRAINER_YOUNGSTER_JOSH 3 +#define TRAINER_YOUNGSTER_TIMMY 4 +#define TRAINER_YOUNGSTER_JOEY 5 +#define TRAINER_YOUNGSTER_DAN 6 +#define TRAINER_YOUNGSTER_CHAD 7 +#define TRAINER_YOUNGSTER_TYLER 8 +#define TRAINER_YOUNGSTER_EDDIE 9 +#define TRAINER_YOUNGSTER_DILLON 10 +#define TRAINER_YOUNGSTER_YASU 11 +#define TRAINER_YOUNGSTER_DAVE 12 +#define TRAINER_YOUNGSTER_BEN_2 13 +#define TRAINER_BUG_CATCHER_RICK 14 +#define TRAINER_BUG_CATCHER_DOUG 15 +#define TRAINER_BUG_CATCHER_SAMMY 16 +#define TRAINER_BUG_CATCHER_COLTON 17 +#define TRAINER_BUG_CATCHER_GREG 18 +#define TRAINER_BUG_CATCHER_JAMES 19 +#define TRAINER_BUG_CATCHER_KENT 20 +#define TRAINER_BUG_CATCHER_ROBBY 21 +#define TRAINER_BUG_CATCHER_CALE 22 +#define TRAINER_BUG_CATCHER_KEIGO 23 +#define TRAINER_BUG_CATCHER_ELIJAH 24 +#define TRAINER_BUG_CATCHER_BRENT 25 +#define TRAINER_BUG_CATCHER_CONNER 26 +#define TRAINER_LASS_JANICE 27 +#define TRAINER_LASS_SALLY 28 +#define TRAINER_LASS_ROBIN 29 +#define TRAINER_LASS_CRISSY 30 +#define TRAINER_LASS_MIRIAM 31 +#define TRAINER_LASS_IRIS 32 +#define TRAINER_LASS_RELI 33 +#define TRAINER_LASS_ALI 34 +#define TRAINER_LASS_HALEY 35 +#define TRAINER_LASS_ANN 36 +#define TRAINER_LASS_DAWN 37 +#define TRAINER_LASS_PAIGE 38 +#define TRAINER_LASS_ANDREA 39 +#define TRAINER_LASS_MEGAN 40 +#define TRAINER_LASS_JULIA 41 +#define TRAINER_LASS_KAY 42 +#define TRAINER_LASS_LISA 43 +#define TRAINER_SAILOR_EDMOND 44 +#define TRAINER_SAILOR_TREVOR 45 +#define TRAINER_SAILOR_LEONARD 46 +#define TRAINER_SAILOR_DUNCAN 47 +#define TRAINER_SAILOR_HUEY 48 +#define TRAINER_SAILOR_DYLAN 49 +#define TRAINER_SAILOR_PHILLIP 50 +#define TRAINER_SAILOR_DWAYNE 51 +#define TRAINER_CAMPER_LIAM 52 +#define TRAINER_CAMPER_SHANE 53 +#define TRAINER_CAMPER_ETHAN 54 +#define TRAINER_CAMPER_RICKY 55 +#define TRAINER_CAMPER_JEFF 56 +#define TRAINER_CAMPER_CHRIS 57 +#define TRAINER_CAMPER_DREW 58 +#define TRAINER_PICNICKER_DIANA 59 +#define TRAINER_PICNICKER_NANCY 60 +#define TRAINER_PICNICKER_ISABELLE 61 +#define TRAINER_PICNICKER_KELSEY 62 +#define TRAINER_PICNICKER_ALICIA 63 +#define TRAINER_PICNICKER_CAITLIN 64 +#define TRAINER_PICNICKER_HEIDI 65 +#define TRAINER_PICNICKER_CAROL 66 +#define TRAINER_PICNICKER_SOFIA 67 +#define TRAINER_PICNICKER_MARTHA 68 +#define TRAINER_PICNICKER_TINA 69 +#define TRAINER_PICNICKER_HANNAH 70 +#define TRAINER_POKEMANIAC_MARK 71 +#define TRAINER_POKEMANIAC_HERMAN 72 +#define TRAINER_POKEMANIAC_COOPER 73 +#define TRAINER_POKEMANIAC_STEVE 74 +#define TRAINER_POKEMANIAC_WINSTON 75 +#define TRAINER_POKEMANIAC_DAWSON 76 +#define TRAINER_POKEMANIAC_ASHTON 77 +#define TRAINER_SUPER_NERD_JOVAN 78 +#define TRAINER_SUPER_NERD_MIGUEL 79 +#define TRAINER_SUPER_NERD_AIDAN 80 +#define TRAINER_SUPER_NERD_GLENN 81 +#define TRAINER_SUPER_NERD_LESLIE 82 +#define TRAINER_SUPER_NERD_ERIK 83 +#define TRAINER_SUPER_NERD_AVERY 84 +#define TRAINER_SUPER_NERD_DEREK 85 +#define TRAINER_SUPER_NERD_ZAC 86 +#define TRAINER_HIKER_MARCOS 87 +#define TRAINER_HIKER_FRANKLIN 88 +#define TRAINER_HIKER_NOB 89 +#define TRAINER_HIKER_WAYNE 90 +#define TRAINER_HIKER_ALAN 91 +#define TRAINER_HIKER_BRICE 92 +#define TRAINER_HIKER_CLARK 93 +#define TRAINER_HIKER_TRENT 94 +#define TRAINER_HIKER_DUDLEY 95 +#define TRAINER_HIKER_ALLEN 96 +#define TRAINER_HIKER_ERIC 97 +#define TRAINER_HIKER_LENNY 98 +#define TRAINER_HIKER_OLIVER 99 +#define TRAINER_HIKER_LUCAS 100 +#define TRAINER_BIKER_JARED 101 +#define TRAINER_BIKER_MALIK 102 +#define TRAINER_BIKER_ERNEST 103 +#define TRAINER_BIKER_ALEX 104 +#define TRAINER_BIKER_LAO 105 +#define TRAINER_BIKER_HIDEO 106 +#define TRAINER_BIKER_RUBEN 107 +#define TRAINER_BIKER_BILLY 108 +#define TRAINER_BIKER_NIKOLAS 109 +#define TRAINER_BIKER_JAXON 110 +#define TRAINER_BIKER_WILLIAM 111 +#define TRAINER_BIKER_LUKAS 112 +#define TRAINER_BIKER_ISAAC 113 +#define TRAINER_BIKER_GERALD 114 +#define TRAINER_BURGLAR_QUINN 115 +#define TRAINER_BURGLAR_RAMON 116 +#define TRAINER_BURGLAR_DUSTY 117 +#define TRAINER_BURGLAR_ARNIE 118 +#define TRAINER_BURGLAR_SIMON 119 +#define TRAINER_BURGLAR_LEWIS 120 +#define TRAINER_ENGINEER_BAILY 121 +#define TRAINER_ENGINEER_BRAXTON 122 +#define TRAINER_ENGINEER_BERNIE 123 +#define TRAINER_FISHERMAN_DALE 124 +#define TRAINER_FISHERMAN_BARNY 125 +#define TRAINER_FISHERMAN_NED 126 +#define TRAINER_FISHERMAN_CHIP 127 +#define TRAINER_FISHERMAN_HANK 128 +#define TRAINER_FISHERMAN_ELLIOT 129 +#define TRAINER_FISHERMAN_RONALD 130 +#define TRAINER_FISHERMAN_CLAUDE 131 +#define TRAINER_FISHERMAN_WADE 132 +#define TRAINER_FISHERMAN_NOLAN 133 +#define TRAINER_FISHERMAN_ANDREW 134 +#define TRAINER_SWIMMER_MALE_LUIS 135 +#define TRAINER_SWIMMER_MALE_RICHARD 136 +#define TRAINER_SWIMMER_MALE_REECE 137 +#define TRAINER_SWIMMER_MALE_MATTHEW 138 +#define TRAINER_SWIMMER_MALE_DOUGLAS 139 +#define TRAINER_SWIMMER_MALE_DAVID 140 +#define TRAINER_SWIMMER_MALE_TONY 141 +#define TRAINER_SWIMMER_MALE_AXLE 142 +#define TRAINER_SWIMMER_MALE_BARRY 143 +#define TRAINER_SWIMMER_MALE_DEAN 144 +#define TRAINER_SWIMMER_MALE_DARRIN 145 +#define TRAINER_SWIMMER_MALE_SPENCER 146 +#define TRAINER_SWIMMER_MALE_JACK 147 +#define TRAINER_SWIMMER_MALE_JEROME 148 +#define TRAINER_SWIMMER_MALE_ROLAND 149 +#define TRAINER_CUE_BALL_KOJI 150 +#define TRAINER_CUE_BALL_LUKE 151 +#define TRAINER_CUE_BALL_CAMRON 152 +#define TRAINER_CUE_BALL_RAUL 153 +#define TRAINER_CUE_BALL_ISAIAH 154 +#define TRAINER_CUE_BALL_ZEEK 155 +#define TRAINER_CUE_BALL_JAMAL 156 +#define TRAINER_CUE_BALL_COREY 157 +#define TRAINER_CUE_BALL_CHASE 158 +#define TRAINER_GAMER_HUGO 159 +#define TRAINER_GAMER_JASPER 160 +#define TRAINER_GAMER_DIRK 161 +#define TRAINER_GAMER_DARIAN 162 +#define TRAINER_GAMER_STAN 163 +#define TRAINER_GAMER_RICH 164 +#define TRAINER_BEAUTY_BRIDGET 165 +#define TRAINER_BEAUTY_TAMIA 166 +#define TRAINER_BEAUTY_LORI 167 +#define TRAINER_BEAUTY_LOLA 168 +#define TRAINER_BEAUTY_SHEILA 169 +#define TRAINER_SWIMMER_FEMALE_TIFFANY 170 +#define TRAINER_SWIMMER_FEMALE_NORA 171 +#define TRAINER_SWIMMER_FEMALE_MELISSA 172 +#define TRAINER_BEAUTY_GRACE 173 +#define TRAINER_BEAUTY_OLIVIA 174 +#define TRAINER_BEAUTY_LAUREN 175 +#define TRAINER_SWIMMER_FEMALE_ANYA 176 +#define TRAINER_SWIMMER_FEMALE_ALICE 177 +#define TRAINER_SWIMMER_FEMALE_CONNIE 178 +#define TRAINER_SWIMMER_FEMALE_SHIRLEY 179 +#define TRAINER_PSYCHIC_JOHAN 180 +#define TRAINER_PSYCHIC_TYRON 181 +#define TRAINER_PSYCHIC_CAMERON 182 +#define TRAINER_PSYCHIC_PRESTON 183 +#define TRAINER_ROCKER_RANDALL 184 +#define TRAINER_ROCKER_LUCA 185 +#define TRAINER_JUGGLER_DALTON 186 +#define TRAINER_JUGGLER_NELSON 187 +#define TRAINER_JUGGLER_KIRK 188 +#define TRAINER_JUGGLER_SHAWN 189 +#define TRAINER_JUGGLER_GREGORY 190 +#define TRAINER_JUGGLER_EDWARD 191 +#define TRAINER_JUGGLER_KAYDEN 192 +#define TRAINER_JUGGLER_NATE 193 +#define TRAINER_TAMER_PHIL 194 +#define TRAINER_TAMER_EDGAR 195 +#define TRAINER_TAMER_JASON 196 +#define TRAINER_TAMER_COLE 197 +#define TRAINER_TAMER_VINCENT 198 +#define TRAINER_TAMER_JOHN 199 +#define TRAINER_BIRD_KEEPER_SEBASTIAN 200 +#define TRAINER_BIRD_KEEPER_PERRY 201 +#define TRAINER_BIRD_KEEPER_ROBERT 202 +#define TRAINER_BIRD_KEEPER_DONALD 203 +#define TRAINER_BIRD_KEEPER_BENNY 204 +#define TRAINER_BIRD_KEEPER_EDWIN 205 +#define TRAINER_BIRD_KEEPER_CHESTER 206 +#define TRAINER_BIRD_KEEPER_WILTON 207 +#define TRAINER_BIRD_KEEPER_RAMIRO 208 +#define TRAINER_BIRD_KEEPER_JACOB 209 +#define TRAINER_BIRD_KEEPER_ROGER 210 +#define TRAINER_BIRD_KEEPER_REED 211 +#define TRAINER_BIRD_KEEPER_KEITH 212 +#define TRAINER_BIRD_KEEPER_CARTER 213 +#define TRAINER_BIRD_KEEPER_MITCH 214 +#define TRAINER_BIRD_KEEPER_BECK 215 +#define TRAINER_BIRD_KEEPER_MARLON 216 +#define TRAINER_BLACK_BELT_KOICHI 217 +#define TRAINER_BLACK_BELT_MIKE 218 +#define TRAINER_BLACK_BELT_HIDEKI 219 +#define TRAINER_BLACK_BELT_AARON 220 +#define TRAINER_BLACK_BELT_HITOSHI 221 +#define TRAINER_BLACK_BELT_ATSUSHI 222 +#define TRAINER_BLACK_BELT_KIYO 223 +#define TRAINER_BLACK_BELT_TAKASHI 224 +#define TRAINER_BLACK_BELT_DAISUKE 225 +#define TRAINER_RIVAL_OAKS_LAB_SQUIRTLE 226 +#define TRAINER_RIVAL_OAKS_LAB_BULBASAUR 227 +#define TRAINER_RIVAL_OAKS_LAB_CHARMANDER 228 +#define TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE 229 +#define TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR 230 +#define TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER 231 +#define TRAINER_RIVAL_CERULEAN_SQUIRTLE 232 +#define TRAINER_RIVAL_CERULEAN_BULBASAUR 233 +#define TRAINER_RIVAL_CERULEAN_CHARMANDER 234 +#define TRAINER_SCIENTIST_TED 235 +#define TRAINER_SCIENTIST_CONNOR 236 +#define TRAINER_SCIENTIST_JERRY 237 +#define TRAINER_SCIENTIST_JOSE 238 +#define TRAINER_SCIENTIST_RODNEY 239 +#define TRAINER_SCIENTIST_BEAU 240 +#define TRAINER_SCIENTIST_TAYLOR 241 +#define TRAINER_SCIENTIST_JOSHUA 242 +#define TRAINER_SCIENTIST_PARKER 243 +#define TRAINER_SCIENTIST_ED 244 +#define TRAINER_SCIENTIST_TRAVIS 245 +#define TRAINER_SCIENTIST_BRAYDON 246 +#define TRAINER_SCIENTIST_IVAN 247 +#define TRAINER_BOSS_GIOVANNI 248 +#define TRAINER_BOSS_GIOVANNI_2 249 +#define TRAINER_LEADER_GIOVANNI 250 +#define TRAINER_TEAM_ROCKET_GRUNT 251 +#define TRAINER_TEAM_ROCKET_GRUNT_2 252 +#define TRAINER_TEAM_ROCKET_GRUNT_3 253 +#define TRAINER_TEAM_ROCKET_GRUNT_4 254 +#define TRAINER_TEAM_ROCKET_GRUNT_5 255 +#define TRAINER_TEAM_ROCKET_GRUNT_6 256 +#define TRAINER_TEAM_ROCKET_GRUNT_7 257 +#define TRAINER_TEAM_ROCKET_GRUNT_8 258 +#define TRAINER_TEAM_ROCKET_GRUNT_9 259 +#define TRAINER_TEAM_ROCKET_GRUNT_10 260 +#define TRAINER_TEAM_ROCKET_GRUNT_11 261 +#define TRAINER_TEAM_ROCKET_GRUNT_12 262 +#define TRAINER_TEAM_ROCKET_GRUNT_13 263 +#define TRAINER_TEAM_ROCKET_GRUNT_14 264 +#define TRAINER_TEAM_ROCKET_GRUNT_15 265 +#define TRAINER_TEAM_ROCKET_GRUNT_16 266 +#define TRAINER_TEAM_ROCKET_GRUNT_17 267 +#define TRAINER_TEAM_ROCKET_GRUNT_18 268 +#define TRAINER_TEAM_ROCKET_GRUNT_19 269 +#define TRAINER_TEAM_ROCKET_GRUNT_20 270 +#define TRAINER_TEAM_ROCKET_GRUNT_21 271 +#define TRAINER_TEAM_ROCKET_GRUNT_22 272 +#define TRAINER_TEAM_ROCKET_GRUNT_23 273 +#define TRAINER_TEAM_ROCKET_GRUNT_24 274 +#define TRAINER_TEAM_ROCKET_GRUNT_25 275 +#define TRAINER_TEAM_ROCKET_GRUNT_26 276 +#define TRAINER_TEAM_ROCKET_GRUNT_27 277 +#define TRAINER_TEAM_ROCKET_GRUNT_28 278 +#define TRAINER_TEAM_ROCKET_GRUNT_29 279 +#define TRAINER_TEAM_ROCKET_GRUNT_30 280 +#define TRAINER_TEAM_ROCKET_GRUNT_31 281 +#define TRAINER_TEAM_ROCKET_GRUNT_32 282 +#define TRAINER_TEAM_ROCKET_GRUNT_33 283 +#define TRAINER_TEAM_ROCKET_GRUNT_34 284 +#define TRAINER_TEAM_ROCKET_GRUNT_35 285 +#define TRAINER_TEAM_ROCKET_GRUNT_36 286 +#define TRAINER_TEAM_ROCKET_GRUNT_37 287 +#define TRAINER_TEAM_ROCKET_GRUNT_38 288 +#define TRAINER_TEAM_ROCKET_GRUNT_39 289 +#define TRAINER_TEAM_ROCKET_GRUNT_40 290 +#define TRAINER_TEAM_ROCKET_GRUNT_41 291 +#define TRAINER_COOLTRAINER_SAMUEL 292 +#define TRAINER_COOLTRAINER_GEORGE 293 +#define TRAINER_COOLTRAINER_COLBY 294 +#define TRAINER_COOLTRAINER_PAUL 295 +#define TRAINER_COOLTRAINER_ROLANDO 296 +#define TRAINER_COOLTRAINER_GILBERT 297 +#define TRAINER_COOLTRAINER_OWEN 298 +#define TRAINER_COOLTRAINER_BERKE 299 +#define TRAINER_COOLTRAINER_YUJI 300 +#define TRAINER_COOLTRAINER_WARREN 301 +#define TRAINER_COOLTRAINER_MARY 302 +#define TRAINER_COOLTRAINER_CAROLINE 303 +#define TRAINER_COOLTRAINER_ALEXA 304 +#define TRAINER_COOLTRAINER_SHANNON 305 +#define TRAINER_COOLTRAINER_NAOMI 306 +#define TRAINER_COOLTRAINER_BROOKE 307 +#define TRAINER_COOLTRAINER_AUSTINA 308 +#define TRAINER_COOLTRAINER_JULIE 309 +#define TRAINER_ELITE_FOUR_LORELEI 310 +#define TRAINER_ELITE_FOUR_BRUNO 311 +#define TRAINER_ELITE_FOUR_AGATHA 312 +#define TRAINER_ELITE_FOUR_LANCE 313 +#define TRAINER_LEADER_BROCK 314 +#define TRAINER_LEADER_MISTY 315 +#define TRAINER_LEADER_LT_SURGE 316 +#define TRAINER_LEADER_ERIKA 317 +#define TRAINER_LEADER_KOGA 318 +#define TRAINER_LEADER_BLAINE 319 +#define TRAINER_LEADER_SABRINA 320 +#define TRAINER_GENTLEMAN_THOMAS 321 +#define TRAINER_GENTLEMAN_ARTHUR 322 +#define TRAINER_GENTLEMAN_TUCKER 323 +#define TRAINER_GENTLEMAN_NORTON 324 +#define TRAINER_GENTLEMAN_WALTER 325 +#define TRAINER_RIVAL_SS_ANNE_SQUIRTLE 326 +#define TRAINER_RIVAL_SS_ANNE_BULBASAUR 327 +#define TRAINER_RIVAL_SS_ANNE_CHARMANDER 328 +#define TRAINER_RIVAL_POKEMON_TOWER_SQUIRTLE 329 +#define TRAINER_RIVAL_POKEMON_TOWER_BULBASAUR 330 +#define TRAINER_RIVAL_POKEMON_TOWER_CHARMANDER 331 +#define TRAINER_RIVAL_SILPH_SQUIRTLE 332 +#define TRAINER_RIVAL_SILPH_BULBASAUR 333 +#define TRAINER_RIVAL_SILPH_CHARMANDER 334 +#define TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE 335 +#define TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR 336 +#define TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER 337 +#define TRAINER_CHAMPION_FIRST_SQUIRTLE 338 +#define TRAINER_CHAMPION_FIRST_BULBASAUR 339 +#define TRAINER_CHAMPION_FIRST_CHARMANDER 340 +#define TRAINER_CHANNELER_PATRICIA 341 +#define TRAINER_CHANNELER_CARLY 342 +#define TRAINER_CHANNELER_HOPE 343 +#define TRAINER_CHANNELER_PAULA 344 +#define TRAINER_CHANNELER_LAUREL 345 +#define TRAINER_CHANNELER_JODY 346 +#define TRAINER_CHANNELER_TAMMY 347 +#define TRAINER_CHANNELER_RUTH 348 +#define TRAINER_CHANNELER_KARINA 349 +#define TRAINER_CHANNELER_JANAE 350 +#define TRAINER_CHANNELER_ANGELICA 351 +#define TRAINER_CHANNELER_EMILIA 352 +#define TRAINER_CHANNELER_JENNIFER 353 +#define TRAINER_CHANNELER_AMANDA 354 +#define TRAINER_CHANNELER_STACY 355 +#define TRAINER_CHANNELER_TASHA 356 +#define TRAINER_HIKER_JEREMY 357 +#define TRAINER_PICNICKER_ALMA 358 +#define TRAINER_PICNICKER_SUSIE 359 +#define TRAINER_PICNICKER_VALERIE 360 +#define TRAINER_PICNICKER_GWEN 361 +#define TRAINER_BIKER_VIRGIL 362 +#define TRAINER_CAMPER_FLINT 363 +#define TRAINER_PICNICKER_MISSY 364 +#define TRAINER_PICNICKER_IRENE 365 +#define TRAINER_PICNICKER_DANA 366 +#define TRAINER_PICNICKER_ARIANA 367 +#define TRAINER_PICNICKER_LEAH 368 +#define TRAINER_CAMPER_JUSTIN 369 +#define TRAINER_PICNICKER_YAZMIN 370 +#define TRAINER_PICNICKER_KINDRA 371 +#define TRAINER_PICNICKER_BECKY 372 +#define TRAINER_PICNICKER_CELIA 373 +#define TRAINER_GENTLEMAN_BROOKS 374 +#define TRAINER_GENTLEMAN_LAMAR 375 +#define TRAINER_TWINS_ELI_ANNE 376 +#define TRAINER_COOL_COUPLE_RAY_TYRA 377 +#define TRAINER_YOUNG_COUPLE_GIA_JES 378 +#define TRAINER_TWINS_KIRI_JAN 379 +#define TRAINER_CRUSH_KIN_RON_MYA 380 +#define TRAINER_YOUNG_COUPLE_LEA_JED 381 +#define TRAINER_SIS_AND_BRO_LIA_LUC 382 +#define TRAINER_SIS_AND_BRO_LIL_IAN 383 +#define TRAINER_YOUNGSTER_BEN_3 384 +#define TRAINER_YOUNGSTER_BEN_4 385 +#define TRAINER_YOUNGSTER_CHAD_2 386 +#define TRAINER_LASS_RELI_2 387 +#define TRAINER_LASS_RELI_3 388 +#define TRAINER_YOUNGSTER_TIMMY_2 389 +#define TRAINER_YOUNGSTER_TIMMY_3 390 +#define TRAINER_YOUNGSTER_TIMMY_4 391 +#define TRAINER_YOUNGSTER_CHAD_3 392 +#define TRAINER_LASS_JANICE_2 393 +#define TRAINER_LASS_JANICE_3 394 +#define TRAINER_YOUNGSTER_CHAD_4 395 +#define TRAINER_HIKER_FRANKLIN_2 396 +#define TRAINER_PKMN_PROF_PROF_OAK 397 +#define TRAINER_TEAM_ROCKET_GRUNT_42 398 +#define TRAINER_PSYCHIC_JACLYN 399 +#define TRAINER_CRUSH_GIRL_SHARON 400 +#define TRAINER_TUBER_AMIRA 401 +#define TRAINER_PKMN_BREEDER_ALIZE 402 +#define TRAINER_PKMN_RANGER_NICOLAS 403 +#define TRAINER_PKMN_RANGER_MADELINE 404 +#define TRAINER_AROMA_LADY_NIKKI 405 +#define TRAINER_RUIN_MANIAC_STANLY 406 +#define TRAINER_LADY_JACKI 407 +#define TRAINER_PAINTER_DAISY 408 +#define TRAINER_BIKER_GOON 409 +#define TRAINER_BIKER_GOON_2 410 +#define TRAINER_BIKER_GOON_3 411 +#define TRAINER_BUG_CATCHER_ANTHONY 412 +#define TRAINER_BUG_CATCHER_CHARLIE 413 +#define TRAINER_TWINS_ELI_ANNE_2 414 +#define TRAINER_YOUNGSTER_JOHNSON 415 +#define TRAINER_BIKER_RICARDO 416 +#define TRAINER_BIKER_JAREN 417 +#define TRAINER_TEAM_ROCKET_GRUNT_43 418 +#define TRAINER_TEAM_ROCKET_GRUNT_44 419 +#define TRAINER_TEAM_ROCKET_GRUNT_45 420 +#define TRAINER_TEAM_ROCKET_GRUNT_46 421 +#define TRAINER_TEAM_ROCKET_GRUNT_47 422 +#define TRAINER_TEAM_ROCKET_GRUNT_48 423 +#define TRAINER_TEAM_ROCKET_ADMIN 424 +#define TRAINER_TEAM_ROCKET_ADMIN_2 425 +#define TRAINER_SCIENTIST_GIDEON 426 +#define TRAINER_SWIMMER_FEMALE_AMARA 427 +#define TRAINER_SWIMMER_FEMALE_MARIA 428 +#define TRAINER_SWIMMER_FEMALE_ABIGAIL 429 +#define TRAINER_SWIMMER_MALE_FINN 430 +#define TRAINER_SWIMMER_MALE_GARRETT 431 +#define TRAINER_FISHERMAN_TOMMY 432 +#define TRAINER_CRUSH_GIRL_TANYA 433 +#define TRAINER_BLACK_BELT_SHEA 434 +#define TRAINER_BLACK_BELT_HUGH 435 +#define TRAINER_CAMPER_BRYCE 436 +#define TRAINER_PICNICKER_CLAIRE 437 +#define TRAINER_CRUSH_KIN_MIK_KIA 438 +#define TRAINER_AROMA_LADY_VIOLET 439 +#define TRAINER_TUBER_ALEXIS 440 +#define TRAINER_TWINS_JOY_MEG 441 +#define TRAINER_SWIMMER_FEMALE_TISHA 442 +#define TRAINER_PAINTER_CELINA 443 +#define TRAINER_PAINTER_RAYNA 444 +#define TRAINER_LADY_GILLIAN 445 +#define TRAINER_YOUNGSTER_DESTIN 446 +#define TRAINER_SWIMMER_MALE_TOBY 447 +#define TRAINER_TEAM_ROCKET_GRUNT_49 448 +#define TRAINER_TEAM_ROCKET_GRUNT_50 449 +#define TRAINER_TEAM_ROCKET_GRUNT_51 450 +#define TRAINER_BIRD_KEEPER_MILO 451 +#define TRAINER_BIRD_KEEPER_CHAZ 452 +#define TRAINER_BIRD_KEEPER_HAROLD 453 +#define TRAINER_FISHERMAN_TYLOR 454 +#define TRAINER_SWIMMER_MALE_MYMO 455 +#define TRAINER_SWIMMER_FEMALE_NICOLE 456 +#define TRAINER_SIS_AND_BRO_AVA_GEB 457 +#define TRAINER_AROMA_LADY_ROSE 458 +#define TRAINER_SWIMMER_MALE_SAMIR 459 +#define TRAINER_SWIMMER_FEMALE_DENISE 460 +#define TRAINER_TWINS_MIU_MIA 461 +#define TRAINER_HIKER_EARL 462 +#define TRAINER_RUIN_MANIAC_FOSTER 463 +#define TRAINER_RUIN_MANIAC_LARRY 464 +#define TRAINER_HIKER_DARYL 465 +#define TRAINER_POKEMANIAC_HECTOR 466 +#define TRAINER_PSYCHIC_DARIO 467 +#define TRAINER_PSYCHIC_RODETTE 468 +#define TRAINER_AROMA_LADY_MIAH 469 +#define TRAINER_YOUNG_COUPLE_EVE_JON 470 +#define TRAINER_JUGGLER_MASON 471 +#define TRAINER_CRUSH_GIRL_CYNDY 472 +#define TRAINER_CRUSH_GIRL_JOCELYN 473 +#define TRAINER_TAMER_EVAN 474 +#define TRAINER_POKEMANIAC_MARK_2 475 +#define TRAINER_PKMN_RANGER_LOGAN 476 +#define TRAINER_PKMN_RANGER_JACKSON 477 +#define TRAINER_PKMN_RANGER_BETH 478 +#define TRAINER_PKMN_RANGER_KATELYN 479 +#define TRAINER_COOLTRAINER_LEROY 480 +#define TRAINER_COOLTRAINER_MICHELLE 481 +#define TRAINER_COOL_COUPLE_LEX_NYA 482 +#define TRAINER_RUIN_MANIAC_BRANDON 483 +#define TRAINER_RUIN_MANIAC_BENJAMIN 484 +#define TRAINER_PAINTER_EDNA 485 +#define TRAINER_GENTLEMAN_CLIFFORD 486 +#define TRAINER_LADY_SELPHY 487 +#define TRAINER_RUIN_MANIAC_LAWSON 488 +#define TRAINER_PSYCHIC_LAURA 489 +#define TRAINER_PKMN_BREEDER_BETHANY 490 +#define TRAINER_PKMN_BREEDER_ALLISON 491 +#define TRAINER_BUG_CATCHER_GARRET 492 +#define TRAINER_BUG_CATCHER_JONAH 493 +#define TRAINER_BUG_CATCHER_VANCE 494 +#define TRAINER_YOUNGSTER_NASH 495 +#define TRAINER_YOUNGSTER_CORDELL 496 +#define TRAINER_LASS_DALIA 497 +#define TRAINER_LASS_JOANA 498 +#define TRAINER_CAMPER_RILEY 499 +#define TRAINER_PICNICKER_MARCY 500 +#define TRAINER_RUIN_MANIAC_LAYTON 501 +#define TRAINER_PICNICKER_KELSEY_2 502 +#define TRAINER_PICNICKER_KELSEY_3 503 +#define TRAINER_PICNICKER_KELSEY_4 504 +#define TRAINER_CAMPER_RICKY_2 505 +#define TRAINER_CAMPER_RICKY_3 506 +#define TRAINER_CAMPER_RICKY_4 507 +#define TRAINER_CAMPER_JEFF_2 508 +#define TRAINER_CAMPER_JEFF_3 509 +#define TRAINER_CAMPER_JEFF_4 510 +#define TRAINER_PICNICKER_ISABELLE_2 511 +#define TRAINER_PICNICKER_ISABELLE_3 512 +#define TRAINER_PICNICKER_ISABELLE_4 513 +#define TRAINER_YOUNGSTER_YASU_2 514 +#define TRAINER_YOUNGSTER_YASU_3 515 +#define TRAINER_ENGINEER_BERNIE_2 516 +#define TRAINER_GAMER_DARIAN_2 517 +#define TRAINER_CAMPER_CHRIS_2 518 +#define TRAINER_CAMPER_CHRIS_3 519 +#define TRAINER_CAMPER_CHRIS_4 520 +#define TRAINER_PICNICKER_ALICIA_2 521 +#define TRAINER_PICNICKER_ALICIA_3 522 +#define TRAINER_PICNICKER_ALICIA_4 523 +#define TRAINER_HIKER_JEREMY_2 524 +#define TRAINER_POKEMANIAC_MARK_3 525 +#define TRAINER_POKEMANIAC_HERMAN_2 526 +#define TRAINER_POKEMANIAC_HERMAN_3 527 +#define TRAINER_HIKER_TRENT_2 528 +#define TRAINER_LASS_MEGAN_2 529 +#define TRAINER_LASS_MEGAN_3 530 +#define TRAINER_SUPER_NERD_GLENN_2 531 +#define TRAINER_GAMER_RICH_2 532 +#define TRAINER_BIKER_JAREN_2 533 +#define TRAINER_FISHERMAN_ELLIOT_2 534 +#define TRAINER_ROCKER_LUCA_2 535 +#define TRAINER_BEAUTY_SHEILA_2 536 +#define TRAINER_BIRD_KEEPER_ROBERT_2 537 +#define TRAINER_BIRD_KEEPER_ROBERT_3 538 +#define TRAINER_PICNICKER_SUSIE_2 539 +#define TRAINER_PICNICKER_SUSIE_3 540 +#define TRAINER_PICNICKER_SUSIE_4 541 +#define TRAINER_BIKER_LUKAS_2 542 +#define TRAINER_BIRD_KEEPER_BENNY_2 543 +#define TRAINER_BIRD_KEEPER_BENNY_3 544 +#define TRAINER_BIRD_KEEPER_MARLON_2 545 +#define TRAINER_BIRD_KEEPER_MARLON_3 546 +#define TRAINER_BEAUTY_GRACE_2 547 +#define TRAINER_BIRD_KEEPER_CHESTER_2 548 +#define TRAINER_BIRD_KEEPER_CHESTER_3 549 +#define TRAINER_PICNICKER_BECKY_2 550 +#define TRAINER_PICNICKER_BECKY_3 551 +#define TRAINER_PICNICKER_BECKY_4 552 +#define TRAINER_CRUSH_KIN_RON_MYA_2 553 +#define TRAINER_CRUSH_KIN_RON_MYA_3 554 +#define TRAINER_CRUSH_KIN_RON_MYA_4 555 +#define TRAINER_BIKER_RUBEN_2 556 +#define TRAINER_CUE_BALL_CAMRON_2 557 +#define TRAINER_BIKER_JAXON_2 558 +#define TRAINER_CUE_BALL_ISAIAH_2 559 +#define TRAINER_CUE_BALL_COREY_2 560 +#define TRAINER_BIRD_KEEPER_JACOB_2 561 +#define TRAINER_BIRD_KEEPER_JACOB_3 562 +#define TRAINER_SWIMMER_FEMALE_ALICE_2 563 +#define TRAINER_SWIMMER_MALE_DARRIN_2 564 +#define TRAINER_PICNICKER_MISSY_2 565 +#define TRAINER_PICNICKER_MISSY_3 566 +#define TRAINER_FISHERMAN_WADE_2 567 +#define TRAINER_SWIMMER_MALE_JACK_2 568 +#define TRAINER_SIS_AND_BRO_LIL_IAN_2 569 +#define TRAINER_SIS_AND_BRO_LIL_IAN_3 570 +#define TRAINER_SWIMMER_MALE_FINN_2 571 +#define TRAINER_CRUSH_GIRL_SHARON_2 572 +#define TRAINER_CRUSH_GIRL_SHARON_3 573 +#define TRAINER_CRUSH_GIRL_TANYA_2 574 +#define TRAINER_CRUSH_GIRL_TANYA_3 575 +#define TRAINER_BLACK_BELT_SHEA_2 576 +#define TRAINER_BLACK_BELT_SHEA_3 577 +#define TRAINER_BLACK_BELT_HUGH_2 578 +#define TRAINER_BLACK_BELT_HUGH_3 579 +#define TRAINER_CRUSH_KIN_MIK_KIA_2 580 +#define TRAINER_CRUSH_KIN_MIK_KIA_3 581 +#define TRAINER_TUBER_AMIRA_2 582 +#define TRAINER_TWINS_JOY_MEG_2 583 +#define TRAINER_PAINTER_RAYNA_2 584 +#define TRAINER_YOUNGSTER_DESTIN_2 585 +#define TRAINER_PKMN_BREEDER_ALIZE_2 586 +#define TRAINER_YOUNG_COUPLE_GIA_JES_2 587 +#define TRAINER_YOUNG_COUPLE_GIA_JES_3 588 +#define TRAINER_BIRD_KEEPER_MILO_2 589 +#define TRAINER_BIRD_KEEPER_CHAZ_2 590 +#define TRAINER_BIRD_KEEPER_HAROLD_2 591 +#define TRAINER_SWIMMER_FEMALE_NICOLE_2 592 +#define TRAINER_PSYCHIC_JACLYN_2 593 +#define TRAINER_SWIMMER_MALE_SAMIR_2 594 +#define TRAINER_HIKER_EARL_2 595 +#define TRAINER_RUIN_MANIAC_LARRY_2 596 +#define TRAINER_POKEMANIAC_HECTOR_2 597 +#define TRAINER_PSYCHIC_DARIO_2 598 +#define TRAINER_PSYCHIC_RODETTE_2 599 +#define TRAINER_JUGGLER_MASON_2 600 +#define TRAINER_PKMN_RANGER_NICOLAS_2 601 +#define TRAINER_PKMN_RANGER_MADELINE_2 602 +#define TRAINER_CRUSH_GIRL_CYNDY_2 603 +#define TRAINER_TAMER_EVAN_2 604 +#define TRAINER_PKMN_RANGER_JACKSON_2 605 +#define TRAINER_PKMN_RANGER_KATELYN_2 606 +#define TRAINER_COOLTRAINER_LEROY_2 607 +#define TRAINER_COOLTRAINER_MICHELLE_2 608 +#define TRAINER_COOL_COUPLE_LEX_NYA_2 609 +#define TRAINER_BUG_CATCHER_COLTON_2 610 +#define TRAINER_BUG_CATCHER_COLTON_3 611 +#define TRAINER_BUG_CATCHER_COLTON_4 612 +#define TRAINER_SWIMMER_MALE_MATTHEW_2 613 +#define TRAINER_SWIMMER_MALE_TONY_2 614 +#define TRAINER_SWIMMER_FEMALE_MELISSA_2 615 +#define TRAINER_ELITE_FOUR_LORELEI_2 616 +#define TRAINER_ELITE_FOUR_BRUNO_2 617 +#define TRAINER_ELITE_FOUR_AGATHA_2 618 +#define TRAINER_ELITE_FOUR_LANCE_2 619 +#define TRAINER_CHAMPION_REMATCH_SQUIRTLE 620 +#define TRAINER_CHAMPION_REMATCH_BULBASAUR 621 +#define TRAINER_CHAMPION_REMATCH_CHARMANDER 622 +#define TRAINER_CUE_BALL_PAXTON 623 + +// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is +// only space for 25 additional trainers before trainer flag space overflows. +// MAX_TRAINERS_COUNT_FRLG can be increased but will take up additional saveblock space + +#define TRAINERS_COUNT_FRLG 624 +#define MAX_TRAINERS_COUNT_FRLG 768 + +#endif // GUARD_CONSTANTS_OPPONENTS_FRLG_H diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index 3a7ad372ffa8..523d2f2fa54b 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -1,6 +1,7 @@ #ifndef GUARD_CONSTANTS_PARTY_MENU_H #define GUARD_CONSTANTS_PARTY_MENU_H +#define PC_MON_CHOSEN 0xFE #define PARTY_NOTHING_CHOSEN 0xFF #define AILMENT_NONE 0 @@ -109,4 +110,22 @@ #define SELECTWINDOW_CATALOG 4 #define SELECTWINDOW_ZYGARDECUBE 5 +enum PcMonSelectionType +{ + SELECT_PC_MON_NORMAL, + SELECT_PC_MON_TRADE, // Also used for Lotad / Seedot size check + SELECT_PC_MON_DAYCARE, + SELECT_PC_MON_MOVE_TUTOR, + SELECT_PC_MON_MOVE_DELETER, + SELECT_PC_MON_MOVE_RELEARNER, +}; + +enum CanMoveBeLearned +{ + CAN_LEARN_MOVE, + CANNOT_LEARN_MOVE, + ALREADY_KNOWS_MOVE, + CANNOT_LEARN_MOVE_IS_EGG +}; + #endif // GUARD_CONSTANTS_PARTY_MENU_H diff --git a/include/constants/pokeball.h b/include/constants/pokeball.h new file mode 100644 index 000000000000..e7ad93d6518a --- /dev/null +++ b/include/constants/pokeball.h @@ -0,0 +1,37 @@ +#ifndef GUARD_CONSTANTS_POKEBALL_H +#define GUARD_CONSTANTS_POKEBALL_H + +enum PokeBall +{ + BALL_STRANGE = 0, + BALL_POKE = 1, + BALL_GREAT = 2, + BALL_ULTRA = 3, + BALL_MASTER = 4, + BALL_PREMIER = 5, + BALL_HEAL = 6, + BALL_NET = 7, + BALL_NEST = 8, + BALL_DIVE = 9, + BALL_DUSK = 10, + BALL_TIMER = 11, + BALL_QUICK = 12, + BALL_REPEAT = 13, + BALL_LUXURY = 14, + BALL_LEVEL = 15, + BALL_LURE = 16, + BALL_MOON = 17, + BALL_FRIEND = 18, + BALL_LOVE = 19, + BALL_FAST = 20, + BALL_HEAVY = 21, + BALL_DREAM = 22, + BALL_SAFARI = 23, + BALL_SPORT = 24, + BALL_PARK = 25, + BALL_BEAST = 26, + BALL_CHERISH = 27, + POKEBALL_COUNT +}; + +#endif // GUARD_CONSTANTS_POKEBALL_H diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index fd5ad2eb7b7e..404dbee8d811 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -1042,7 +1042,6 @@ enum NationalDexOrder NATIONAL_DEX_PECHARUNT, }; -#define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #if P_GEN_9_POKEMON == TRUE @@ -1307,8 +1306,269 @@ enum HoennDexOrder HOENN_DEX_DEOXYS, }; + +// Kanto Pokedex order +enum KantoDexOrder +{ + KANTO_DEX_NONE, + // Kanto + KANTO_DEX_BULBASAUR, + KANTO_DEX_IVYSAUR, + KANTO_DEX_VENUSAUR, + KANTO_DEX_CHARMANDER, + KANTO_DEX_CHARMELEON, + KANTO_DEX_CHARIZARD, + KANTO_DEX_SQUIRTLE, + KANTO_DEX_WARTORTLE, + KANTO_DEX_BLASTOISE, + KANTO_DEX_CATERPIE, + KANTO_DEX_METAPOD, + KANTO_DEX_BUTTERFREE, + KANTO_DEX_WEEDLE, + KANTO_DEX_KAKUNA, + KANTO_DEX_BEEDRILL, + KANTO_DEX_PIDGEY, + KANTO_DEX_PIDGEOTTO, + KANTO_DEX_PIDGEOT, + KANTO_DEX_RATTATA, + KANTO_DEX_RATICATE, + KANTO_DEX_SPEAROW, + KANTO_DEX_FEAROW, + KANTO_DEX_EKANS, + KANTO_DEX_ARBOK, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_PICHU, +#endif + KANTO_DEX_PIKACHU, + KANTO_DEX_RAICHU, + KANTO_DEX_SANDSHREW, + KANTO_DEX_SANDSLASH, + KANTO_DEX_NIDORAN_F, + KANTO_DEX_NIDORINA, + KANTO_DEX_NIDOQUEEN, + KANTO_DEX_NIDORAN_M, + KANTO_DEX_NIDORINO, + KANTO_DEX_NIDOKING, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_CLEFFA, +#endif + KANTO_DEX_CLEFAIRY, + KANTO_DEX_CLEFABLE, + KANTO_DEX_VULPIX, + KANTO_DEX_NINETALES, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_IGGLYBUFF, +#endif + KANTO_DEX_JIGGLYPUFF, + KANTO_DEX_WIGGLYTUFF, + KANTO_DEX_ZUBAT, + KANTO_DEX_GOLBAT, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_CROBAT, +#endif + KANTO_DEX_ODDISH, + KANTO_DEX_GLOOM, + KANTO_DEX_VILEPLUME, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_BELLOSSOM, +#endif + KANTO_DEX_PARAS, + KANTO_DEX_PARASECT, + KANTO_DEX_VENONAT, + KANTO_DEX_VENOMOTH, + KANTO_DEX_DIGLETT, + KANTO_DEX_DUGTRIO, + KANTO_DEX_MEOWTH, + KANTO_DEX_PERSIAN, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + KANTO_DEX_PERRSERKER, +#endif + KANTO_DEX_PSYDUCK, + KANTO_DEX_GOLDUCK, + KANTO_DEX_MANKEY, + KANTO_DEX_PRIMEAPE, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_9_CROSS_EVOS + KANTO_DEX_ANNIHILAPE, +#endif + KANTO_DEX_GROWLITHE, + KANTO_DEX_ARCANINE, + KANTO_DEX_POLIWAG, + KANTO_DEX_POLIWHIRL, + KANTO_DEX_POLIWRATH, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_POLITOED, +#endif + KANTO_DEX_ABRA, + KANTO_DEX_KADABRA, + KANTO_DEX_ALAKAZAM, + KANTO_DEX_MACHOP, + KANTO_DEX_MACHOKE, + KANTO_DEX_MACHAMP, + KANTO_DEX_BELLSPROUT, + KANTO_DEX_WEEPINBELL, + KANTO_DEX_VICTREEBEL, + KANTO_DEX_TENTACOOL, + KANTO_DEX_TENTACRUEL, + KANTO_DEX_GEODUDE, + KANTO_DEX_GRAVELER, + KANTO_DEX_GOLEM, + KANTO_DEX_PONYTA, + KANTO_DEX_RAPIDASH, + KANTO_DEX_SLOWPOKE, + KANTO_DEX_SLOWBRO, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_SLOWKING, +#endif + KANTO_DEX_MAGNEMITE, + KANTO_DEX_MAGNETON, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_MAGNEZONE, +#endif + KANTO_DEX_FARFETCHD, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + KANTO_DEX_SIRFETCHD, +#endif + KANTO_DEX_DODUO, + KANTO_DEX_DODRIO, + KANTO_DEX_SEEL, + KANTO_DEX_DEWGONG, + KANTO_DEX_GRIMER, + KANTO_DEX_MUK, + KANTO_DEX_SHELLDER, + KANTO_DEX_CLOYSTER, + KANTO_DEX_GASTLY, + KANTO_DEX_HAUNTER, + KANTO_DEX_GENGAR, + KANTO_DEX_ONIX, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_STEELIX, +#endif + KANTO_DEX_DROWZEE, + KANTO_DEX_HYPNO, + KANTO_DEX_KRABBY, + KANTO_DEX_KINGLER, + KANTO_DEX_VOLTORB, + KANTO_DEX_ELECTRODE, + KANTO_DEX_EXEGGCUTE, + KANTO_DEX_EXEGGUTOR, + KANTO_DEX_CUBONE, + KANTO_DEX_MAROWAK, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_TYROGUE, +#endif + KANTO_DEX_HITMONLEE, + KANTO_DEX_HITMONCHAN, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_HITMONTOP, +#endif + KANTO_DEX_LICKITUNG, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_LICKILICKY, +#endif + KANTO_DEX_KOFFING, + KANTO_DEX_WEEZING, + KANTO_DEX_RHYHORN, + KANTO_DEX_RHYDON, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_RHYPERIOR, + KANTO_DEX_HAPPINY, +#endif + KANTO_DEX_CHANSEY, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_BLISSEY, +#endif + KANTO_DEX_TANGELA, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_TANGROWTH, +#endif + KANTO_DEX_KANGASKHAN, + KANTO_DEX_HORSEA, + KANTO_DEX_SEADRA, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_KINGDRA, +#endif + KANTO_DEX_GOLDEEN, + KANTO_DEX_SEAKING, + KANTO_DEX_STARYU, + KANTO_DEX_STARMIE, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_MIME_JR, +#endif + KANTO_DEX_MR_MIME, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + KANTO_DEX_MR_RIME, +#endif + KANTO_DEX_SCYTHER, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_SCIZOR, + KANTO_DEX_KLEAVOR, +#endif +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_SMOOCHUM, +#endif + KANTO_DEX_JYNX, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_ELEKID, +#endif + KANTO_DEX_ELECTABUZZ, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_ELECTIVIRE, +#endif +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_MAGBY, +#endif + KANTO_DEX_MAGMAR, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_MAGMORTAR, +#endif + KANTO_DEX_PINSIR, + KANTO_DEX_TAUROS, + KANTO_DEX_MAGIKARP, + KANTO_DEX_GYARADOS, + KANTO_DEX_LAPRAS, + KANTO_DEX_DITTO, + KANTO_DEX_EEVEE, + KANTO_DEX_VAPOREON, + KANTO_DEX_JOLTEON, + KANTO_DEX_FLAREON, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_ESPEON, + KANTO_DEX_UMBREON, + KANTO_DEX_LEAFEON, + KANTO_DEX_GLACEON, + KANTO_DEX_SYLVEON, +#endif + KANTO_DEX_PORYGON, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_2_CROSS_EVOS + KANTO_DEX_PORYGON2, +#endif +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_PORYGON_Z, +#endif + KANTO_DEX_OMANYTE, + KANTO_DEX_OMASTAR, + KANTO_DEX_KABUTO, + KANTO_DEX_KABUTOPS, + KANTO_DEX_AERODACTYL, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS + KANTO_DEX_MUNCHLAX, +#endif + KANTO_DEX_SNORLAX, + KANTO_DEX_ARTICUNO, + KANTO_DEX_ZAPDOS, + KANTO_DEX_MOLTRES, + KANTO_DEX_DRATINI, + KANTO_DEX_DRAGONAIR, + KANTO_DEX_DRAGONITE, + KANTO_DEX_MEWTWO, + KANTO_DEX_MEW, +}; + +#define KANTO_DEX_COUNT (KANTO_DEX_MEW + 1) #define HOENN_DEX_COUNT (HOENN_DEX_DEOXYS + 1) +#define REGIONAL_DEX_COUNT (IS_FRLG ? KANTO_DEX_COUNT : HOENN_DEX_COUNT) + #define DECAGRAMS_IN_POUND 4536 #define CM_PER_INCH 2.54 #define CM_PER_INCH_FACTOR (CM_PER_INCH * 100) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 59bf27d8237f..12c0a83d1ea9 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -76,6 +76,9 @@ enum __attribute__((packed)) Type #define NATURE_QUIRKY 24 // Neutral #define NUM_NATURES 25 +#define NATURE_RANDOM NUM_NATURES +#define NATURE_MAY_SYNCHRONIZE NUM_NATURES + 1 + // Pokémon Stats enum __attribute__((packed)) Stat { @@ -154,9 +157,12 @@ enum __attribute__((packed)) Stat #define MAX_DYNAMAX_LEVEL 10 -#define OT_ID_PLAYER_ID 0 -#define OT_ID_PRESET 1 -#define OT_ID_RANDOM_NO_SHINY 2 +enum OtIdMethod +{ + OT_ID_PLAYER_ID, + OT_ID_PRESET, + OT_ID_RANDOM_NO_SHINY +}; #define MON_GIVEN_TO_PARTY 0 #define MON_GIVEN_TO_PC 1 @@ -179,6 +185,9 @@ enum __attribute__((packed)) Stat #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF +#define MON_GENDER_RANDOM 0x01 +#define MON_GENDER_MAY_CUTE_CHARM 0x02 + // Constants for AdjustFriendship #define FRIENDSHIP_EVENT_GROW_LEVEL 0 #define FRIENDSHIP_EVENT_VITAMIN 1 // unused, handled by PokemonUseItemEffects @@ -189,6 +198,7 @@ enum __attribute__((packed)) Stat #define FRIENDSHIP_EVENT_FAINT_SMALL 6 #define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7 #define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint +#define FRIENDSHIP_EVENT_MASSAGE 9 // Constants for GetLeadMonFriendshipScore #define FRIENDSHIP_NONE 0 diff --git a/include/constants/pokemon_sprite_visualizer.h b/include/constants/pokemon_sprite_visualizer.h index 36afdb5b87b4..118e8d442262 100644 --- a/include/constants/pokemon_sprite_visualizer.h +++ b/include/constants/pokemon_sprite_visualizer.h @@ -34,20 +34,17 @@ #define WIN_FOOTPRINT 4 #define WIN_END 5 -//Battle backgrounds -#define MAP_BATTLE_SCENE_NORMAL 0 -#define MAP_BATTLE_SCENE_GYM 1 -#define MAP_BATTLE_SCENE_MAGMA 2 -#define MAP_BATTLE_SCENE_AQUA 3 -#define MAP_BATTLE_SCENE_SIDNEY 4 -#define MAP_BATTLE_SCENE_PHOEBE 5 -#define MAP_BATTLE_SCENE_GLACIA 6 -#define MAP_BATTLE_SCENE_DRAKE 7 -#define MAP_BATTLE_SCENE_FRONTIER 8 -#define MAP_BATTLE_SCENE_LEADER 9 -#define MAP_BATTLE_SCENE_WALLACE 10 -#define MAP_BATTLE_SCENE_GROUDON 11 -#define MAP_BATTLE_SCENE_KYOGRE 12 -#define MAP_BATTLE_SCENE_RAYQUAZA 13 +//Background positions +#define BACKGROUND_1_CHAR_BASE 1 +#define BACKGROUND_1_MAP_BASE 28 +#define BACKGROUND_3_CHAR_BASE 2 +#define BACKGROUND_3_MAP_BASE 26 + +//Submenus +#define SUBMENU_SPECIES 0 +#define SUBMENU_ANIMS_BG 1 +#define SUBMENU_SPRITE_COORDS 2 +#define SUBMENU_SHADOW_COORDS 3 +#define SUBMENU_MOVE_BACKGROUNDS 4 #endif // GUARD_CONSTANTS_POKEMON_SPRITE_VISUALIZER_H diff --git a/include/constants/regions.h b/include/constants/regions.h index 3f7397ced6d5..b9ad1d34d887 100644 --- a/include/constants/regions.h +++ b/include/constants/regions.h @@ -18,4 +18,13 @@ enum Region REGIONS_COUNT, }; +enum KantoSubRegion +{ + KANTO_SUBREGION_KANTO, + KANTO_SUBREGION_SEVII123, + KANTO_SUBREGION_SEVII45, + KANTO_SUBREGION_SEVII67, + KANTO_SUBREGION_COUNT +}; + #endif // GUARD_CONSTANTS_REGIONS_H diff --git a/include/constants/rtc.h b/include/constants/rtc.h index ea0748b50696..379730c00612 100644 --- a/include/constants/rtc.h +++ b/include/constants/rtc.h @@ -15,8 +15,21 @@ #define RTC_ERR_FLAG_MASK 0x0FF0 +//Evening doesn't exist in Gen 2 +#if OW_TIMES_OF_DAY == GEN_2 + #define MORNING_HOUR_BEGIN 4 + #define MORNING_HOUR_END 10 + + #define DAY_HOUR_BEGIN 10 + #define DAY_HOUR_END 18 + + #define EVENING_HOUR_BEGIN 0 + #define EVENING_HOUR_END 0 + + #define NIGHT_HOUR_BEGIN 18 + #define NIGHT_HOUR_END 4 //Morning and evening don't exist in Gen 3 -#if OW_TIMES_OF_DAY == GEN_3 +#elif OW_TIMES_OF_DAY == GEN_3 #define MORNING_HOUR_BEGIN 0 #define MORNING_HOUR_END 0 diff --git a/include/constants/script_menu.h b/include/constants/script_menu.h index 73b972afa85a..1e65bca81e9b 100644 --- a/include/constants/script_menu.h +++ b/include/constants/script_menu.h @@ -123,6 +123,52 @@ #define MULTI_FALLARBOR_TENT_RULES 112 #define MULTI_TAG_MATCH_TYPE 113 #define MULTI_BERRY_PLOT 114 +#define MULTI_BIKE_SHOP 115 +#define MULTI_EEVEELUTIONS 116 +#define MULTI_ISLAND_23 117 +#define MULTI_ISLAND_13 118 +#define MULTI_ISLAND_12 119 +#define MULTI_SEVII_NAVEL 120 +#define MULTI_SEVII_BIRTH 121 +#define MULTI_SEVII_NAVEL_BIRTH 122 +#define MULTI_SEAGALLOP_123 123 +#define MULTI_SEAGALLOP_V23 124 +#define MULTI_SEAGALLOP_V13 125 +#define MULTI_SEAGALLOP_V12 126 +#define MULTI_SEAGALLOP_VERMILION 127 +#define MULTI_GAME_CORNER_POKEMON_PRIZES 128 +#define MULTI_GAME_CORNER_TMPRIZES 129 +#define MULTI_GAME_CORNER_BATTLE_ITEM_PRIZES 130 +#define MULTI_DEPT_STORE_ELEVATOR 131 +#define MULTI_GAME_CORNER_COIN_PURCHASE_COUNTER 132 +#define MULTI_LINKED_DIRECT_UNION 133 +#define MULTI_CELADON_VENDING_MACHINE 134 +#define MULTI_THIRSTY_GIRL_FRESH_WATER 135 +#define MULTI_THIRSTY_GIRL_SODA_POP 136 +#define MULTI_THIRSTY_GIRL_FRESH_WATER_SODA_POP 137 +#define MULTI_THIRSTY_GIRL_LEMONADE 138 +#define MULTI_THIRSTY_GIRL_FRESH_WATER_LEMONADE 139 +#define MULTI_THIRSTY_GIRL_SODA_POP_LEMONADE 140 +#define MULTI_THIRSTY_GIRL_FRESH_WATER_SODA_POP_LEMONADE 141 +#define MULTI_ROCKET_HIDEOUT_ELEVATOR 142 +#define MULTI_HELIX 143 +#define MULTI_DOME 144 +#define MULTI_AMBER 145 +#define MULTI_HELIX_AMBER 146 +#define MULTI_DOME_AMBER 147 +#define MULTI_MUSHROOMS 148 +#define MULTI_ROOFTOP_B1F 149 +#define MULTI_TRAINER_TOWER_MODE 150 +#define MULTI_TRAINER_CARD_ICON_TINT 151 +#define MULTI_HOF_QUIT 152 +#define MULTI_EGGS_QUIT 153 +#define MULTI_VICTORIES_QUIT 154 +#define MULTI_HOF_EGGS_QUIT 155 +#define MULTI_HOF_VICTORIES_QUIT 156 +#define MULTI_EGGS_VICTORIES_QUIT 157 +#define MULTI_HOF_EGGS_VICTORIES_QUIT 158 + +#define MULTI_NONE 255 // Lilycove SS Tidal Multichoice Selections #define SSTIDAL_SELECTION_SLATEPORT 0 @@ -165,6 +211,15 @@ #define STDSTRING_BATTLE_ARENA 27 #define STDSTRING_BATTLE_PIKE 28 #define STDSTRING_BATTLE_PYRAMID 29 +#define STDSTRING_BOULDER_BADGE 30 +#define STDSTRING_CASCADE_BADGE 31 +#define STDSTRING_THUNDER_BADGE 32 +#define STDSTRING_RAINBOW_BADGE 33 +#define STDSTRING_SOUL_BADGE 34 +#define STDSTRING_MARSH_BADGE 35 +#define STDSTRING_VOLCANO_BADGE 36 +#define STDSTRING_EARTH_BADGE 37 +#define STDSTRING_COINS 38 // Dynamic Multichoice Callbacks diff --git a/include/constants/seagallop.h b/include/constants/seagallop.h new file mode 100644 index 000000000000..68e847445961 --- /dev/null +++ b/include/constants/seagallop.h @@ -0,0 +1,18 @@ +#ifndef GUARD_CONSTANTS_SEAGALLOP_H +#define GUARD_CONSTANTS_SEAGALLOP_H + +#define SEAGALLOP_VERMILION_CITY 0 +#define SEAGALLOP_ONE_ISLAND 1 +#define SEAGALLOP_TWO_ISLAND 2 +#define SEAGALLOP_THREE_ISLAND 3 +#define SEAGALLOP_FOUR_ISLAND 4 +#define SEAGALLOP_FIVE_ISLAND 5 +#define SEAGALLOP_SIX_ISLAND 6 +#define SEAGALLOP_SEVEN_ISLAND 7 +#define SEAGALLOP_CINNABAR_ISLAND 8 +#define SEAGALLOP_NAVEL_ROCK 9 +#define SEAGALLOP_BIRTH_ISLAND 10 + +#define SEAGALLOP_MORE 254 + +#endif //GUARD_CONSTANTS_SEAGALLOP_H diff --git a/include/constants/songs.h b/include/constants/songs.h index 104a4b3606c7..eb6c1e358fc0 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -490,7 +490,18 @@ #define MUS_RG_TRAINER_TOWER 556 // MUS_RG_T_TOWER #define MUS_RG_SLOW_PALLET 557 // MUS_RG_SLOWMASARA #define MUS_RG_TEACHY_TV_MENU 558 // MUS_RG_TVNOIZE -#define END_MUS MUS_RG_TEACHY_TV_MENU +#define MUS_HGSS_CASINO 559 +#define MUS_CASINO_PLUS_1 560 +#define MUS_CASINO_PLUS_2 561 +#define MUS_CASINO_PLUS_3 562 +#define MUS_CASINO_PLUS_4 563 +#define MUS_CASINO_PLUS_5 564 +#define MUS_CASINO_PLUS_6 565 +#define MUS_CASINO_PLUS_7 566 +#define MUS_CASINO_PLUS_8 567 +#define MUS_CASINO_PLUS_9 568 +#define MUS_CASINO_PLUS_GACHA 569 +#define END_MUS MUS_CASINO_PLUS_GACHA // These PH_* constants are phoneme sounds used by the "bard" NPC (see src/bard_music.c and src/mauville_old_man.c). // Each comes in a triplet of PH_*_BLEND, PH_*_HELD, and PH_*_SOLO, and the name of each triplet incorporates the English phonetic sound it represents. diff --git a/include/constants/species.h b/include/constants/species.h index ed31317c36fb..98b6f3c8e51d 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -1664,8 +1664,31 @@ #define SPECIES_ZYGARDE_MEGA 1547 #define SPECIES_DRAMPA_MEGA 1548 #define SPECIES_FALINKS_MEGA 1549 +#define SPECIES_HEATRAN_MEGA 1550 +#define SPECIES_DARKRAI_MEGA 1551 +#define SPECIES_ZERAORA_MEGA 1552 +#define SPECIES_RAICHU_MEGA_X 1553 +#define SPECIES_RAICHU_MEGA_Y 1554 +#define SPECIES_CHIMECHO_MEGA 1555 +#define SPECIES_ABSOL_MEGA_Z 1556 +#define SPECIES_STARAPTOR_MEGA 1557 +#define SPECIES_GARCHOMP_MEGA_Z 1558 +#define SPECIES_LUCARIO_MEGA_Z 1559 +#define SPECIES_GOLURK_MEGA 1560 +#define SPECIES_MEOWSTIC_M_MEGA 1561 +#define SPECIES_MEOWSTIC_F_MEGA 1562 +#define SPECIES_CRABOMINABLE_MEGA 1563 +#define SPECIES_GOLISOPOD_MEGA 1564 +#define SPECIES_MAGEARNA_MEGA 1565 +#define SPECIES_MAGEARNA_ORIGINAL_MEGA 1566 +#define SPECIES_SCOVILLAIN_MEGA 1567 +#define SPECIES_BAXCALIBUR_MEGA 1568 +#define SPECIES_TATSUGIRI_CURLY_MEGA 1569 +#define SPECIES_TATSUGIRI_DROOPY_MEGA 1570 +#define SPECIES_TATSUGIRI_STRETCHY_MEGA 1571 +#define SPECIES_GLIMMORA_MEGA 1572 -#define SPECIES_EGG (SPECIES_FALINKS_MEGA + 1) +#define SPECIES_EGG (SPECIES_GLIMMORA_MEGA + 1) #define NUM_SPECIES SPECIES_EGG diff --git a/include/constants/teaching_types.h b/include/constants/teaching_types.h new file mode 100644 index 000000000000..63fd9daa9583 --- /dev/null +++ b/include/constants/teaching_types.h @@ -0,0 +1,34 @@ +#ifndef GUARD_CONSTANTS_TEACHING_TYPES_H +#define GUARD_CONSTANTS_TEACHING_TYPES_H + +/* +Teaching Types are not used directly by the ROM but they are used by +make_teachables.py to generate teachable learnsets. To save ROM space, the info is +stored in 1 bit and the python script reads the name of the define. +This means we can have multiple "modes" that define to 1. +You can add additional teaching types but they would need to be described in the +python script. +*/ + + +/* DEFAULT_LEARNING +Vanilla uses: most pokemon +Allow a pokemon to learn all universal moves +*/ +#define DEFAULT_LEARNING 0 + +/* TM_ILLITERATE +Vanilla uses: pokemon with "gimmick" moveset (Ditto, Smeargle, Magikarp, ...) +Pokemon can't learn any universal moves (unless it was added to their teachable learnset) +*/ +#define TM_ILLITERATE 1 + +/* ALL_TEACHABLES +Vanilla uses: Mew +Allows a pokemon to learn almost every teachable move (whether from TM or tutors) +Some moves are excluded, they are listed in SignatureTeachables +*/ +#define ALL_TEACHABLES 1 + + +#endif // GUARD_CONSTANTS_TEACHING_TYPES_H diff --git a/include/constants/trade.h b/include/constants/trade.h index 4049a0f19aa2..66705a4d4853 100644 --- a/include/constants/trade.h +++ b/include/constants/trade.h @@ -11,6 +11,16 @@ enum InGameTradeID INGAME_TRADE_PLUSLE, INGAME_TRADE_HORSEA, INGAME_TRADE_MEOWTH, + // FRLG + INGAME_TRADE_MR_MIME, + INGAME_TRADE_JYNX, + INGAME_TRADE_NIDORAN, + INGAME_TRADE_FARFETCHD, + INGAME_TRADE_NIDORINOA, + INGAME_TRADE_LICKITUNG, + INGAME_TRADE_ELECTRODE, + INGAME_TRADE_TANGELA, + INGAME_TRADE_SEEL, }; // Return values for CanTradeSelectedMon and CanSpinTradeMon diff --git a/include/constants/trainer_card.h b/include/constants/trainer_card.h new file mode 100644 index 000000000000..c710cd859884 --- /dev/null +++ b/include/constants/trainer_card.h @@ -0,0 +1,24 @@ +#ifndef GUARD_CONSTANTS_TRAINER_CARD_H +#define GUARD_CONSTANTS_TRAINER_CARD_H + +#define TRAINER_CARD_PROFILE_LENGTH 4 +#define TRAINER_CARD_STICKER_TYPES 3 + +enum +{ + CARD_TYPE_FRLG, + CARD_TYPE_RS, + CARD_TYPE_EMERALD, +}; + +enum +{ + MON_ICON_TINT_NORMAL, + MON_ICON_TINT_BLACK, + MON_ICON_TINT_PINK, + MON_ICON_TINT_SEPIA, +}; + +#define NUM_LINK_TRAINER_CARD_CLASSES 8 + +#endif // GUARD_CONSTANTS_TRAINER_CARD_H diff --git a/include/constants/trainer_fan_club.h b/include/constants/trainer_fan_club.h new file mode 100644 index 000000000000..86f5a606392e --- /dev/null +++ b/include/constants/trainer_fan_club.h @@ -0,0 +1,15 @@ +#ifndef GUARD_CONSTANTS_TRAINER_FAN_CLUB_H +#define GUARD_CONSTANTS_TRAINER_FAN_CLUB_H + +#define FANCLUB_MEMBER1 0 +#define FANCLUB_MEMBER2 1 +#define FANCLUB_MEMBER3 2 +#define FANCLUB_MEMBER4 3 +#define FANCLUB_MEMBER5 4 +#define FANCLUB_MEMBER6 5 +#define FANCLUB_MEMBER7 6 +#define FANCLUB_MEMBER8 7 + +#define NUM_TRAINER_FAN_CLUB_MEMBERS 8 + +#endif //GUARD_CONSTANTS_TRAINER_FAN_CLUB_H diff --git a/include/constants/trainer_slide.h b/include/constants/trainer_slide.h index 26635b164b9e..5444110d9be3 100644 --- a/include/constants/trainer_slide.h +++ b/include/constants/trainer_slide.h @@ -38,6 +38,7 @@ enum TrainerSlideTargets TRAINER_SLIDE_TARGET_NONE, TRAINER_SLIDE_TARGET_TRAINER_A, TRAINER_SLIDE_TARGET_TRAINER_B, + TRAINER_SLIDE_TARGET_TRAINER_PARTNER, }; #endif // GUARD_CONSTANTS_TRAINER_SLIDE_H diff --git a/include/constants/trainer_tower.h b/include/constants/trainer_tower.h new file mode 100644 index 000000000000..1db282faa850 --- /dev/null +++ b/include/constants/trainer_tower.h @@ -0,0 +1,65 @@ +#ifndef GUARD_CONSTANTS_TRAINER_TOWER_H +#define GUARD_CONSTANTS_TRAINER_TOWER_H + +#define CHALLENGE_TYPE_SINGLE 0 +#define CHALLENGE_TYPE_DOUBLE 1 +#define CHALLENGE_TYPE_KNOCKOUT 2 +#define CHALLENGE_TYPE_MIXED 3 + +#define NUM_TOWER_CHALLENGE_TYPES 4 +// Mixed challenges use one of the above 3 for each floor + +#define TT_CHALLENGE_STATUS_LOST 0 +#define TT_CHALLENGE_STATUS_UNK 1 // Never set, possibly e-Card related +#define TT_CHALLENGE_STATUS_NORMAL 2 // Not started or ongoing + +#define TTPRIZE_HP_UP 0 +#define TTPRIZE_PROTEIN 1 +#define TTPRIZE_IRON 2 +#define TTPRIZE_CARBOS 3 +#define TTPRIZE_CALCIUM 4 +#define TTPRIZE_ZINC 5 +#define TTPRIZE_BRIGHT_POWDER 6 +#define TTPRIZE_WHITE_HERB 7 +#define TTPRIZE_MENTAL_HERB 8 +#define TTPRIZE_CHOICE_BAND 9 +#define TTPRIZE_KINGS_ROCK 10 +#define TTPRIZE_SCOPE_LENS 11 +#define TTPRIZE_METAL_COAT 12 +#define TTPRIZE_DRAGON_SCALE 13 +#define TTPRIZE_UP_GRADE 14 + +#define MAX_TRAINER_TOWER_FLOORS 8 + +#define MAX_TRAINERS_PER_FLOOR 3 + +#define TRAINER_TOWER_FUNC_INIT_FLOOR 0 +#define TRAINER_TOWER_FUNC_GET_SPEECH 1 +#define TRAINER_TOWER_FUNC_DO_BATTLE 2 +#define TRAINER_TOWER_FUNC_GET_CHALLENGE_TYPE 3 +#define TRAINER_TOWER_FUNC_CLEARED_FLOOR 4 +#define TRAINER_TOWER_FUNC_GET_FLOOR_CLEARED 5 +#define TRAINER_TOWER_FUNC_START_CHALLENGE 6 +#define TRAINER_TOWER_FUNC_GET_OWNER_STATE 7 +#define TRAINER_TOWER_FUNC_GIVE_PRIZE 8 +#define TRAINER_TOWER_FUNC_CHECK_FINAL_TIME 9 +#define TRAINER_TOWER_FUNC_RESUME_TIMER 10 +#define TRAINER_TOWER_FUNC_SET_LOST 11 +#define TRAINER_TOWER_FUNC_GET_CHALLENGE_STATUS 12 +#define TRAINER_TOWER_FUNC_GET_TIME 13 +#define TRAINER_TOWER_FUNC_SHOW_RESULTS 14 +#define TRAINER_TOWER_FUNC_CLOSE_RESULTS 15 +#define TRAINER_TOWER_FUNC_CHECK_DOUBLES 16 +#define TRAINER_TOWER_FUNC_GET_NUM_FLOORS 17 +#define TRAINER_TOWER_FUNC_SHOULD_WARP_TO_COUNTER 18 +#define TRAINER_TOWER_FUNC_ENCOUNTER_MUSIC 19 +#define TRAINER_TOWER_FUNC_GET_BEAT_CHALLENGE 20 + +#define TRAINER_TOWER_TEXT_INTRO 2 +#define TRAINER_TOWER_TEXT_PLAYER_LOST 3 +#define TRAINER_TOWER_TEXT_PLAYER_WON 4 +#define TRAINER_TOWER_TEXT_AFTER 5 + +#define TRAINER_TOWER_MAX_TIME 215999 // 60 * 60 * 60 - 1 + +#endif //GUARD_CONSTANTS_TRAINER_TOWER_H diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 4f2200841069..83e3a0e8292a 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -15,110 +15,180 @@ #define TRAINER_LINK_OPPONENT 2048 #define TRAINER_UNION_ROOM 3072 -#define TRAINER_PIC_HIKER 0 -#define TRAINER_PIC_AQUA_GRUNT_M 1 -#define TRAINER_PIC_POKEMON_BREEDER_F 2 -#define TRAINER_PIC_COOLTRAINER_M 3 -#define TRAINER_PIC_BIRD_KEEPER 4 -#define TRAINER_PIC_COLLECTOR 5 -#define TRAINER_PIC_AQUA_GRUNT_F 6 -#define TRAINER_PIC_SWIMMER_M 7 -#define TRAINER_PIC_MAGMA_GRUNT_M 8 -#define TRAINER_PIC_EXPERT_M 9 -#define TRAINER_PIC_AQUA_ADMIN_M 10 -#define TRAINER_PIC_BLACK_BELT 11 -#define TRAINER_PIC_AQUA_ADMIN_F 12 -#define TRAINER_PIC_AQUA_LEADER_ARCHIE 13 -#define TRAINER_PIC_HEX_MANIAC 14 -#define TRAINER_PIC_AROMA_LADY 15 -#define TRAINER_PIC_RUIN_MANIAC 16 -#define TRAINER_PIC_INTERVIEWER 17 -#define TRAINER_PIC_TUBER_F 18 -#define TRAINER_PIC_TUBER_M 19 -#define TRAINER_PIC_COOLTRAINER_F 20 -#define TRAINER_PIC_LADY 21 -#define TRAINER_PIC_BEAUTY 22 -#define TRAINER_PIC_RICH_BOY 23 -#define TRAINER_PIC_EXPERT_F 24 -#define TRAINER_PIC_POKEMANIAC 25 -#define TRAINER_PIC_MAGMA_GRUNT_F 26 -#define TRAINER_PIC_GUITARIST 27 -#define TRAINER_PIC_KINDLER 28 -#define TRAINER_PIC_CAMPER 29 -#define TRAINER_PIC_PICNICKER 30 -#define TRAINER_PIC_BUG_MANIAC 31 -#define TRAINER_PIC_POKEMON_BREEDER_M 32 -#define TRAINER_PIC_PSYCHIC_M 33 -#define TRAINER_PIC_PSYCHIC_F 34 -#define TRAINER_PIC_GENTLEMAN 35 -#define TRAINER_PIC_ELITE_FOUR_SIDNEY 36 -#define TRAINER_PIC_ELITE_FOUR_PHOEBE 37 -#define TRAINER_PIC_ELITE_FOUR_GLACIA 38 -#define TRAINER_PIC_ELITE_FOUR_DRAKE 39 -#define TRAINER_PIC_LEADER_ROXANNE 40 -#define TRAINER_PIC_LEADER_BRAWLY 41 -#define TRAINER_PIC_LEADER_WATTSON 42 -#define TRAINER_PIC_LEADER_FLANNERY 43 -#define TRAINER_PIC_LEADER_NORMAN 44 -#define TRAINER_PIC_LEADER_WINONA 45 -#define TRAINER_PIC_LEADER_TATE_AND_LIZA 46 -#define TRAINER_PIC_LEADER_JUAN 47 -#define TRAINER_PIC_SCHOOL_KID_M 48 -#define TRAINER_PIC_SCHOOL_KID_F 49 -#define TRAINER_PIC_SR_AND_JR 50 -#define TRAINER_PIC_POKEFAN_M 51 -#define TRAINER_PIC_POKEFAN_F 52 -#define TRAINER_PIC_YOUNGSTER 53 -#define TRAINER_PIC_CHAMPION_WALLACE 54 -#define TRAINER_PIC_FISHERMAN 55 -#define TRAINER_PIC_CYCLING_TRIATHLETE_M 56 -#define TRAINER_PIC_CYCLING_TRIATHLETE_F 57 -#define TRAINER_PIC_RUNNING_TRIATHLETE_M 58 -#define TRAINER_PIC_RUNNING_TRIATHLETE_F 59 -#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60 -#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61 -#define TRAINER_PIC_DRAGON_TAMER 62 -#define TRAINER_PIC_NINJA_BOY 63 -#define TRAINER_PIC_BATTLE_GIRL 64 -#define TRAINER_PIC_PARASOL_LADY 65 -#define TRAINER_PIC_SWIMMER_F 66 -#define TRAINER_PIC_TWINS 67 -#define TRAINER_PIC_SAILOR 68 -#define TRAINER_PIC_MAGMA_ADMIN 69 -#define TRAINER_PIC_WALLY 70 -#define TRAINER_PIC_BRENDAN 71 -#define TRAINER_PIC_MAY 72 -#define TRAINER_PIC_BUG_CATCHER 73 -#define TRAINER_PIC_POKEMON_RANGER_M 74 -#define TRAINER_PIC_POKEMON_RANGER_F 75 -#define TRAINER_PIC_MAGMA_LEADER_MAXIE 76 -#define TRAINER_PIC_LASS 77 -#define TRAINER_PIC_YOUNG_COUPLE 78 -#define TRAINER_PIC_OLD_COUPLE 79 -#define TRAINER_PIC_SIS_AND_BRO 80 -#define TRAINER_PIC_STEVEN 81 -#define TRAINER_PIC_SALON_MAIDEN_ANABEL 82 -#define TRAINER_PIC_DOME_ACE_TUCKER 83 -#define TRAINER_PIC_PALACE_MAVEN_SPENSER 84 -#define TRAINER_PIC_ARENA_TYCOON_GRETA 85 -#define TRAINER_PIC_FACTORY_HEAD_NOLAND 86 -#define TRAINER_PIC_PIKE_QUEEN_LUCY 87 -#define TRAINER_PIC_PYRAMID_KING_BRANDON 88 -#define TRAINER_PIC_RED 89 -#define TRAINER_PIC_LEAF 90 -#define TRAINER_PIC_RS_BRENDAN 91 -#define TRAINER_PIC_RS_MAY 92 -#define TRAINER_PIC_COUNT 93 +enum __attribute__((packed)) TrainerPicID +{ + TRAINER_PIC_FRONT_HIKER, + TRAINER_PIC_FRONT_AQUA_GRUNT_M, + TRAINER_PIC_FRONT_POKEMON_BREEDER_F, + TRAINER_PIC_FRONT_COOLTRAINER_M, + TRAINER_PIC_FRONT_BIRD_KEEPER, + TRAINER_PIC_FRONT_COLLECTOR, + TRAINER_PIC_FRONT_AQUA_GRUNT_F, + TRAINER_PIC_FRONT_SWIMMER_M, + TRAINER_PIC_FRONT_MAGMA_GRUNT_M, + TRAINER_PIC_FRONT_EXPERT_M, + TRAINER_PIC_FRONT_AQUA_ADMIN_M, + TRAINER_PIC_FRONT_BLACK_BELT, + TRAINER_PIC_FRONT_AQUA_ADMIN_F, + TRAINER_PIC_FRONT_AQUA_LEADER_ARCHIE, + TRAINER_PIC_FRONT_HEX_MANIAC, + TRAINER_PIC_FRONT_AROMA_LADY, + TRAINER_PIC_FRONT_RUIN_MANIAC, + TRAINER_PIC_FRONT_INTERVIEWER, + TRAINER_PIC_FRONT_TUBER_F, + TRAINER_PIC_FRONT_TUBER_M, + TRAINER_PIC_FRONT_COOLTRAINER_F, + TRAINER_PIC_FRONT_LADY, + TRAINER_PIC_FRONT_BEAUTY, + TRAINER_PIC_FRONT_RICH_BOY, + TRAINER_PIC_FRONT_EXPERT_F, + TRAINER_PIC_FRONT_POKEMANIAC, + TRAINER_PIC_FRONT_MAGMA_GRUNT_F, + TRAINER_PIC_FRONT_GUITARIST, + TRAINER_PIC_FRONT_KINDLER, + TRAINER_PIC_FRONT_CAMPER, + TRAINER_PIC_FRONT_PICNICKER, + TRAINER_PIC_FRONT_BUG_MANIAC, + TRAINER_PIC_FRONT_POKEMON_BREEDER_M, + TRAINER_PIC_FRONT_PSYCHIC_M, + TRAINER_PIC_FRONT_PSYCHIC_F, + TRAINER_PIC_FRONT_GENTLEMAN, + TRAINER_PIC_FRONT_ELITE_FOUR_SIDNEY, + TRAINER_PIC_FRONT_ELITE_FOUR_PHOEBE, + TRAINER_PIC_FRONT_ELITE_FOUR_GLACIA, + TRAINER_PIC_FRONT_ELITE_FOUR_DRAKE, + TRAINER_PIC_FRONT_LEADER_ROXANNE, + TRAINER_PIC_FRONT_LEADER_BRAWLY, + TRAINER_PIC_FRONT_LEADER_WATTSON, + TRAINER_PIC_FRONT_LEADER_FLANNERY, + TRAINER_PIC_FRONT_LEADER_NORMAN, + TRAINER_PIC_FRONT_LEADER_WINONA, + TRAINER_PIC_FRONT_LEADER_TATE_AND_LIZA, + TRAINER_PIC_FRONT_LEADER_JUAN, + TRAINER_PIC_FRONT_SCHOOL_KID_M, + TRAINER_PIC_FRONT_SCHOOL_KID_F, + TRAINER_PIC_FRONT_SR_AND_JR, + TRAINER_PIC_FRONT_POKEFAN_M, + TRAINER_PIC_FRONT_POKEFAN_F, + TRAINER_PIC_FRONT_YOUNGSTER, + TRAINER_PIC_FRONT_CHAMPION_WALLACE, + TRAINER_PIC_FRONT_FISHERMAN, + TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_M, + TRAINER_PIC_FRONT_CYCLING_TRIATHLETE_F, + TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_M, + TRAINER_PIC_FRONT_RUNNING_TRIATHLETE_F, + TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_M, + TRAINER_PIC_FRONT_SWIMMING_TRIATHLETE_F, + TRAINER_PIC_FRONT_DRAGON_TAMER, + TRAINER_PIC_FRONT_NINJA_BOY, + TRAINER_PIC_FRONT_BATTLE_GIRL, + TRAINER_PIC_FRONT_PARASOL_LADY, + TRAINER_PIC_FRONT_SWIMMER_F, + TRAINER_PIC_FRONT_TWINS, + TRAINER_PIC_FRONT_SAILOR, + TRAINER_PIC_FRONT_MAGMA_ADMIN, + TRAINER_PIC_FRONT_WALLY, + TRAINER_PIC_FRONT_BRENDAN, + TRAINER_PIC_FRONT_MAY, + TRAINER_PIC_FRONT_BUG_CATCHER, + TRAINER_PIC_FRONT_POKEMON_RANGER_M, + TRAINER_PIC_FRONT_POKEMON_RANGER_F, + TRAINER_PIC_FRONT_MAGMA_LEADER_MAXIE, + TRAINER_PIC_FRONT_LASS, + TRAINER_PIC_FRONT_YOUNG_COUPLE, + TRAINER_PIC_FRONT_OLD_COUPLE, + TRAINER_PIC_FRONT_SIS_AND_BRO, + TRAINER_PIC_FRONT_STEVEN, + TRAINER_PIC_FRONT_SALON_MAIDEN_ANABEL, + TRAINER_PIC_FRONT_DOME_ACE_TUCKER, + TRAINER_PIC_FRONT_PALACE_MAVEN_SPENSER, + TRAINER_PIC_FRONT_ARENA_TYCOON_GRETA, + TRAINER_PIC_FRONT_FACTORY_HEAD_NOLAND, + TRAINER_PIC_FRONT_PIKE_QUEEN_LUCY, + TRAINER_PIC_FRONT_PYRAMID_KING_BRANDON, + TRAINER_PIC_FRONT_RED, + TRAINER_PIC_FRONT_LEAF, + TRAINER_PIC_FRONT_RS_BRENDAN, + TRAINER_PIC_FRONT_RS_MAY, + TRAINER_PIC_FRONT_POKEMON_RANGER_M_FRLG, + TRAINER_PIC_FRONT_AROMA_LADY_FRLG, + TRAINER_PIC_FRONT_YOUNGSTER_FRLG, + TRAINER_PIC_FRONT_BUG_CATCHER_FRLG, + TRAINER_PIC_FRONT_LASS_FRLG, + TRAINER_PIC_FRONT_SAILOR_FRLG, + TRAINER_PIC_FRONT_CAMPER_FRLG, + TRAINER_PIC_FRONT_PICNICKER_FRLG, + TRAINER_PIC_FRONT_POKEMANIAC_FRLG, + TRAINER_PIC_FRONT_HIKER_FRLG, + TRAINER_PIC_FRONT_FISHERMAN_FRLG, + TRAINER_PIC_FRONT_SWIMMER_M_FRLG, + TRAINER_PIC_FRONT_BEAUTY_FRLG, + TRAINER_PIC_FRONT_SWIMMER_F_FRLG, + TRAINER_PIC_FRONT_PSYCHIC_M_FRLG, + TRAINER_PIC_FRONT_BIRD_KEEPER_FRLG, + TRAINER_PIC_FRONT_BLACK_BELT_FRLG, + TRAINER_PIC_FRONT_COOLTRAINER_M_FRLG, + TRAINER_PIC_FRONT_COOLTRAINER_F_FRLG, + TRAINER_PIC_FRONT_GENTLEMAN_FRLG, + TRAINER_PIC_FRONT_TWINS_FRLG, + TRAINER_PIC_FRONT_YOUNG_COUPLE_FRLG, + TRAINER_PIC_FRONT_SIS_AND_BRO_FRLG, + TRAINER_PIC_FRONT_PSYCHIC_F_FRLG, + TRAINER_PIC_FRONT_TUBER_F_FRLG, + TRAINER_PIC_FRONT_POKEMON_RANGER_F_FRLG, + TRAINER_PIC_FRONT_RUIN_MANIAC_FRLG, + TRAINER_PIC_FRONT_LADY_FRLG, + TRAINER_PIC_FRONT_SUPER_NERD_FRLG, + TRAINER_PIC_FRONT_BIKER_FRLG, + TRAINER_PIC_FRONT_BURGLAR_FRLG, + TRAINER_PIC_FRONT_ENGINEER_FRLG, + TRAINER_PIC_FRONT_CUE_BALL_FRLG, + TRAINER_PIC_FRONT_GAMER_FRLG, + TRAINER_PIC_FRONT_ROCKER_FRLG, + TRAINER_PIC_FRONT_JUGGLER_FRLG, + TRAINER_PIC_FRONT_TAMER_FRLG, + TRAINER_PIC_FRONT_RIVAL_EARLY_FRLG, + TRAINER_PIC_FRONT_SCIENTIST_FRLG, + TRAINER_PIC_FRONT_LEADER_GIOVANNI_FRLG, + TRAINER_PIC_FRONT_ROCKET_GRUNT_M_FRLG, + TRAINER_PIC_FRONT_ELITE_FOUR_LORELEI_FRLG, + TRAINER_PIC_FRONT_ELITE_FOUR_BRUNO_FRLG, + TRAINER_PIC_FRONT_ELITE_FOUR_AGATHA_FRLG, + TRAINER_PIC_FRONT_ELITE_FOUR_LANCE_FRLG, + TRAINER_PIC_FRONT_LEADER_BROCK_FRLG, + TRAINER_PIC_FRONT_LEADER_MISTY_FRLG, + TRAINER_PIC_FRONT_LEADER_LT_SURGE_FRLG, + TRAINER_PIC_FRONT_LEADER_ERIKA_FRLG, + TRAINER_PIC_FRONT_LEADER_KOGA_FRLG, + TRAINER_PIC_FRONT_LEADER_BLAINE_FRLG, + TRAINER_PIC_FRONT_LEADER_SABRINA_FRLG, + TRAINER_PIC_FRONT_RIVAL_LATE_FRLG, + TRAINER_PIC_FRONT_CHAMPION_RIVAL_FRLG, + TRAINER_PIC_FRONT_CHANNELER_FRLG, + TRAINER_PIC_FRONT_COOL_COUPLE_FRLG, + TRAINER_PIC_FRONT_CRUSH_KIN_FRLG, + TRAINER_PIC_FRONT_PROFESSOR_OAK_FRLG, + TRAINER_PIC_FRONT_ROCKET_GRUNT_F_FRLG, + TRAINER_PIC_FRONT_CRUSH_GIRL_FRLG, + TRAINER_PIC_FRONT_POKEMON_BREEDER_FRLG, + TRAINER_PIC_FRONT_PAINTER_FRLG, + TRAINER_PIC_FRONT_COUNT, + TRAINER_PIC_BACK_BRENDAN = TRAINER_PIC_FRONT_COUNT, // The player back pics are assumed to alternate according to the gender values (MALE/FEMALE) + TRAINER_PIC_BACK_MAY, + TRAINER_PIC_BACK_RED, + TRAINER_PIC_BACK_LEAF, + TRAINER_PIC_BACK_RUBY_SAPPHIRE_BRENDAN, + TRAINER_PIC_BACK_RUBY_SAPPHIRE_MAY, + TRAINER_PIC_BACK_WALLY, + TRAINER_PIC_BACK_STEVEN, + TRAINER_PIC_BACK_POKEDUDE, + TRAINER_PIC_BACK_OLD_MAN, + TRAINER_PIC_COUNT, + TRAINER_PIC_BACK_COUNT = (TRAINER_PIC_COUNT - TRAINER_PIC_FRONT_COUNT), +}; -// The player back pics are assumed to alternate according to the gender values (MALE/FEMALE) -#define TRAINER_BACK_PIC_BRENDAN 0 -#define TRAINER_BACK_PIC_MAY 1 -#define TRAINER_BACK_PIC_RED 2 -#define TRAINER_BACK_PIC_LEAF 3 -#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 4 -#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 5 -#define TRAINER_BACK_PIC_WALLY 6 -#define TRAINER_BACK_PIC_STEVEN 7 +#define TRAINER_BACK_PIC_PLAYER_MALE (IS_FRLG ? TRAINER_PIC_BACK_RED : TRAINER_PIC_BACK_BRENDAN) +#define TRAINER_BACK_PIC_PLAYER_FEMALE (IS_FRLG ? TRAINER_PIC_BACK_LEAF : TRAINER_PIC_BACK_MAY) #define FACILITY_CLASS_HIKER 0x0 #define FACILITY_CLASS_AQUA_GRUNT_M 0x1 @@ -202,8 +272,61 @@ #define FACILITY_CLASS_LEAF 0x4f #define FACILITY_CLASS_RS_BRENDAN 0x50 #define FACILITY_CLASS_RS_MAY 0x51 +#define FACILITY_CLASS_YOUNGSTER_FRLG 0x52 +#define FACILITY_CLASS_BURGLAR_FRLG 0x53 +#define FACILITY_CLASS_PSYCHIC_F_FRLG 0x54 +#define FACILITY_CLASS_COOL_COUPLE_FRLG 0x55 +#define FACILITY_CLASS_YOUNG_COUPLE_FRLG 0x56 +#define FACILITY_CLASS_CRUSH_KIN_FRLG 0x57 +#define FACILITY_CLASS_BIKER_FRLG 0x58 +#define FACILITY_CLASS_CUE_BALL_FRLG 0x59 +#define FACILITY_CLASS_HIKER_FRLG 0x5A +#define FACILITY_CLASS_CRUSH_GIRL_FRLG 0x5B +#define FACILITY_CLASS_BLACK_BELT_FRLG 0x5C +#define FACILITY_CLASS_CAMPER_FRLG 0x5D +#define FACILITY_CLASS_PKMN_BREEDER_FRLG 0x5E +#define FACILITY_CLASS_BUG_CATCHER_FRLG 0x5F +#define FACILITY_CLASS_TWINS_FRLG 0x60 +#define FACILITY_CLASS_PKMN_RANGER_F_FRLG 0x61 +#define FACILITY_CLASS_PKMN_RANGER_M_FRLG 0x62 +#define FACILITY_CLASS_COOLTRAINER_M_FRLG 0x63 +#define FACILITY_CLASS_PICNICKER_FRLG 0x64 +#define FACILITY_CLASS_AROMA_LADY_FRLG 0x65 +#define FACILITY_CLASS_COOLTRAINER_F_FRLG 0x66 +#define FACILITY_CLASS_SWIMMER_M_FRLG 0x67 +#define FACILITY_CLASS_SAILOR_FRLG 0x68 +#define FACILITY_CLASS_SIS_AND_BRO_FRLG 0x69 +#define FACILITY_CLASS_TUBER_FRLG 0x6A +#define FACILITY_CLASS_LADY_FRLG 0x6B +#define FACILITY_CLASS_SWIMMER_F_FRLG 0x6C +#define FACILITY_CLASS_FISHERMAN_FRLG 0x6D +#define FACILITY_CLASS_GENTLEMAN_FRLG 0x6E +#define FACILITY_CLASS_JUGGLER_FRLG 0x6F +#define FACILITY_CLASS_SUPER_NERD_FRLG 0x70 +#define FACILITY_CLASS_PSYCHIC_M_FRLG 0x71 +#define FACILITY_CLASS_ROCKER_FRLG 0x72 +#define FACILITY_CLASS_ENGINEER_FRLG 0x73 +#define FACILITY_CLASS_SCIENTIST_FRLG 0x74 +#define FACILITY_CLASS_BEAUTY_FRLG 0x75 +#define FACILITY_CLASS_LASS_FRLG 0x76 + +#define FACILITY_CLASSES_COUNT 0x77 + -#define FACILITY_CLASSES_COUNT 0x52 + +#define FACILITY_CLASS_SUPER_NERD FACILITY_CLASS_HIKER +#define FACILITY_CLASS_BIKER FACILITY_CLASS_HIKER +#define FACILITY_CLASS_BURGLAR FACILITY_CLASS_HIKER +#define FACILITY_CLASS_ENGINEER FACILITY_CLASS_HIKER +#define FACILITY_CLASS_CUE_BALL FACILITY_CLASS_HIKER +#define FACILITY_CLASS_ROCKER FACILITY_CLASS_HIKER +#define FACILITY_CLASS_JUGGLER FACILITY_CLASS_HIKER +#define FACILITY_CLASS_SCIENTIST FACILITY_CLASS_HIKER +#define FACILITY_CLASS_CRUSH_GIRL FACILITY_CLASS_HIKER +#define FACILITY_CLASS_TUBER FACILITY_CLASS_HIKER +#define FACILITY_CLASS_PKMN_BREEDER FACILITY_CLASS_HIKER +#define FACILITY_CLASS_COOL_COUPLE FACILITY_CLASS_HIKER +#define FACILITY_CLASS_CRUSH_KIN FACILITY_CLASS_HIKER #define RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE 0x0 #define RS_FACILITY_CLASS_AQUA_GRUNT_M 0x1 @@ -353,25 +476,78 @@ enum TrainerClassID TRAINER_CLASS_PIKE_QUEEN, TRAINER_CLASS_PYRAMID_KING, TRAINER_CLASS_RS_PROTAG, + + TRAINER_CLASS_YOUNGSTER_FRLG, + TRAINER_CLASS_BUG_CATCHER_FRLG, + TRAINER_CLASS_LASS_FRLG, + TRAINER_CLASS_SAILOR_FRLG, + TRAINER_CLASS_CAMPER_FRLG, + TRAINER_CLASS_PICNICKER_FRLG, + TRAINER_CLASS_POKEMANIAC_FRLG, + TRAINER_CLASS_SUPER_NERD_FRLG, + TRAINER_CLASS_HIKER_FRLG, + TRAINER_CLASS_BIKER_FRLG, + TRAINER_CLASS_BURGLAR_FRLG, + TRAINER_CLASS_ENGINEER_FRLG, + TRAINER_CLASS_FISHERMAN_FRLG, + TRAINER_CLASS_SWIMMER_M_FRLG, + TRAINER_CLASS_CUE_BALL_FRLG, + TRAINER_CLASS_GAMER_FRLG, + TRAINER_CLASS_BEAUTY_FRLG, + TRAINER_CLASS_SWIMMER_F_FRLG, + TRAINER_CLASS_PSYCHIC_FRLG, + TRAINER_CLASS_ROCKER_FRLG, + TRAINER_CLASS_JUGGLER_FRLG, + TRAINER_CLASS_TAMER_FRLG, + TRAINER_CLASS_BIRD_KEEPER_FRLG, + TRAINER_CLASS_BLACK_BELT_FRLG, + TRAINER_CLASS_RIVAL_EARLY_FRLG, + TRAINER_CLASS_SCIENTIST_FRLG, + TRAINER_CLASS_BOSS_FRLG, + TRAINER_CLASS_LEADER_FRLG, + TRAINER_CLASS_TEAM_ROCKET_FRLG, + TRAINER_CLASS_COOLTRAINER_FRLG, + TRAINER_CLASS_ELITE_FOUR_FRLG, + TRAINER_CLASS_GENTLEMAN_FRLG, + TRAINER_CLASS_RIVAL_LATE_FRLG, + TRAINER_CLASS_CHAMPION_FRLG, + TRAINER_CLASS_CHANNELER_FRLG, + TRAINER_CLASS_TWINS_FRLG, + TRAINER_CLASS_COOL_COUPLE_FRLG, + TRAINER_CLASS_YOUNG_COUPLE_FRLG, + TRAINER_CLASS_CRUSH_KIN_FRLG, + TRAINER_CLASS_SIS_AND_BRO_FRLG, + TRAINER_CLASS_PKMN_PROF_FRLG, + TRAINER_CLASS_PLAYER_FRLG, + TRAINER_CLASS_CRUSH_GIRL_FRLG, + TRAINER_CLASS_TUBER_FRLG, + TRAINER_CLASS_PKMN_BREEDER_FRLG, + TRAINER_CLASS_PKMN_RANGER_FRLG, + TRAINER_CLASS_AROMA_LADY_FRLG, + TRAINER_CLASS_RUIN_MANIAC_FRLG, + TRAINER_CLASS_LADY_FRLG, + TRAINER_CLASS_PAINTER_FRLG, + TRAINER_CLASS_COUNT, }; -#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music -#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music -#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too -#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3 -#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4 -#define TRAINER_ENCOUNTER_MUSIC_COOL 5 +#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // Used for Youngsters, Bug Catchers, male School Kids, Sailors, male running and cycling Triathletes, male Pokémon Breeders, and Campers +#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // Used for Lasses, Ladies, Beauties, Aroma Ladies, female running and cycling Triathletes, female Pokémon Breeders, and Parasol Ladies +#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // Used for Tubers, Picnickers, female School Kids, and Young Couples +#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3 // Used for Ninja Boys, Collectors, Hex Maniacs, Poké Maniacs, and Bug Maniacs +#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4 // Used for Guitarists, Psychics, Black Belts, Battle Girls, Dragon Tamers, Experts, and Old Couples +#define TRAINER_ENCOUNTER_MUSIC_COOL 5 // Used for Cool Trainers, Pokémon Rangers, and Bird Keepers #define TRAINER_ENCOUNTER_MUSIC_AQUA 6 #define TRAINER_ENCOUNTER_MUSIC_MAGMA 7 -#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8 -#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8 // Used for Swimmers, swimming Triathletes, and Sis and Bros +#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // Used for Twins, Poké Fans, and Sr. and Jr.s #define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10 -#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // Used for Hikers, Ruin Maniacs, Kindlers, and Fishermen #define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12 -#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen +#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Used for Rich Boys and Gentlemen -#define F_TRAINER_FEMALE (1 << 7) +#define TRAINER_GENDER_MALE 0 +#define TRAINER_GENDER_FEMALE 1 // Trainer party defines #define TRAINER_MON_MALE 1 diff --git a/include/constants/vars.h b/include/constants/vars.h index a12c2ff3a508..c457b06eab99 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_VARS_H #define GUARD_CONSTANTS_VARS_H +#include "constants/vars_frlg.h" + #define VARS_START 0x4000 // temporary vars @@ -327,8 +329,8 @@ #if TESTING #define TESTING_VARS_START 0x9000 #define TESTING_VAR_DIFFICULTY (TESTING_VARS_START + 0x0) -#define TESTING_VAR_STARTING_STATUS (TESTING_VARS_START + 0x1) -#define TESTING_VAR_STARTING_STATUS_TIMER (TESTING_VARS_START + 0x2) +#define TESTING_VAR_TRAINER_SLIDES (TESTING_VARS_START + 0x1) +#define TESTING_VAR_UNUSED_2 (TESTING_VARS_START + 0x2) #define TESTING_VAR_UNUSED_3 (TESTING_VARS_START + 0x3) #define TESTING_VAR_UNUSED_4 (TESTING_VARS_START + 0x4) #define TESTING_VAR_UNUSED_5 (TESTING_VARS_START + 0x5) diff --git a/include/constants/vars_frlg.h b/include/constants/vars_frlg.h new file mode 100644 index 000000000000..370f0e12c0a2 --- /dev/null +++ b/include/constants/vars_frlg.h @@ -0,0 +1,308 @@ +#ifndef GUARD_CONSTANTS_VARS_FRLG_H +#define GUARD_CONSTANTS_VARS_FRLG_H + + + + +// If nonzero, counts down by one every step. +// When it hits zero, repel's effect wears off. +#define VAR_REPEL_STEP_COUNT_FRLG 0x4020 + +// Counts up every step. Wraps around at 128. +// When wraparound occurs, the friendship of +// every party poke gets a slight boost. +#define VAR_HAPPINESS_STEP_COUNTER 0x4021 + +// Counts up every step while a party Pokemon is +// poisoned. Wraps around at 5. When wraparound +// occurs, every party Pokemon with the PSN status +// takes 1 point of damage. +// This is a deviation from the typical rate in +// the series, which is 1 damage every 4 steps. +#define VAR_POISON_STEP_COUNTER_FRLG 0x4022 + +// Step counter. Caps at 1500. If you enter a map with +// renewable hidden items and this counter is capped, +// the counter resets to 0 and all renewable hidden +// item flags are resampled. +#define VAR_RENEWABLE_ITEM_STEP_COUNTER 0x4023 + +// Determines which wild encounter set to use in the +// Altering Cave. Incremented by Mystery Event. +// Wraps around at 10. +#define VAR_ALTERING_CAVE_WILD_SET_FRLG 0x4024 + +// Step counter set to 500 at game start. When you get +// a massage from Daisy, it resets to 0. Caps at 500. +#define VAR_MASSAGE_COOLDOWN_STEP_COUNTER 0x4025 + +// Step counter. Wraps around at 100. Used to +// determine whether the player has reached the +// triangle in time. +#define VAR_DEOXYS_INTERACTION_STEP_COUNTER 0x4026 + +// Bits 0-11 are the number of mons in all boxes +// with the species sanity bit set. +// Bits 12-15 are the same for the player's party. +// Used by Quest Log. +#define VAR_QUEST_LOG_MON_COUNTS 0x4027 +#define VAR_WONDER_NEWS_STEP_COUNTER_FRLG 0x4028 +#define VAR_0x4029 0x4029 +#define VAR_0x402A 0x402A +#define VAR_0x402B 0x402B +#define VAR_DAYS_FRLG 0x402C // was VAR_RESET_RTC_ENABLE +#define VAR_0x402D 0x402D +#define VAR_0x402E 0x402E + +#define VAR_0x402F 0x402F + +#define VAR_ICE_STEP_COUNT_FRLG 0x4030 +#define VAR_STARTER_MON_FRLG 0x4031 // 0: Bulbasaur, 1: Squirtle, 2: Charmander +#define VAR_RESET_RTC_ENABLE_FRLG 0x4032 +#define VAR_ENIGMA_BERRY_AVAILABLE_FRLG 0x4033 + +#define VAR_0x4034 0x4034 +#define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035 +#define VAR_RESORT_GORGEOUS_REQUESTED_MON 0x4036 +#define VAR_PC_BOX_TO_SEND_MON_FRLG 0x4037 +#define VAR_FANCLUB_FAN_COUNTER_FRLG 0x4038 +#define VAR_FANCLUB_LOSE_FAN_TIMER_FRLG 0x4039 +#define VAR_ELEVATOR_FLOOR 0x403A +#define VAR_RESORT_GORGEOUS_REWARD 0x403B +#define VAR_0x403C 0x403C // Set to 0x0302, never read +#define VAR_HERACROSS_SIZE_RECORD 0x403D +#define VAR_DEOXYS_INTERACTION_NUM 0x403E +#define VAR_0x403F 0x403F +#define VAR_MAGIKARP_SIZE_RECORD 0x4040 +#define VAR_0x4041 0x4041 +#define VAR_TRAINER_CARD_MON_ICON_TINT_IDX 0x4042 +#define VAR_TRAINER_CARD_MON_ICON_1 0x4043 +#define VAR_TRAINER_CARD_MON_ICON_2 0x4044 +#define VAR_TRAINER_CARD_MON_ICON_3 0x4045 +#define VAR_TRAINER_CARD_MON_ICON_4 0x4046 +#define VAR_TRAINER_CARD_MON_ICON_5 0x4047 +#define VAR_TRAINER_CARD_MON_ICON_6 0x4048 +#define VAR_HOF_BRAG_STATE 0x4049 +#define VAR_EGG_BRAG_STATE 0x404A +#define VAR_LINK_WIN_BRAG_STATE 0x404B +#define VAR_POKELOT_RND2 0x404C +#define VAR_QL_ENTRANCE 0x404D +#define VAR_NATIONAL_DEX_FRLG 0x404E +#define VAR_LOTAD_SIZE_RECORD 0x404F + +// Map Scene +#define VAR_MAP_SCENE_PALLET_TOWN_OAK 0x4050 +#define VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN 0x4051 +#define VAR_MAP_SCENE_CERULEAN_CITY_RIVAL 0x4052 +#define VAR_VERMILION_CITY_TICKET_CHECK_TRIGGER 0x4053 +#define VAR_MAP_SCENE_ROUTE22 0x4054 +#define VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB 0x4055 +#define VAR_MAP_SCENE_PALLET_TOWN_PLAYERS_HOUSE_2F 0x4056 +#define VAR_MAP_SCENE_VIRIDIAN_CITY_MART 0x4057 +#define VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE 0x4058 +#define VAR_MAP_SCENE_POKEMON_TOWER_6F 0x4059 +#define VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR 0x405A +#define VAR_MAP_SCENE_S_S_ANNE_2F_CORRIDOR 0x405B +#define VAR_MAP_SCENE_SILPH_CO_7F 0x405C +#define VAR_MAP_SCENE_POKEMON_TOWER_2F 0x405D +#define VAR_MAP_SCENE_ROUTE16 0x405E +#define VAR_MAP_SCENE_ROUTE23 0x405F +#define VAR_MAP_SCENE_SILPH_CO_11F 0x4060 +#define VAR_MAP_SCENE_PEWTER_CITY_MUSEUM_1F 0x4061 +#define VAR_MAP_SCENE_ROUTE5_ROUTE6_ROUTE7_ROUTE8_GATES 0x4062 +#define VAR_MAP_SCENE_SEAFOAM_ISLANDS_B4F 0x4063 +#define VAR_MAP_SCENE_VICTORY_ROAD_1F 0x4064 +#define VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER1 0x4065 +#define VAR_MAP_SCENE_VICTORY_ROAD_2F_BOULDER2 0x4066 +#define VAR_MAP_SCENE_VICTORY_ROAD_3F 0x4067 +#define VAR_MAP_SCENE_POKEMON_LEAGUE 0x4068 +#define VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_WHICH_FOSSIL 0x4069 +#define VAR_MAP_SCENE_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM_REVIVE_STATE 0x406A +#define VAR_MAP_SCENE_ROUTE24 0x406B +#define VAR_MAP_SCENE_PEWTER_CITY 0x406C +#define VAR_0x406D 0x406D +#define VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 0x406E +#define VAR_CABLE_CLUB_STATE_FRLG 0x406F +#define VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY 0x4070 +#define VAR_MAP_SCENE_CINNABAR_ISLAND 0x4071 +#define VAR_0x4072 0x4072 +#define VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB 0x4073 +#define VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1 0x4074 +#define VAR_MAP_SCENE_ONE_ISLAND_HARBOR 0x4075 +#define VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F 0x4076 +#define VAR_0x4077 0x4077 +#define VAR_MAP_SCENE_TWO_ISLAND 0x4078 +#define VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER 0x4079 +#define VAR_0x407A 0x407A +#define VAR_MAP_SCENE_THREE_ISLAND 0x407B +#define VAR_MAP_SCENE_POKEMON_CENTER_TEALA 0x407C +#define VAR_MAP_SCENE_CERULEAN_CITY_ROCKET 0x407D +#define VAR_MAP_SCENE_VERMILION_CITY 0x407E +#define VAR_MAP_SCENE_MT_EMBER_EXTERIOR 0x407F +#define VAR_MAP_SCENE_ICEFALL_CAVE_BACK 0x4080 +#define VAR_MAP_SCENE_SAFFRON_CITY_DOJO 0x4081 +#define VAR_MAP_SCENE_TRAINER_TOWER 0x4082 +#define VAR_MAP_SCENE_FIVE_ISLAND_LOST_CAVE_ROOM10 0x4083 +#define VAR_MAP_SCENE_FIVE_ISLAND_RESORT_GORGEOUS 0x4084 +#define VAR_MAP_SCENE_INDIGO_PLATEAU_EXTERIOR 0x4085 +#define VAR_MAP_SCENE_FOUR_ISLAND 0x4086 +#define VAR_0x4087 0x4087 +#define VAR_MAP_SCENE_ROCKET_WAREHOUSE 0x4088 +#define VAR_MAP_SCENE_SIX_ISLAND_POKEMON_CENTER_1F 0x4089 +#define VAR_MAP_SCENE_CINNABAR_ISLAND_2 0x408A +#define VAR_MAP_SCENE_MT_MOON_B2F 0x408B + + +#define VAR_0x408C 0x408C +#define VAR_0x408D 0x408D +#define VAR_0x408E 0x408E +#define VAR_0x408F 0x408F +#define VAR_0x4090 0x4090 +#define VAR_0x4091 0x4091 +#define VAR_0x4092 0x4092 +#define VAR_0x4093 0x4093 +#define VAR_0x4094 0x4094 +#define VAR_0x4095 0x4095 +#define VAR_0x4096 0x4096 +#define VAR_0x4097 0x4097 +#define VAR_0x4098 0x4098 +#define VAR_0x4099 0x4099 +#define VAR_0x409A 0x409A +#define VAR_0x409B 0x409B +#define VAR_0x409C 0x409C +#define VAR_0x409D 0x409D +#define VAR_0x409E 0x409E +#define VAR_0x409F 0x409F +#define VAR_0x40A0 0x40A0 +#define VAR_0x40A1 0x40A1 +#define VAR_0x40A2 0x40A2 +#define VAR_0x40A3 0x40A3 +#define VAR_0x40A4 0x40A4 +#define VAR_0x40A5 0x40A5 +#define VAR_0x40A6 0x40A6 +#define VAR_0x40A7 0x40A7 +#define VAR_0x40A8 0x40A8 +#define VAR_0x40A9 0x40A9 + +#define VAR_QLBAK_TRAINER_REMATCHES 0x40AA // array of 4 +#define VAR_QLBAK_MAP_LAYOUT 0x40AE + +#define VAR_0x40AF 0x40AF +#define VAR_0x40B0 0x40B0 +#define VAR_0x40B1 0x40B1 +#define VAR_0x40B2 0x40B2 +#define VAR_0x40B3 0x40B3 +#define VAR_PORTHOLE 0x40B4 +#define VAR_EVENT_PICHU_SLOT 0x40B5 +#define VAR_MYSTERY_GIFT_1 0x40B6 +#define VAR_MYSTERY_GIFT_2 0x40B7 +#define VAR_MYSTERY_GIFT_3 0x40B8 +#define VAR_MYSTERY_GIFT_4 0x40B9 +#define VAR_MYSTERY_GIFT_5 0x40BA +#define VAR_MYSTERY_GIFT_6 0x40BB +#define VAR_MYSTERY_GIFT_7 0x40BC +#define VAR_0x40BD 0x40BD +#define VAR_0x40BE 0x40BE +#define VAR_0x40BF 0x40BF +#define VAR_0x40C0 0x40C0 +#define VAR_0x40C1 0x40C1 +#define VAR_0x40C2 0x40C2 +#define VAR_0x40C3 0x40C3 +#define VAR_0x40C4 0x40C4 +#define VAR_0x40C5 0x40C5 +#define VAR_0x40C6 0x40C6 +#define VAR_0x40C7 0x40C7 +#define VAR_0x40C8 0x40C8 +#define VAR_0x40C9 0x40C9 +#define VAR_0x40CA 0x40CA +#define VAR_0x40CB 0x40CB +#define VAR_0x40CC 0x40CC +#define VAR_0x40CD 0x40CD +#define VAR_0x40CE 0x40CE +#define VAR_FRONTIER_FACILITY 0x40CF +#define VAR_0x40D0 0x40D0 +#define VAR_0x40D1 0x40D1 +#define VAR_0x40D2 0x40D2 +#define VAR_0x40D3 0x40D3 +#define VAR_0x40D4 0x40D4 +#define VAR_0x40D5 0x40D5 +#define VAR_0x40D6 0x40D6 +#define VAR_0x40D7 0x40D7 +#define VAR_0x40D8 0x40D8 +#define VAR_0x40D9 0x40D9 +#define VAR_0x40DA 0x40DA +#define VAR_0x40DB 0x40DB +#define VAR_0x40DC 0x40DC +#define VAR_0x40DD 0x40DD +#define VAR_0x40DE 0x40DE +#define VAR_0x40DF 0x40DF +#define VAR_0x40E0 0x40E0 +#define VAR_0x40E1 0x40E1 +#define VAR_0x40E2 0x40E2 +#define VAR_0x40E3 0x40E3 +#define VAR_0x40E4 0x40E4 +#define VAR_0x40E5 0x40E5 +#define VAR_DAILY_SLOTS 0x40E6 +#define VAR_DAILY_WILDS 0x40E7 +#define VAR_DAILY_BLENDER 0x40E8 +#define VAR_DAILY_PLANTED_BERRIES 0x40E9 +#define VAR_DAILY_PICKED_BERRIES 0x40EA +#define VAR_DAILY_ROULETTE 0x40EB +#define VAR_0x40EC 0x40EC +#define VAR_0x40ED 0x40ED +#define VAR_0x40EE 0x40EE +#define VAR_0x40EF 0x40EF +#define VAR_0x40F0 0x40F0 +#define VAR_DAILY_BP 0x40F1 +#define VAR_0x40F2 0x40F2 +#define VAR_0x40F3 0x40F3 +#define VAR_0x40F4 0x40F4 +#define VAR_0x40F5 0x40F5 +#define VAR_0x40F6 0x40F6 +#define VAR_0x40F7 0x40F7 +#define VAR_0x40F8 0x40F8 +#define VAR_0x40F9 0x40F9 +#define VAR_0x40FA 0x40FA +#define VAR_0x40FB 0x40FB +#define VAR_0x40FC 0x40FC +#define VAR_0x40FD 0x40FD +#define VAR_0x40FE 0x40FE +#define VAR_0x40FF 0x40FF + +#define VARS_END_FRLG 0x40FF +#define VARS_COUNT_FRLG (VARS_END_FRLG - VARS_START_FRLG + 1) + +#define SPECIAL_VARS_START 0x8000 + +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_MON_BOX_ID_FRLG 0x8010 +#define VAR_MON_BOX_POS_FRLG 0x8011 +#define VAR_TEXT_COLOR 0x8012 +#define VAR_PREV_TEXT_COLOR 0x8013 +#define VAR_0x8014 0x8014 // Unknown/unused + +#define SPECIAL_VARS_END_FRLG 0x8014 + +// Text color ids for VAR_TEXT_COLOR / VAR_PREV_TEXT_COLOR +#define NPC_TEXT_COLOR_MALE 0 // Blue, for male NPCs +#define NPC_TEXT_COLOR_FEMALE 1 // Red, for female NPCs +#define NPC_TEXT_COLOR_MON 2 // Black, for Pokémon +#define NPC_TEXT_COLOR_NEUTRAL 3 // Black, for inanimate objects and messages from the game +#define NPC_TEXT_COLOR_DEFAULT 255 // If an NPC is selected, use the color specified by GetColorFromTextColorTable, otherwise use Neutral. + +#endif // GUARD_CONSTANTS_VARS_FRLG_H diff --git a/include/contest.h b/include/contest.h index 278efaa4ac01..26fe485cb3fc 100644 --- a/include/contest.h +++ b/include/contest.h @@ -98,7 +98,7 @@ struct ContestPokemon u8 aiPool_Cute:1; u8 aiPool_Smart:1; u8 aiPool_Tough:1; - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u8 cool; u8 beauty; u8 cute; @@ -309,6 +309,7 @@ struct ContestCategory const u8 *generic; const u8 *negativeTrait; u8 palette; + u16 tile; }; extern const struct ContestCategory gContestCategoryInfo[CONTEST_CATEGORIES_COUNT + 1]; @@ -335,7 +336,7 @@ extern u8 gContestPlayerMonIndex; extern u8 gContestantTurnOrder[CONTESTANT_COUNT]; extern u8 gLinkContestFlags; extern u8 gContestLinkLeaderIndex; -extern u16 gSpecialVar_ContestCategory; +extern enum ContestCategories gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; extern u8 gNumLinkContestPlayers; extern u8 gHighestRibbonRank; @@ -350,10 +351,10 @@ void ResetLinkContestBoolean(void); void LoadContestBgAfterMoveAnim(void); void CB2_StartContest(void); void CreateContestMonFromParty(u8 partyIndex); -void SetContestants(u8 contestType, u8 rank); -void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame); +void SetContestants(enum ContestCategories contestType, u8 rank); +void SetLinkAIContestants(enum ContestCategories contestType, u8 rank, bool32 isPostgame); u8 GetContestEntryEligibility(struct Pokemon *pkmn); -void CalculateRound1Points(u8 contestCategory); +void CalculateRound1Points(enum ContestCategories contestCategory); bool8 IsSpeciesNotUnown(u16 species); bool8 Contest_IsMonsTurnDisabled(u8 contestant); void SaveLinkContestResults(void); @@ -362,13 +363,13 @@ void SetContestantEffectStringID(u8 contestant, u8 effectStringId); void SetContestantEffectStringID2(u8 contestant, u8 effectStringId); void SetStartledString(u8 contestant, u8 jam); void MakeContestantNervous(u8 p); -s8 Contest_GetMoveExcitement(u16 move); +s8 Contest_GetMoveExcitement(enum Move move); bool8 IsContestantAllowedToCombo(u8 contestant); void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId); void ResetContestLinkResults(void); bool8 SaveContestWinner(u8 rank); u8 GetContestWinnerSaveIdx(u8 rank, bool8 shift); void ClearContestWinnerPicsInContestHall(void); -void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language); +void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, enum Language language); #endif //GUARD_CONTEST_H diff --git a/include/credits_frlg.h b/include/credits_frlg.h new file mode 100644 index 000000000000..b284316852a3 --- /dev/null +++ b/include/credits_frlg.h @@ -0,0 +1,25 @@ +#ifndef GUARD_CREDITS_FRLG_H +#define GUARD_CREDITS_FRLG_H + +extern bool8 gHasHallOfFameRecords; + +#define CREDITSOVWLDCMD_FB 0xFB +#define CREDITSOVWLDCMD_FC 0xFC +#define CREDITSOVWLDCMD_END 0xFD +#define CREDITSOVWLDCMD_LOADMAP 0xFE +#define CREDITSOVWLDCMD_FF 0xFF + +#define CREDITSOVWLDLOADMAP(_map, _x, _y, _delay) \ + { CREDITSOVWLDCMD_LOADMAP, MAP_GROUP(_map), MAP_NUM(_map) }, \ + { _x, _y, _delay } + +#define CREDITSOVWLDSCROLL(_xspeed, _yspeed, _length) \ + { _xspeed, _yspeed, _length } + +#define CREDITSOVWLDEND \ + { CREDITSOVWLDCMD_END, CREDITSOVWLDCMD_END, CREDITSOVWLDCMD_END } + + +void CB2_StartCreditsSequence(void); + +#endif //GUARD_CREDITS_FRLG_H diff --git a/include/data.h b/include/data.h index fbca022f977e..8ff8945879e3 100644 --- a/include/data.h +++ b/include/data.h @@ -61,7 +61,7 @@ struct TrainerMon const u8 *nickname; const u8 *ev; u32 iv; - u16 moves[4]; + enum Move moves[MAX_MON_MOVES]; u16 species; u16 heldItem; enum Ability ability; @@ -88,25 +88,50 @@ enum TrainerBattleType TRAINER_BATTLE_TYPE_DOUBLES, }; +#define UNPACK_STARTING_STATUSES_STRUCT(_enum, _fieldName, _typeMaxValue, ...) INVOKE_WITH_(UNPACK_STARTING_STATUSES_STRUCT_, _fieldName, UNPACK_B(_typeMaxValue)); +#define UNPACK_STARTING_STATUSES_STRUCT_(_fieldName, _type, ...) _type FIRST(__VA_OPT__(_fieldName:BIT_SIZE(FIRST(__VA_ARGS__)),) _fieldName) + +struct StartingStatuses +{ + STARTING_STATUS_DEFINITIONS(UNPACK_STARTING_STATUSES_STRUCT) + // Expands to: + // u32 electricTerrain:1; + // u32 mistyTerrain:1; + // u32 grassyTerrain:1; + // u32 psychicTerrain:1; + // u32 trickRoom:1; + // u32 magicRoom:1; + // u32 wonderRoom:1; + // u32 tailwindPlayer:1; + // u32 tailwindOpponent:1; + // u32 rainbowPlayer:1; + // u32 rainbowOpponent:1; + // u32 seaOfFirePlayer:1; + // u32 seaOfFireOpponent:1; + // u32 swampPlayer:1; + // u32 swampOpponent:1; +}; + struct Trainer { - /*0x00*/ u64 aiFlags; - /*0x04*/ const struct TrainerMon *party; - /*0x08*/ u16 items[MAX_TRAINER_ITEMS]; - /*0x10*/ u8 trainerClass; - /*0x11*/ u8 encounterMusic_gender; // last bit is gender - /*0x12*/ u8 trainerPic; - /*0x13*/ u8 trainerName[TRAINER_NAME_LENGTH + 1]; - /*0x1E*/ u8 battleType:2; - u8 startingStatus:6; // this trainer starts a battle with a given status. see include/constants/battle.h for values - /*0x1F*/ u8 mugshotColor; - /*0x20*/ u8 partySize; - /*0x21*/ u8 poolSize; - /*0x22*/ u8 poolRuleIndex; - /*0x23*/ u8 poolPickIndex; - /*0x24*/ u8 poolPruneIndex; - /*0x25*/ u16 overrideTrainer; - /*0x26*/ u8 trainerBackPic; + u64 aiFlags; + const struct TrainerMon *party; + enum Item items[MAX_TRAINER_ITEMS]; + struct StartingStatuses startingStatus; // this trainer starts a battle with a given status. see include/constants/battle.h for values + u8 trainerClass; + u8 encounterMusic:7; + u8 gender:1; + enum TrainerPicID trainerPic; + u8 trainerName[TRAINER_NAME_LENGTH + 1]; + u8 battleType:2; + u8 mugshotColor:6; + u8 partySize; + u8 poolSize; + u8 poolRuleIndex; + u8 poolPickIndex; + u8 poolPruneIndex; + u16 overrideTrainer; + enum TrainerPicID trainerBackPic; }; struct TrainerClass @@ -185,6 +210,8 @@ extern const struct Trainer gBattlePartners[DIFFICULTY_COUNT][PARTNER_COUNT]; extern const struct TrainerClass gTrainerClasses[TRAINER_CLASS_COUNT]; +extern const struct EggData gEggDatas[EGG_ID_COUNT]; + // Follower text messages extern const struct FollowerMsgInfo gFollowerHappyMessages[]; extern const struct FollowerMsgInfo gFollowerNeutralMessages[]; @@ -207,8 +234,19 @@ static inline bool8 IsPartnerTrainerId(u16 trainerId) static inline u16 SanitizeTrainerId(u16 trainerId) { - if (trainerId >= TRAINERS_COUNT && !IsPartnerTrainerId(trainerId)) + switch (trainerId) + { + case TRAINER_SECRET_BASE: + case TRAINER_LINK_OPPONENT: + case TRAINER_UNION_ROOM: return TRAINER_NONE; + } + + assertf(trainerId < TRAINERS_COUNT || IsPartnerTrainerId(trainerId), "invalid trainer: %d", trainerId) + { + return TRAINER_NONE; + } + return trainerId; } @@ -251,7 +289,7 @@ static inline const u8 *GetTrainerNameFromId(u16 trainerId) return GetTrainerStructFromId(trainerId)->trainerName; } -static inline const u8 GetTrainerPicFromId(u16 trainerId) +static inline const enum TrainerPicID GetTrainerPicFromId(u16 trainerId) { enum DifficultyLevel partnerDifficulty = GetBattlePartnerDifficultyLevel(trainerId); @@ -271,7 +309,7 @@ static inline const u8 GetTrainerBackPicFromId(u16 trainerId) return GetTrainerStructFromId(trainerId)->trainerBackPic; } -static inline const u8 GetTrainerStartingStatusFromId(u16 trainerId) +static inline const struct StartingStatuses GetTrainerStartingStatusFromId(u16 trainerId) { return GetTrainerStructFromId(trainerId)->startingStatus; } diff --git a/include/daycare.h b/include/daycare.h index 3023c87af008..da473911b8f6 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -33,7 +33,7 @@ bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio); void ShowDaycareLevelMenu(void); void ChooseSendDaycareMon(void); u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves); -bool8 SpeciesCanLearnEggMove(u16 species, u16 move); +bool8 SpeciesCanLearnEggMove(u16 species, enum Move move); void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycareMon); u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves); diff --git a/include/decompress.h b/include/decompress.h index 52fcc10a3f3c..0e9402a02f17 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -77,8 +77,10 @@ bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer); void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality); +void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg); void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic); +void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg); u32 GetDecompressedDataSize(const u32 *ptr); bool32 IsCompressedData(const u32 *ptr); diff --git a/include/derby.h b/include/derby.h new file mode 100644 index 000000000000..365ba884d188 --- /dev/null +++ b/include/derby.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BLACKJACK_H +#define GUARD_BLACKJACK_H + +void StartDerby(void); +void GetNewDerby(void); + +#endif // GUARD_BLACKJACK_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 0434bb010099..1f7e20323836 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -98,6 +98,7 @@ typedef union struct EasyChatGroup { + const u8 *name; EasyChatGroupWordData wordData; u16 numWords; u16 numEnabledWords; diff --git a/include/event_object_movement.h b/include/event_object_movement.h index b322c37f4657..0b584c862987 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -125,11 +125,11 @@ extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[]; extern const u8 *const gBerryTreePaletteSlotTablePointers[]; void ResetObjectEvents(void); -u8 GetMoveDirectionAnimNum(u8 direction); +u8 GetMoveDirectionAnimNum(enum Direction direction); u8 GetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId); bool8 TryGetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId, u8 *objectEventId); u8 GetObjectEventIdByXY(s16 x, s16 y); -void SetObjectEventDirection(struct ObjectEvent *objectEvent, u8 direction); +void SetObjectEventDirection(struct ObjectEvent *objectEvent, enum Direction direction); u8 GetFirstInactiveObjectEventId(void); u8 GetObjectEventIdByLocalId(u8); void RemoveObjectEvent(struct ObjectEvent *objectEvent); @@ -140,7 +140,7 @@ void PatchObjectPalette(u16 paletteTag, u8 paletteSlot); void SpawnObjectEventsOnReturnToField(s16 x, s16 y); void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorationCategory); void GetMapCoordsFromSpritePos(s16 x, s16 y, s16 *destX, s16 *destY); -u8 GetFaceDirectionAnimNum(u8 direction); +u8 GetFaceDirectionAnimNum(enum Direction direction); void SetSpritePosToOffsetMapCoords(s16 *x, s16 *y, s16 dx, s16 dy); void ClearObjectEventMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite); void ObjectEventClearHeldMovement(struct ObjectEvent *objectEvent); @@ -150,7 +150,7 @@ u16 GetOverworldWeatherSpecies(u16 species); void UpdateFollowingPokemon(void); void RemoveFollowingPokemon(void); struct ObjectEvent *GetFollowerObject(void); -u8 GetDirectionToFace(s16, s16, s16, s16); +enum Direction GetDirectionToFace(s16, s16, s16, s16); void UpdateLightSprite(struct Sprite *); void TrySpawnObjectEvents(s16 cameraX, s16 cameraY); u8 CreateObjectGraphicsSpriteWithTag(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u16 paletteTag); @@ -163,13 +163,14 @@ void CameraObjectReset(void); u8 LoadObjectEventPalette(u16); u8 UpdateSpritePaletteByTemplate(const struct SpriteTemplate *spriteTemplate, struct Sprite *sprite); void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u16 graphicsId); -void ObjectEventTurn(struct ObjectEvent *objectEvent, u8 direction); -void ObjectEventTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 direction); +void ObjectEventTurn(struct ObjectEvent *objectEvent, enum Direction direction); +void ObjectEventTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, enum Direction direction); const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u16 graphicsId); void SetObjectInvisibility(u8 localId, u8 mapNum, u8 mapGroup, bool8 invisible); void FreeAndReserveObjectSpritePalettes(void); u8 LoadObjectEventPalette(u16 paletteTag); -u8 LoadPlayerObjectEventPalette(u8 gender); +u8 LoadObjectEventPaletteCopy(u16 originalTag, u16 copyTag); +u8 LoadPlayerObjectEventPalette(enum Gender gender); void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); void ResetObjectSubpriority(u8 localId, u8 mapNum, u8 mapGroup); void SetObjectSubpriority(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority); @@ -180,22 +181,22 @@ void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y); void TryOverrideObjectEventTemplateCoords(u8 localId, u8 mapNum, u8 mapGroup); void InitObjectEventPalettes(u8 reflectionType); void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, bool8 (*callback)(struct ObjectEvent *, struct Sprite *)); -bool8 ObjectEventFaceOppositeDirection(struct ObjectEvent *objectEvent, u8 direction); -u8 GetOppositeDirection(u8 direction); +bool8 ObjectEventFaceOppositeDirection(struct ObjectEvent *objectEvent, enum Direction direction); +enum Direction GetOppositeDirection(enum Direction direction); u8 GetWalkInPlaceFasterMovementAction(u32); u8 GetWalkInPlaceFastMovementAction(u32); u8 GetWalkInPlaceNormalMovementAction(u32); u8 GetWalkInPlaceSlowMovementAction(u32); -u8 GetCollisionAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u32 dir); +enum Collision GetCollisionAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, enum Direction dir); u32 GetObjectObjectCollidesWith(struct ObjectEvent *objectEvent, s16 x, s16 y, bool32 addCoords); -void MoveCoords(u8 direction, s16 *x, s16 *y); +void MoveCoords(enum Direction direction, s16 *x, s16 *y); bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *objectEvent); u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *objectEvent); u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation); void SetTrainerMovementType(struct ObjectEvent *objectEvent, u8 movementType); -u8 GetTrainerFacingDirectionMovementType(u8 direction); +u8 GetTrainerFacingDirectionMovementType(enum Direction direction); const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId); -u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction); +u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, enum Direction direction); u8 GetFaceDirectionMovementAction(u32); u8 GetWalkNormalMovementAction(u32); u8 GetWalkFastMovementAction(u32); @@ -214,10 +215,10 @@ u8 GetAcroWheelieInPlaceDirectionMovementAction(u32); u8 GetAcroPopWheelieMoveDirectionMovementAction(u32); u8 GetAcroWheelieMoveDirectionMovementAction(u32); u8 GetAcroEndWheelieMoveDirectionMovementAction(u32); -u8 GetFishingDirectionAnimNum(u8 direction); -u8 GetAcroWheelieDirectionAnimNum(u8 direction); -u8 GetFishingBiteDirectionAnimNum(u8 direction); -u8 GetFishingNoCatchDirectionAnimNum(u8 direction); +u8 GetFishingDirectionAnimNum(enum Direction direction); +u8 GetAcroWheelieDirectionAnimNum(enum Direction direction); +u8 GetFishingBiteDirectionAnimNum(enum Direction direction); +u8 GetFishingNoCatchDirectionAnimNum(enum Direction direction); bool8 ObjectEventSetHeldMovement(struct ObjectEvent *objectEvent, u8 specialAnimId); void ObjectEventForceSetHeldMovement(struct ObjectEvent *objectEvent, u8 movementActionId); bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent); @@ -227,10 +228,11 @@ const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8, const str void TryOverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent, u8 movementType); void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent); void ShiftStillObjectEventCoords(struct ObjectEvent *objEvent); -void ObjectEventMoveDestCoords(struct ObjectEvent *objEvent, u32 direction, s16 *x, s16 *y); +void ObjectEventMoveDestCoords(struct ObjectEvent *objEvent, enum Direction direction, s16 *x, s16 *y); u8 AddCameraObject(u8 linkedSpriteId); void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); u8 GetWalkSlowMovementAction(u32); +u8 GetSpinMovementAction(u32 direction); u8 GetWalkSlowStairsMovementAction(u32); u8 GetJumpMovementAction(u32); u8 ElevationToPriority(u8 elevation); @@ -245,10 +247,10 @@ void FreezeObjectEventsExceptOne(u8 objectEventId); void FreezeObjectEventsExceptTwo(u8 objectEventId1, u8 objectEventId2); void FreezeObjectEvents(void); bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent); -u8 GetMoveDirectionFastAnimNum(u8 direction); -u8 GetMoveDirectionFasterAnimNum(u8 direction); -u8 GetMoveDirectionFastestAnimNum(u8 direction); -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction); +u8 GetMoveDirectionFastAnimNum(enum Direction direction); +u8 GetMoveDirectionFasterAnimNum(enum Direction direction); +u8 GetMoveDirectionFastestAnimNum(enum Direction direction); +enum Direction GetLedgeJumpDirection(s16 x, s16 y, enum Direction direction); void CameraObjectSetFollowedSpriteId(u8 objectId); u16 GetObjectPaletteTag(u8 palSlot); void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible); @@ -263,10 +265,12 @@ u8 TrySpawnObjectEventTemplate(const struct ObjectEventTemplate *objectEventTemp bool8 GetFollowerInfo(u32 *species, bool32 *shiny, bool32 *female); const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 shiny, bool32 female); u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup); +void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); void MovementType_None(struct Sprite *sprite); void MovementType_LookAround(struct Sprite *sprite); void MovementType_WanderAround(struct Sprite *sprite); +void MovementType_WanderAroundSlower(struct Sprite *sprite); void MovementType_WanderUpAndDown(struct Sprite *sprite); void MovementType_WanderLeftAndRight(struct Sprite *sprite); void MovementType_FaceDirection(struct Sprite *sprite); @@ -332,18 +336,19 @@ u8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, struct Sprit u8 MovementType_Wander_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite); +u8 MovementType_WanderAround_Step5Slower(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite); -u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_WestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_WestNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_EastNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_WestSouth(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_EastSouth(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_SouthNorthWest(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_SouthNorthEast(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_NorthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); -u8 GetLimitedVectorDirection_SouthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_WestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_WestNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_EastNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_WestSouth(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_EastSouth(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_SouthNorthWest(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_SouthNorthEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_NorthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +enum Direction GetLimitedVectorDirection_SouthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); u8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_LookAround_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); @@ -460,30 +465,31 @@ u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct ObjectEvent *objectEven u8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_CopyPlayer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); -bool8 CopyablePlayerMovement_None(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_WalkNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_WalkFast(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_WalkFaster(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_JumpInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_None(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_WalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_WalkNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_WalkFast(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_WalkFaster(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_JumpInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction playerDirection, bool8 tileCallback(u8)); u8 MovementType_FollowPlayer_Shadow(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_FollowPlayer_Active(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_FollowPlayer_Moving(struct ObjectEvent *objectEvent, struct Sprite *sprite); -void StartSpriteAnimInDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 animNum); +void StartSpriteAnimInDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction direction, u8 animNum); -bool8 FollowablePlayerMovement_Idle(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_GoSpeed1(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_JumpInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_GoSpeed4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 FollowablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); -bool8 CopyablePlayerMovement_Jump2(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_Idle(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_Step(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_GoSpeed1(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_JumpInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_GoSpeed4(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 FollowablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_Jump2(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction, bool8 tileCallback(u8)); u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); @@ -495,8 +501,8 @@ u8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprite * u8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); u8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); -u8 CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction); -void TurnVirtualObject(u8 virtualObjId, u8 direction); +u8 CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, enum Direction direction); +void TurnVirtualObject(u8 virtualObjId, enum Direction direction); void SetVirtualObjectGraphics(u8 virtualObjId, u16 graphicsId); void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible); bool32 IsVirtualObjectInvisible(u8 virtualObjId); @@ -508,9 +514,7 @@ bool32 IsFollowerVisible(void); // run slow u8 GetPlayerRunSlowMovementAction(u32); //sideways stairs -u8 GetSidewaysStairsToRightDirection(s16, s16, u8); -u8 GetSidewaysStairsToLeftDirection(s16, s16, u8); -u8 GetSidewaysStairsCollision(struct ObjectEvent *objectEvent, u8 dir, u8 currentBehavior, u8 nextBehavior, u8 collision); +enum Collision GetSidewaysStairsCollision(struct ObjectEvent *objectEvent, enum Direction dir, u8 currentBehavior, u8 nextBehavior, enum Collision collision); bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *, struct Sprite *); bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); diff --git a/include/event_scripts.h b/include/event_scripts.h index 646b0541955f..2b6a030ef366 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -410,6 +410,7 @@ extern const u8 EventScript_UseCutGrass[]; extern const u8 EventScript_UseDefog[]; //player pc +extern const u8 EventScript_PalletTown_PlayersHouse_2F_ShutDownPC[]; extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC[]; extern const u8 LittlerootTown_MaysHouse_2F_EventScript_TurnOffPlayerPC[]; @@ -545,6 +546,7 @@ extern const u8 MauvilleCity_PokemonCenter_1F_Text_HotSpringsStory[]; extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_PC[]; extern const u8 LittlerootTown_MaysHouse_2F_EventScript_PC[]; +extern const u8 EventScript_PalletTown_PlayersHouse_2F_TurnOnPC[]; extern const u8 EventScript_PC[]; extern const u8 EventScript_AccessPokemonBoxLink[]; extern const u8 EventScript_TestSignpostMsg[]; @@ -568,6 +570,7 @@ extern const u8 EventScript_WirelessBoxResults[]; extern const u8 EventScript_CableBoxResults[]; extern const u8 EventScript_Questionnaire[]; extern const u8 EventScript_TrainerHillTimer[]; +extern const u8 EventScript_CurrentTooFast[]; extern const u8 EventScript_UseSurf[]; extern const u8 EventScript_UseWaterfall[]; extern const u8 EventScript_CannotUseWaterfall[]; @@ -686,5 +689,100 @@ extern const u8 EventScript_LostSignal[]; extern const u8 EventScript_TooDark[]; extern const u8 EventScript_MovedTooFast[]; +extern const u8 MoveTutor_AfterChooseBoxMon[]; + +extern const u8 gOtherText_NewName[]; +extern const u8 gNameChoice_Green[]; +extern const u8 gNameChoice_Red[]; +extern const u8 gNameChoice_Fire[]; +extern const u8 gNameChoice_Leaf[]; +extern const u8 gNameChoice_Gary[]; +extern const u8 gNameChoice_Kaz[]; +extern const u8 gNameChoice_Toru[]; +extern const u8 gNameChoice_Ash[]; +extern const u8 gNameChoice_Kene[]; +extern const u8 gNameChoice_Geki[]; +extern const u8 gNameChoice_Jak[]; +extern const u8 gNameChoice_Janne[]; +extern const u8 gNameChoice_Jonn[]; +extern const u8 gNameChoice_Kamon[]; +extern const u8 gNameChoice_Karl[]; +extern const u8 gNameChoice_Taylor[]; +extern const u8 gNameChoice_Oscar[]; +extern const u8 gNameChoice_Hiro[]; +extern const u8 gNameChoice_Max[]; +extern const u8 gNameChoice_Jon[]; +extern const u8 gNameChoice_Ralph[]; +extern const u8 gNameChoice_Kay[]; +extern const u8 gNameChoice_Tosh[]; +extern const u8 gNameChoice_Roak[]; +extern const u8 gNameChoice_Omi[]; +extern const u8 gNameChoice_Jodi[]; +extern const u8 gNameChoice_Amanda[]; +extern const u8 gNameChoice_Hillary[]; +extern const u8 gNameChoice_Makey[]; +extern const u8 gNameChoice_Michi[]; +extern const u8 gNameChoice_Paula[]; +extern const u8 gNameChoice_June[]; +extern const u8 gNameChoice_Cassie[]; +extern const u8 gNameChoice_Rey[]; +extern const u8 gNameChoice_Seda[]; +extern const u8 gNameChoice_Kiko[]; +extern const u8 gNameChoice_Mina[]; +extern const u8 gNameChoice_Norie[]; +extern const u8 gNameChoice_Sai[]; +extern const u8 gNameChoice_Momo[]; +extern const u8 gNameChoice_Suzi[]; +extern const u8 gControlsGuide_Text_Intro[]; +extern const u8 gControlsGuide_Text_DPad[]; +extern const u8 gControlsGuide_Text_AButton[]; +extern const u8 gControlsGuide_Text_BButton[]; +extern const u8 gControlsGuide_Text_StartButton[]; +extern const u8 gControlsGuide_Text_SelectButton[]; +extern const u8 gControlsGuide_Text_LRButtons[]; +extern const u8 gOakSpeech_Text_AskPlayerGender[]; +extern const u8 gPikachuIntro_Text_Page1[]; +extern const u8 gPikachuIntro_Text_Page2[]; +extern const u8 gPikachuIntro_Text_Page3[]; +extern const u8 gOakSpeech_Text_WelcomeToTheWorld[]; +extern const u8 gOakSpeech_Text_ThisWorld[]; +extern const u8 gOakSpeech_Text_IsInhabitedFarAndWide[]; +extern const u8 gOakSpeech_Text_IStudyPokemon[]; +extern const u8 gOakSpeech_Text_TellMeALittleAboutYourself[]; +extern const u8 gOakSpeech_Text_YourNameWhatIsIt[]; +extern const u8 gOakSpeech_Text_SoYourNameIsPlayer[]; +extern const u8 gOakSpeech_Text_WhatWasHisName[]; +extern const u8 gOakSpeech_Text_YourRivalsNameWhatWasIt[]; +extern const u8 gOakSpeech_Text_ConfirmRivalName[]; +extern const u8 gOakSpeech_Text_RememberRivalsName[]; +extern const u8 gOakSpeech_Text_LetsGo[]; +extern const u8 EventScript_Food[]; +extern const u8 EventScript_ImpressiveMachine[]; +extern const u8 EventScript_Blueprints[]; +extern const u8 EventScript_VideoGame[]; +extern const u8 EventScript_Burglary[]; +extern const u8 EventScript_Computer[]; +extern const u8 TrainerTower_EventScript_ShowTime[]; +extern const u8 EventScript_PlayerFacingTVScreen[]; +extern const u8 EventScript_Cabinet[]; +extern const u8 EventScript_Kitchen[]; +extern const u8 EventScript_Dresser[]; +extern const u8 EventScript_Snacks[]; +extern const u8 EventScript_Painting[]; +extern const u8 EventScript_PowerPlantMachine[]; +extern const u8 EventScript_Telephone[]; +extern const u8 EventScript_AdvertisingPoster[]; +extern const u8 EventScript_TastyFood[]; +extern const u8 EventScript_TrashBin[]; +extern const u8 EventScript_Cup[]; +extern const u8 EventScript_PolishedWindow[]; +extern const u8 EventScript_BeautifulSkyWindow[]; +extern const u8 EventScript_BlinkingLights[]; +extern const u8 EventScript_NeatlyLinedUpTools[]; +extern const u8 CableClub_EventScript_ShowWirelessCommunicationScreen_Frlg[]; +extern const u8 EventScript_Questionnaire[]; +extern const u8 CableClub_EventScript_ShowBattleRecords_Frlg[]; +extern const u8 EventScript_Indigo_UltimateGoal[]; +extern const u8 EventScript_Indigo_HighestAuthority[]; #endif // GUARD_EVENT_SCRIPTS_H diff --git a/include/fame_checker.h b/include/fame_checker.h new file mode 100644 index 000000000000..782a8df18bcc --- /dev/null +++ b/include/fame_checker.h @@ -0,0 +1,23 @@ +#ifndef GUARD_FAME_CHECKER_H +#define GUARD_FAME_CHECKER_H + +#include "main.h" +#include "constants/fame_checker.h" + +enum { + FCWINDOWID_LIST, + FCWINDOWID_UIHELP, + FCWINDOWID_MSGBOX, + FCWINDOWID_ICONDESC +}; + +extern struct ListMenuTemplate gFameChecker_ListMenuTemplate; +extern u8 gIconDescriptionBoxIsOpen; + +void ResetFameChecker(void); +void FullyUnlockFameChecker(void); +void UseFameChecker(MainCallback savedCallback); +void SetFlavorTextFlagFromSpecialVars(void); +void UpdatePickStateFromSpecialVar8005(void); + +#endif //GUARD_FAME_CHECKER_H diff --git a/include/field_camera.h b/include/field_camera.h index edbd2c09fa7b..41aa82cad026 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -23,6 +23,7 @@ void ResetFieldCamera(void); void ResetCameraUpdateInfo(void); u32 InitCameraUpdateCallback(u8 trackedSpriteId); void CameraUpdate(void); +void CameraUpdateNoObjectRefresh(void); void SetCameraPanningCallback(void (*callback)(void)); void SetCameraPanning(s16 horizontal, s16 vertical); void InstallCameraPanAheadCallback(void); diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 635102fbf666..3e921e8a6953 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -30,10 +30,12 @@ const u8 *GetObjectEventScriptPointerPlayerFacing(void); bool8 TryDoDiveWarp(struct MapPosition *position, u16 metatileBehavior); int SetCableClubWarp(void); u8 TrySetDiveWarp(void); -const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction); +const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, enum Direction direction); const u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position); void ClearPoisonStepCounter(void); void CancelSignPostMessageBox(struct FieldInput *input); +void HandleBoulderFallThroughHole(struct ObjectEvent *object); +void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y); #define NOT_SIGNPOST 0 #define WALK_AWAY_SIGNPOST_FRAMES 6 diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 65dce3dfda8e..a1dc35df2905 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -41,6 +41,8 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite); void UpdateBubblesFieldEffect(struct Sprite *sprite); void UpdateSparkleFieldEffect(struct Sprite *sprite); void SetSpriteInvisible(u8 spriteId); -void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y); +void ShowWarpArrowSprite(u8 spriteId, enum Direction direction, s16 x, s16 y); + +u32 FldEff_TallGrass(void); #endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index a6d56f62f7c6..d694c26d8b02 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -1,45 +1,46 @@ #ifndef GUARD_FIELD_PLAYER_AVATAR_H #define GUARD_FIELD_PLAYER_AVATAR_H -void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys); +void PlayerStep(enum Direction direction, u16 newKeys, u16 heldKeys); bool8 TryDoMetatileBehaviorForcedMovement(); void ClearPlayerAvatarInfo(void); void SetPlayerAvatarExtraStateTransition(u16 graphicsId, u8 transitionFlag); -u8 GetPlayerAvatarGenderByGraphicsId(u16 gfxId); +enum Gender GetPlayerAvatarGenderByGraphicsId(u16 gfxId); u8 TestPlayerAvatarFlags(u8 flag); u8 GetPlayerAvatarSpriteId(void); void PlayerGetDestCoords(s16 *x, s16 *y); -u8 GetPlayerFacingDirection(void); -u8 GetPlayerMovementDirection(void); -u8 PlayerGetCopyableMovement(void); -void PlayerWalkNormal(u8 direction); -void PlayerWalkFast(u8 direction); -void PlayerRideWaterCurrent(u8 direction); -void PlayerWalkFaster(u8 direction); -void PlayerOnBikeCollide(u8 direction); -void PlayerFaceDirection(u8 direction); -void PlayerTurnInPlace(u8 direction); -void PlayerJumpLedge(u8 direction); -void PlayerIdleWheelie(u8 direction); -void PlayerStartWheelie(u8 direction); -void PlayerEndWheelie(u8 direction); -void PlayerStandingHoppingWheelie(u8 direction); -void PlayerMovingHoppingWheelie(u8 direction); -void PlayerLedgeHoppingWheelie(u8 direction); -void PlayerAcroTurnJump(u8 direction); -void PlayerSetAnimId(u8 movementActionId, u8 copyableMovement); -bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction); -void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction); -u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior); +enum Direction GetPlayerFacingDirection(void); +enum Direction GetPlayerMovementDirection(void); +enum CopyMovement PlayerGetCopyableMovement(void); +void PlayerWalkNormal(enum Direction direction); +void PlayerWalkFast(enum Direction direction); +void PlayerRideWaterCurrent(enum Direction direction); +void PlayerWalkFaster(enum Direction direction); +void PlayerOnBikeCollide(enum Direction direction); +void PlayerFaceDirection(enum Direction direction); +void PlayerTurnInPlace(enum Direction direction); +void PlayerJumpLedge(enum Direction direction); +void PlayerIdleWheelie(enum Direction direction); +void PlayerStartWheelie(enum Direction direction); +void PlayerEndWheelie(enum Direction direction); +void PlayerStandingHoppingWheelie(enum Direction direction); +void PlayerMovingHoppingWheelie(enum Direction direction); +void PlayerLedgeHoppingWheelie(enum Direction direction); +void PlayerAcroTurnJump(enum Direction direction); +void PlayerSetAnimId(u8 movementActionId, enum CopyMovement copyableMovement); +bool8 IsPlayerCollidingWithFarawayIslandMew(enum Direction direction); +void PlayerOnBikeCollideWithFarawayIslandMew(enum Direction direction); +enum Collision CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, enum Direction direction, u8 metatileBehavior); u8 PlayerGetElevation(void); void SetPlayerAvatarTransitionFlags(u16 transitionFlags); void CancelPlayerForcedMovement(void); -void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender); +void InitPlayerAvatar(s16 x, s16 y, enum Direction direction, enum Gender gender); void PlayerFreeze(void); void StopPlayerAvatar(void); -void SetSpinStartFacingDir(u8 direction); +void SetSpinStartFacingDir(enum Direction direction); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); -u16 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender); +u16 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, enum Gender gender); +u16 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, enum Gender gender); void SetPlayerAvatarFieldMove(void); u16 GetPlayerAvatarGraphicsIdByCurrentState(void); void SetPlayerAvatarStateMask(u8 flags); @@ -48,27 +49,27 @@ u8 GetJumpSpecialMovementAction(u32); bool8 PartyHasMonWithSurf(void); bool8 IsPlayerFacingSurfableFishableWater(void); bool8 IsPlayerSurfingNorth(void); -void SetPlayerAvatarWatering(u8 direction); +void SetPlayerAvatarWatering(enum Direction direction); u8 GetPlayerAvatarFlags(void); void UpdatePlayerAvatarTransitionState(void); -u16 GetFRLGAvatarGraphicsIdByGender(u8 gender); -u16 GetRSAvatarGraphicsIdByGender(u8 gender); -void PlayerWheelieInPlace(u8 direction); -void PlayerWheelieMove(u8 direction); -void PlayerPopWheelieWhileMoving(u8 direction); -void PlayerUseAcroBikeOnBumpySlope(u8 direction); -void PlayerEndWheelieWhileMoving(u8 direction); +u16 GetFRLGAvatarGraphicsIdByGender(enum Gender gender); +u16 GetRSAvatarGraphicsIdByGender(enum Gender gender); +void PlayerWheelieInPlace(enum Direction direction); +void PlayerWheelieMove(enum Direction direction); +void PlayerPopWheelieWhileMoving(enum Direction direction); +void PlayerUseAcroBikeOnBumpySlope(enum Direction direction); +void PlayerEndWheelieWhileMoving(enum Direction direction); void DoPlayerSpinEntrance(void); void DoPlayerSpinExit(void); bool32 IsPlayerSpinEntranceActive(void); bool32 IsPlayerSpinExitActive(void); void SetPlayerInvisibility(bool8 invisible); u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y); -void SetPlayerAvatarFishing(u8 direction); -bool8 ObjectMovingOnRockStairs(struct ObjectEvent *objectEvent, u8 direction); +void SetPlayerAvatarFishing(enum Direction direction); +bool8 ObjectMovingOnRockStairs(struct ObjectEvent *objectEvent, enum Direction direction); //sideways stairs -u8 GetRightSideStairsDirection(u8 direction); -u8 GetLeftSideStairsDirection(u8 direction); +enum Direction GetRightSideStairsDirection(enum Direction direction); +enum Direction GetLeftSideStairsDirection(enum Direction direction); void UpdateSpinData(void); void ResetSpinTimer(void); bool32 CanTriggerSpinEvolution(); diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 1c77b2b37540..d63a057edbf8 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -43,7 +43,7 @@ void FadeOutOrbEffect(void); void WriteFlashScanlineEffectBuffer(u8 flashLevel); bool8 IsPlayerStandingStill(void); void DoStairWarp(u16 metatileBehavior, u16 delay); -bool32 IsDirectionalStairWarpMetatileBehavior(u16 metatileBehavior, u8 playerDirection); +bool32 IsDirectionalStairWarpMetatileBehavior(u16 metatileBehavior, enum Direction playerDirection); void SetPlayerVisibility(bool8 visible); void Task_WarpAndLoadMap(u8 taskId); void Task_DoDoorWarp(u8 taskId); diff --git a/include/field_specials.h b/include/field_specials.h index c6bc40143fc5..a59bff475d9d 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -36,5 +36,7 @@ void PreparePartyForSkyBattle(void); void GetObjectPosition(u16*, u16*, u32, u32); bool32 CheckObjectAtXY(u32, u32); bool32 CheckPartyHasSpecies(u32); +bool8 CutMoveRuinValleyCheck(void); +void CutMoveOpenDottedHoleDoor(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_weather.h b/include/field_weather.h index e8e34f4940e8..130fcbb35831 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -148,6 +148,7 @@ void SetCurrentAndNextWeatherNoDelay(u8 weather); void ApplyWeatherColorMapIfIdle(s8 colorMapIndex); void ApplyWeatherColorMapIfIdle_Gradual(u8 colorMapIndex, u8 targetColorMapIndex, u8 colorMapStepDelay); void FadeScreen(u8 mode, s8 delay); +void FadeSelectedPals(u8 mode, s8 delay, u32 selectedPalettes); void FadeScreenHardware(u32 mode, s32 delay); bool8 IsWeatherNotFadingIn(void); void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex, bool8 allowFog); diff --git a/include/fieldmap.h b/include/fieldmap.h index 54f676421b69..2112aff35235 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -1,11 +1,16 @@ #ifndef GUARD_FIELDMAP_H #define GUARD_FIELDMAP_H +#define NUM_TILES_IN_PRIMARY_FRLG 640 +#define NUM_METATILES_IN_PRIMARY_FRLG 640 +#define NUM_PALS_IN_PRIMARY_FRLG 7 + #define NUM_TILES_IN_PRIMARY 512 -#define NUM_TILES_TOTAL 1024 #define NUM_METATILES_IN_PRIMARY 512 -#define NUM_METATILES_TOTAL 1024 #define NUM_PALS_IN_PRIMARY 6 + +#define NUM_METATILES_TOTAL 1024 +#define NUM_TILES_TOTAL 1024 #define NUM_PALS_TOTAL 13 #define MAX_MAP_DATA_SIZE 10240 @@ -24,16 +29,21 @@ extern struct BackupMapLayout gBackupMapLayout; extern u16 ALIGNED(4) sBackupMapData[MAX_MAP_DATA_SIZE]; +u32 GetNumTilesInPrimary(struct MapLayout const *mapLayout); +u32 GetNumMetatilesInPrimary(struct MapLayout const *mapLayout); +u32 GetNumPalsInPrimary(struct MapLayout const *mapLayout); u32 MapGridGetMetatileIdAt(int x, int y); u32 MapGridGetMetatileBehaviorAt(int x, int y); void MapGridSetMetatileIdAt(int x, int y, u16 metatile); void MapGridSetMetatileEntryAt(int x, int y, u16 metatile); void GetCameraCoords(u16 *x, u16 *y); u8 MapGridGetCollisionAt(int x, int y); -int GetMapBorderIdAt(int x, int y); -bool32 CanCameraMoveInDirection(int direction); -u16 GetMetatileAttributesById(u16 metatile); +enum Connection GetMapBorderIdAt(int x, int y); +bool32 CanCameraMoveInDirection(enum Direction direction); +u32 GetAttributeByMetatileIdAndMapLayout(u16 metatile, u8 attributeType, bool32 isFrlg); void GetCameraFocusCoords(u16 *x, u16 *y); +u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType, bool32 isFrlg); +u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attributeType); u8 MapGridGetMetatileLayerTypeAt(int x, int y); u8 MapGridGetElevationAt(int x, int y); bool8 CameraMove(int x, int y); diff --git a/include/flappybird.h b/include/flappybird.h new file mode 100644 index 000000000000..b92547778a8c --- /dev/null +++ b/include/flappybird.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLAPPYBIRD_H +#define GUARD_FLAPPYBIRD_H + +void StartFlappyBird(void); +static void FlappyBirdMainCallback(void); + +#endif // GUARD_FLAPPYBIRD_H diff --git a/include/follower_npc.h b/include/follower_npc.h index 680a3b6799a8..bba2a84b816b 100644 --- a/include/follower_npc.h +++ b/include/follower_npc.h @@ -100,14 +100,14 @@ void ClearFollowerNPCData(void); void CreateFollowerNPC(u32 gfx, u32 followerFlags, const u8 *scriptPtr); void DestroyFollowerNPC(void); -u32 DetermineFollowerNPCState(struct ObjectEvent *follower, u32 state, u32 direction); +u32 DetermineFollowerNPCState(struct ObjectEvent *follower, u32 state, enum Direction direction); void SetFollowerNPCSprite(u32 spriteIndex); bool32 PlayerHasFollowerNPC(void); void NPCFollow(struct ObjectEvent *npc, u32 state, bool32 ignoreScriptActive); void CreateFollowerNPCAvatar(void); void FollowerNPC_HandleSprite(void); -u32 DetermineFollowerNPCDirection(struct ObjectEvent *player, struct ObjectEvent *follower); +enum Direction DetermineFollowerNPCDirection(struct ObjectEvent *player, struct ObjectEvent *follower); u32 GetFollowerNPCObjectId(void); bool32 CheckFollowerNPCFlag(u32 flag); bool32 FollowerNPC_IsCollisionExempt(struct ObjectEvent *obstacle, struct ObjectEvent *collider); diff --git a/include/frontier_util.h b/include/frontier_util.h index cd99f7a18128..b7f93932c9fd 100644 --- a/include/frontier_util.h +++ b/include/frontier_util.h @@ -12,7 +12,7 @@ void ShowRankingHallRecordsWindow(void); void ScrollRankingHallRecordsWindow(void); void ClearRankingHallRecords(void); void SaveGameFrontier(void); -u8 GetFrontierBrainTrainerPicIndex(void); +enum TrainerPicID GetFrontierBrainTrainerPicIndex(void); enum TrainerClassID GetFrontierBrainTrainerClass(void); void CopyFrontierBrainTrainerName(u8 *dst); bool8 IsFrontierBrainFemale(void); @@ -25,6 +25,21 @@ u8 GetFrontierBrainMonNature(u8 monId); u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId); s32 GetFronterBrainSymbol(void); void ClearEnemyPartyAfterChallenge(void); +bool8 IsFrontierTrainerFemale(u16 trainerId); +u8 GetFrontierTrainerFixedIvs(u16 trainerId); +u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum); +void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId); +u16 GetBattleFacilityTrainerGfxId(u16 trainerId); +u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); +enum TrainerClassID GetFrontierOpponentClass(u16 trainerId); +u8 GetFrontierTrainerFacilityClass(u16 trainerId); +void GetFrontierTrainerName(u8 *dst, u16 trainerId); +u16 GetRandomFrontierMonFromSet(u16 trainerId); +void FrontierSpeechToString(const u16 *words); +u8 SetFacilityPtrsGetLevel(void); +u8 GetFrontierEnemyMonLevel(enum FrontierLevelMode lvlMode); +s32 GetHighestLevelInPlayerParty(void); +u16 FacilityClassToGraphicsId(u8 facilityClass); void ShowBattleFrontierCaughtBannedSpecies(void); #endif // GUARD_FRONTIER_UTIL_H diff --git a/include/game_corner_blackjack.h b/include/game_corner_blackjack.h new file mode 100644 index 000000000000..33df5f914128 --- /dev/null +++ b/include/game_corner_blackjack.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BLACKJACK_H +#define GUARD_BLACKJACK_H + +void StartBlackJack(void); + +#endif // GUARD_BLACKJACK_H diff --git a/include/game_corner_block_stacker.h b/include/game_corner_block_stacker.h new file mode 100644 index 000000000000..2e0573ac5826 --- /dev/null +++ b/include/game_corner_block_stacker.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BLOCKSTACKER_H +#define GUARD_BLOCKSTACKER_H + +void StartBlockStacker(void); +static void BlockStackerMainCallback(void); + +#endif // GUARD_BLOCKSTACKER_H diff --git a/include/game_corner_gacha.h b/include/game_corner_gacha.h new file mode 100644 index 000000000000..894b984266f1 --- /dev/null +++ b/include/game_corner_gacha.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BLACKJACK_H +#define GUARD_BLACKJACK_H + +void StartGacha(void); +static void GachaMainCallback(void); + +#endif // GUARD_BLACKJACK_H diff --git a/include/gba/defines.h b/include/gba/defines.h index 754e95a6dd42..ada9a5585729 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -14,6 +14,7 @@ #define UNUSED __attribute__((unused)) #define USED __attribute__((used)) #define KEEP_SECTION __attribute__((section(".text.consts"))) +#define DEPRECATED(msg) __attribute__((deprecated(msg))) #define ARM_FUNC __attribute__((target("arm"))) diff --git a/include/gba/types.h b/include/gba/types.h index 65b65187f864..b9bb644caa98 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -115,6 +115,8 @@ struct OamData #define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) #define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_64x16 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + #define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) #define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) diff --git a/include/generational_changes.h b/include/generational_changes.h index fc1ed0132f39..480650320b29 100644 --- a/include/generational_changes.h +++ b/include/generational_changes.h @@ -3,13 +3,15 @@ #include "constants/generational_changes.h" #include "config/battle.h" +#include "config/pokerus.h" #define UNPACK_CONFIG_STRUCT(_name, _field, _typeMaxValue, ...) INVOKE_WITH_(UNPACK_CONFIG_STRUCT_, _field, UNPACK_B(_typeMaxValue)); #define UNPACK_CONFIG_STRUCT_(_field, _type, ...) _type FIRST(__VA_OPT__(_field:BIT_SIZE(FIRST(__VA_ARGS__)),) _field) struct GenChanges { - CONFIG_DEFINITIONS(UNPACK_CONFIG_STRUCT) + BATTLE_CONFIG_DEFINITIONS(UNPACK_CONFIG_STRUCT) + POKEMON_CONFIG_DEFINITIONS(UNPACK_CONFIG_STRUCT) // Expands to: // u32 critChance:4; // u32 critMultiplier:4; diff --git a/include/global.berry.h b/include/global.berry.h index a8a76c089ea0..9db8efce3a61 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -7,8 +7,8 @@ struct Berry { const u8 name[BERRY_NAME_LENGTH + 1]; - u8 firmness:4; - u8 color:4; + enum BerryFirmness firmness:4; + enum BerryColor color:4; u16 size:10; u16 weedsBonus:3; u16 pestsBonus:3; @@ -32,8 +32,8 @@ struct Berry struct Berry2 { u8 name[BERRY_NAME_LENGTH + 1]; - u8 firmness:4; - u8 color:4; + enum BerryFirmness firmness:4; + enum BerryColor color:4; u16 size:10; u16 weedsBonus:3; u16 pestsBonus:3; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 2e162f2df977..6ed5f37fc6bc 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -11,6 +11,15 @@ #define MAPGRID_COLLISION_SHIFT 10 #define MAPGRID_ELEVATION_SHIFT 12 +enum +{ + ELEVATION_TRANSITION = 0, + ELEVATION_SURF = 1, + ELEVATION_DEFAULT = 3, + ELEVATION_MULTI_LEVEL = 15, + ELEVATION_INVALID = 0xFFFF +}; + #define PACK_METATILE(metatileId) PACK(metatileId, MAPGRID_METATILE_ID_SHIFT, MAPGRID_METATILE_ID_MASK) #define PACK_COLLISION(collision) PACK(collision, MAPGRID_COLLISION_SHIFT, MAPGRID_COLLISION_MASK) #define PACK_ELEVATION(elevation) PACK(elevation, MAPGRID_ELEVATION_SHIFT, MAPGRID_ELEVATION_MASK) @@ -31,6 +40,10 @@ #define METATILE_ATTR_LAYER_MASK 0xF000 // Bits 12-15 #define METATILE_ATTR_BEHAVIOR_SHIFT 0 #define METATILE_ATTR_LAYER_SHIFT 12 +#define METATILE_ATTR_BEHAVIOR_MASK_FRLG 0x000001ff // Bits 0-8 +#define METATILE_ATTR_LAYER_MASK_FRLG 0x60000000 // Bits 29-30 +#define METATILE_ATTR_BEHAVIOR_SHIFT_FRLG 0 +#define METATILE_ATTR_LAYER_SHIFT_FRLG 29 #define PACK_BEHAVIOR(behavior) PACK(behavior, METATILE_ATTR_BEHAVIOR_SHIFT, METATILE_ATTR_BEHAVIOR_MASK) #define PACK_LAYER_TYPE(layerType) PACK(layerType, METATILE_ATTR_LAYER_SHIFT, METATILE_ATTR_LAYER_MASK) @@ -45,6 +58,35 @@ enum { #define METATILE_ID(tileset, name) (METATILE_##tileset##_##name) +enum +{ + METATILE_ATTRIBUTE_BEHAVIOR, + METATILE_ATTRIBUTE_TERRAIN, + METATILE_ATTRIBUTE_2, + METATILE_ATTRIBUTE_3, + METATILE_ATTRIBUTE_ENCOUNTER_TYPE, + METATILE_ATTRIBUTE_5, + METATILE_ATTRIBUTE_LAYER_TYPE, + METATILE_ATTRIBUTE_7, + METATILE_ATTRIBUTE_COUNT, + METATILE_ATTRIBUTES_ALL = 255 // Special id to get the full attributes value +}; + +enum +{ + TILE_ENCOUNTER_NONE, + TILE_ENCOUNTER_LAND, + TILE_ENCOUNTER_WATER, +}; + +enum +{ + TILE_TERRAIN_NORMAL, + TILE_TERRAIN_GRASS, + TILE_TERRAIN_WATER, + TILE_TERRAIN_WATERFALL, +}; + // Rows of metatiles do not actually have a strict width. // This constant is used for calculations for finding the next row of metatiles // for constructing large tiles, such as the Battle Pike's curtain tile. @@ -74,6 +116,10 @@ struct MapLayout /*0x0C*/ const u16 *map; /*0x10*/ const struct Tileset *primaryTileset; /*0x14*/ const struct Tileset *secondaryTileset; + bool8 isFrlg; + u8 borderWidth; + u8 borderHeight; + u8 padding; }; struct BackupMapLayout @@ -90,13 +136,27 @@ struct __attribute__((packed, aligned(4))) ObjectEventTemplate /*0x03*/ u8 kind; // Always OBJ_KIND_NORMAL in Emerald. /*0x04*/ s16 x; /*0x06*/ s16 y; - /*0x08*/ u8 elevation; - /*0x09*/ u8 movementType; - /*0x0A*/ u16 movementRangeX:4; - u16 movementRangeY:4; - u16 unused:8; - /*0x0C*/ u16 trainerType; - /*0x0E*/ u16 trainerRange_berryTreeId; + union + { + struct + { + + /*0x08*/ u8 elevation; + /*0x09*/ u8 movementType; + /*0x0A*/ u16 movementRangeX:4; + u16 movementRangeY:4; + u16 unused:8; + /*0x0C*/ u16 trainerType; + /*0x0E*/ u16 trainerRange_berryTreeId; + }; + struct + { + u8 targetLocalId; + u8 padding[3]; + u16 targetMapNum; + u16 targetMapGroup; + }; + }; /*0x10*/ const u8 *script; /*0x14*/ u16 flagId; /*0x16*/ u16 filler; @@ -128,8 +188,10 @@ struct BgEvent union { const u8 *script; struct { - u16 item; - u16 hiddenItemId; + u32 item:11; + u32 hiddenItemId:13; + u32 quantity:7; + u32 underfoot:1; } hiddenItem; u32 secretBaseId; } bgUnion; @@ -306,7 +368,7 @@ enum ACRO_BIKE_STATE6, }; -enum +enum Collision { COLLISION_NONE, COLLISION_OUTSIDE_RANGE, @@ -364,6 +426,7 @@ struct PlayerAvatar // 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]; + u16 lastSpinTile; }; struct Camera diff --git a/include/global.h b/include/global.h index 3135542e027d..e60275d59c02 100644 --- a/include/global.h +++ b/include/global.h @@ -5,6 +5,7 @@ #include #include "config/general.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines. #include "gba/gba.h" +#include "assertf.h" #include "gametypes.h" #include "siirtc.h" #include "fpmath.h" @@ -20,7 +21,9 @@ #include "constants/pokemon.h" #include "constants/easy_chat.h" #include "constants/trainer_hill.h" +#include "constants/trainer_tower.h" #include "constants/items.h" +#include "constants/moves.h" #include "config/save.h" // Prevent cross-jump optimization. @@ -85,6 +88,11 @@ // intended, and a%n for powers of 2 isn't always optimized to use &. #define MOD(a, n) (((n) & ((n)-1)) ? ((a) % (n)) : ((a) & ((n)-1))) +// Increments 'a' by 1, wrapping back to 0 when it reaches 'n'. If 'n' is a power of two, +// the wrap is implemented using a bit mask: (a + 1) & (n - 1), which is slightly faster. +// This is intended to be used when 'n' is known at compile time. +#define INCREMENT_OR_WRAP(a, n) ((IS_POW_OF_TWO(n)) ? (((a) + 1) & ((n) - 1)) : (((a) + 1) >= (n) ? 0 : ((a) + 1))) + // Extracts the upper 16 bits of a 32-bit number #define HIHALF(n) (((n) & 0xFFFF0000) >> 16) @@ -123,7 +131,7 @@ ({ \ s16 v = (val); \ float f = (float)v; \ - if(v < 0) f += 65536.0f; \ + if (v < 0) f += 65536.0f;\ f; \ }) @@ -143,6 +151,8 @@ #define FEATURE_FLAG_ASSERT(flag, id) STATIC_ASSERT(flag > TEMP_FLAGS_END || flag == 0, id) +#define READ_OTID_FROM_SAVE T1_READ_32(gSaveBlock2Ptr->playerTrainerId) + // NOTE: This uses hardware timers 2 and 3; this will not work during active link connections or with the eReader static inline void CycleCountStart() { @@ -303,7 +313,7 @@ struct BerryPickingResults struct PyramidBag { - u16 itemId[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT]; + enum Item itemId[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT]; #if MAX_PYRAMID_BAG_ITEM_CAPACITY > 255 u16 quantity[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT]; #else @@ -321,8 +331,8 @@ struct BerryCrush struct ApprenticeMon { u16 species; - u16 moves[MAX_MON_MOVES]; - u16 item; + enum Move moves[MAX_MON_MOVES]; + enum Item item; }; // This is for past players Apprentices or Apprentices received via Record Mix. @@ -347,7 +357,7 @@ struct BattleTowerPokemon { u16 species; u16 heldItem; - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u8 level; u8 ppBonuses; u8 hpEV; @@ -412,7 +422,7 @@ struct BattleTowerEReaderTrainer // For displaying party information on the player's Battle Dome tourney page struct DomeMonData { - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; u8 evs[NUM_STATS]; u8 nature; //u8 padding; @@ -618,7 +628,7 @@ extern u8 UpdateSpritePaletteWithTime(u8); struct SecretBaseParty { u32 personality[PARTY_SIZE]; - u16 moves[PARTY_SIZE * MAX_MON_MOVES]; + enum Move moves[PARTY_SIZE * MAX_MON_MOVES]; u16 species[PARTY_SIZE]; u16 heldItems[PARTY_SIZE]; u8 levels[PARTY_SIZE]; @@ -661,7 +671,7 @@ struct WarpData struct ItemSlot { - u16 itemId; + enum Item itemId; u16 quantity; }; @@ -813,7 +823,7 @@ struct RecordMixingGiftData { u8 unk0; u8 quantity; - u16 itemId; + enum Item itemId; u8 filler4[8]; }; @@ -842,7 +852,7 @@ struct Mail /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH]; /*0x1E*/ u16 species; - /*0x20*/ u16 itemId; + /*0x20*/ enum Item itemId; }; struct DaycareMail @@ -893,7 +903,7 @@ struct LilycoveLadyFavor /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x00C*/ u8 favorId; /*0x00D*/ //u8 padding1; - /*0x00E*/ u16 itemId; + /*0x00E*/ enum Item itemId; /*0x010*/ u16 bestItem; /*0x012*/ u8 language; /*0x013*/ //u8 padding2; @@ -952,6 +962,20 @@ struct TrainerHillSave //u16 padding:8; }; +struct TrainerTower +{ + u32 timer; + u32 bestTime; + u8 floorsCleared; + u8 unk9; + bool8 receivedPrize:1; + bool8 checkedFinalTime:1; + bool8 spokeToOwner:1; + bool8 hasLost:1; + bool8 unkA_4:1; + bool8 validated:1; +}; + struct WonderNewsMetadata { u8 newsType:2; @@ -1172,6 +1196,14 @@ struct SaveBlock1 /*0x3???*/ struct TrainerHillSave trainerHill; #endif //FREE_TRAINER_HILL /*0x3???*/ struct WaldaPhrase waldaPhrase; +#if FREE_TRAINER_TOWER == FALSE && IS_FRLG + u32 towerChallengeId; + struct TrainerTower trainerTower[NUM_TOWER_CHALLENGE_TYPES]; +#endif //FREE_TRAINER_TOWER +#if IS_FRLG + u8 rivalName[PLAYER_NAME_LENGTH + 1]; + struct DaycareMon route5DayCareMon; +#endif // sizeof: 0x3??? }; diff --git a/include/global.tv.h b/include/global.tv.h index 3956decd4a19..1be29673e0d2 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -103,7 +103,7 @@ typedef union // size = 0x24 u8 contestRank:2; u8 contestResult:2; //u8 padding:1; - /*0x14*/ u16 move; + /*0x14*/ enum Move move; /*0x16*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1E*/ u8 language; /*0x1F*/ u8 pokemonNameLanguage; @@ -137,7 +137,7 @@ typedef union // size = 0x24 /*0x0D*/ u8 round1Placing; /*0x0E*/ u8 round2Placing; /*0x0F*/ u8 winnerAppealFlag; - /*0x10*/ u16 move; + /*0x10*/ enum Move move; /*0x12*/ u16 winningSpecies; /*0x14*/ u8 winningTrainerName[PLAYER_NAME_LENGTH + 1]; /*0x1C*/ u8 category; @@ -151,7 +151,7 @@ typedef union // size = 0x24 /*0x00*/ u8 kind; /*0x01*/ bool8 active; /*0x02*/ u8 sheen; - /*0x03*/ u8 flavor:3; + /*0x03*/ enum Flavor flavor:3; u8 color:2; //u8 padding:3; /*0x04*/ u8 worstBlenderName[PLAYER_NAME_LENGTH + 1]; @@ -167,7 +167,7 @@ typedef union // size = 0x24 /*0x02*/ u16 speciesOpponent; /*0x04*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 linkOpponentName[PLAYER_NAME_LENGTH + 1]; - /*0x14*/ u16 move; + /*0x14*/ enum Move move; /*0x16*/ u16 speciesPlayer; /*0x18*/ u8 battleType; /*0x19*/ u8 language; @@ -224,7 +224,7 @@ typedef union // size = 0x24 /*0x02*/ u8 priceReduced; /*0x03*/ u8 language; /*0x04*/ u8 filler_04[2]; - /*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS]; + /*0x06*/ enum Item itemIds[SMARTSHOPPER_NUM_ITEMS]; /*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS]; /*0x12*/ mapsec_u8_t shopLocation; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; @@ -308,7 +308,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 item; + /*0x02*/ enum Item item; /*0x04*/ mapsec_u8_t location; /*0x05*/ u8 language; /*0x06*/ u16 mapLayoutId; @@ -356,7 +356,7 @@ typedef union // size = 0x24 /*0x03*/ u8 numDecorations; /*0x04*/ u8 decorations[4]; /*0x08*/ u16 species; - /*0x0A*/ u16 move; + /*0x0A*/ enum Move move; /*0x0C*/ u8 language; /*0x0D*/ u8 filler_0d[6]; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; @@ -367,7 +367,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 item; + /*0x02*/ enum Item item; /*0x04*/ u8 whichPrize; /*0x05*/ u8 language; /*0x06*/ u8 filler_06[13]; @@ -379,7 +379,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 move; + /*0x02*/ enum Move move; /*0x04*/ u16 foeSpecies; /*0x06*/ u16 species; /*0x08*/ u16 otherMoves[3]; @@ -451,7 +451,7 @@ typedef union // size = 0x24 /*0x02*/ u16 stepsInBase; /*0x04*/ u8 baseOwnersName[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u32 flags; - /*0x10*/ u16 item; + /*0x10*/ enum Item item; /*0x12*/ u8 savedState; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1B*/ u8 language; @@ -477,7 +477,7 @@ typedef union // size = 0x24 /*0x01*/ bool8 active; /*0x02*/ u8 unused1; /*0x03*/ u8 unused3; - /*0x04*/ u16 moves[MAX_MON_MOVES]; + /*0x04*/ enum Move moves[MAX_MON_MOVES]; /*0x0C*/ u16 species; /*0x0E*/ u16 unused2; /*0x10*/ u8 locationMapNum; diff --git a/include/graphics.h b/include/graphics.h index 8ee6cfb667bc..fddc90e074b4 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -944,6 +944,97 @@ extern const u32 gItemIcon_Audinite[]; extern const u16 gItemIconPalette_Audinite[]; extern const u32 gItemIcon_Diancite[]; extern const u16 gItemIconPalette_Diancite[]; +extern const u32 gItemIcon_Clefablite[]; +extern const u16 gItemIconPalette_Clefablite[]; +extern const u32 gItemIcon_Victreebelite[]; +extern const u16 gItemIconPalette_Victreebelite[]; +extern const u32 gItemIcon_Starminite[]; +extern const u16 gItemIconPalette_Starminite[]; +extern const u32 gItemIcon_Dragoninite[]; +extern const u16 gItemIconPalette_Dragoninite[]; +extern const u32 gItemIcon_Meganiumite[]; +extern const u16 gItemIconPalette_Meganiumite[]; +extern const u32 gItemIcon_Feraligite[]; +extern const u16 gItemIconPalette_Feraligite[]; +extern const u32 gItemIcon_Skarmorite[]; +extern const u16 gItemIconPalette_Skarmorite[]; +extern const u32 gItemIcon_Froslassite[]; +extern const u16 gItemIconPalette_Froslassite[]; +extern const u32 gItemIcon_Emboarite[]; +extern const u16 gItemIconPalette_Emboarite[]; +extern const u32 gItemIcon_Excadrite[]; +extern const u16 gItemIconPalette_Excadrite[]; +extern const u32 gItemIcon_Scolipite[]; +extern const u16 gItemIconPalette_Scolipite[]; +extern const u32 gItemIcon_Scraftinite[]; +extern const u16 gItemIconPalette_Scraftinite[]; +extern const u32 gItemIcon_Eelektrossite[]; +extern const u16 gItemIconPalette_Eelektrossite[]; +extern const u32 gItemIcon_Chandelurite[]; +extern const u16 gItemIconPalette_Chandelurite[]; +extern const u32 gItemIcon_Chesnaughtite[]; +extern const u16 gItemIconPalette_Chesnaughtite[]; +extern const u32 gItemIcon_Delphoxite[]; +extern const u16 gItemIconPalette_Delphoxite[]; +extern const u32 gItemIcon_Greninjite[]; +extern const u16 gItemIconPalette_Greninjite[]; +extern const u32 gItemIcon_Pyroarite[]; +extern const u16 gItemIconPalette_Pyroarite[]; +extern const u32 gItemIcon_Floettite[]; +extern const u16 gItemIconPalette_Floettite[]; +extern const u32 gItemIcon_Malamarite[]; +extern const u16 gItemIconPalette_Malamarite[]; +extern const u32 gItemIcon_Barbaracite[]; +extern const u16 gItemIconPalette_Barbaracite[]; +extern const u32 gItemIcon_Dragalgite[]; +extern const u16 gItemIconPalette_Dragalgite[]; +extern const u32 gItemIcon_Hawluchanite[]; +extern const u16 gItemIconPalette_Hawluchanite[]; +extern const u32 gItemIcon_Zygardite[]; +extern const u16 gItemIconPalette_Zygardite[]; +extern const u32 gItemIcon_Drampanite[]; +extern const u16 gItemIconPalette_Drampanite[]; +extern const u32 gItemIcon_Falinksite[]; +extern const u16 gItemIconPalette_Falinksite[]; +extern const u32 gItemIcon_Heatranite[]; +extern const u16 gItemIconPalette_Heatranite[]; +extern const u32 gItemIcon_Darkranite[]; +extern const u16 gItemIconPalette_Darkranite[]; +extern const u32 gItemIcon_Zeraorite[]; +extern const u16 gItemIconPalette_Zeraorite[]; +extern const u32 gItemIcon_RaichuniteX[]; +extern const u16 gItemIconPalette_RaichuniteX[]; +extern const u32 gItemIcon_RaichuniteY[]; +extern const u16 gItemIconPalette_RaichuniteY[]; +extern const u32 gItemIcon_Chimechite[]; +extern const u16 gItemIconPalette_Chimechite[]; +extern const u32 gItemIcon_AbsoliteZ[]; +extern const u16 gItemIconPalette_AbsoliteZ[]; +extern const u32 gItemIcon_Staraptite[]; +extern const u16 gItemIconPalette_Staraptite[]; +extern const u32 gItemIcon_GarchompiteZ[]; +extern const u16 gItemIconPalette_GarchompiteZ[]; +extern const u32 gItemIcon_LucarioniteZ[]; +extern const u16 gItemIconPalette_LucarioniteZ[]; +extern const u32 gItemIcon_Golurkite[]; +extern const u16 gItemIconPalette_Golurkite[]; +extern const u32 gItemIcon_Meowsticite[]; +extern const u16 gItemIconPalette_Meowsticite[]; +extern const u32 gItemIcon_Crabominite[]; +extern const u16 gItemIconPalette_Crabominite[]; +extern const u32 gItemIcon_Golisopite[]; +extern const u16 gItemIconPalette_Golisopite[]; +extern const u32 gItemIcon_Magearnite[]; +extern const u16 gItemIconPalette_Magearnite[]; +extern const u32 gItemIcon_Scovillainite[]; +extern const u16 gItemIconPalette_Scovillainite[]; +extern const u32 gItemIcon_Baxcalibrite[]; +extern const u16 gItemIconPalette_Baxcalibrite[]; +extern const u32 gItemIcon_Tatsugirinite[]; +extern const u16 gItemIconPalette_Tatsugirinite[]; +extern const u32 gItemIcon_Glimmoranite[]; +extern const u16 gItemIconPalette_Glimmoranite[]; + // Gems extern const u32 gItemIcon_TypeGem[]; extern const u16 gItemIconPalette_NormalGem[]; @@ -3343,4 +3434,7 @@ extern const u32 gBattleIcons_Gfx2[]; extern const u16 gBattleIcons_Pal1[]; extern const u16 gBattleIcons_Pal2[]; +extern const u32 gGhostFrontPic[]; +extern const u16 gGhostPalette[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/gym_leader_rematch.h b/include/gym_leader_rematch.h index 622d2db1bc2c..3bffd2dacae8 100644 --- a/include/gym_leader_rematch.h +++ b/include/gym_leader_rematch.h @@ -4,5 +4,6 @@ #include "constants/rematches.h" void UpdateGymLeaderRematch(void); +s32 GetCurrentGymLeaderRematchLevel(void); #endif //GUARD_TRAINER_REMATCH_H diff --git a/include/hall_of_fame_frlg.h b/include/hall_of_fame_frlg.h new file mode 100644 index 000000000000..7f14edfaef40 --- /dev/null +++ b/include/hall_of_fame_frlg.h @@ -0,0 +1,11 @@ +#ifndef GUARD_HALL_OF_FAME_FRLG_H +#define GUARD_HALL_OF_FAME_FRLG_H + +#include "global.h" + +void CB2_DoHallOfFameScreenFrlg(void); +void CB2_DoHallOfFameScreenDontSaveDataFrlg(void); +void CB2_InitHofPC(void); +void ReturnFromHallOfFamePC(void); + +#endif // GUARD_HALL_OF_FAME_FRLG_H diff --git a/include/international_string_util.h b/include/international_string_util.h index 04def5ac53a9..ac1a4701230d 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -18,7 +18,7 @@ u8 *GetStringClearToWidth(u8 *dest, int fontId, const u8 *str, int totalStringWi void PadNameString(u8 *dest, u8 padChar); void ConvertInternationalPlayerNameStripChar(u8 *str, u8 removeChar); void ConvertInternationalContestantName(u8 *str); -int GetNicknameLanguage(u8 *str); +enum Language GetNicknameLanguage(u8 *str); void FillWindowTilesByRow(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows); #endif // GUARD_INTERNATIONAL_STRING_UTIL_H diff --git a/include/intro_frlg.h b/include/intro_frlg.h new file mode 100644 index 000000000000..ccb8cb504b85 --- /dev/null +++ b/include/intro_frlg.h @@ -0,0 +1,7 @@ +#ifndef GUARD_INTRO_FRLG_H +#define GUARD_INTRO_FRLG_H + +bool8 SetUpCopyrightScreenFrlg(void); +void CB2_SetUpIntroFrlg(void); + +#endif //GUARD_INTRO_H diff --git a/include/item.h b/include/item.h index d548643af80c..3409e27020ec 100644 --- a/include/item.h +++ b/include/item.h @@ -9,27 +9,6 @@ #include "constants/item_effects.h" #include "constants/hold_effects.h" -/* Expands to: - * enum - * { - * ITEM_TM_FOCUS_PUNCH = ITEM_TM01, - * ... - * ITEM_HM_CUT = ITM_HM01, - * ... - * }; */ -#define ENUM_TM(n, id) CAT(ITEM_TM_, id) = CAT(ITEM_TM, n), -#define ENUM_HM(n, id) CAT(ITEM_HM_, id) = CAT(ITEM_HM, n), -#define TO_TMHM_NUMS(a, ...) (__VA_ARGS__) -enum TMHMItemId -{ - RECURSIVELY(R_ZIP(ENUM_TM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_TM(APPEND_COMMA)))) - RECURSIVELY(R_ZIP(ENUM_HM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_HM(APPEND_COMMA)))) -}; - -#undef ENUM_TM -#undef ENUM_HM -#undef TO_TMHM_NUMS - /* Each of these TM_HM enums corresponds an index in the list of TMs + HMs item ids in * gTMHMItemMoveIds. The index for an item can be retrieved with GetItemTMHMIndex below. */ @@ -41,7 +20,6 @@ enum TMHMIndex NUM_TECHNICAL_MACHINES = (0 FOREACH_TM(PLUS_ONE)), NUM_HIDDEN_MACHINES = (0 FOREACH_HM(PLUS_ONE)), }; - #undef UNPACK_TM_HM_ENUM enum PACKED ItemSortType @@ -86,7 +64,7 @@ enum PACKED ItemSortType typedef void (*ItemUseFunc)(u8); -struct Item +struct ItemInfo { u32 price; u16 secondaryId; @@ -117,12 +95,12 @@ struct ALIGNED(2) BagPocket struct TmHmIndexKey { - enum TMHMItemId itemId:16; - u16 moveId; + enum Item itemId; + enum Move moveId; }; extern const u8 gQuestionMarksItemName[]; -extern const struct Item gItemsInfo[]; +extern const struct ItemInfo gItemsInfo[]; extern struct BagPocket gBagPockets[]; extern const struct TmHmIndexKey gTMHMItemMoveIds[]; @@ -133,54 +111,54 @@ extern const struct TmHmIndexKey gTMHMItemMoveIds[]; #define UNPACK_TM_MOVE_TO_ITEM_ID(_move) case CAT(MOVE_, _move): return CAT(ITEM_TM_, _move); #define UNPACK_HM_MOVE_TO_ITEM_ID(_move) case CAT(MOVE_, _move): return CAT(ITEM_HM_, _move); -static inline enum TMHMIndex GetItemTMHMIndex(u16 item) +static inline enum TMHMIndex GetItemTMHMIndex(enum Item item) { switch (item) { - /* Expands to: - * case ITEM_TM_FOCUS_PUNCH: - * return 1; - * case ITEM_TM_DRAGON_CLAW: - * return 2; - * etc */ - FOREACH_TM(UNPACK_ITEM_TO_TM_INDEX) - FOREACH_HM(UNPACK_ITEM_TO_HM_INDEX) - default: - return 0; + /* Expands to: + * case ITEM_TM_FOCUS_PUNCH: + * return 1; + * case ITEM_TM_DRAGON_CLAW: + * return 2; + * etc */ + FOREACH_TM(UNPACK_ITEM_TO_TM_INDEX) + FOREACH_HM(UNPACK_ITEM_TO_HM_INDEX) + default: + return 0; } } -static inline u16 GetItemTMHMMoveId(u16 item) +static inline enum Move GetItemTMHMMoveId(enum Item item) { switch (item) { - /* Expands to: - * case ITEM_TM_FOCUS_PUNCH: - * return MOVE_FOCUS_PUNCH; - * case ITEM_TM_DRAGON_CLAW: - * return MOVE_DRAGON_CLAW; - * etc */ - FOREACH_TM(UNPACK_ITEM_TO_TM_MOVE_ID) - FOREACH_HM(UNPACK_ITEM_TO_HM_MOVE_ID) - default: - return MOVE_NONE; + /* Expands to: + * case ITEM_TM_FOCUS_PUNCH: + * return MOVE_FOCUS_PUNCH; + * case ITEM_TM_DRAGON_CLAW: + * return MOVE_DRAGON_CLAW; + * etc */ + FOREACH_TM(UNPACK_ITEM_TO_TM_MOVE_ID) + FOREACH_HM(UNPACK_ITEM_TO_HM_MOVE_ID) + default: + return MOVE_NONE; } } -static inline enum TMHMItemId GetTMHMItemIdFromMoveId(u16 move) +static inline enum Item GetTMHMItemIdFromMoveId(enum Move move) { switch (move) { - /* Expands to: - * case MOVE_FOCUS_PUNCH: - * return ITEM_TM_FOCUS_PUNCH; - * case MOVE_DRAGON_CLAW: - * return ITEM_TM_DRAGON_CLAW; - * etc */ - FOREACH_TM(UNPACK_TM_MOVE_TO_ITEM_ID) - FOREACH_HM(UNPACK_HM_MOVE_TO_ITEM_ID) - default: - return ITEM_NONE; + /* Expands to: + * case MOVE_FOCUS_PUNCH: + * return ITEM_TM_FOCUS_PUNCH; + * case MOVE_DRAGON_CLAW: + * return ITEM_TM_DRAGON_CLAW; + * etc */ + FOREACH_TM(UNPACK_TM_MOVE_TO_ITEM_ID) + FOREACH_HM(UNPACK_HM_MOVE_TO_ITEM_ID) + default: + return ITEM_NONE; } } @@ -191,7 +169,7 @@ static inline enum TMHMItemId GetTMHMItemIdFromMoveId(u16 move) #undef UNPACK_TM_MOVE_TO_ITEM_ID #undef UNPACK_HM_MOVE_TO_ITEM_ID -static inline enum TMHMItemId GetTMHMItemId(enum TMHMIndex index) +static inline enum Item GetTMHMItemId(enum TMHMIndex index) { return gTMHMItemMoveIds[index].itemId; } @@ -204,7 +182,7 @@ static inline u16 GetTMHMMoveId(enum TMHMIndex index) void BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, struct ItemSlot newSlot); struct ItemSlot BagPocket_GetSlotData(struct BagPocket *pocket, u32 pocketPos); -static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, u16 itemId, u16 quantity) +static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, enum Item itemId, u16 quantity) { BagPocket_SetSlotData(pocket, pocketPos, (struct ItemSlot) {itemId, quantity}); } @@ -226,20 +204,20 @@ static inline struct ItemSlot GetBagItemIdAndQuantity(enum Pocket pocketId, u32 void ApplyNewEncryptionKeyToBagItems(u32 newKey); void SetBagItemsPointers(void); -u8 *CopyItemName(u16 itemId, u8 *dst); -u8 *CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity); +u8 *CopyItemName(enum Item itemId, u8 *dst); +u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *dst, u32 quantity); bool32 IsBagPocketNonEmpty(enum Pocket pocketId); -bool32 CheckBagHasItem(u16 itemId, u16 count); +bool32 CheckBagHasItem(enum Item itemId, u16 count); bool32 HasAtLeastOneBerry(void); bool32 HasAtLeastOnePokeBall(void); -bool32 CheckBagHasSpace(u16 itemId, u16 count); -u32 GetFreeSpaceForItemInBag(u16 itemId); -bool32 AddBagItem(u16 itemId, u16 count); -bool32 RemoveBagItem(u16 itemId, u16 count); +bool32 CheckBagHasSpace(enum Item itemId, u16 count); +u32 GetFreeSpaceForItemInBag(enum Item itemId); +bool32 AddBagItem(enum Item itemId, u16 count); +bool32 RemoveBagItem(enum Item itemId, u16 count); void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count); u8 CountUsedPCItemSlots(void); -bool32 CheckPCHasItem(u16 itemId, u16 count); -bool32 AddPCItem(u16 itemId, u16 count); +bool32 CheckPCHasItem(enum Item itemId, u16 count); +bool32 AddPCItem(enum Item itemId, u16 count); void RemovePCItem(u8 index, u16 count); void CompactPCItems(void); void SwapRegisteredBike(void); @@ -247,26 +225,26 @@ void CompactItemsInBagPocket(enum Pocket pocketId); void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to); void MoveItemSlotInPC(struct ItemSlot *itemSlots, u32 from, u32 to); void ClearBag(void); -u16 CountTotalItemQuantityInBag(u16 itemId); -bool32 AddPyramidBagItem(u16 itemId, u16 count); -bool32 RemovePyramidBagItem(u16 itemId, u16 count); -const u8 *GetItemName(u16 itemId); -u32 GetItemPrice(u16 itemId); -const u8 *GetItemEffect(u32 itemId); -enum HoldEffect GetItemHoldEffect(u32 itemId); -u32 GetItemHoldEffectParam(u32 itemId); -const u8 *GetItemDescription(u16 itemId); -u8 GetItemImportance(u16 itemId); -u8 GetItemConsumability(u16 itemId); -enum Pocket GetItemPocket(u16 itemId); -u8 GetItemType(u16 itemId); -ItemUseFunc GetItemFieldFunc(u16 itemId); -u8 GetItemBattleUsage(u16 itemId); -u32 GetItemSecondaryId(u32 itemId); -u32 GetItemFlingPower(u32 itemId); -u32 GetItemStatus1Mask(u16 itemId); -bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile volatile); -u32 GetItemSellPrice(u32 itemId); +u16 CountTotalItemQuantityInBag(enum Item itemId); +bool32 AddPyramidBagItem(enum Item itemId, u16 count); +bool32 RemovePyramidBagItem(enum Item itemId, u16 count); +const u8 *GetItemName(enum Item itemId); +u32 GetItemPrice(enum Item itemId); +const u8 *GetItemEffect(enum Item itemId); +enum HoldEffect GetItemHoldEffect(enum Item itemId); +u32 GetItemHoldEffectParam(enum Item itemId); +const u8 *GetItemDescription(enum Item itemId); +u8 GetItemImportance(enum Item itemId); +u8 GetItemConsumability(enum Item itemId); +enum Pocket GetItemPocket(enum Item itemId); +enum ItemType GetItemType(enum Item itemId); +ItemUseFunc GetItemFieldFunc(enum Item itemId); +enum EffectItem GetItemBattleUsage(enum Item itemId); +u32 GetItemSecondaryId(enum Item itemId); +u32 GetItemFlingPower(enum Item itemId); +u32 GetItemStatus1Mask(enum Item itemId); +bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile volatile); +u32 GetItemSellPrice(enum Item itemId); bool32 IsHoldEffectChoice(enum HoldEffect holdEffect); #endif // GUARD_ITEM_H diff --git a/include/item_icon.h b/include/item_icon.h index 64753c32e2e1..463039fcfd4d 100644 --- a/include/item_icon.h +++ b/include/item_icon.h @@ -9,9 +9,9 @@ extern const struct SpriteTemplate gItemIconSpriteTemplate; bool8 AllocItemIconTemporaryBuffers(void); void FreeItemIconTemporaryBuffers(void); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); -u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId); -u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); -const void *GetItemIconPic(u16 itemId); -const u16 *GetItemIconPalette(u16 itemId); +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId); +u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId); +const void *GetItemIconPic(enum Item itemId); +const u16 *GetItemIconPalette(enum Item itemId); #endif //GUARD_ITEM_ICON_H diff --git a/include/item_menu.h b/include/item_menu.h index a16ccae5d462..3fdee4b5d2c5 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -109,6 +109,7 @@ bool8 UseRegisteredKeyItemOnField(void); void CB2_GoToSellMenu(void); void GoToBagMenu(u8 location, u8 pocket, MainCallback exitCallback); void DoWallyTutorialBagMenu(void); +void InitOldManBag(void); void ResetBagScrollPositions(void); void ChooseBerryForMachine(MainCallback exitCallback); void CB2_ChooseBerry(void); diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index f9ee72585023..3cc44a5611fe 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -12,7 +12,7 @@ void AddBagVisualSprite(u8 bagPocketId); void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets); void ShakeBagSprite(void); void AddSwitchPocketRotatingBallSprite(s16 rotationDirection); -void AddBagItemIconSprite(u16 itemId, u8 id); +void AddBagItemIconSprite(enum Item itemId, u8 id); void RemoveBagItemIconSprite(u8 id); void CreateItemMenuSwapLine(void); void SetItemMenuSwapLineInvisibility(bool8 invisible); diff --git a/include/item_use.h b/include/item_use.h index 226f9d90d358..1ee46b1c0f0a 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -43,14 +43,14 @@ void ItemUseInBattle_PartyMenu(u8 taskId); void ItemUseInBattle_PartyMenuChooseMove(u8 taskId); void Task_UseDigEscapeRopeOnField(u8 taskId); bool8 CanUseDigOrEscapeRopeOnCurMap(void); -u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); +u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId); void FieldUseFunc_VsSeeker(u8 taskId); void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId); void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField); void ItemUseOutOfBattle_PokeFlute(u8 taskId); void ItemUseOutOfBattle_TownMap(u8 taskId); bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *, u8); -u8 GetDirectionToHiddenItem(s16, s16); +enum Direction GetDirectionToHiddenItem(s16, s16); enum { BALL_THROW_UNABLE_TWO_MONS, @@ -61,7 +61,7 @@ enum { }; bool32 CanThrowBall(void); -bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon); +bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon); enum ItemTMHMOrEvolutionStone { diff --git a/include/list_menu.h b/include/list_menu.h index 8d472320d67c..4fbb491e4eb5 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -61,7 +61,7 @@ struct ListMenuTemplate { const struct ListMenuItem *items; void (*moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list); - void (*itemPrintFunc)(u8 windowId, u32 itemId, u8 y); + void (*itemPrintFunc)(u8 windowId, u32 instanceId, u8 y); u32 totalItems:12; u32 maxShowed:12; u32 textNarrowWidth:8; diff --git a/include/mail.h b/include/mail.h index de29b21d425c..9047ad7ab409 100644 --- a/include/mail.h +++ b/include/mail.h @@ -23,13 +23,14 @@ void ReadMail(struct Mail *mail, MainCallback exitCallback, bool8 hasText); void ClearAllMail(void); void ClearMail(struct Mail *mail); bool8 MonHasMail(struct Pokemon *mon); -u8 GiveMailToMonByItemId(struct Pokemon *mon, u16 itemId); +u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId); u16 SpeciesToMailSpecies(u16 species, u32 personality); u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail); void TakeMailFromMon(struct Pokemon *mon); void ClearMailItemId(u8 mailId); +u8 SaveMailToPC(struct Mail *mail); u8 TakeMailFromMonAndSave(struct Pokemon *mon); -bool8 ItemIsMail(u16 itemId); +bool8 ItemIsMail(enum Item itemId); #endif // GUARD_MAIL_H diff --git a/include/main.h b/include/main.h index 962f269b5af8..6e951b856ce3 100644 --- a/include/main.h +++ b/include/main.h @@ -41,8 +41,8 @@ struct Main }; #define GAME_CODE_LENGTH 4 -extern const u8 gGameVersion; -extern const u8 gGameLanguage; +extern const enum GameVersion gGameVersion; +extern const enum Language gGameLanguage; extern const u8 RomHeaderGameCode[GAME_CODE_LENGTH]; extern const u8 RomHeaderSoftwareVersion; diff --git a/include/malloc.h b/include/malloc.h index b3f176e33040..10481dc398c4 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -41,7 +41,7 @@ struct MemBlock u8 data[0]; }; -#define HEAP_SIZE 0x1C300 +#define HEAP_SIZE 0x1C500 extern u8 gHeap[HEAP_SIZE]; #if TESTING || !defined(NDEBUG) diff --git a/include/map_preview_screen.h b/include/map_preview_screen.h new file mode 100644 index 000000000000..c548f7c2f2cc --- /dev/null +++ b/include/map_preview_screen.h @@ -0,0 +1,64 @@ +#ifndef GUARD_MAP_PREVIEW_SCREEN_H +#define GUARD_MAP_PREVIEW_SCREEN_H + +enum MapPreviewScreenId +{ + MPS_VIRIDIAN_FOREST = 0u, + MPS_MT_MOON, + MPS_DIGLETTS_CAVE, + MPS_ROCK_TUNNEL, + MPS_POKEMON_TOWER, + MPS_SAFARI_ZONE, + MPS_SEAFOAM_ISLANDS, + MPS_POKEMON_MANSION, + MPS_ROCKET_HIDEOUT, + MPS_SILPH_CO, + MPS_VICTORY_ROAD, + MPS_CERULEAN_CAVE, + MPS_POWER_PLANT, + MPS_MT_EMBER, + MPS_ROCKET_WAREHOUSE, + MPS_MONEAN_CHAMBER, + MPS_DOTTED_HOLE, + MPS_BERRY_FOREST, + MPS_ICEFALL_CAVE, + MPS_LOST_CAVE, + MPS_ALTERING_CAVE, + MPS_PATTERN_BUSH, + MPS_LIPTOO_CHAMBER, + MPS_WEEPTH_CHAMBER, + MPS_TDILFORD_CHAMBER, + MPS_SCUFIB_CHAMBER, + MPS_RIXY_CHAMBER, + MPS_VIAPOIS_CHAMBER, + MPS_COUNT +}; + +#define MPS_TYPE_CAVE 0 +#define MPS_TYPE_FOREST 1 +#define MPS_TYPE_ANY 2 + +struct MapPreviewScreen +{ + mapsec_u8_t mapsec; + u8 type; + u16 flagId; + const void *tilesptr; + const void *tilemapptr; + const void *palptr; +}; + +u16 MapPreview_CreateMapNameWindow(u8 id); +void MapPreview_SetFlag(u16 a0); +u16 MapPreview_GetDuration(u8 id); +bool8 MapHasPreviewScreen(mapsec_u8_t mapsec, u8 type); +bool32 ForestMapPreviewScreenIsRunning(void); +const struct MapPreviewScreen * GetDungeonMapPreviewScreenInfo(mapsec_u8_t mapsec); +bool32 MapHasPreviewScreen_HandleQLState2(mapsec_u8_t mapsec, u8 type); +void MapPreview_InitBgs(void); +void MapPreview_LoadGfx(mapsec_u8_t mapsec); +bool32 MapPreview_IsGfxLoadFinished(void); +void MapPreview_Unload(s32 windowId); +void MapPreview_StartForestTransition(mapsec_u8_t mapsec); + +#endif //GUARD_MAP_PREVIEW_SCREEN_H diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index dc7d16b743de..cefd77f4808c 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -7,8 +7,8 @@ void SetMauvilleOldMan(void); u8 GetCurrentMauvilleOldMan(void); void SetMauvilleOldManObjEventGfx(void); void SanitizeMauvilleOldManForRuby(union OldMan *oldMan); -void SanitizeReceivedRubyOldMan(union OldMan *oldMan, u32 version, u32 language); -void SanitizeReceivedEmeraldOldMan(union OldMan *oldMan, u32 version, u32 language); +void SanitizeReceivedRubyOldMan(union OldMan *oldMan, enum GameVersion version, enum Language language); +void SanitizeReceivedEmeraldOldMan(union OldMan *oldMan, enum Language language); void ResetMauvilleOldManFlag(void); #endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/menu.h b/include/menu.h index 670255233174..8a3f46e3837e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -80,6 +80,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of bool8 FreeTempTileDataBuffersIfPossible(void); struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock); void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos); +void CreateYesNoMenuAtPos(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos); void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); s8 Menu_ProcessInputNoWrapClearOnChoose(void); s8 ProcessMenuInput_other(void); @@ -87,6 +88,7 @@ void DoScheduledBgTilemapCopiesToVram(void); void ClearScheduledBgCopiesToVram(void); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum); +void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum); void PrintMenuActionTextsInUpperLeftCorner(u8 windowId, u8 itemCount, const struct MenuAction *menuActions, const u8 *actionIds); void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); void *malloc_and_decompress(const void *src, u32 *size); @@ -111,6 +113,7 @@ void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); u8 AddMapNamePopUpWindow(void); void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing); +void AddTextPrinterParameterized6(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const union TextColor color, s8 speed, const u8 *str); void SetBgTilemapPalette(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); void AddValToTilemapBuffer(void *ptr, int delta, int width, int height, bool32 isAffine); void EraseFieldMessageBox(bool8 copyToVram); @@ -123,6 +126,7 @@ u8 HofPCTopBar_AddWindow(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile); void HofPCTopBar_RemoveWindow(void); void HofPCTopBar_Print(const u8 *string, u8 left, bool8 copyToVram); void HofPCTopBar_PrintPair(const u8 *string, const u8 *string2, bool8 noBg, u8 left, bool8 copyToVram); +void HofPCTopBar_Clear(void); void ResetBgPositions(void); void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed); void EraseYesNoWindow(void); @@ -133,5 +137,7 @@ u8 GetSecondaryPopUpWindowId(void); void RemoveSecondaryPopUpWindow(void); void HBlankCB_DoublePopupWindow(void); void RedrawDialogueFrame(void); +void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); +bool8 IsBlendTaskActive(void); #endif // GUARD_MENU_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index f9a418a93868..5ec4f60ecd4d 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -25,8 +25,8 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity, u16 max); u8 GetLRKeysPressed(void); u8 GetLRKeysPressedAndHeld(void); -bool8 IsHoldingItemAllowed(u16 itemId); -bool8 IsWritingMailAllowed(u16 itemId); +bool8 IsHoldingItemAllowed(enum Item itemId); +bool8 IsWritingMailAllowed(enum Item itemId); bool8 MenuHelpers_IsLinkActive(void); bool8 MenuHelpers_ShouldWaitForLinkRecv(void); void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage); diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index 5e268d726253..477720d1aaef 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -27,6 +27,7 @@ bool8 MetatileBehavior_IsLadder(u8 metatileBehavior); bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior); bool8 MetatileBehavior_IsDeepSouthWarp(u8 metatileBehavior); bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8 metatileBehavior); +bool8 MetatileBehavior_IsFastWater(u8 metatileBehavior); bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior); bool8 MetatileBehavior_IsWestArrowWarp(u8 metatileBehavior); bool8 MetatileBehavior_IsNorthArrowWarp(u8 metatileBehavior); @@ -123,6 +124,8 @@ bool8 MetatileBehavior_IsSurfableFishableWater(u8 metatileBehavior); bool8 MetatileBehavior_IsMtPyreHole(u8 metatileBehavior); bool8 MetatileBehavior_IsCrackedFloorHole(u8 metatileBehavior); bool8 MetatileBehavior_IsCrackedFloor(u8 metatileBehavior); +bool32 MetatileBehavior_IsCyclingRoadPullDownTile(u8 metatileBehavior); +bool8 MetatileBehavior_IsCyclingRoadPullDownTileGrass(u8 metatileBehavior); bool8 MetatileBehavior_IsMuddySlope(u8 metatileBehavior); bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior); bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 metatileBehavior); @@ -165,5 +168,34 @@ bool8 MetatileBehavior_IsSidewaysStairsLeftSideBottom(u8 metatileBehavior); bool8 MetatileBehavior_IsSidewaysStairsRightSideAny(u8 metatileBehavior); bool8 MetatileBehavior_IsSidewaysStairsLeftSideAny(u8 metatileBehavior); bool8 MetatileBehavior_IsRockClimbable(u8 metatileBehavior); +bool8 MetatileBehavior_IsSpinRight(u8 metatileBehavior); +bool8 MetatileBehavior_IsSpinLeft(u8 metatileBehavior); +bool8 MetatileBehavior_IsSpinUp(u8 metatileBehavior); +bool8 MetatileBehavior_IsSpinDown(u8 metatileBehavior); +bool8 MetatileBehavior_IsStopSpinning(u8 metatileBehavior); +bool8 MetatileBehavior_IsSpinTile(u8 metatileBehavior); +bool8 MetatileBehavior_IsCabinet(u8 metatileBehavior); +bool8 MetatileBehavior_IsKitchen(u8 metatileBehavior); +bool8 MetatileBehavior_IsDresser(u8 metatileBehavior); +bool8 MetatileBehavior_IsSnacks(u8 metatileBehavior); +bool8 MetatileBehavior_IsPlayerFacingCableClubWirelessMonitor(u8 metatileBehavior, u8 playerDirection); +bool8 MetatileBehavior_IsPlayerFacingBattleRecords(u8 metatileBehavior, u8 playerDirection); +bool8 MetatileBehavior_IsIndigoPlateauSign1(u8 metatileBehavior); +bool8 MetatileBehavior_IsIndigoPlateauSign2(u8 metatileBehavior); +bool8 MetatileBehavior_IsFood(u8 metatileBehavior); +bool8 MetatileBehavior_IsBlueprints(u8 metatileBehavior); +bool8 MetatileBehavior_IsPainting(u8 metatileBehavior); +bool8 MetatileBehavior_IsPowerPlantMachine(u8 metatileBehavior); +bool8 MetatileBehavior_IsTelephone(u8 metatileBehavior); +bool8 MetatileBehavior_IsComputer(u8 metatileBehavior); +bool8 MetatileBehavior_IsAdvertisingPoster(u8 metatileBehavior); +bool8 MetatileBehavior_IsTastyFood(u8 metatileBehavior); +bool8 MetatileBehavior_IsCup(u8 metatileBehavior); +bool8 MetatileBehavior_IsBlinkingLights(u8 metatileBehavior); +bool8 MetatileBehavior_IsNeatlyLinedUpTools(u8 metatileBehavior); +bool8 MetatileBehavior_IsImpressiveMachine(u8 metatileBehavior); +bool8 MetatileBehavior_IsVideoGame(u8 metatileBehavior); +bool8 MetatileBehavior_IsBurglary(u8 metatileBehavior); +bool8 MetatileBehavior_IsTrainerTowerMonitor(u8 metatileBehavior); #endif // GUARD_METATILE_BEHAVIOR_H diff --git a/include/move.h b/include/move.h index fe2587a22574..e46a1012b270 100644 --- a/include/move.h +++ b/include/move.h @@ -1,10 +1,13 @@ #ifndef GUARD_MOVES_H #define GUARD_MOVES_H +#include "generational_changes.h" #include "contest_effect.h" #include "constants/battle.h" +#include "constants/battle_factory.h" #include "constants/battle_move_effects.h" #include "constants/battle_string_ids.h" +#include "constants/battle_z_move_effects.h" #include "constants/moves.h" // For defining EFFECT_HIT etc. with battle TV scores and flags etc. @@ -12,11 +15,12 @@ struct __attribute__((packed, aligned(2))) BattleMoveEffect { const u8 *battleScript; u16 battleTvScore:3; + enum FactoryStyle battleFactoryStyle:4; u16 encourageEncore:1; u16 twoTurnEffect:1; u16 semiInvulnerableEffect:1; u16 usesProtectCounter:1; - u16 padding:9; + u16 padding:5; }; #define EFFECTS_ARR(...) (const struct AdditionalEffect[]) {__VA_ARGS__} @@ -29,7 +33,8 @@ struct AdditionalEffect u8 onlyIfTargetRaisedStats:1; u8 onChargeTurnOnly:1; u8 sheerForceOverride:1; // Handles edge cases for Sheer Force - if TRUE, boosts when it shouldn't, or doesn't boost when it should - u8 padding:4; + u8 preAttackEffect:1; + u8 padding:3; union PACKED { enum WrappedStringID wrapped; } multistring; @@ -60,6 +65,13 @@ enum ProtectMethod PROTECT_MAT_BLOCK, }; +enum TerrainGroundCheck +{ + GROUND_CHECK_NONE, + GROUND_CHECK_USER, + GROUND_CHECK_TARGET, +}; + struct MoveInfo { const u8 *name; @@ -79,9 +91,12 @@ struct MoveInfo // end of word s32 priority:4; u32 strikeCount:4; // Max 15 hits. Defaults to 1 if not set. May apply its effect on each hit. + u32 multiHit:1; // Takes precedence over strikeCount + u32 explosion:1; u32 criticalHitStage:2; bool32 alwaysCriticalHit:1; u32 numAdditionalEffects:3; // limited to 7 + // Flags bool32 makesContact:1; bool32 ignoresProtect:1; @@ -99,9 +114,9 @@ struct MoveInfo bool32 slicingMove:1; bool32 healingMove:1; bool32 minimizeDoubleDamage:1; + // end of word bool32 ignoresTargetAbility:1; bool32 ignoresTargetDefenseEvasionStages:1; - // end of word bool32 damagesUnderground:1; bool32 damagesUnderwater:1; bool32 damagesAirborne:1; @@ -114,6 +129,12 @@ struct MoveInfo bool32 alwaysHitsInRain:1; bool32 accuracy50InSun:1; bool32 alwaysHitsInHailSnow:1; + bool32 alwaysHitsOnSameType:1; // Always hits if user is of same type as move + bool32 noAffectOnSameTypeTarget:1; // Fails if target is of same type as move + bool32 accIncreaseByTenOnSameType:1; // Accuracy is increased by 10% if user is of same type as move + bool32 padding1:15; + // end of word + // Ban flags bool32 gravityBanned:1; bool32 mirrorMoveBanned:1; @@ -131,14 +152,32 @@ struct MoveInfo bool32 dampBanned:1; //Other bool32 validApprenticeMove:1; - u32 padding:5; + u32 padding2:17; // end of word union { struct { u16 stringId; - u16 status; + union { + u16 status; + u16 weather; + }; } twoTurnAttack; + struct { + u16 species; + u16 power:9; + u16 numOfHits:7; + } speciesPowerOverride; + struct { + u16 damagePercent:12; + u16 damageCategories:4; // bit field + } reflectDamage; + struct { + u16 terrain; + u16 percent:13; + enum TerrainGroundCheck groundCheck:2; + u16 hitsBothFoes:1; + } terrainBoost; u32 protectMethod; u32 status; u32 moveProperty; @@ -150,6 +189,7 @@ struct MoveInfo u32 recoilPercentage; u32 nonVolatileStatus; u32 overwriteAbility; + u32 weatherType; } argument; // primary/secondary effects @@ -167,25 +207,27 @@ extern const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL]; extern const u8 gNotDoneYetDescription[]; extern const struct BattleMoveEffect gBattleMoveEffects[]; -static inline u32 SanitizeMoveId(u32 moveId) +static inline enum Move SanitizeMoveId(enum Move moveId) { - if (moveId >= MOVES_COUNT_ALL) + assertf(moveId < MOVES_COUNT_ALL, "invalid move: %d", moveId) + { return MOVE_NONE; - else - return moveId; + } + + return moveId; } -static inline const u8 *GetMoveName(u32 moveId) +static inline const u8 *GetMoveName(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].name; } -static inline enum BattleMoveEffects GetMoveEffect(u32 moveId) +static inline enum BattleMoveEffects GetMoveEffect(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].effect; } -static inline const u8 *GetMoveDescription(u32 moveId) +static inline const u8 *GetMoveDescription(enum Move moveId) { moveId = SanitizeMoveId(moveId); if (GetMoveEffect(moveId) == EFFECT_PLACEHOLDER) @@ -193,363 +235,495 @@ static inline const u8 *GetMoveDescription(u32 moveId) return gMovesInfo[moveId].description; } -static inline enum Type GetMoveType(u32 moveId) +static inline enum Type GetMoveType(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].type; } -static inline enum DamageCategory GetMoveCategory(u32 moveId) +static inline enum DamageCategory GetMoveCategory(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].category; } -static inline u32 GetMovePower(u32 moveId) +static inline u32 GetMovePower(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].power; } -static inline u32 GetMoveAccuracy(u32 moveId) +static inline u32 GetMoveAccuracy(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].accuracy; } -static inline u32 GetMoveTarget(u32 moveId) +static inline enum MoveTarget GetMoveTarget(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].target; + moveId = SanitizeMoveId(moveId); + enum MoveTarget target = gMovesInfo[moveId].target; + assertf(target != TARGET_SMART || gMovesInfo[moveId].strikeCount > 1, "Smart target requires strikeCount > 1: %S", gMovesInfo[moveId].name); + return target; } -static inline u32 GetMovePP(u32 moveId) +static inline u32 GetMovePP(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].pp; } -static inline u32 GetMoveZEffect(u32 moveId) +static inline enum ZEffect GetMoveZEffect(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].zMove.effect; + moveId = SanitizeMoveId(moveId); + assertf(GetMoveCategory(moveId) == DAMAGE_CATEGORY_STATUS, "not a status move: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].zMove.effect; } -static inline u32 GetMoveZPowerOverride(u32 moveId) +static inline u32 GetMoveZPowerOverride(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].zMove.powerOverride; + moveId = SanitizeMoveId(moveId); + assertf(GetMoveCategory(moveId) != DAMAGE_CATEGORY_STATUS, "not a damaging move: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].zMove.powerOverride; } -static inline s32 GetMovePriority(u32 moveId) +static inline s32 GetMovePriority(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].priority; } -static inline u32 GetMoveStrikeCount(u32 moveId) +static inline u32 GetMoveStrikeCount(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].strikeCount; } -static inline u32 GetMoveCriticalHitStage(u32 moveId) +static inline u32 IsMultiHitMove(enum Move moveId) +{ + return gMovesInfo[SanitizeMoveId(moveId)].multiHit; +} + +static inline u32 IsExplosionMove(enum Move move) +{ + return gMovesInfo[SanitizeMoveId(move)].explosion; +} + +static inline u32 GetMoveCriticalHitStage(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].criticalHitStage; } -static inline bool32 MoveAlwaysCrits(u32 moveId) +static inline bool32 MoveAlwaysCrits(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].alwaysCriticalHit; } -static inline u32 GetMoveAdditionalEffectCount(u32 moveId) +static inline u32 GetMoveAdditionalEffectCount(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].numAdditionalEffects; } -static inline bool32 MoveMakesContact(u32 moveId) +static inline bool32 MoveMakesContact(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].makesContact; } -static inline bool32 MoveIgnoresProtect(u32 moveId) +static inline bool32 MoveIgnoresProtect(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ignoresProtect; } -static inline bool32 MoveCanBeBouncedBack(u32 moveId) +static inline bool32 MoveCanBeBouncedBack(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].magicCoatAffected; } -static inline bool32 MoveCanBeSnatched(u32 moveId) +static inline bool32 MoveCanBeSnatched(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].snatchAffected; } -static inline bool32 MoveIgnoresKingsRock(u32 moveId) +static inline bool32 MoveIgnoresKingsRock(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ignoresKingsRock; } -static inline bool32 IsPunchingMove(u32 moveId) +static inline bool32 IsPunchingMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].punchingMove; } -static inline bool32 IsBitingMove(u32 moveId) +static inline bool32 IsBitingMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].bitingMove; } -static inline bool32 IsPulseMove(u32 moveId) +static inline bool32 IsPulseMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].pulseMove; } -static inline bool32 IsSoundMove(u32 moveId) +static inline bool32 IsSoundMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].soundMove; } -static inline bool32 IsBallisticMove(u32 moveId) +static inline bool32 IsBallisticMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ballisticMove; } -static inline bool32 IsPowderMove(u32 moveId) +static inline bool32 IsPowderMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].powderMove; } -static inline bool32 IsDanceMove(u32 moveId) +static inline bool32 IsDanceMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].danceMove; } -static inline bool32 IsWindMove(u32 moveId) +static inline bool32 IsWindMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].windMove; } -static inline bool32 IsSlicingMove(u32 moveId) +static inline bool32 IsSlicingMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].slicingMove; } -static inline bool32 IsHealingMove(u32 moveId) +static inline bool32 IsHealingMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].healingMove; } -static inline bool32 MoveIncreasesPowerToMinimizedTargets(u32 moveId) +static inline bool32 MoveIncreasesPowerToMinimizedTargets(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].minimizeDoubleDamage; } -static inline bool32 MoveIgnoresTargetAbility(u32 moveId) +static inline bool32 MoveIgnoresTargetAbility(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ignoresTargetAbility; } -static inline bool32 MoveIgnoresDefenseEvasionStages(u32 moveId) +static inline bool32 MoveIgnoresDefenseEvasionStages(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ignoresTargetDefenseEvasionStages; } -static inline bool32 MoveDamagesUnderground(u32 moveId) +static inline bool32 MoveDamagesUnderground(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].damagesUnderground; } -static inline bool32 MoveDamagesUnderWater(u32 moveId) +static inline bool32 MoveDamagesUnderWater(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].damagesUnderwater; } -static inline bool32 MoveDamagesAirborne(u32 moveId) +static inline bool32 MoveDamagesAirborne(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].damagesAirborne; } -static inline bool32 MoveDamagesAirborneDoubleDamage(u32 moveId) +static inline bool32 MoveDamagesAirborneDoubleDamage(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].damagesAirborneDoubleDamage; } -static inline bool32 MoveIgnoresTypeIfFlyingAndUngrounded(u32 moveId) +static inline bool32 MoveIgnoresTypeIfFlyingAndUngrounded(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ignoreTypeIfFlyingAndUngrounded; } -static inline bool32 MoveThawsUser(u32 moveId) +static inline bool32 MoveThawsUser(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].thawsUser; } -static inline bool32 MoveIgnoresSubstitute(u32 moveId) +static inline bool32 MoveIgnoresSubstitute(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].ignoresSubstitute; } -static inline bool32 MoveForcesPressure(u32 moveId) +static inline bool32 MoveForcesPressure(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].forcePressure; } -static inline bool32 MoveCantBeUsedTwice(u32 moveId) +static inline bool32 MoveCantBeUsedTwice(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].cantUseTwice; } -static inline bool32 MoveAlwaysHitsInRain(u32 moveId) +static inline bool32 MoveAlwaysHitsInRain(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].alwaysHitsInRain; } -static inline bool32 MoveHas50AccuracyInSun(u32 moveId) +static inline bool32 MoveHas50AccuracyInSun(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].accuracy50InSun; } -static inline bool32 MoveAlwaysHitsInHailSnow(u32 moveId) +static inline bool32 MoveAlwaysHitsInHailSnow(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].alwaysHitsInHailSnow; } -static inline bool32 IsMoveGravityBanned(u32 moveId) +static inline bool32 MoveAlwaysHitsOnSameType(enum Move moveId) +{ + #if TESTING + if (moveId == MOVE_TOXIC && GetConfig(B_TOXIC_NEVER_MISS) < GEN_6) + return FALSE; + #endif + return gMovesInfo[SanitizeMoveId(moveId)].alwaysHitsOnSameType; +} + +static inline bool32 MoveHasNoEffectOnSameType(enum Move moveId) +{ + #if TESTING + if (moveId == MOVE_SHEER_COLD && GetConfig(B_SHEER_COLD_IMMUNITY) < GEN_7) + return FALSE; + #endif + return gMovesInfo[SanitizeMoveId(moveId)].noAffectOnSameTypeTarget; +} + +static inline bool32 MoveHasIncreasedAccByTenOnSameType(enum Move moveId) +{ + return gMovesInfo[SanitizeMoveId(moveId)].accIncreaseByTenOnSameType; +} + +static inline bool32 IsMoveGravityBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].gravityBanned; } -static inline bool32 IsMoveMirrorMoveBanned(u32 moveId) +static inline bool32 IsMoveMirrorMoveBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].mirrorMoveBanned; } -static inline bool32 IsMoveMeFirstBanned(u32 moveId) +static inline bool32 IsMoveMeFirstBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].meFirstBanned; } -static inline bool32 IsMoveMimicBanned(u32 moveId) +static inline bool32 IsMoveMimicBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].mimicBanned; } -static inline bool32 IsMoveMetronomeBanned(u32 moveId) +static inline bool32 IsMoveMetronomeBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].metronomeBanned; } -static inline bool32 IsMoveCopycatBanned(u32 moveId) +static inline bool32 IsMoveCopycatBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].copycatBanned; } -static inline bool32 IsMoveAssistBanned(u32 moveId) +static inline bool32 IsMoveAssistBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].assistBanned; } -static inline bool32 IsMoveSleepTalkBanned(u32 moveId) +static inline bool32 IsMoveSleepTalkBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].sleepTalkBanned; } -static inline bool32 IsMoveInstructBanned(u32 moveId) +static inline bool32 IsMoveInstructBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].instructBanned; } -static inline bool32 IsMoveEncoreBanned(u32 moveId) +static inline bool32 IsMoveEncoreBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].encoreBanned; } -static inline bool32 IsMoveParentalBondBanned(u32 moveId) +static inline bool32 IsMoveParentalBondBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].parentalBondBanned; } -static inline bool32 IsMoveSkyBattleBanned(u32 moveId) +static inline bool32 IsMoveSkyBattleBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].skyBattleBanned; } -static inline bool32 IsMoveSketchBanned(u32 moveId) +static inline bool32 IsMoveSketchBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].sketchBanned; } -static inline bool32 IsMoveDampBanned(u32 moveId) +static inline bool32 IsMoveDampBanned(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].dampBanned; } -static inline bool32 IsValidApprenticeMove(u32 moveId) +static inline bool32 IsValidApprenticeMove(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].validApprenticeMove; } -static inline u32 GetMoveTwoTurnAttackStringId(u32 moveId) +static inline u32 GetMoveTwoTurnAttackStringId(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(gBattleMoveEffects[effect].twoTurnEffect, "not a two-turn move: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.twoTurnAttack.stringId; +} + +static inline u32 GetMoveTwoTurnAttackStatus(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.twoTurnAttack.stringId; + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_SEMI_INVULNERABLE || effect == EFFECT_SKY_DROP, "not a two-turn move with status: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.twoTurnAttack.status; } -static inline u32 GetMoveTwoTurnAttackStatus(u32 moveId) +static inline u32 GetMoveTwoTurnAttackWeather(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.twoTurnAttack.status; + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_TWO_TURNS_ATTACK || effect == EFFECT_SOLAR_BEAM, "not a two-turn move with weather: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.twoTurnAttack.weather; } -static inline u32 GetMoveTwoTurnAttackWeather(u32 moveId) +static inline u32 GetMoveSpeciesPowerOverride_Species(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.twoTurnAttack.status; + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_SPECIES_POWER_OVERRIDE, "not a species power override move: %S", GetMoveName(moveId)); + return gMovesInfo[SanitizeMoveId(moveId)].argument.speciesPowerOverride.species; } -static inline enum ProtectMethod GetMoveProtectMethod(u32 moveId) +static inline u32 GetMoveSpeciesPowerOverride_Power(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.protectMethod; + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_SPECIES_POWER_OVERRIDE, "not a species power override move: %S", GetMoveName(moveId)); + return gMovesInfo[SanitizeMoveId(moveId)].argument.speciesPowerOverride.power; } -static inline u32 GetMoveTerrainFlag(u32 moveId) +static inline u32 GetMoveSpeciesPowerOverride_NumOfHits(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.moveProperty; + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_SPECIES_POWER_OVERRIDE, "not a species power override move: %S", GetMoveName(moveId)); + return gMovesInfo[SanitizeMoveId(moveId)].argument.speciesPowerOverride.numOfHits; +} + +static inline u32 GetMoveReflectDamage_DamagePercent(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_REFLECT_DAMAGE, "not a damage reflection move: %S", GetMoveName(moveId)); + return gMovesInfo[SanitizeMoveId(moveId)].argument.reflectDamage.damagePercent; } -static inline u32 GetMoveEffectArg_Status(u32 moveId) +static inline u32 GetMoveReflectDamage_DamageCategories(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.status; + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_REFLECT_DAMAGE, "not a damage reflection move: %S", GetMoveName(moveId)); + return gMovesInfo[SanitizeMoveId(moveId)].argument.reflectDamage.damageCategories; } -static inline u32 GetMoveEffectArg_MoveProperty(u32 moveId) +static inline u32 GetMoveTerrainBoost_Terrain(enum Move moveId) { + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_TERRAIN_BOOST, "not a terrain boosted move: %S", GetMoveName(moveId)); + return gMovesInfo[moveId].argument.terrainBoost.terrain; +} + +static inline u32 GetMoveTerrainBoost_Percent(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_TERRAIN_BOOST, "not a terrain boosted move: %S", GetMoveName(moveId)); + return gMovesInfo[moveId].argument.terrainBoost.percent; +} + +static inline u32 GetMoveTerrainBoost_GroundCheck(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_TERRAIN_BOOST, "not a terrain boosted move: %S", GetMoveName(moveId)); + return gMovesInfo[moveId].argument.terrainBoost.groundCheck; +} + +static inline bool32 GetMoveTerrainBoost_HitsBothFoes(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_TERRAIN_BOOST, "not a terrain boosted move: %S", GetMoveName(moveId)); + return gMovesInfo[moveId].argument.terrainBoost.hitsBothFoes; +} + +static inline enum ProtectMethod GetMoveProtectMethod(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_PROTECT || effect == EFFECT_ENDURE || effect == EFFECT_MAT_BLOCK, "not a protect move: %S", GetMoveName(moveId)); + return gMovesInfo[moveId].argument.protectMethod; +} + +static inline u32 GetMoveEffectArg_Status(enum Move moveId) +{ + // Forward-declared here because 'include/battle_util.h' includes + // this file. + extern bool32 MoveHasAdditionalEffect(enum Move move, enum MoveEffect moveEffect); + + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_FOCUS_ENERGY || effect == EFFECT_DOUBLE_POWER_ON_ARG_STATUS || MoveHasAdditionalEffect(moveId, MOVE_EFFECT_REMOVE_STATUS), "not a move with status: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.status; +} + +static inline u32 GetMoveEffectArg_MoveProperty(enum Move moveId) +{ + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_FIRST_TURN_ONLY || effect == EFFECT_HEAL_PULSE, "not a move with moveProperty: %S", gMovesInfo[moveId].name); return gMovesInfo[SanitizeMoveId(moveId)].argument.moveProperty; } -static inline u32 GetMoveEffectArg_HoldEffect(u32 moveId) +static inline u32 GetMoveEffectArg_HoldEffect(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.holdEffect; + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_CHANGE_TYPE_ON_ITEM, "not a move with a hold effect: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.holdEffect; } -static inline u32 GetMoveArgType(u32 moveId) +static inline u32 GetMoveArgType(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.type; + moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_SOAK || effect == EFFECT_TWO_TYPED_MOVE || effect == EFFECT_THIRD_TYPE || effect == EFFECT_SUPER_EFFECTIVE_ON_ARG || effect == EFFECT_FAIL_IF_NOT_ARG_TYPE, "not a move with a type: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.type; } -static inline u32 GetMoveFixedHPDamage(u32 moveId) +static inline u32 GetMoveFixedHPDamage(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.fixedDamage; + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_FIXED_HP_DAMAGE, "not a fixed-damage move: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.fixedDamage; } -static inline u32 GetMoveAbsorbPercentage(u32 moveId) +static inline u32 GetMoveAbsorbPercentage(enum Move moveId) { moveId = SanitizeMoveId(moveId); + enum BattleMoveEffects effect = gMovesInfo[moveId].effect; + assertf(effect == EFFECT_ABSORB || effect == EFFECT_DREAM_EATER, "not an absorbing move: %S", gMovesInfo[moveId].name); if (gMovesInfo[moveId].argument.absorbPercentage == 0) return 50; return gMovesInfo[moveId].argument.absorbPercentage; } -static inline u32 GetMoveRecoil(u32 moveId) +static inline u32 GetMoveRecoil(enum Move moveId) { - return gMovesInfo[SanitizeMoveId(moveId)].argument.recoilPercentage; + moveId = SanitizeMoveId(moveId); + assertf(gMovesInfo[moveId].effect == EFFECT_RECOIL, "not a recoil move: %S", gMovesInfo[moveId].name); + return gMovesInfo[moveId].argument.recoilPercentage; } -static inline u32 GetMoveNonVolatileStatus(u32 move) +static inline enum MoveEffect GetMoveNonVolatileStatus(enum Move move) { move = SanitizeMoveId(move); - switch(GetMoveEffect(move)) + switch (GetMoveEffect(move)) { case EFFECT_NON_VOLATILE_STATUS: case EFFECT_YAWN: @@ -560,58 +734,66 @@ static inline u32 GetMoveNonVolatileStatus(u32 move) } } -static inline u32 GetMoveDamagePercentage(u32 move) +static inline u32 GetMoveDamagePercentage(enum Move move) { - return gMovesInfo[SanitizeMoveId(move)].argument.damagePercentage; + move = SanitizeMoveId(move); + assertf(gMovesInfo[move].effect == EFFECT_FIXED_PERCENT_DAMAGE, "not a percentage-damage move: %S", gMovesInfo[move].name); + return gMovesInfo[move].argument.damagePercentage; +} + +static inline u32 GetMoveOverwriteAbility(enum Move move) +{ + move = SanitizeMoveId(move); + assertf(gMovesInfo[move].effect == EFFECT_OVERWRITE_ABILITY, "not a move that overwrites abilities: %S", gMovesInfo[move].name); + return gMovesInfo[move].argument.overwriteAbility; } -static inline u32 GetMoveOverwriteAbility(u32 move) +static inline u32 GetMoveWeatherType(enum Move move) { - return gMovesInfo[SanitizeMoveId(move)].argument.overwriteAbility; + assertf(gMovesInfo[move].effect == EFFECT_WEATHER || gMovesInfo[move].effect == EFFECT_WEATHER_AND_SWITCH, "not a move that sets weather: %S", gMovesInfo[move].name); + return gMovesInfo[SanitizeMoveId(move)].argument.weatherType; } -static inline const struct AdditionalEffect *GetMoveAdditionalEffectById(u32 moveId, u32 effect) +static inline const struct AdditionalEffect *GetMoveAdditionalEffectById(enum Move moveId, u32 effect) { return &gMovesInfo[SanitizeMoveId(moveId)].additionalEffects[effect]; } -static inline u32 GetMoveContestEffect(u32 moveId) +static inline u32 GetMoveContestEffect(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].contestEffect; } -static inline u32 GetMoveContestCategory(u32 moveId) +static inline u32 GetMoveContestCategory(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].contestCategory; } -static inline u32 GetMoveContestComboStarter(u32 moveId) +static inline u32 GetMoveContestComboStarter(enum Move moveId) { return gMovesInfo[SanitizeMoveId(moveId)].contestComboStarterId; } -static inline u32 GetMoveContestComboMoves(u32 moveId, u32 comboMove) +static inline u32 GetMoveContestComboMoves(enum Move moveId, u32 comboMove) { return gMovesInfo[SanitizeMoveId(moveId)].contestComboMoves[comboMove]; } -static inline const u8 *GetMoveAnimationScript(u32 moveId) +static inline const u8 *GetMoveAnimationScript(enum Move moveId) { moveId = SanitizeMoveId(moveId); - if (gMovesInfo[moveId].battleAnimScript == NULL) + assertf(gMovesInfo[moveId].battleAnimScript, "No animation for %S", gMovesInfo[moveId].name) { - DebugPrintfLevel(MGBA_LOG_WARN, "No animation for moveId=%u", moveId); return gMovesInfo[MOVE_NONE].battleAnimScript; } return gMovesInfo[moveId].battleAnimScript; } -static inline const u8 *GetMoveBattleScript(u32 moveId) +static inline const u8 *GetMoveBattleScript(enum Move moveId) { moveId = SanitizeMoveId(moveId); - if (gBattleMoveEffects[GetMoveEffect(moveId)].battleScript == NULL) + assertf(gBattleMoveEffects[GetMoveEffect(moveId)].battleScript, "No battle script for %S", gMovesInfo[moveId].name) { - DebugPrintfLevel(MGBA_LOG_WARN, "No effect for moveId=%u", moveId); return gBattleMoveEffects[EFFECT_PLACEHOLDER].battleScript; } return gBattleMoveEffects[GetMoveEffect(moveId)].battleScript; diff --git a/include/move_relearner.h b/include/move_relearner.h index 1d22d82a79ed..4274950d40a5 100644 --- a/include/move_relearner.h +++ b/include/move_relearner.h @@ -7,6 +7,8 @@ void TeachMoveRelearnerMove(void); void MoveRelearnerShowHideHearts(s32 move); void MoveRelearnerShowHideCategoryIcon(s32); void CB2_InitLearnMove(void); +bool32 CanBoxMonRelearnAnyMove(struct BoxPokemon *boxMon); +bool32 CanBoxMonRelearnMoves(struct BoxPokemon *boxMon, enum MoveRelearnerStates state); extern enum MoveRelearnerStates gMoveRelearnerState; extern enum RelearnMode gRelearnMode; diff --git a/include/naming_screen.h b/include/naming_screen.h index 315868c3abed..d163117e0d20 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -10,6 +10,7 @@ enum { NAMING_SCREEN_NICKNAME, NAMING_SCREEN_WALDA, NAMING_SCREEN_CODE, + NAMING_SCREEN_RIVAL, }; extern void BattleMainCB2(void); diff --git a/include/oak_speech.h b/include/oak_speech.h new file mode 100644 index 000000000000..b7b075fa5db8 --- /dev/null +++ b/include/oak_speech.h @@ -0,0 +1,6 @@ +#ifndef GUARD_OAK_SPEECH_H +#define GUARD_OAK_SPEECH_H + +void StartNewGameSceneFrlg(void); + +#endif //GUARD_OAK_SPEECH_H diff --git a/include/overworld.h b/include/overworld.h index 91a88dc88cf2..b3aed23ae389 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -47,6 +47,19 @@ struct LinkPlayerObjectEvent u8 movementMode; }; +struct CreditsOverworldCmd +{ + s16 unk_0; + s16 unk_2; + s16 unk_4; +}; + +enum { + MUSIC_DISABLE_OFF, + MUSIC_DISABLE_STOP, + MUSIC_DISABLE_KEEP, +}; + // Exported RAM declarations extern struct WarpData gLastUsedWarp; extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4]; @@ -63,6 +76,7 @@ extern bool8 gExitStairsMovementDisabled; extern bool8 gSkipShowMonAnim; extern u8 gTimeOfDay; extern s16 gTimeUpdateCounter; +extern u8 gDisableMapMusicChangeOnMapLoad; extern struct TimeBlendSettings gTimeBlend; @@ -175,6 +189,7 @@ bool32 Overworld_SendKeysToLinkIsRunning(void); bool32 IsSendingKeysOverCable(void); void ClearLinkPlayerObjectEvents(void); bool16 SetTimeOfDay(u16 hours); +bool8 MetatileBehavior_IsSurfableInSeafoamIslands(u16 metatileBehavior); // Item Description Headers enum ItemObtainFlags @@ -182,6 +197,9 @@ enum ItemObtainFlags FLAG_GET_ITEM_OBTAINED, FLAG_SET_ITEM_OBTAINED, }; -bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId); +bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId); + +void Overworld_CreditsMainCB(void); +bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd *); #endif // GUARD_OVERWORLD_H diff --git a/include/ow_synchronize.h b/include/ow_synchronize.h new file mode 100644 index 000000000000..83a7ed9c311f --- /dev/null +++ b/include/ow_synchronize.h @@ -0,0 +1,15 @@ +#ifndef GUARD_OW_SYNCHRONIZE_H +#define GUARD_OW_SYNCHRONIZE_H + +enum GeneratedMonOrigin +{ + WILDMON_ORIGIN, + STATIC_WILDMON_ORIGIN, + ROAMER_ORIGIN, + GIFTMON_ORIGIN +}; + +u32 GetSynchronizedNature(enum GeneratedMonOrigin origin, u32 species); +u32 GetSynchronizedGender(enum GeneratedMonOrigin origin, u32 species); + +#endif // GUARD_OW_SYNCHRONIZE_H diff --git a/include/pachinko.h b/include/pachinko.h new file mode 100644 index 000000000000..d46b2c1d170a --- /dev/null +++ b/include/pachinko.h @@ -0,0 +1,4 @@ +#ifndef GUARD_PACHINKO_H +#define GUARD_PACHINKO_H + +#endif // GUARD_PACHINKO_H diff --git a/include/palette.h b/include/palette.h index d58bfeb60cb9..9032ea311d7e 100644 --- a/include/palette.h +++ b/include/palette.h @@ -113,6 +113,8 @@ void TintPalette_GrayScale(u16 *palette, u32 count); void TintPalette_GrayScale2(u16 *palette, u32 count); void TintPalette_SepiaTone(u16 *palette, u32 count); void TintPalette_CustomTone(u16 *palette, u32 count, u16 rTone, u16 gTone, u16 bTone); +bool32 IsBlendPalettesGraduallyTaskActive(u8 id); +void DestroyBlendPalettesGraduallyTask(void); static inline void SetBackdropFromColor(u32 color) { diff --git a/include/party_menu.h b/include/party_menu.h index acae4e0c0b73..6e4a2a4a0311 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -64,9 +64,9 @@ void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task); void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task); void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task); void ItemUseCB_PPUp(u8 taskId, TaskFunc task); -u16 ItemIdToBattleMoveId(u16 item); -bool8 MonKnowsMove(struct Pokemon *mon, u16 move); -bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, u16 move); +enum Move ItemIdToBattleMoveId(enum Item item); +bool8 MonKnowsMove(struct Pokemon *mon, enum Move move); +bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move); void ItemUseCB_TMHM(u8 taskId, TaskFunc task); void ItemUseCB_RareCandy(u8 taskId, TaskFunc task); void ItemUseCB_DynamaxCandy(u8 taskId, TaskFunc task); @@ -77,7 +77,7 @@ void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task); void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task); void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task); void ItemUseCB_Fusion(u8 taskId, TaskFunc task); -u8 GetItemEffectType(u16 item); +enum ItemEffectType GetItemEffectType(enum Item item); void CB2_PartyMenuFromStartMenu(void); void CB2_ChooseMonToGiveItem(void); void ChooseMonToGiveMailFromMailbox(void); @@ -89,8 +89,8 @@ void ChooseMonForWirelessMinigame(void); void OpenPartyMenuInBattle(u8 partyAction); void ChooseMonForInBattleItem(void); void BufferBattlePartyCurrentOrder(void); -void BufferBattlePartyCurrentOrderBySide(u8 battler, u8 flankId); -void SwitchPartyOrderLinkMulti(u8 battler, u8 slot, u8 slot2); +void BufferBattlePartyCurrentOrderBySide(enum BattlerId battler, u8 flankId); +void SwitchPartyOrderLinkMulti(enum BattlerId battler, u8 slot, u8 slot2); void SwitchPartyMonSlots(u8 slot, u8 slot2); u8 GetPartyIdFromBattlePartyId(u8 battlePartyId); void ShowPartyMenuToShowcaseMultiBattleParty(void); diff --git a/include/pinball.h b/include/pinball.h new file mode 100644 index 000000000000..17f5b0ba5b48 --- /dev/null +++ b/include/pinball.h @@ -0,0 +1,4 @@ +#ifndef GUARD_PINBALL_H +#define GUARD_PINBALL_H + +#endif // GUARD_PINBALL_H diff --git a/include/pokeball.h b/include/pokeball.h index 51949206e275..1caf478afa6b 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -1,38 +1,7 @@ #ifndef GUARD_POKEBALL_H #define GUARD_POKEBALL_H -enum PokeBall -{ - BALL_STRANGE = 0, - BALL_POKE = 1, - BALL_GREAT = 2, - BALL_ULTRA = 3, - BALL_MASTER = 4, - BALL_PREMIER = 5, - BALL_HEAL = 6, - BALL_NET = 7, - BALL_NEST = 8, - BALL_DIVE = 9, - BALL_DUSK = 10, - BALL_TIMER = 11, - BALL_QUICK = 12, - BALL_REPEAT = 13, - BALL_LUXURY = 14, - BALL_LEVEL = 15, - BALL_LURE = 16, - BALL_MOON = 17, - BALL_FRIEND = 18, - BALL_LOVE = 19, - BALL_FAST = 20, - BALL_HEAVY = 21, - BALL_DREAM = 22, - BALL_SAFARI = 23, - BALL_SPORT = 24, - BALL_PARK = 25, - BALL_BEAST = 26, - BALL_CHERISH = 27, - POKEBALL_COUNT -}; +#include "constants/pokeball.h" enum { BALL_AFFINE_ANIM_0, @@ -42,20 +11,25 @@ enum { BALL_AFFINE_ANIM_4 }; -extern const struct CompressedSpriteSheet gBallSpriteSheets[]; -extern const struct SpritePalette gBallSpritePalettes[]; -extern const struct SpriteTemplate gBallSpriteTemplates[]; -extern const u16 gBallItemIds[]; +struct PokeBallSprite +{ + struct CompressedSpriteSheet pic; + struct SpritePalette palette; + struct SpriteTemplate spriteTemplate; + u16 itemId; +}; + +extern const struct PokeBallSprite gPokeBalls[]; #define POKEBALL_PLAYER_SENDOUT 0xFF #define POKEBALL_OPPONENT_SENDOUT 0xFE #define POKEBALL_PLAYER_SLIDEIN 0xFD -u8 DoPokeballSendOutAnimation(u32 battler, s16 pan, u8 kindOfThrow); +u8 DoPokeballSendOutAnimation(enum BattlerId battler, s16 pan, u8 kindOfThrow); void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, u16 species); u8 CreateTradePokeballSprite(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 delay, u32 fadePalettes); -void StartHealthboxSlideIn(u8 battler); -void DoHitAnimHealthboxEffect(u8 battler); +void StartHealthboxSlideIn(enum BattlerId battler); +void DoHitAnimHealthboxEffect(enum BattlerId battler); void LoadBallGfx(u8 ballId); void FreeBallGfx(u8 ballId); enum PokeBall ItemIdToBallId(u32 ballItem); diff --git a/include/pokedex.h b/include/pokedex.h index c558cd1b0705..1eaa55728944 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -6,13 +6,17 @@ extern void (*gPokedexVBlankCB)(void); void ResetPokedex(void); u16 GetNationalPokedexCount(u8 caseID); +u32 GetRegionalPokedexCount(u8 caseID); u16 GetHoennPokedexCount(u8 caseID); +u16 GetKantoPokedexCount(u8 caseID); u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality); u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y); s8 GetSetPokedexFlag(enum NationalDexOrder nationalDexNo, u8 caseID); void DrawFootprint(u8 windowId, u16 species); u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot); +bool16 HasAllRegionalMons(void); bool16 HasAllHoennMons(void); +bool16 HasAllKantoMons(void); void ResetPokedexScrollPositions(void); bool16 HasAllMons(void); void CB2_OpenPokedex(void); diff --git a/include/pokemon.h b/include/pokemon.h index 9ca274330085..1f903b5a89ef 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -5,6 +5,7 @@ #include "sprite.h" #include "constants/battle.h" #include "constants/cries.h" +#include "constants/egg_ids.h" #include "constants/form_change_types.h" #include "constants/hold_effects.h" #include "constants/items.h" @@ -64,6 +65,8 @@ enum MonData { MON_DATA_FRIENDSHIP, MON_DATA_SMART, MON_DATA_POKERUS, + MON_DATA_POKERUS_STRAIN, + MON_DATA_POKERUS_DAYS_LEFT, MON_DATA_MET_LOCATION, MON_DATA_MET_LEVEL, MON_DATA_MET_GAME, @@ -110,11 +113,6 @@ enum MonData { MON_DATA_KNOWN_MOVES, MON_DATA_RIBBON_COUNT, MON_DATA_RIBBONS, - MON_DATA_ATK2, - MON_DATA_DEF2, - MON_DATA_SPEED2, - MON_DATA_SPATK2, - MON_DATA_SPDEF2, MON_DATA_HYPER_TRAINED_HP, MON_DATA_HYPER_TRAINED_ATK, MON_DATA_HYPER_TRAINED_DEF, @@ -146,13 +144,13 @@ struct PokemonSubstruct0 struct PokemonSubstruct1 { - u16 move1:11; // 2047 moves. + enum Move move1:11; // 2047 moves. u16 evolutionTracker1:5; - u16 move2:11; // 2047 moves. + enum Move move2:11; // 2047 moves. u16 evolutionTracker2:5; - u16 move3:11; // 2047 moves. + enum Move move3:11; // 2047 moves. u16 unused_04:5; - u16 move4:11; // 2047 moves. + enum Move move4:11; // 2047 moves. u16 unused_06:3; u16 hyperTrainedHP:1; u16 hyperTrainedAttack:1; @@ -333,27 +331,7 @@ struct Volatiles // u32 confusionTurns:3; // u32 flinched:1; // u32 uproarTurns:3; - // u32 torment:1; - // u32 bideTurns:2; - // u32 lockConfusionTurns:2; - // u32 multipleTurns:1; - // u32 wrapped:1; - // u32 powder:1; - // u32 padding:1; - // u32 infatuation:4; // one bit for each battler - // u32 defenseCurl:1; - // u32 transformed:1; - // u32 recharge:1; - // u32 rage:1; - // u32 substitute:1; - // u32 destinyBond:1; - // u32 escapePrevention:1; - // u32 nightmare:1; - // u32 cursed:1; - // u32 foresight:1; - // u32 dragonCheer:1; - // u32 focusEnergy:1; - // u32 bonusCritStages:3; + // etc. }; struct BattlePokemon @@ -364,7 +342,7 @@ struct BattlePokemon /*0x06*/ u16 speed; /*0x08*/ u16 spAttack; /*0x0A*/ u16 spDefense; - /*0x0C*/ u16 moves[MAX_MON_MOVES]; + /*0x0C*/ enum Move moves[MAX_MON_MOVES]; /*0x14*/ u32 hpIV:5; /*0x14*/ u32 attackIV:5; /*0x15*/ u32 defenseIV:5; @@ -380,7 +358,7 @@ struct BattlePokemon /*0x2B*/ u8 level; /*0x2C*/ u8 friendship; /*0x2D*/ u16 maxHP; - /*0x2F*/ u16 item; + /*0x2F*/ enum Item item; /*0x31*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x3C*/ u8 ppBonuses; /*0x3D*/ u8 otName[PLAYER_NAME_LENGTH + 1]; @@ -428,8 +406,8 @@ struct SpeciesInfo /*0xC4*/ u16 evYield_SpAttack:2; u16 evYield_SpDefense:2; u16 padding2:4; - u16 itemCommon; - u16 itemRare; + enum Item itemCommon; + enum Item itemRare; u8 genderRatio; u8 eggCycles; u8 friendship; @@ -490,7 +468,8 @@ struct SpeciesInfo /*0xC4*/ u8 pokemonJumpType:2; // According to the clerk, the Pokémon allowed in Pokémon Jump are all <= 28 inches/71 cm, and do not only swim, burrow, or fly. u8 enemyMonElevation; // This determines how much higher above the usual position the enemy Pokémon is during battle. Species that float or fly have nonzero values. // Flags - u32 isLegendary:1; + u32 isRestrictedLegendary:1; + u32 isSubLegendary:1; u32 isMythical:1; u32 isUltraBeast:1; u32 isParadox:1; @@ -507,15 +486,16 @@ struct SpeciesInfo /*0xC4*/ u32 cannotBeTraded:1; u32 perfectIVCount:3; // This species will always generate with the specified amount of perfect IVs. u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set. - u32 tmIlliterate:1; // This species will be unable to learn the universal moves. + u32 teachingType:1; // Not used in the ROM but used in compilation (check constants/teaching_types.h for explanations) u32 isFrontierBanned:1; // This species is not allowed to participate in Battle Frontier facilities. - u32 padding4:11; + u32 isSkyBattleBanned:1; + u32 padding4:9; // Shadow settings s8 enemyShadowXOffset; // This determines the X-offset for an enemy Pokémon's shadow during battle; negative values point left, positive values point right. s8 enemyShadowYOffset; // This determines the Y-offset for an enemy Pokémon's shadow during battle; negative values point up, positive values point down. u16 enemyShadowSize:3; // This determines the size of the shadow sprite used for an enemy Pokémon's front sprite during battle. u16 suppressEnemyShadow:1; // If set to true, then a shadow will not be drawn beneath an enemy Pokémon's front sprite during battle. - u16 padding5:12; + enum EggIds eggId:12; // Move Data const struct LevelUpMove *levelUpLearnset; const u16 *teachableLearnset; @@ -539,6 +519,17 @@ struct SpeciesInfo /*0xC4*/ #endif //OW_POKEMON_OBJECT_EVENTS }; +struct EggData +{ + const u8 *eggIcon; + const u32 *eggSprite; + const u16 *eggPalette; + const u32 *eggHatchGfx; + const u16 *eggHatchPal; + const u32 *eggShardsGfx; + const u8 eggIconPalIndex; +}; + struct AbilityInfo { u8 name[ABILITY_NAME_LENGTH + 1]; @@ -624,7 +615,7 @@ struct SpindaSpot struct LevelUpMove { - u16 move; + enum Move move; u16 level; }; @@ -635,6 +626,26 @@ struct FormChange u16 param1; u16 param2; u16 param3; + u16 param4; +}; + +struct FormChangeContext +{ + enum FormChanges method:16; + u16 currentSpecies; + u16 partyItemUsed; + u16 multichoiceSelection; + u16 heldItem; + u16 ability; + u16 learnedMove; + u32 status; + u16 moves[MAX_MON_MOVES]; + u16 hp; + u16 maxHP; + u32 gmaxFactor:1; + enum Type teraType; + u32 level:7; + u32 padding:8; }; enum FusionExtraMoveHandling @@ -647,7 +658,7 @@ enum FusionExtraMoveHandling struct Fusion { u16 fusionStorageIndex; - u16 itemId; + enum Item itemId; u16 targetSpecies1; u16 targetSpecies2; u16 fusingIntoMon; @@ -669,6 +680,7 @@ extern const u16 gKyuremBlackSwapMoveTable[][2]; #endif //P_FUSION_FORMS #define NUM_UNOWN_FORMS 28 +#define RANDOM_UNOWN_LETTER 0 #define GET_UNOWN_LETTER(personality) (( \ (((personality) & 0x03000000) >> 18) \ @@ -679,6 +691,16 @@ extern const u16 gKyuremBlackSwapMoveTable[][2]; #define GET_SHINY_VALUE(otId, personality) (HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality)) +struct OriginalTrainerId +{ + enum OtIdMethod method; + u32 value; +}; + +#define OTID_STRUCT_PLAYER_ID ((struct OriginalTrainerId) {OT_ID_PLAYER_ID, 0}) +#define OTID_STRUCT_PRESET(value) ((struct OriginalTrainerId) {OT_ID_PRESET, value}) +#define OTID_STRUCT_RANDOM_NO_SHINY ((struct OriginalTrainerId) {OT_ID_RANDOM_NO_SHINY, 0}) + extern u8 gPlayerPartyCount; extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern u8 gEnemyPartyCount; @@ -702,55 +724,55 @@ extern const struct SpriteTemplate gBattlerSpriteTemplates[]; extern const u32 sExpCandyExperienceTable[]; extern const struct AbilityInfo gAbilitiesInfo[]; extern const struct NatureInfo gNaturesInfo[]; -#if P_TUTOR_MOVES_ARRAY -extern const u16 gTutorMoves[]; -#endif // P_TUTOR_MOVES_ARRAY void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); void ZeroPlayerPartyMons(void); void ZeroEnemyPartyMons(void); -void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); -void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); -void CreateMonWithNature(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 nature); -void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 gender, u8 nature, u8 unownLetter); +u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter); +void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId); +void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level); +void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv); +void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId); +void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV); +void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV); void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level); void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality); -void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId); -void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread); void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src); void CreateBattleTowerMon_HandleLevel(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50); void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId); -void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId); void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerPokemon *dest); -u16 GetUnionRoomTrainerPic(void); +enum TrainerPicID GetUnionRoomTrainerPic(void); enum TrainerClassID GetUnionRoomTrainerClass(void); void CreateEnemyEventMon(void); void CalculateMonStats(struct Pokemon *mon); void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); -u16 GiveMoveToMon(struct Pokemon *mon, u16 move); -u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); -u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move); -void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot); -void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot); +u16 GiveMoveToMon(struct Pokemon *mon, enum Move move); +u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, enum Move move); +u16 GiveMoveToBattleMon(struct BattlePokemon *mon, enum Move move); +void SetMonMoveSlot(struct Pokemon *mon, enum Move move, u8 slot); +void SetBoxMonMoveSlot(struct BoxPokemon *mon, enum Move move, u8 slot); +void SetBattleMonMoveSlot(struct BattlePokemon *mon, enum Move move, u8 slot); void GiveMonInitialMoveset(struct Pokemon *mon); void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon); -u16 MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u32 level); -u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove); -void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move); -void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); -u8 CountAliveMonsInBattle(u8 caseId, u32 battler); -u8 GetDefaultMoveTarget(u8 battler); +void GiveMonDefaultMove(struct Pokemon *mon, u32 slot); +void GiveBoxMonDefaultMove(struct BoxPokemon *boxMon, u32 slot); +enum Move MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u32 level); +enum Move MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove); +void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, enum Move move); +void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, enum Move move); +u8 CountAliveMonsInBattle(u8 caseId, enum BattlerId battler); +u8 GetDefaultMoveTarget(enum BattlerId battler); u8 GetMonGender(struct Pokemon *mon); u8 GetBoxMonGender(struct BoxPokemon *boxMon); u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality); bool32 IsPersonalityFemale(u16 species, u32 personality); u32 GetUnownSpeciesId(u32 personality); -void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition); -void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerPicId, u8 battlerPosition); -void SetMultiuseSpriteTemplateToTrainerFront(u16 trainerPicId, u8 battlerPosition); +void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, enum BattlerPosition battlerPosition); +void SetMultiuseSpriteTemplateToTrainerBack(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition); +void SetMultiuseSpriteTemplateToTrainerFront(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition); /* GameFreak called Get(Box)MonData with either 2 or 3 arguments, for * type safety we have a Get(Box)MonData macro which dispatches to @@ -767,17 +789,17 @@ u32 GetBoxMonData2(struct BoxPokemon *boxMon, s32 field); void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg); void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg); void CopyMon(void *dest, void *src, size_t size); -u8 GiveMonToPlayer(struct Pokemon *mon); +u8 GiveCapturedMonToPlayer(struct Pokemon *mon); u8 CopyMonToPC(struct Pokemon *mon); u8 CalculatePlayerPartyCount(void); u8 CalculateEnemyPartyCount(void); -u8 CalculateEnemyPartyCountInSide(u32 battler); +u8 CalculateEnemyPartyCountInSide(enum BattlerId battler); u8 GetMonsStateToDoubles(void); u8 GetMonsStateToDoubles_2(void); enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum); enum Ability GetMonAbility(struct Pokemon *mon); void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord); -u8 GetSecretBaseTrainerPicIndex(void); +enum TrainerPicID GetSecretBaseTrainerPicIndex(void); enum TrainerClassID GetSecretBaseTrainerClass(void); bool8 IsPlayerPartyAndPokemonStorageFull(void); bool8 IsPokemonStorageFull(void); @@ -801,16 +823,17 @@ const u16 *GetSpeciesEggMoves(u16 species); const struct Evolution *GetSpeciesEvolutions(u16 species); const u16 *GetSpeciesFormTable(u16 species); const struct FormChange *GetSpeciesFormChanges(u16 species); -u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex); +u8 CalculatePPWithBonus(enum Move move, u8 ppBonuses, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); +void RemoveBoxMonPPBonus(struct BoxPokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst); -void CopyPartyMonToBattleData(u32 battler, u32 partyIndex); -bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); -bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 usedByAI); -bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battler); -u8 GetItemEffectParamOffset(u32 battler, u16 itemId, u8 effectByte, u8 effectBit); -u8 *UseStatIncreaseItem(u16 itemId); +void CopyPartyMonToBattleData(enum BattlerId battler, u32 partyIndex); +bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex); +bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex, u8 usedByAI); +bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, enum BattlerId battler); +u8 GetItemEffectParamOffset(enum BattlerId battler, enum Item itemId, u8 effectByte, u8 effectBit); +u8 *UseStatIncreaseItem(enum Item itemId); u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); u32 GetGMaxTargetSpecies(u32 species); @@ -818,9 +841,15 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 evolutionItem, struct Pokemon *tradePartner, bool32 *canStopEvo, enum EvoState evoState); bool8 IsMonPastEvolutionLevel(struct Pokemon *mon); u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum); +u32 NationalToRegionalOrder(enum NationalDexOrder nationalNum); +enum KantoDexOrder NationalToKantoOrder(enum NationalDexOrder nationalNum); enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum); enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species); +u32 SpeciesToRegionalPokedexNum(u16 species); +enum KantoDexOrder SpeciesToKantoPokedexNum(u16 species); enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species); +enum NationalDexOrder RegionalToNationalOrder(u32 regionNum); +enum NationalDexOrder KantoToNationalOrder(enum KantoDexOrder kantoNum); enum NationalDexOrder HoennToNationalOrder(enum HoennDexOrder hoennNum); void DrawSpindaSpots(u32 personality, u8 *dest, bool32 isSecondFrame); void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); @@ -833,23 +862,12 @@ void AdjustFriendship(struct Pokemon *mon, u8 event); u8 CalculateFriendshipBonuses(struct Pokemon *mon, u32 modifier, enum HoldEffect itemHoldEffect); void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); u16 GetMonEVCount(struct Pokemon *mon); -void RandomlyGivePartyPokerus(struct Pokemon *party); -u8 CheckPartyPokerus(struct Pokemon *party, u8 selection); -u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection); -void UpdatePartyPokerusTime(u16 days); -void PartySpreadPokerus(struct Pokemon *party); bool8 TryIncrementMonLevel(struct Pokemon *mon); -u8 CanLearnTeachableMove(u16 species, u16 move); -u32 GetRelearnerLevelUpMoves(struct Pokemon *mon, u16 *moves); -u32 GetRelearnerEggMoves(struct Pokemon *mon, u16 *moves); -u32 GetRelearnerTMMoves(struct Pokemon *mon, u16 *moves); -u32 GetRelearnerTutorMoves(struct Pokemon *mon, u16 *moves); -bool32 HasRelearnerLevelUpMoves(struct Pokemon *mon); -bool32 HasRelearnerEggMoves(struct Pokemon *mon); -bool32 HasRelearnerTMMoves(struct Pokemon *mon); -bool32 HasRelearnerTutorMoves(struct Pokemon *mon); +u8 CanLearnTeachableMove(u16 species, enum Move move); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); u16 SpeciesToPokedexNum(u16 species); +bool32 IsSpeciesInRegionalDex(u16 species); +bool32 IsSpeciesInKantoDex(u16 species); bool32 IsSpeciesInHoennDex(u16 species); u16 GetBattleBGM(void); void PlayBattleBGM(void); @@ -857,12 +875,14 @@ void PlayMapChosenOrBattleBGM(u16 songId); void CreateTask_PlayMapChosenOrBattleBGM(u16 songId); const u16 *GetMonFrontSpritePal(struct Pokemon *mon); const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality); +const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg); const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale); -bool32 IsMoveHM(u16 move); -bool32 CannotForgetMove(u16 move); +const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg); +bool32 IsMoveHM(enum Move move); +bool32 CannotForgetMove(enum Move move); bool8 IsMonSpriteNotFlipped(u16 species); -s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor); -s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor); +s8 GetMonFlavorRelation(struct Pokemon *mon, enum Flavor flavor); +s8 GetFlavorRelationByPersonality(u32 personality, enum Flavor flavor); bool8 IsTradedMon(struct Pokemon *mon); bool8 IsOtherTrainer(u32 otId, u8 *otName); void MonRestorePP(struct Pokemon *mon); @@ -877,8 +897,8 @@ void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneF void StopPokemonAnimationDelayTask(void); void BattleAnimateBackSprite(struct Sprite *sprite, u16 species); u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId); -u16 FacilityClassToPicIndex(u16 facilityClass); -u16 PlayerGenderToFrontTrainerPicId(u8 playerGender); +enum TrainerPicID FacilityClassToPicIndex(u16 facilityClass); +enum TrainerPicID PlayerGenderToFrontTrainerPicId(enum Gender playerGender); void HandleSetPokedexFlag(enum NationalDexOrder nationalNum, u8 caseId, u32 personality); void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId); bool8 HasTwoFramesAnimation(u16 species); @@ -887,14 +907,14 @@ void DestroyMonSpritesGfxManager(u8 managerId); u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum); u16 GetFormSpeciesId(u16 speciesId, u8 formId); u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); -u32 GetFormChangeTargetSpecies(struct Pokemon *mon, enum FormChanges method, u32 arg); -u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges method, u32 arg); +u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx); bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method); u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove); void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv); void TrySpecialOverworldEvo(void); bool32 SpeciesHasGenderDifferences(u16 species); -bool32 TryFormChange(u32 monId, enum BattleSide side, enum FormChanges method); +bool32 TryFormChange(struct Pokemon *mon, enum FormChanges method); +bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method); void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method); u32 GetMonFriendshipScore(struct Pokemon *pokemon); u32 GetMonAffectionHearts(struct Pokemon *pokemon); @@ -908,7 +928,7 @@ void HealPokemon(struct Pokemon *mon); void HealBoxPokemon(struct BoxPokemon *boxMon); void UpdateDaysPassedSinceFormChange(u16 days); void TrySetDayLimitToFormChange(struct Pokemon *mon); -enum Type CheckDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, enum MonState state); +enum Type CheckDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId battler, enum MonState state); uq4_12_t GetDynamaxLevelHPMultiplier(u32 dynamaxLevel, bool32 inverseMultiplier); u32 GetRegionalFormByRegion(u32 species, u32 region); bool32 IsSpeciesForeignRegionalForm(u32 species, u32 currentRegion); @@ -918,5 +938,8 @@ struct Pokemon *GetSavedPlayerPartyMon(u32 index); u8 *GetSavedPlayerPartyCount(void); void SavePlayerPartyMon(u32 index, struct Pokemon *mon); bool32 IsSpeciesOfType(u32 species, enum Type type); +struct BoxPokemon *GetSelectedBoxMonFromPcOrParty(void); +u32 GiveScriptedMonToPlayer(struct Pokemon *mon, u8 slot); +void ChangePokemonNicknameWithCallback(void (*callback)(void)); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index 8d25d3025ce4..ce53a1e6e812 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -190,6 +190,7 @@ enum AnimFunctionIDs ANIM_SHAKE_GLOW_BLACK_SLOW, ANIM_SHAKE_GLOW_WHITE_SLOW, ANIM_SHAKE_GLOW_PURPLE_SLOW, + ANIM_COUNT, }; enum BackAnim GetSpeciesBackAnimSet(u16 species); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index a16d2e2b1b38..d8dae205349c 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -4,9 +4,11 @@ extern const struct SpritePalette gMonIconPaletteTable[]; const u8 *GetMonIconTiles(u16 species, u32 personality); +const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg); void TryLoadAllMonIconPalettesAtOffset(u16 offset); u8 GetValidMonIconPalIndex(u16 species); const u8 *GetMonIconPtr(u16 species, u32 personality); +const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg); const u16 *GetValidMonIconPalettePtr(u16 species); u16 GetIconSpecies(u16 species, u32 personality); u16 GetUnownLetterByPersonality(u32 personality); @@ -15,9 +17,11 @@ void LoadMonIconPalettes(void); void LoadMonIconPalette(u16 species); void FreeMonIconPalettes(void); u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority); +u8 CreateMonIconNoPersonalityIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 isEgg); void FreeMonIconPalette(u16 species); void FreeAndDestroyMonIconSprite(struct Sprite *sprite); u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); +u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg); u8 UpdateMonIconFrame(struct Sprite *sprite); void LoadMonIconPalette(u16 species); void LoadMonIconPalettePersonality(u16 species, u32 personality); diff --git a/include/pokemon_sprite_visualizer.h b/include/pokemon_sprite_visualizer.h index 4205c6dc2003..ed7335db2eb5 100644 --- a/include/pokemon_sprite_visualizer.h +++ b/include/pokemon_sprite_visualizer.h @@ -80,12 +80,19 @@ struct PokemonSpriteVisualizer u8 animIdBack; u8 animIdFront; - u8 battleBgType; u8 battleEnvironment; + u8 moveBackground; u8 currentSubmenu; u8 submenuYpos[3]; }; +struct SubmenuText +{ + const u8 *instructions; + const u8 *instructionsGender; + const u8 *bottomLeft; +}; + void CB2_Pokemon_Sprite_Visualizer(void); diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 397ec24deabf..b80f3c2c3f42 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -43,13 +43,9 @@ u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request); void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value); u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); -void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst); -u32 GetBoxMonLevelAt(u8 boxId, u8 boxPosition); -void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick); u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst); void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src); void CopyBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *dst); -void CreateBoxMonAt(u8 boxId, u8 boxPosition, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 personality, u8 otIDType, u32 otID); void ZeroBoxMonAt(u8 boxId, u8 boxPosition); void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst); struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition); @@ -59,7 +55,7 @@ bool8 CheckFreePokemonStorageSpace(void); bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition); u32 CountStorageNonEggMons(void); u32 CountAllStorageMons(void); -bool32 AnyStorageMonWithMove(u16 move); +bool32 AnyStorageMonWithMove(enum Move move); void ResetWaldaWallpaper(void); void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked); @@ -74,7 +70,8 @@ u8 *GetWaldaPhrasePtr(void); void SetWaldaPhrase(const u8 *src); bool32 IsWaldaPhraseEmpty(void); -void EnterPokeStorage(u8 boxOption); +void ChooseMonFromStorage(); u32 CountPartyNonEggMons(void); +void RemoveSelectedPcMon(struct Pokemon *mon); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 6c4128dba416..19436483cba5 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -51,11 +51,9 @@ enum PokemonSummarySkillsMode }; void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); -void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove); -void ShowPokemonSummaryScreenHandleDeoxys(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, void (*callback)(void), u16 newMove); u8 GetMoveSlotToReplace(void); void SummaryScreen_SetAnimDelayTaskId(u8 taskId); -void ShowRelearnPrompt(void); -void TryUpdateRelearnType(enum IncrDecrUpdateValues delta); +bool32 CheckRelearnerStateFlag(enum MoveRelearnerStates state); #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/pokenav.h b/include/pokenav.h index 191355736c2e..6ffff386c5b9 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -416,7 +416,7 @@ struct PokenavMatchCallEntry *GetMatchCallList(void); mapsec_u16_t GetMatchCallMapSec(int index); bool32 ShouldDrawRematchPokeballIcon(int index); void ClearRematchPokeballIcon(u16 windowId, u32 tileOffset); -int GetMatchCallTrainerPic(int index); +enum TrainerPicID GetMatchCallTrainerPic(int index); const u8 *GetMatchCallFlavorText(int index, int checkPageEntry); const u8 *GetMatchCallMessageText(int index, bool8 *newRematchRequest); u16 GetMatchCallOptionCursorPos(void); diff --git a/include/pokerus.h b/include/pokerus.h new file mode 100644 index 000000000000..010071197ee7 --- /dev/null +++ b/include/pokerus.h @@ -0,0 +1,14 @@ +#ifndef GUARD_POKERUS_H +#define GUARD_POKERUS_H + +u32 GetDaysLeftBasedOnStrain(u32 strain); +void RandomlyGivePartyPokerus(void); +bool32 IsPokerusInParty(void); +bool32 CheckMonPokerus(struct Pokemon *mon); +bool32 CheckMonHasHadPokerus(struct Pokemon *mon); +bool32 ShouldPokemonShowActivePokerus(struct Pokemon *mon); +bool32 ShouldPokemonShowCuredPokerus(struct Pokemon *mon); +void UpdatePartyPokerusTime(u32 days); +void PartySpreadPokerus(void); + +#endif // GUARD_POKERUS_H diff --git a/include/random.h b/include/random.h index df3d1c20be6c..a472644108e1 100644 --- a/include/random.h +++ b/include/random.h @@ -127,6 +127,7 @@ enum RandomTag RNG_NONE, RNG_ACCURACY, RNG_CONFUSION, + RNG_CONFUSION_TURNS, RNG_CRITICAL_HIT, RNG_CURSED_BODY, RNG_CUTE_CHARM, @@ -170,6 +171,9 @@ enum RandomTag RNG_FOREWARN, RNG_FICKLE_BEAM, RNG_AI_ABILITY, + RNG_AI_SCORE_TIE_DOUBLES_MOVE, + RNG_AI_SCORE_TIE_DOUBLES_TARGET, + RNG_AI_SCORE_TIE_SINGLES, RNG_AI_SWITCH_HASBADODDS, RNG_AI_SWITCH_BADLY_POISONED, RNG_AI_SWITCH_CURSED, @@ -191,11 +195,15 @@ enum RandomTag RNG_AI_SWITCH_TRAPPER, RNG_AI_SWITCH_FREE_TURN, RNG_AI_SWITCH_ALL_MOVES_BAD, + RNG_AI_SWITCH_DYN_FUNC, RNG_AI_CONSERVE_TERA, RNG_AI_SWITCH_ALL_SCORES_BAD, RNG_AI_SWITCH_ABSORBING_HIDDEN_POWER, RNG_AI_PP_STALL_DISREGARD_MOVE, RNG_AI_SUCKER_PUNCH, + RNG_AI_CONSIDER_EXPLOSION, + RNG_AI_FINAL_GAMBIT, + RNG_AI_SHOULD_PIVOT_BREAK_SASH, RNG_SHELL_SIDE_ARM, RNG_RANDOM_TARGET, RNG_AI_PREDICT_ABILITY, @@ -205,8 +213,17 @@ enum RandomTag RNG_AI_BOOST_INTO_HAZE, RNG_AI_SHOULD_RECOVER, RNG_AI_PRIORITIZE_LAST_CHANCE, + RNG_AI_RANDOM_SWITCHIN_POST_KO, + RNG_AI_RANDOM_SWITCHIN_MID_BATTLE, + RNG_AI_RANDOM_VALID_SWITCHIN_POST_KO, + RNG_AI_RANDOM_VALID_SWITCHIN_MID_BATTLE, RNG_HEALER, RNG_DEXNAV_ENCOUNTER_LEVEL, + RNG_POKERUS_PARTY_MEMBER, + RNG_POKERUS_INFECTION, + RNG_POKERUS_STRAIN_DISTRIBUTION, + RNG_POKERUS_SPREAD, + RNG_POKERUS_SPREAD_SIDE, RNG_AI_ASSUME_STATUS_SLEEP, RNG_AI_ASSUME_STATUS_NONVOLATILE, RNG_AI_ASSUME_STATUS_HIGH_ODDS, @@ -223,11 +240,13 @@ enum RandomTag RNG_MAGNITUDE, RNG_FISHING_BITE, RNG_FISHING_GEN3_STICKY, + RNG_WILD_MON_TARGET, + RNG_TAUNT, }; #define RandomWeighted(tag, ...) \ ({ \ - const u8 weights[] = { __VA_ARGS__ }; \ + const u16 weights[] = { __VA_ARGS__ }; \ u32 sum, i; \ for (i = 0, sum = 0; i < ARRAY_COUNT(weights); i++) \ sum += weights[i]; \ @@ -249,7 +268,7 @@ enum RandomTag } \ else \ { \ - const u8 weights[] = { 100 - t, t }; \ + const u16 weights[] = { 100 - t, t }; \ r = RandomWeightedArray(tag, 100, ARRAY_COUNT(weights), weights); \ } \ r; \ @@ -262,21 +281,24 @@ enum RandomTag u32 RandomUniform(enum RandomTag, u32 lo, u32 hi); u32 RandomUniformExcept(enum RandomTag, u32 lo, u32 hi, bool32 (*reject)(u32)); -u32 RandomWeightedArray(enum RandomTag, u32 sum, u32 n, const u8 *weights); +u32 RandomWeightedArray(enum RandomTag, u32 sum, u32 n, const u16 *weights); const void *RandomElementArray(enum RandomTag, const void *array, size_t size, size_t count); u32 RandomUniformDefault(enum RandomTag, u32 lo, u32 hi); u32 RandomUniformExceptDefault(enum RandomTag, u32 lo, u32 hi, bool32 (*reject)(u32)); -u32 RandomWeightedArrayDefault(enum RandomTag, u32 sum, u32 n, const u8 *weights); +u32 RandomWeightedArrayDefault(enum RandomTag, u32 sum, u32 n, const u16 *weights); const void *RandomElementArrayDefault(enum RandomTag, const void *array, size_t size, size_t count); u8 RandomWeightedIndex(u8 *weights, u8 length); +u32 RandomBit(enum RandomTag tag, u32 bits); +u32 RandomBitIndex(enum RandomTag tag, u32 bits); + #if TESTING u32 RandomUniformTrials(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32), void *caller); u32 RandomUniformDefaultValue(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32), void *caller); -u32 RandomWeightedArrayTrials(enum RandomTag tag, u32 sum, u32 n, const u8 *weights, void *caller); -u32 RandomWeightedArrayDefaultValue(enum RandomTag tag, u32 n, const u8 *weights, void *caller); +u32 RandomWeightedArrayTrials(enum RandomTag tag, u32 sum, u32 n, const u16 *weights, void *caller); +u32 RandomWeightedArrayDefaultValue(enum RandomTag tag, u32 n, const u16 *weights, void *caller); const void *RandomElementArrayTrials(enum RandomTag tag, const void *array, size_t size, size_t count, void *caller); const void *RandomElementArrayDefaultValue(enum RandomTag tag, const void *array, size_t size, size_t count, void *caller); #endif diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 787cf4606c0b..5c36b81b7ed9 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -60,9 +60,9 @@ extern u8 gRecordedBattleMultiplayerId; void RecordedBattle_Init(u8 mode); void RecordedBattle_SetTrainerInfo(void); -void RecordedBattle_SetBattlerAction(u8 battler, u8 action); -void RecordedBattle_ClearBattlerAction(u8 battler, u8 bytesToClear); -u8 RecordedBattle_GetBattlerAction(u32 actionType, u8 battler); +void RecordedBattle_SetBattlerAction(enum BattlerId battler, u8 action); +void RecordedBattle_ClearBattlerAction(enum BattlerId battler, u8 bytesToClear); +u8 RecordedBattle_GetBattlerAction(u32 actionType, enum BattlerId battler); u8 RecordedBattle_BufferNewBattlerData(u8 *dst); void RecordedBattle_RecordAllBattlerData(u8 *src); bool32 CanCopyRecordedBattleSaveData(void); @@ -73,15 +73,15 @@ void PlayRecordedBattle(void (*CB2_After)(void)); u8 GetRecordedBattleFrontierFacility(void); u8 GetRecordedBattleFronterBrainSymbol(void); void RecordedBattle_SaveParties(void); -u8 GetBattlerLinkPlayerGender(u32 battler); +u8 GetBattlerLinkPlayerGender(enum BattlerId battler); void RecordedBattle_ClearFrontierPassFlag(void); void RecordedBattle_SetFrontierPassFlagFromHword(u16 flags); u8 RecordedBattle_GetFrontierPassFlag(void); u8 GetBattleSceneInRecordedBattle(void); u8 GetTextSpeedInRecordedBattle(void); -void RecordedBattle_CopyBattlerMoves(u32 battler); +void RecordedBattle_CopyBattlerMoves(enum BattlerId battler); void RecordedBattle_CheckMovesetChanges(u8 mode); -u64 GetAiScriptsInRecordedBattle(u32 battler); +u64 GetAiScriptsInRecordedBattle(enum BattlerId battler); void RecordedBattle_SetPlaybackFinished(void); bool8 RecordedBattle_CanStopPlayback(void); void GetRecordedBattleRecordMixFriendName(u8 *dst); diff --git a/include/region_map.h b/include/region_map.h index 571acbf3512f..5217006ba673 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -6,6 +6,15 @@ // Exported type declarations #define MAP_NAME_LENGTH 16 +enum RegionMapType +{ + REGION_MAP_HOENN, + REGION_MAP_KANTO, + REGION_MAP_SEVII123, + REGION_MAP_SEVII45, + REGION_MAP_SEVII67 +}; + enum { MAP_INPUT_NONE, @@ -26,6 +35,17 @@ enum { NUM_MAPSEC_TYPES }; +struct RegionMapInfo +{ + const u32 *dexMapTilemap; + const u32 *dexMapGfx; + const u16 *dexMapPalette; + const u32 *regionMapTilemap; + const u32 *regionMapGfx; + const u16 *regionMapPalette; + u16 dexMapPaletteSize; +}; + struct RegionMap { /*0x000*/ mapsec_u16_t mapSecId; /*0x002*/ u8 mapSecType; @@ -115,11 +135,13 @@ bool8 IsRegionMapZoomed(void); void TrySetPlayerIconBlink(void); void BlendRegionMap(u16 color, u32 coeff); void SetRegionMapDataForZoom(void); +enum RegionMapType GetRegionMapType(u32 mapSecId); //Pokenav Fly funcs u32 FilterFlyDestination(struct RegionMap* regionMap); void SetFlyDestination(struct RegionMap* regionMap); extern const struct RegionMapLocation gRegionMapEntries[]; +extern const struct RegionMapInfo gRegionMapInfos[]; #endif //GUARD_REGION_MAP_H diff --git a/include/regions.h b/include/regions.h index 2f44896ea2b0..bfe680f54c79 100644 --- a/include/regions.h +++ b/include/regions.h @@ -1,12 +1,21 @@ #ifndef GUARD_REGIONS_H #define GUARD_REGIONS_H +#include "global.h" #include "constants/regions.h" -static inline u32 GetCurrentRegion(void) +enum KantoSubRegion GetKantoSubregion(u32 mapSecId); + +static inline enum Region GetRegionForSectionId(u32 sectionId) { - // TODO: Since there's no current multi-region support, we have this constant for the purposes of regional form comparisons. + if (sectionId >= KANTO_MAPSEC_START && sectionId < MAPSEC_SPECIAL_AREA) + return REGION_KANTO; return REGION_HOENN; } +static inline enum Region GetCurrentRegion(void) +{ + return GetRegionForSectionId(gMapHeader.regionMapSectionId); +} + #endif // GUARD_REGIONS_H diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h index 59f9c7910696..a772cbb2a697 100644 --- a/include/reshow_battle_screen.h +++ b/include/reshow_battle_screen.h @@ -4,6 +4,6 @@ void ReshowBattleScreenDummy(void); void ReshowBattleScreenAfterMenu(void); void ReshowBlankBattleScreenAfterMenu(void); -void CreateBattlerSprite(u32 battler); +void CreateBattlerSprite(enum BattlerId battler); #endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/include/rogue_voltorbflip.h b/include/rogue_voltorbflip.h new file mode 100644 index 000000000000..b68144bf3c44 --- /dev/null +++ b/include/rogue_voltorbflip.h @@ -0,0 +1,6 @@ +#ifndef GUARD_ROGUE_VOLTORB_FLIP_H +#define GUARD_ROGUE_VOLTORB_FLIP_H + +void CB2_ShowVoltorbFlip(void); + +#endif // GUARD_DIPLOMA_H diff --git a/include/rotating_gate.h b/include/rotating_gate.h index 3829edab4a0d..479db4a09bab 100644 --- a/include/rotating_gate.h +++ b/include/rotating_gate.h @@ -3,7 +3,7 @@ void RotatingGatePuzzleCameraUpdate(s16 deltaX, s16 deltaY); void RotatingGate_InitPuzzleAndGraphics(void); -bool32 CheckForRotatingGatePuzzleCollision(u8 direction, s16 x, s16 y); -bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8 direction, s16 x, s16 y); +bool32 CheckForRotatingGatePuzzleCollision(enum Direction direction, s16 x, s16 y); +bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(enum Direction direction, s16 x, s16 y); #endif // GUARD_ROTATING_GATE_H diff --git a/include/safari_zone.h b/include/safari_zone.h index 5336c81057b7..345fa84fdb36 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -2,6 +2,7 @@ #define GUARD_SAFARI_ZONE_H extern u8 gNumSafariBalls; +extern u16 gSafariZoneStepCounter; bool32 GetSafariZoneFlag(void); void SetSafariZoneFlag(void); diff --git a/include/script.h b/include/script.h index 4fc2189035ad..dac7afe3379b 100644 --- a/include/script.h +++ b/include/script.h @@ -11,7 +11,8 @@ struct ScriptContext u8 stackDepth; u8 mode; u8 comparisonResult; - bool8 breakOnTrainerBattle; + bool8 breakOnTrainerBattle:1; + bool8 waitAfterCallNative:1; u8 (*nativePtr)(void); const u8 *scriptPtr; const u8 *stack[20]; @@ -31,6 +32,7 @@ void ScriptJump(struct ScriptContext *ctx, const u8 *ptr); void ScriptCall(struct ScriptContext *ctx, const u8 *ptr); void ScriptReturn(struct ScriptContext *ctx); u16 ScriptReadHalfword(struct ScriptContext *ctx); +u16 ScriptPeekHalfword(struct ScriptContext *ctx); u32 ScriptReadWord(struct ScriptContext *ctx); u32 ScriptPeekWord(struct ScriptContext *ctx); void LockPlayerFieldControls(void); @@ -62,6 +64,9 @@ bool32 ValidateSavedRamScript(void); u8 *GetSavedRamScriptIfValid(void); void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize); +bool32 Script_MatchesCallNative(const u8 *script, void *funcPtr, bool32 requestEffects); +bool32 Script_MatchesSpecial(const u8 *script, void *funcPtr); + // srccmd.h void SetMovingNpcId(u16 npcId); diff --git a/include/script_movement.h b/include/script_movement.h index 03f8bf0b7600..db1abdd93649 100644 --- a/include/script_movement.h +++ b/include/script_movement.h @@ -3,6 +3,7 @@ bool8 ScriptMovement_StartObjectMovementScript(u8 localId, u8 mapNum, u8 mapGroup, const u8 *movementScript); bool8 ScriptMovement_IsObjectMovementFinished(u8 localId, u8 mapNum, u8 mapGroup); +bool32 ScriptMovement_IsAllObjectMovementFinished(void); void ScriptMovement_UnfreezeObjectEvents(void); #endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h index 050bc0ed32da..45735ac2a34c 100644 --- a/include/script_pokemon_util.h +++ b/include/script_pokemon_util.h @@ -1,11 +1,11 @@ #ifndef GUARD_SCRIPT_POKEMON_UTIL_H #define GUARD_SCRIPT_POKEMON_UTIL_H -u32 ScriptGiveMon(u16 species, u8 level, u16 item); +u32 ScriptGiveMon(u16 species, u8 level, enum Item item); u8 ScriptGiveEgg(u16 species); -void CreateScriptedWildMon(u16 species, u8 level, u16 item); -void CreateScriptedDoubleWildMon(u16 species, u8 level, u16 item, u16 species2, u8 level2, u16 item2); -void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot); +void CreateScriptedWildMon(u16 species, u8 level, enum Item item); +void CreateScriptedDoubleWildMon(u16 species, u8 level, enum Item item, u16 species2, u8 level2, enum Item item2); +void ScriptSetMonMoveSlot(u8 monIndex, enum Move move, u8 slot); void ReducePlayerPartyToSelectedMons(void); void HealPlayerParty(void); void Script_GetChosenMonOffensiveEVs(void); diff --git a/include/snake.h b/include/snake.h new file mode 100644 index 000000000000..19c1001979c3 --- /dev/null +++ b/include/snake.h @@ -0,0 +1,7 @@ +#ifndef GUARD_SNAKE_H +#define GUARD_SNAKE_H + +void StartSnake(void); +static void SnakeMainCallback(void); + +#endif // GUARD_SNAKE_H diff --git a/include/sprite.h b/include/sprite.h index 791907505319..b584e5a96bfb 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -249,6 +249,13 @@ struct OamMatrix s16 d; }; +struct OamDimensions +{ + s8 width; + s8 height; +}; + +extern const struct OamDimensions gOamDimensions[3][4]; extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; @@ -325,5 +332,12 @@ u32 GetSpanPerImage(u32 shape, u32 size); void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFrameImage *images); void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip); u8 IndexOfSpriteTileTag(u16 tag); +void FillSpriteRectColor(u32 spriteId, u32 left, u32 top, u32 width, u32 height, u32 color); +void FillSpriteRectSprite(u32 spriteId, u32 left, u32 top, u32 width, u32 height); +void FillSpriteRectSpriteWithSprite(u32 spriteId, u32 left, u32 top, u32 width, u32 height, u32 *sprite); +void SetupSpritesForTextPrinting(u8 *spriteIds, const u32 **spriteSrc, u32 numSpritesX, u32 numSpritesY); +u32 *GetSrcPtrFromSprite(struct Sprite *sprite); +u32 GetSpriteWidth(struct Sprite *sprite); +u32 GetSpriteHeight(struct Sprite *sprite); #endif //GUARD_SPRITE_H diff --git a/include/string_util.h b/include/string_util.h index d4c954bc5e95..22ca8f07085f 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -1,6 +1,8 @@ #ifndef GUARD_STRING_UTIL_H #define GUARD_STRING_UTIL_H +#include "constants/global.h" + extern u8 gStringVar1[0x100]; extern u8 gStringVar2[0x100]; extern u8 gStringVar3[0x100]; @@ -13,6 +15,15 @@ enum StringConvertMode STR_CONV_MODE_LEADING_ZEROS }; +enum TextColorType +{ + TEXT_COLOR_TYPE_FOREGROUND = 0, + TEXT_COLOR_TYPE_SHADOW, + TEXT_COLOR_TYPE_HIGHLIGHT, // do not use, only kept for compatibility + TEXT_COLOR_TYPE_ACCENT, + TEXT_COLOR_TYPE_BACKGROUND, +}; + u8 *StringCopy_Nickname(u8 *dest, const u8 *src); u8 *StringGet_Nickname(u8 *str); u8 *StringCopy_PlayerName(u8 *dest, const u8 *src); @@ -36,13 +47,14 @@ u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n); u8 *StringFillWithTerminator(u8 *dest, u16 n); u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n); u32 StringLength_Multibyte(const u8 *str); -u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color); +u8 *WriteColorChangeControlCode(u8 *dest, enum TextColorType colorType, u8 color); bool32 IsStringJapanese(u8 *str); bool32 IsStringNJapanese(u8 *str, s32 n); u8 GetExtCtrlCodeLength(u8 code); s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); -void ConvertInternationalString(u8 *s, u8 language); +void ConvertInternationalString(u8 *s, enum Language language); void StripExtCtrlCodes(u8 *str); u8 *StringCopyUppercase(u8 *dest, const u8 *src); +bool32 DoesStringProperlyTerminate(const u8 *str, u32 last); #endif // GUARD_STRING_UTIL_H diff --git a/include/strings.h b/include/strings.h index a9264b69fda8..03a716637be3 100644 --- a/include/strings.h +++ b/include/strings.h @@ -16,8 +16,8 @@ extern const u8 gText_ExpandedPlaceholder_Kyogre[]; extern const u8 gText_ExpandedPlaceholder_Groudon[]; extern const u8 gText_ExpandedPlaceholder_Brendan[]; extern const u8 gText_ExpandedPlaceholder_May[]; - -extern const u8 gText_FromSpace[]; +extern const u8 gText_ExpandedPlaceholder_Red[]; +extern const u8 gText_ExpandedPlaceholder_Green[]; extern const u8 gText_Lv50[]; extern const u8 gText_OpenLevel[]; @@ -25,12 +25,6 @@ extern const u8 gText_OpenLevel[]; extern const u8 gText_Mom[]; extern const u8 gText_Dad[]; -extern const u8 gText_GetsAPokeBlockQuestion[]; -extern const u8 gText_WontEatAnymore[]; -extern const u8 gText_WasEnhanced[]; -extern const u8 gText_NothingChanged[]; -extern const u8 gText_NatureSlash[]; - extern const u8 gText_Cool[]; extern const u8 gText_Beauty[]; extern const u8 gText_Cute[]; @@ -61,6 +55,8 @@ extern const u8 gText_MultiLink[]; extern const u8 gText_Single[]; extern const u8 gText_Double[]; +extern const u8 gText_Knockout[]; +extern const u8 gText_Mixed[]; extern const u8 gText_Spicy2[]; extern const u8 gText_Dry2[]; @@ -68,36 +64,6 @@ extern const u8 gText_Sweet2[]; extern const u8 gText_Bitter2[]; extern const u8 gText_Sour2[]; -extern const u8 gText_Excellent[]; -extern const u8 gText_VeryGood[]; -extern const u8 gText_Good[]; -extern const u8 gText_SoSo[]; -extern const u8 gText_Bad[]; -extern const u8 gText_TheWorst[]; - -extern const u8 Roulette_Text_ControlsInstruction[]; -extern const u8 Roulette_Text_KeepPlaying[]; -extern const u8 Roulette_Text_Jackpot[]; -extern const u8 Roulette_Text_ItsAHit[]; -extern const u8 Roulette_Text_NothingDoing[]; -extern const u8 Roulette_Text_YouveWonXCoins[]; -extern const u8 Roulette_Text_BoardWillBeCleared[]; -extern const u8 Roulette_Text_CoinCaseIsFull[]; -extern const u8 Roulette_Text_NoCoinsLeft[]; -extern const u8 Roulette_Text_PlayMinimumWagerIsX[]; -extern const u8 Roulette_Text_SpecialRateTable[]; -extern const u8 Roulette_Text_NotEnoughCoins[]; - -extern const u8 gText_Slots[]; -extern const u8 gText_Roulette[]; -extern const u8 gText_Jackpot[]; - -extern const u8 gText_YouDontHaveThreeCoins[]; -extern const u8 gText_QuitTheGame[]; -extern const u8 gText_YouveGot9999Coins[]; -extern const u8 gText_YouveRunOutOfCoins[]; -extern const u8 gText_ReelTimeHelp[]; - extern const u8 gText_First[]; extern const u8 gText_Second[]; extern const u8 gText_Third[]; @@ -145,6 +111,7 @@ extern const u8 gText_Decorate[]; extern const u8 gText_PutAway[]; extern const u8 gText_Toss2[]; extern const u8 gText_Hoenn[]; +extern const u8 gText_Kanto[]; extern const u8 gText_Ferry[]; extern const u8 gText_SecretBase[]; extern const u8 gText_Hideout[]; @@ -219,6 +186,7 @@ extern const u8 gText_Floor6[]; extern const u8 gText_Floor7[]; extern const u8 gText_Peak[]; extern const u8 gText_SafariBallStock[]; +extern const u8 gText_MenuSafariStats[]; extern const u8 gText_BattlePyramidFloor[]; extern const u8 gText_MenuOptionPokedex[]; @@ -348,6 +316,7 @@ extern const u8 gText_PkmnAlreadyKnows[]; extern const u8 gText_PkmnCantLearnMove[]; extern const u8 gText_PkmnNeedsToReplaceMove[]; extern const u8 gText_PkmnLearnedMove3[]; +extern const u8 gText_PkmnLearnedMove4[]; extern const u8 gText_WhichMoveToForget[]; extern const u8 gText_12PoofForgotMove[]; extern const u8 gText_StopLearningMove2[]; @@ -436,19 +405,12 @@ extern const u8 gText_ThrewAwayVar2Var1s[]; extern const u8 gText_ConfirmTossItems[]; extern const u8 gText_MoveVar1Where[]; -extern const u8 gText_ColorLightShadowDarkGray[]; -extern const u8 gText_ColorBlue[]; extern const u8 gText_Friend[]; -extern const u8 gText_Tristan[]; -extern const u8 gText_Philip[]; -extern const u8 gText_Dennis[]; -extern const u8 gText_Roberto[]; extern const u8 gText_FiveMarks[]; extern const u8 gText_TotalRecordWLD[]; extern const u8 gText_PlayersBattleResults[]; extern const u8 gText_WinLoseDraw[]; -extern const u8 gText_ColorTransparent[]; extern const u8 gText_Slash[]; extern const u8 gText_HealthboxNickname[]; extern const u8 gText_HealthboxGender_None[]; @@ -618,13 +580,6 @@ extern const u8 BattleFrontier_Lounge7_Text_FirePunchDesc[]; extern const u8 gText_YourPartnerHasRetired[]; -extern const u8 gText_Wallace[]; -extern const u8 gText_Steven[]; -extern const u8 gText_Brawly[]; -extern const u8 gText_Winona[]; -extern const u8 gText_Phoebe[]; -extern const u8 gText_Glacia[]; - extern const u8 gText_MoveRelearnerPkmnLearnedMove[]; extern const u8 gText_MoveRelearnerPkmnTryingToLearnMove[]; extern const u8 gText_MoveRelearnerWhichMoveToForget[]; @@ -642,13 +597,6 @@ extern const u8 gText_MoveRelearnerContestMovesTitle[]; extern const u8 gText_MoveRelearnerAppeal[]; extern const u8 gText_MoveRelearnerJam[]; -extern const u8 gText_Kira[]; -extern const u8 gText_Amy[]; -extern const u8 gText_John[]; -extern const u8 gText_Roy[]; -extern const u8 gText_Gabby[]; -extern const u8 gText_Anna[]; - extern const u8 gText_DadsAdvice[]; extern const u8 gText_PlayerUsedVar2[]; extern const u8 gText_RepelEffectsLingered[]; @@ -742,14 +690,10 @@ extern const u8 gText_ShopQuit[]; extern const u8 gText_ThatItemIsSoldOut[]; extern const u8 gText_SoldOut[]; -extern const u8 gText_OhABite[]; -extern const u8 gText_PokemonOnHook[]; -extern const u8 gText_NotEvenANibble[]; -extern const u8 gText_ItGotAway[]; - extern const u8 gText_HallOfFame[]; extern const u8 gText_LogOff[]; extern const u8 gText_LanettesPC[]; +extern const u8 gText_BillsPc[]; extern const u8 gText_SomeonesPC[]; extern const u8 gText_PlayersPC[]; extern const u8 gText_WhichPCShouldBeAccessed[]; @@ -859,7 +803,7 @@ extern const u8 CableClub_Text_YouMayBattleHere[]; extern const u8 CableClub_Text_CanMixRecords[]; extern const u8 CableClub_Text_CanMakeBerryPowder[]; -// Frontier records. +// Frontier records extern const u8 gText_WinStreak[]; extern const u8 gText_Record[]; extern const u8 gText_Current[]; @@ -921,7 +865,7 @@ extern const u8 gText_FrontierFacilityTotalCaughtSpeciesBanned[]; extern const u8 gText_FrontierFacilityIncluding[]; extern const u8 gText_FrontierFacilityAreInelegible[]; -// Battle Tower. +// Battle Tower extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Intro[]; extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Mon1[]; extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_Apprentice1Mon2Ask[]; @@ -1253,123 +1197,7 @@ extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMMon2Ask[ extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMAccept[]; extern const u8 BattleFrontier_BattleTowerMultiPartnerRoom_Text_SwimmerMReject[]; -// Battle Dome. -extern const u8 BattleDome_Text_Potential1[]; -extern const u8 BattleDome_Text_Potential2[]; -extern const u8 BattleDome_Text_Potential3[]; -extern const u8 BattleDome_Text_Potential4[]; -extern const u8 BattleDome_Text_Potential5[]; -extern const u8 BattleDome_Text_Potential6[]; -extern const u8 BattleDome_Text_Potential7[]; -extern const u8 BattleDome_Text_Potential8[]; -extern const u8 BattleDome_Text_Potential9[]; -extern const u8 BattleDome_Text_Potential10[]; -extern const u8 BattleDome_Text_Potential11[]; -extern const u8 BattleDome_Text_Potential12[]; -extern const u8 BattleDome_Text_Potential13[]; -extern const u8 BattleDome_Text_Potential14[]; -extern const u8 BattleDome_Text_Potential15[]; -extern const u8 BattleDome_Text_Potential16[]; -extern const u8 BattleDome_Text_PotentialDomeAceTucker[]; -extern const u8 BattleDome_Text_StyleRiskDisaster[]; -extern const u8 BattleDome_Text_StyleEndureLongBattles[]; -extern const u8 BattleDome_Text_StyleVariesTactics[]; -extern const u8 BattleDome_Text_StyleToughWinningPattern[]; -extern const u8 BattleDome_Text_StyleUsesVeryRareMove[]; -extern const u8 BattleDome_Text_StyleUsesStartlingMoves[]; -extern const u8 BattleDome_Text_StyleConstantlyWatchesHP[]; -extern const u8 BattleDome_Text_StyleStoresAndLoosesPower[]; -extern const u8 BattleDome_Text_StyleEnfeeblesFoes[]; -extern const u8 BattleDome_Text_StylePrefersLuckTactics[]; -extern const u8 BattleDome_Text_StyleRegalAtmosphere[]; -extern const u8 BattleDome_Text_StylePowerfulLowPPMoves[]; -extern const u8 BattleDome_Text_StyleEnfeebleThenAttack[]; -extern const u8 BattleDome_Text_StyleBattlesWhileEnduring[]; -extern const u8 BattleDome_Text_StyleUpsetsFoesEmotionally[]; -extern const u8 BattleDome_Text_StyleStrongAndStraightforward[]; -extern const u8 BattleDome_Text_StyleAggressivelyStrongMoves[]; -extern const u8 BattleDome_Text_StyleCleverlyDodgesAttacks[]; -extern const u8 BattleDome_Text_StyleUsesUpsettingMoves[]; -extern const u8 BattleDome_Text_StyleUsesPopularMoves[]; -extern const u8 BattleDome_Text_StyleHasPowerfulComboMoves[]; -extern const u8 BattleDome_Text_StyleUsesHighProbabilityMoves[]; -extern const u8 BattleDome_Text_StyleAggressivelySpectacularMoves[]; -extern const u8 BattleDome_Text_StyleEmphasizesOffenseOverDefense[]; -extern const u8 BattleDome_Text_StyleEmphasizesDefenseOverOffense[]; -extern const u8 BattleDome_Text_StyleAttacksQuicklyStrongMoves[]; -extern const u8 BattleDome_Text_StyleUsesAddedEffectMoves[]; -extern const u8 BattleDome_Text_StyleUsesBalancedMixOfMoves[]; -extern const u8 BattleDome_Text_StyleSampleMessage1[]; -extern const u8 BattleDome_Text_StyleSampleMessage2[]; -extern const u8 BattleDome_Text_StyleSampleMessage3[]; -extern const u8 BattleDome_Text_StyleSampleMessage4[]; -extern const u8 BattleDome_Text_EmphasizesHPAndAtk[]; -extern const u8 BattleDome_Text_EmphasizesHPAndDef[]; -extern const u8 BattleDome_Text_EmphasizesHPAndSpeed[]; -extern const u8 BattleDome_Text_EmphasizesHPAndSpAtk[]; -extern const u8 BattleDome_Text_EmphasizesHPAndSpDef[]; -extern const u8 BattleDome_Text_EmphasizesAtkAndDef[]; -extern const u8 BattleDome_Text_EmphasizesAtkAndSpeed[]; -extern const u8 BattleDome_Text_EmphasizesAtkAndSpAtk[]; -extern const u8 BattleDome_Text_EmphasizesAtkAndSpDef[]; -extern const u8 BattleDome_Text_EmphasizesDefAndSpeed[]; -extern const u8 BattleDome_Text_EmphasizesDefAndSpAtk[]; -extern const u8 BattleDome_Text_EmphasizesDefAndSpDef[]; -extern const u8 BattleDome_Text_EmphasizesSpeedAndSpAtk[]; -extern const u8 BattleDome_Text_EmphasizesSpeedAndSpDef[]; -extern const u8 BattleDome_Text_EmphasizesSpAtkAndSpDef[]; -extern const u8 BattleDome_Text_EmphasizesHP[]; -extern const u8 BattleDome_Text_EmphasizesAtk[]; -extern const u8 BattleDome_Text_EmphasizesDef[]; -extern const u8 BattleDome_Text_EmphasizesSpeed[]; -extern const u8 BattleDome_Text_EmphasizesSpAtk[]; -extern const u8 BattleDome_Text_EmphasizesSpDef[]; -extern const u8 BattleDome_Text_NeglectsHPAndAtk[]; -extern const u8 BattleDome_Text_NeglectsHPAndDef[]; -extern const u8 BattleDome_Text_NeglectsHPAndSpeed[]; -extern const u8 BattleDome_Text_NeglectsHPAndSpAtk[]; -extern const u8 BattleDome_Text_NeglectsHPAndSpDef[]; -extern const u8 BattleDome_Text_NeglectsAtkAndDef[]; -extern const u8 BattleDome_Text_NeglectsAtkAndSpeed[]; -extern const u8 BattleDome_Text_NeglectsAtkAndSpAtk[]; -extern const u8 BattleDome_Text_NeglectsAtkAndSpDef[]; -extern const u8 BattleDome_Text_NeglectsDefAndSpeed[]; -extern const u8 BattleDome_Text_NeglectsDefAndSpAtk[]; -extern const u8 BattleDome_Text_NeglectsDefAndSpDef[]; -extern const u8 BattleDome_Text_NeglectsSpeedAndSpAtk[]; -extern const u8 BattleDome_Text_NeglectsSpeedAndSpDef[]; -extern const u8 BattleDome_Text_NeglectsSpAtkAndSpDef[]; -extern const u8 BattleDome_Text_NeglectsHP[]; -extern const u8 BattleDome_Text_NeglectsAtk[]; -extern const u8 BattleDome_Text_NeglectsDef[]; -extern const u8 BattleDome_Text_NeglectsSpeed[]; -extern const u8 BattleDome_Text_NeglectsSpAtk[]; -extern const u8 BattleDome_Text_NeglectsSpDef[]; -extern const u8 BattleDome_Text_RaisesMonsWellBalanced[]; -extern const u8 BattleDome_Text_Round1Match1[]; -extern const u8 BattleDome_Text_Round1Match2[]; -extern const u8 BattleDome_Text_Round1Match3[]; -extern const u8 BattleDome_Text_Round1Match4[]; -extern const u8 BattleDome_Text_Round1Match5[]; -extern const u8 BattleDome_Text_Round1Match6[]; -extern const u8 BattleDome_Text_Round1Match7[]; -extern const u8 BattleDome_Text_Round1Match8[]; -extern const u8 BattleDome_Text_Round2Match1[]; -extern const u8 BattleDome_Text_Round2Match2[]; -extern const u8 BattleDome_Text_Round2Match3[]; -extern const u8 BattleDome_Text_Round2Match4[]; -extern const u8 BattleDome_Text_SemifinalMatch1[]; -extern const u8 BattleDome_Text_SemifinalMatch2[]; -extern const u8 BattleDome_Text_FinalMatch[]; -extern const u8 BattleDome_Text_LetTheBattleBegin[]; -extern const u8 BattleDome_Text_TrainerWonUsingMove[]; -extern const u8 BattleDome_Text_TrainerBecameChamp[]; -extern const u8 BattleDome_Text_TrainerWonByDefault[]; -extern const u8 BattleDome_Text_TrainerWonOutrightByDefault[]; -extern const u8 BattleDome_Text_TrainerWonNoMoves[]; -extern const u8 BattleDome_Text_TrainerWonOutrightNoMoves[]; - -// Battle Pyramid. +// Battle Pyramid extern const u8 BattlePyramid_Text_ExitHintUp1[]; extern const u8 BattlePyramid_Text_ExitHintLeft1[]; extern const u8 BattlePyramid_Text_ExitHintRight1[]; @@ -2065,28 +1893,6 @@ extern const u8 gText_Cancel5[]; extern const u8 gText_Ok2[]; extern const u8 gText_Quiz[]; extern const u8 gText_Answer[]; -extern const u8 gEasyChatGroupName_Pokemon[]; -extern const u8 gEasyChatGroupName_Trainer[]; -extern const u8 gEasyChatGroupName_Status[]; -extern const u8 gEasyChatGroupName_Battle[]; -extern const u8 gEasyChatGroupName_Greetings[]; -extern const u8 gEasyChatGroupName_People[]; -extern const u8 gEasyChatGroupName_Voices[]; -extern const u8 gEasyChatGroupName_Speech[]; -extern const u8 gEasyChatGroupName_Endings[]; -extern const u8 gEasyChatGroupName_Feelings[]; -extern const u8 gEasyChatGroupName_Conditions[]; -extern const u8 gEasyChatGroupName_Actions[]; -extern const u8 gEasyChatGroupName_Lifestyle[]; -extern const u8 gEasyChatGroupName_Hobbies[]; -extern const u8 gEasyChatGroupName_Time[]; -extern const u8 gEasyChatGroupName_Misc[]; -extern const u8 gEasyChatGroupName_Adjectives[]; -extern const u8 gEasyChatGroupName_Events[]; -extern const u8 gEasyChatGroupName_Move1[]; -extern const u8 gEasyChatGroupName_Move2[]; -extern const u8 gEasyChatGroupName_TrendySaying[]; -extern const u8 gEasyChatGroupName_Pokemon2[]; // Text Input Strings extern const u8 gText_EasyChatKeyboard_ABCDEFothers[]; @@ -2280,7 +2086,7 @@ extern const u8 gText_WantToPlayAgain[]; extern const u8 gText_CommunicationStandby3[]; extern const u8 gText_SomeoneDroppedOut[]; -// Pokémon jump +// Pokémon Jump extern const u8 gText_WantToPlayAgain2[]; extern const u8 gText_SomeoneDroppedOut2[]; extern const u8 gText_CommunicationStandby4[]; @@ -2343,11 +2149,6 @@ extern const u8 gText_Smartness[]; extern const u8 gText_Cuteness[]; extern const u8 gText_Beauty3[]; -// Berry Blender -extern const u8 gText_SavingDontTurnOff2[]; -extern const u8 gText_BlenderMaxSpeedRecord[]; -extern const u8 gText_234Players[]; - // Battle Factory Screen extern const u8 gText_RentalPkmn2[]; extern const u8 gText_SelectFirstPkmn[]; @@ -2375,44 +2176,31 @@ extern const u8 gText_PkmnForSwap[]; extern const u8 gText_SamePkmnInPartyAlready[]; extern const u8 gText_Cancel3[]; -// Naming Screen -extern const u8 gText_MoveOkBack[]; -extern const u8 gText_YourName[]; -extern const u8 gText_BoxName[]; -extern const u8 gText_PkmnsNickname[]; -extern const u8 gText_TellHimTheWords[]; - // Exp. Share extern const u8 gText_ExpShareOn[]; extern const u8 gText_ExpShareOff[]; -extern const u8 gText_BasePointsResetToZero[]; - -// Map name pop-up -extern const u8 gText_AM[]; -extern const u8 gText_PM[]; - -// FRLG whiteout -extern const u8 gText_PlayerScurriedToCenter[]; -extern const u8 gText_PlayerScurriedBackHome[]; -extern const u8 gText_PlayerRegroupCenter[]; -extern const u8 gText_PlayerRegroupHome[]; - -extern const u8 gText_Relearn[]; // move relearner from summary screen -extern const u8 gText_Relearn_LevelUp[]; -extern const u8 gText_Relearn_Egg[]; -extern const u8 gText_Relearn_TM[]; -extern const u8 gText_Relearn_Tutor[]; -extern const u8 gText_Rename[]; // change nickname from summary screen - +// Move Relearner extern const u8 MoveRelearner_Text_LevelUpMoveLWR[]; extern const u8 MoveRelearner_Text_EggMoveLWR[]; extern const u8 MoveRelearner_Text_TMMoveLWR[]; extern const u8 MoveRelearner_Text_TutorMoveLWR[]; +extern const u8 MoveRelearner_Text_MoveLWR[]; + +extern const u8 gText_Ghost[]; +extern const u8 gText_Boulderbadge[]; +extern const u8 gText_Cascadebadge[]; +extern const u8 gText_Thunderbadge[]; +extern const u8 gText_Rainbowbadge[]; +extern const u8 gText_Soulbadge[]; +extern const u8 gText_Marshbadge[]; +extern const u8 gText_Volcanobadge[]; +extern const u8 gText_Earthbadge[]; +extern const u8 gText_OakImportantToGetToKnowPokemonThroughly[]; +extern const u8 gText_OakThisIsListOfPokemon[]; + +extern const u8 gText_Boy[]; +extern const u8 gText_Girl[]; -// Switch Caught Mon into Party -extern const u8 gText_CannotSendMonToBoxHM[]; -extern const u8 gText_CannotSendMonToBoxActive[]; -extern const u8 gText_CannotSendMonToBoxPartner[]; #endif // GUARD_STRINGS_H diff --git a/include/test/battle.h b/include/test/battle.h index 4c1784659c01..a62cd40a2c2a 100644 --- a/include/test/battle.h +++ b/include/test/battle.h @@ -483,6 +483,12 @@ * ... * STATUS_ICON(player, status1); * + * CATCHING_CHANCE(address) + * Causes the test to fail if no catching attempt is made + * and then writes the computed catch chance in the `address`pointer + * u32 recordedCatchChance; + * CATCHING_CHANCE(&recordedCatchChance); + * * NOT * Causes the test to fail if the SCENE command succeeds before the * following command succeeds. @@ -610,11 +616,12 @@ enum QUEUED_EXP_EVENT, QUEUED_MESSAGE_EVENT, QUEUED_STATUS_EVENT, + QUEUED_CATCH_CHANCE_EVENT, }; struct QueuedAbilityEvent { - u8 battlerId; + enum BattlerId battlerId; enum Ability ability; }; @@ -631,14 +638,14 @@ enum { EXP_EVENT_NEW_EXP, EXP_EVENT_DELTA_EXP }; struct QueuedHPEvent { - u32 battlerId:3; + enum BattlerId battlerId:3; u32 type:1; u32 address:28; }; struct QueuedSubHitEvent { - u32 battlerId:3; + enum BattlerId battlerId:3; u32 checkBreak:1; u32 breakSub:1; u32 address:27; @@ -646,7 +653,7 @@ struct QueuedSubHitEvent struct QueuedExpEvent { - u32 battlerId:3; + enum BattlerId battlerId:3; u32 type:1; u32 address:28; }; @@ -658,10 +665,15 @@ struct QueuedMessageEvent struct QueuedStatusEvent { - u32 battlerId:3; + enum BattlerId battlerId:3; u32 mask:29; }; +struct QueuedCaptureEvent +{ + u32 address; +}; + struct QueuedEvent { u8 type; @@ -677,6 +689,7 @@ struct QueuedEvent struct QueuedExpEvent exp; struct QueuedMessageEvent message; struct QueuedStatusEvent status; + struct QueuedCaptureEvent capture; } as; }; @@ -725,6 +738,24 @@ struct AILogLine s16 score; }; +enum ScoreTieResolution +{ + SCORE_TIE_NONE, + SCORE_TIE_LO, + SCORE_TIE_HI, + SCORE_TIE_RANDOM, + SCORE_TIE_CHOSEN +}; + +enum TargetTieResolution +{ + TARGET_TIE_NONE, + TARGET_TIE_LO, + TARGET_TIE_HI, + TARGET_TIE_RANDOM, + TARGET_TIE_CHOSEN +}; + // Data which is updated by the test runner during a battle and needs to // be reset between trials. struct BattleTrialData @@ -732,26 +763,30 @@ struct BattleTrialData u8 lastActionTurn; u8 queuedEvent; u8 aiActionsPlayed[MAX_BATTLERS_COUNT]; + u8 scoreTieCount; + u8 targetTieCount; }; +extern struct BattleTrialData gBattleTrialData; + struct BattleTestData { u8 stack[BATTLE_TEST_STACK_SIZE]; u8 playerPartySize; u8 opponentPartySize; - u8 explicitMoves[MAX_BATTLERS_COUNT]; + u8 explicitMoves[MAX_BATTLE_TRAINERS]; bool8 hasExplicitSpeeds; - u8 explicitSpeeds[MAX_BATTLERS_COUNT]; + u8 explicitSpeeds[MAX_BATTLE_TRAINERS]; u16 slowerThan[NUM_BATTLE_SIDES][PARTY_SIZE]; - u8 currentPosition; + enum BattleTrainer battleTrainer; u8 currentPartyIndex; struct Pokemon *currentMon; u8 gender; u8 nature; bool8 isShiny; - enum Ability forcedAbilities[MAX_BATTLERS_COUNT][PARTY_SIZE]; - u8 chosenGimmick[NUM_BATTLE_SIDES][PARTY_SIZE]; + enum Ability forcedAbilities[MAX_BATTLE_TRAINERS][PARTY_SIZE]; + u8 chosenGimmick[MAX_BATTLE_TRAINERS][PARTY_SIZE]; u8 forcedEnvironment; u8 currentMonIndexes[MAX_BATTLERS_COUNT]; @@ -779,8 +814,14 @@ struct BattleTestData struct AILogLine aiLogLines[MAX_BATTLERS_COUNT][MAX_MON_MOVES][MAX_AI_LOG_LINES]; u8 aiLogPrintedForMove[MAX_BATTLERS_COUNT]; // Marks ai score log as printed for move, so the same log isn't displayed multiple times. u16 flagId; + u16 varId; struct BattleTrialData trial; + enum ScoreTieResolution scoreTieResolution; + u8 scoreTieOverride; + enum RandomTag scoreTieTag; + enum TargetTieResolution targetTieResolution; + u8 targetTieOverride; }; struct BattleTestRunnerState @@ -958,7 +999,7 @@ void Randomly(u32 sourceLine, u32 passes, u32 trials, struct RandomlyContext); /* Given */ struct moveWithPP { - u16 moveId; + enum Move moveId; u8 pp; }; @@ -970,14 +1011,15 @@ struct moveWithPP { #define AI_LOG AILogScores(__LINE__) #define FLAG_SET(flagId) SetFlagForTest(__LINE__, flagId) +#define VAR_SET(varId, value) SetVarForTest(__LINE__, varId, value) #define WITH_CONFIG(configTag, value) TestSetConfig(__LINE__, CONFIG_##configTag, value) -#define PLAYER(species) for (OpenPokemon(__LINE__, B_POSITION_PLAYER_LEFT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) -#define OPPONENT(species) for (OpenPokemon(__LINE__, B_POSITION_OPPONENT_LEFT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) -#define MULTI_PLAYER(species) for (OpenPokemonMulti(__LINE__, B_POSITION_PLAYER_LEFT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) -#define MULTI_OPPONENT_A(species) for (OpenPokemonMulti(__LINE__, B_POSITION_OPPONENT_LEFT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) -#define MULTI_PARTNER(species) for (OpenPokemonMulti(__LINE__, B_POSITION_PLAYER_RIGHT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) -#define MULTI_OPPONENT_B(species) for (OpenPokemonMulti(__LINE__, B_POSITION_OPPONENT_RIGHT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) +#define PLAYER(species) for (OpenPokemon(__LINE__, B_TRAINER_0, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) +#define OPPONENT(species) for (OpenPokemon(__LINE__, B_TRAINER_1, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) +#define MULTI_PLAYER(species) for (OpenPokemonMulti(__LINE__, B_TRAINER_0, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) +#define MULTI_OPPONENT_A(species) for (OpenPokemonMulti(__LINE__, B_TRAINER_1, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) +#define MULTI_PARTNER(species) for (OpenPokemonMulti(__LINE__, B_TRAINER_2, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) +#define MULTI_OPPONENT_B(species) for (OpenPokemonMulti(__LINE__, B_TRAINER_3, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) #define Gender(gender) Gender_(__LINE__, gender) #define Nature(nature) Nature_(__LINE__, nature) @@ -997,7 +1039,7 @@ struct moveWithPP { #define SpDefenseIV(spDefenseIV) SpDefenseIV_(__LINE__, spDefenseIV) #define SpeedIV(speedIV) SpeedIV_(__LINE__, speedIV) #define Item(item) Item_(__LINE__, item) -#define Moves(move1, ...) do { u16 moves_[MAX_MON_MOVES] = {move1, __VA_ARGS__}; Moves_(__LINE__, moves_); } while(0) +#define Moves(move1, ...) do { u16 moves_[MAX_MON_MOVES] = {move1, __VA_ARGS__}; Moves_(__LINE__, moves_); } while (0) #define MovesWithPP(movewithpp1, ...) MovesWithPP_(__LINE__, (struct moveWithPP[MAX_MON_MOVES]) {movewithpp1, __VA_ARGS__}) #define Friendship(friendship) Friendship_(__LINE__, friendship) #define Status1(status1) Status1_(__LINE__, status1) @@ -1010,15 +1052,19 @@ struct moveWithPP { #define Environment(environment) Environment_(__LINE__, environment) void SetFlagForTest(u32 sourceLine, u16 flagId); +void SetVarForTest(u32 sourceLine, u16 varId, u16 value); void TestSetConfig(u32 sourceLine, enum ConfigTag configTag, u32 value); +void TieBreakScore(u32 sourceLine, enum RandomTag rngTag, enum ScoreTieResolution scoreTieRes, u32 value); +void TieBreakTarget(u32 sourceLine, enum TargetTieResolution targetTieRes, u32 value); void ClearFlagAfterTest(void); -void OpenPokemon(u32 sourceLine, enum BattlerPosition position, u32 species); -void OpenPokemonMulti(u32 sourceLine, enum BattlerPosition position, u32 species); +void ClearVarAfterTest(void); +void OpenPokemon(u32 sourceLine, enum BattleTrainer trainer, u32 species); +void OpenPokemonMulti(u32 sourceLine, enum BattleTrainer trainer, u32 species); void ClosePokemon(u32 sourceLine); void RNGSeed_(u32 sourceLine, rng_value_t seed); void AIFlags_(u32 sourceLine, u64 flags); -void BattlerAIFlags_(u32 sourceLine, u32 battler, u64 flags); +void BattlerAIFlags_(u32 sourceLine, enum BattlerId battler, u64 flags); void AILogScores(u32 sourceLine); void Gender_(u32 sourceLine, u32 gender); void Nature_(u32 sourceLine, u32 nature); @@ -1043,7 +1089,7 @@ void MovesWithPP_(u32 sourceLine, struct moveWithPP moveWithPP[MAX_MON_MOVES]); void Friendship_(u32 sourceLine, u32 friendship); void Status1_(u32 sourceLine, u32 status1); void OTName_(u32 sourceLine, const u8 *otName); -void DynamaxLevel_(u32 sourceLine, u32 dynamaxLevel); +void DynamaxLevel_(u32 sourceLine, s16 dynamaxLevel); void GigantamaxFactor_(u32 sourceLine, bool32 gigantamaxFactor); void TeraType_(u32 sourceLine, enum Type teraType); void Shadow_(u32 sourceLine, bool32 isShadow); @@ -1052,24 +1098,20 @@ void Environment_(u32 sourceLine, u32 environment); static inline bool8 IsMultibattleTest(void) { - if (TESTING) + #if TESTING { if (((gBattleTypeFlags & BATTLE_MULTI_TEST) == BATTLE_MULTI_TEST) - || ((gBattleTypeFlags & BATTLE_TWO_VS_ONE_TEST) == BATTLE_TWO_VS_ONE_TEST)) + || ((gBattleTypeFlags & BATTLE_TWO_VS_ONE_TEST) == BATTLE_TWO_VS_ONE_TEST)) return TRUE; - else - return FALSE; - } - else - { - return FALSE; } + #endif + return FALSE; } // Created for easy use of EXPECT_MOVES, so the user can provide 1, 2, 3 or 4 moves for AI which can pass the test. struct FourMoves { - u16 moves[MAX_MON_MOVES]; + enum Move moves[MAX_MON_MOVES]; }; struct TestAIScoreStruct @@ -1116,6 +1158,8 @@ enum { TURN_CLOSED, TURN_OPEN, TURN_CLOSING }; #define SEND_OUT(battler, partyIndex) SendOut(__LINE__, battler, partyIndex) #define USE_ITEM(battler, ...) UseItem(__LINE__, battler, (struct ItemContext) { R_APPEND_TRUE(__VA_ARGS__) }) #define WITH_RNG(tag, value) rng: ((struct RiggedRNG) { tag, value }) +#define TIE_BREAK_SCORE(rngTag, scoreTieRes, value) TieBreakScore(__LINE__, rngTag, scoreTieRes, value) +#define TIE_BREAK_TARGET(targetTieRes, value) TieBreakTarget(__LINE__, targetTieRes, value) struct MoveContext { @@ -1146,7 +1190,7 @@ struct MoveContext struct ItemContext { - u16 itemId; + enum Item itemId; u16 explicitItemId:1; u16 partyIndex; u16 explicitPartyIndex:1; @@ -1188,6 +1232,7 @@ void SendOut(u32 sourceLine, struct BattlePokemon *, u32 partyIndex); // Static const is needed to make the modern compiler put the pattern variable in the .rodata section, instead of putting it on stack(which can break the game). #define MESSAGE(pattern) do {static const u8 msg[] = _(pattern); QueueMessage(__LINE__, msg);} while (0) #define STATUS_ICON(battler, status) QueueStatus(__LINE__, battler, (struct StatusEventContext) { status }) +#define CATCHING_CHANCE(address) QueueCatchingChance(__LINE__, address) #define FREEZE_OR_FROSTBURN_STATUS(battler, isFrostbite) \ (B_USE_FROSTBITE ? STATUS_ICON(battler, frostbite: isFrostbite) : STATUS_ICON(battler, freeze: isFrostbite)) @@ -1277,6 +1322,7 @@ void QueueSubHit(u32 sourceLine, struct BattlePokemon *battler, struct SubHitEve void QueueExp(u32 sourceLine, struct BattlePokemon *battler, struct ExpEventContext); void QueueMessage(u32 sourceLine, const u8 *pattern); void QueueStatus(u32 sourceLine, struct BattlePokemon *battler, struct StatusEventContext); +void QueueCatchingChance(u32 sourceLine, u32 *captureAdress); /* Then */ diff --git a/include/test/overworld_script.h b/include/test/overworld_script.h index a5bee797b22a..650221499dad 100644 --- a/include/test/overworld_script.h +++ b/include/test/overworld_script.h @@ -49,6 +49,8 @@ asm(".set FALSE, 0\n" ".set PARTY_SIZE, " STR(PARTY_SIZE) "\n" ".set VARS_START, " STR(VARS_START) "\n" ".set VARS_END, " STR(VARS_END) "\n" + ".set MON_GENDER_MAY_CUTE_CHARM, " STR(MON_GENDER_MAY_CUTE_CHARM) "\n" + ".set NATURE_MAY_SYNCHRONIZE, " STR(NATURE_MAY_SYNCHRONIZE) "\n" ".set SPECIAL_VARS_START, " STR(SPECIAL_VARS_START) "\n" ".set SPECIAL_VARS_END, " STR(SPECIAL_VARS_END) "\n"); diff --git a/include/test/test.h b/include/test/test.h index 15f71d50b198..a70806758504 100644 --- a/include/test/test.h +++ b/include/test/test.h @@ -1,25 +1,13 @@ #ifndef GUARD_TEST_H #define GUARD_TEST_H +#include "test_result.h" #include "test_runner.h" #include "random.h" #define MAX_PROCESSES 32 // See also tools/mgba-rom-test-hydra/main.c #define RIGGED_RNG_COUNT 8 -enum TestResult -{ - TEST_RESULT_FAIL, - TEST_RESULT_PASS, - TEST_RESULT_ASSUMPTION_FAIL, - TEST_RESULT_INVALID, - TEST_RESULT_ERROR, - TEST_RESULT_TIMEOUT, - TEST_RESULT_CRASH, - TEST_RESULT_TODO, - TEST_RESULT_KNOWN_FAIL, -}; - struct TestRunner { u32 (*estimateCost)(void *); @@ -29,7 +17,7 @@ struct TestRunner bool32 (*checkProgress)(void *); bool32 (*handleExitWithResult)(void *, enum TestResult); u32 (*randomUniform)(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32), void *caller); - u32 (*randomWeightedArray)(enum RandomTag tag, u32 sum, u32 n, const u8 *weights, void *caller); + u32 (*randomWeightedArray)(enum RandomTag tag, u32 sum, u32 n, const u16 *weights, void *caller); const void* (*randomElementArray)(enum RandomTag tag, const void *array, size_t size, size_t count, void *caller); }; @@ -49,6 +37,16 @@ enum TestFilterMode TEST_FILTER_MODE_FILENAME_EXACT, }; +enum ExpectFailState +{ + NO_EXPECT_FAIL, + EXPECT_FAIL_OPEN, + EXPECT_FAIL_TURN_OPEN, + EXPECT_FAIL_SCENE_OPEN, + EXPECT_FAIL_SUCCESS, + EXPECT_FAIL_CLOSED +}; + struct TestRunnerState { u8 state; @@ -65,6 +63,8 @@ struct TestRunnerState bool8 inBenchmark:1; bool8 tearDown:1; u32 timeoutSeconds; + s32 expectedFailLine; + enum ExpectFailState expectedFailState; }; struct PersistentTestRunnerState @@ -106,7 +106,7 @@ void CB2_TestRunner(void); void Test_ExpectedResult(enum TestResult); void Test_ExpectLeaks(bool32); void Test_ExpectCrash(bool32); -void Test_ExitWithResult(enum TestResult, u32 stopLine, const char *fmt, ...); +void Test_ExpectFail(u32 failLine); u32 SourceLine(u32 sourceLineOffset); u32 SourceLineOffset(u32 sourceLine); void SetupRiggedRng(u32 sourceLine, enum RandomTag randomTag, u32 value); @@ -255,6 +255,8 @@ static inline struct Benchmark BenchmarkStop(void) #define KNOWN_CRASHING \ Test_ExpectCrash(TRUE) +#define EXPECT_FAIL for (u32 _expect_fail = (Test_ExpectFail(-1), 1); _expect_fail; Test_ExpectFail(__LINE__), _expect_fail = 0) + #define PARAMETRIZE if (gFunctionTestRunnerState->parameters++ == gFunctionTestRunnerState->runParameter) #define PARAMETRIZE_LABEL(f, label) if (gFunctionTestRunnerState->parameters++ == gFunctionTestRunnerState->runParameter && (Test_MgbaPrintf(":N%s: " f " (%d/%d)", gTestRunnerState.test->name, label, gFunctionTestRunnerState->runParameter + 1, gFunctionTestRunnerState->parameters), 1)) diff --git a/include/test_result.h b/include/test_result.h new file mode 100644 index 000000000000..97b61b7e3c17 --- /dev/null +++ b/include/test_result.h @@ -0,0 +1,20 @@ +#ifndef GUARD_TEST_RESULT_H +#define GUARD_TEST_RESULT_H + +enum TestResult +{ + TEST_RESULT_FAIL, + TEST_RESULT_PASS, + TEST_RESULT_ASSUMPTION_FAIL, + TEST_RESULT_INVALID, + TEST_RESULT_ERROR, + TEST_RESULT_TIMEOUT, + TEST_RESULT_CRASH, + TEST_RESULT_TODO, + TEST_RESULT_KNOWN_FAIL, +}; + +void Test_ExitWithResult_(enum TestResult, u32 stopLine, const void *return0, const char *fmt, ...); +#define Test_ExitWithResult(result, stopLine, ...) Test_ExitWithResult_(result, stopLine, __builtin_return_address(0), __VA_ARGS__) + +#endif diff --git a/include/test_runner.h b/include/test_runner.h index b15ae349ada8..13e75e2d7681 100644 --- a/include/test_runner.h +++ b/include/test_runner.h @@ -13,26 +13,26 @@ extern const bool8 gTestRunnerSkipIsFail; enum Gimmick; -void TestRunner_Battle_RecordAbilityPopUp(u32 battlerId, enum Ability ability); +void TestRunner_Battle_RecordAbilityPopUp(enum BattlerId battlerId, enum Ability ability); void TestRunner_Battle_RecordAnimation(u32 animType, u32 animId); -void TestRunner_Battle_RecordHP(u32 battlerId, u32 oldHP, u32 newHP); -void TestRunner_Battle_RecordSubHit(u32 battlerId, u32 damage, bool32 broke); -void TestRunner_Battle_RecordExp(u32 battlerId, u32 oldExp, u32 newExp); +void TestRunner_Battle_RecordHP(enum BattlerId battlerId, u32 oldHP, u32 newHP); +void TestRunner_Battle_RecordSubHit(enum BattlerId battlerId, u32 damage, bool32 broke); +void TestRunner_Battle_RecordExp(enum BattlerId battlerId, u32 oldExp, u32 newExp); void TestRunner_Battle_RecordMessage(const u8 *message); -void TestRunner_Battle_RecordStatus1(u32 battlerId, u32 status1); +void TestRunner_Battle_RecordStatus1(enum BattlerId battlerId, u32 status1); +void TestRunner_Battle_RecordCatchChance(u32 catchChance); void TestRunner_Battle_AfterLastTurn(void); -void TestRunner_Battle_CheckChosenMove(u32 battlerId, u32 moveId, u32 target, enum Gimmick gimmick); -void TestRunner_Battle_CheckSwitch(u32 battlerId, u32 partyIndex); -void TestRunner_Battle_CheckAiMoveScores(u32 battlerId); -void TestRunner_Battle_AISetScore(const char *file, u32 line, u32 battlerId, u32 moveIndex, s32 score); -void TestRunner_Battle_AIAdjustScore(const char *file, u32 line, u32 battlerId, u32 moveIndex, s32 score); -void TestRunner_Battle_InvalidNoHPMon(u32 battlerId, u32 partyIndex); +void TestRunner_Battle_CheckChosenMove(enum BattlerId battlerId, enum Move moveId, u32 target, enum Gimmick gimmick); +void TestRunner_Battle_CheckSwitch(enum BattlerId battlerId, u32 partyIndex); +void TestRunner_Battle_CheckAiMoveScores(enum BattlerId battlerId); +void TestRunner_Battle_AISetScore(const char *file, u32 line, enum BattlerId battlerId, u32 moveIndex, s32 score); +void TestRunner_Battle_AIAdjustScore(const char *file, u32 line, enum BattlerId battlerId, u32 moveIndex, s32 score); void TestRunner_CheckMemory(void); -void TestRunner_Battle_CheckBattleRecordActionType(u32 battlerId, u32 recordIndex, u32 actionType); +void TestRunner_Battle_CheckBattleRecordActionType(enum BattlerId battlerId, u32 recordIndex, u32 actionType); -u32 TestRunner_Battle_GetForcedAbility(u32 array, u32 partyIndex); -u32 TestRunner_Battle_GetChosenGimmick(u32 side, u32 partyIndex); +u32 TestRunner_Battle_GetForcedAbility(enum BattleTrainer trainer, u32 partyIndex); +u32 TestRunner_Battle_GetChosenGimmick(enum BattleTrainer trainer, u32 partyIndex); u32 TestRunner_Battle_GetForcedEnvironment(void); #else @@ -44,13 +44,13 @@ u32 TestRunner_Battle_GetForcedEnvironment(void); #define TestRunner_Battle_RecordExp(...) (void)0 #define TestRunner_Battle_RecordMessage(...) (void)0 #define TestRunner_Battle_RecordStatus1(...) (void)0 +#define TestRunner_Battle_RecordCatchChance(...) (void)0 #define TestRunner_Battle_AfterLastTurn(...) (void)0 #define TestRunner_Battle_CheckChosenMove(...) (void)0 #define TestRunner_Battle_CheckSwitch(...) (void)0 #define TestRunner_Battle_CheckAiMoveScores(...) (void)0 #define TestRunner_Battle_AISetScore(...) (void)0 #define TestRunner_Battle_AIAdjustScore(...) (void)0 -#define TestRunner_Battle_InvalidNoHPMon(...) (void)0 #define TestRunner_Battle_CheckBattleRecordActionType(...) (void)0 diff --git a/include/text.h b/include/text.h index 294bff94c7be..7d2ecdb4ce34 100644 --- a/include/text.h +++ b/include/text.h @@ -31,6 +31,9 @@ enum { FONT_SHORT_NARROWER, }; +#define FONT_MALE FONT_NORMAL +#define FONT_FEMALE FONT_NORMAL + // Return values for font functions enum { RENDER_PRINT, @@ -55,27 +58,38 @@ enum { FONTATTR_MAX_LETTER_HEIGHT, FONTATTR_LETTER_SPACING, FONTATTR_LINE_SPACING, - FONTATTR_UNKNOWN, // dunno what this is yet + FONTATTR_COLOR_ACCENT, FONTATTR_COLOR_FOREGROUND, FONTATTR_COLOR_BACKGROUND, - FONTATTR_COLOR_SHADOW + FONTATTR_COLOR_SHADOW, }; -struct TextPrinterSubStruct +enum PACKED TextPrinterType { - u8 fontId:4; // 0x14 - bool8 hasPrintBeenSpedUp:1; - u8 unk:3; - u16 utilityCounter:13; - u16 downArrowYPosIdx:2; - bool16 hasFontIdBeenSet:1; - u8 autoScrollDelay; + WINDOW_TEXT_PRINTER, + SPRITE_TEXT_PRINTER, +}; + +union TextColor { + struct { + u8 background; + u8 foreground; + u8 shadow; + u8 accent; + }; + u32 asU32; }; struct TextPrinterTemplate { const u8 *currentChar; - u8 windowId; + + enum TextPrinterType type; + union { + u8 windowId; + u8 spriteId; + }; + u8 fontId; u8 x; u8 y; @@ -83,26 +97,45 @@ struct TextPrinterTemplate u8 currentY; u8 letterSpacing; u8 lineSpacing; - u8 unk:4; // 0xC - u8 fgColor:4; - u8 bgColor:4; - u8 shadowColor:4; + u8 firstSpriteInRow; + u8 firstSprite; + union { + struct { + DEPRECATED("Use color.background instead") u8 bgColor; + DEPRECATED("Use color.foreground instead") u8 fgColor; + DEPRECATED("Use color.shadow instead") u8 shadowColor; + DEPRECATED("Use color.accent instead") u8 accentColor; + }; + union TextColor color; + }; }; struct TextPrinter { struct TextPrinterTemplate printerTemplate; - void (*callback)(struct TextPrinterTemplate *, u16); // 0x10 + void (*callback)(struct TextPrinterTemplate *, u16); - u8 subStructFields[7]; // always cast to struct TextPrinterSubStruct... so why bother - u8 active; - u8 state; // 0x1C - u8 textSpeed; + u16 utilityCounter:13; + u16 downArrowYPosIdx:2; + bool16 hasFontIdBeenSet:1; + u8 autoScrollDelay; + u8 fontId:4; + bool8 hasPrintBeenSpedUp:1; + u8 japanese:1; + u8 active:1; + u8 isInUse:1; + + u8 state; u8 delayCounter; u8 scrollDistance; - u8 minLetterSpacing; // 0x20 - u8 japanese; + u8 minLetterSpacing; + + u8 textSpeed; + u8 padding[3]; + + struct TextPrinter *nextPrinter; + }; struct FontInfo @@ -112,10 +145,15 @@ struct FontInfo u8 maxLetterHeight; u8 letterSpacing; u8 lineSpacing; - u8 unk:4; - u8 fgColor:4; - u8 bgColor:4; - u8 shadowColor:4; + union { + struct { + DEPRECATED("Use color.background instead") u8 bgColor; + DEPRECATED("Use color.foreground instead") u8 fgColor; + DEPRECATED("Use color.shadow instead") u8 shadowColor; + DEPRECATED("Use color.accent instead") u8 accentColor; + }; + union TextColor color; + }; }; extern const struct FontInfo *gFonts; @@ -146,15 +184,21 @@ extern u8 gDisableTextPrinters; extern struct TextGlyph gCurGlyph; void DeactivateAllTextPrinters(void); +void DeactivateSingleTextPrinter(u32 id, enum TextPrinterType type); u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddSpriteTextPrinterParametrerized(u8 spriteId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)); +void AddSpriteTextPrinterParameterized3(u8 spriteId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str); +void AddSpriteTextPrinterParameterized4(u8 spriteId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); +void AddSpriteTextPrinterParameterized6(u8 spriteId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const union TextColor color, s8 speed, const u8 *str); bool32 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)); void RunTextPrinters(void); -bool32 IsTextPrinterActive(u8 id); -void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor); -void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor); -void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor); +bool32 IsTextPrinterActiveOnWindow(u32 windowId); +bool32 IsTextPrinterActiveOnSprite(u32 spriteId); +void GenerateFontHalfRowLookupTable(union TextColor color); +union TextColor SaveTextColors(void); +void RestoreTextColors(union TextColor color); void DecompressGlyphTile(const void *src_, void *dest_); -void CopyGlyphToWindow(struct TextPrinter *textPrinter); +u32 CopyGlyphToVRAM(struct TextPrinter *textPrinter); void ClearTextSpan(struct TextPrinter *textPrinter, u32 width); void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter); @@ -191,4 +235,7 @@ u32 GetPlayerTextSpeedModifier(void); u32 GetPlayerTextScrollSpeed(void); bool32 IsPlayerTextSpeedInstant(void); +u8 CreateTextCursorSprite(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority); +void DestroyTextCursorSprite(u8 spriteId); + #endif // GUARD_TEXT_H diff --git a/include/text_window.h b/include/text_window.h index 98776193f649..80a76c440b46 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -14,6 +14,7 @@ extern const u16 gTextWindowFrame1_Pal[]; const struct TilesPal *GetWindowFrameTilesPal(u8 id); void LoadMessageBoxGfx(u8 windowId, u16 destOffset, u8 palOffset); +void LoadStdWindowGfx(u8 windowId, u16 tileStart, u8 palette); void LoadSignBoxGfx(u8 windowId, u16 destOffset, u8 palOffset); void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset); void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset); diff --git a/include/tileset_anims.h b/include/tileset_anims.h index 9e07bdcbeeec..0d0f0741fc85 100755 --- a/include/tileset_anims.h +++ b/include/tileset_anims.h @@ -29,7 +29,16 @@ void InitTilesetAnim_Underwater(void); void InitTilesetAnim_SootopolisGym(void); void InitTilesetAnim_MauvilleGym(void); void InitTilesetAnim_EliteFour(void); +void InitTilesetAnim_MauvilleGameCorner(void); void InitTilesetAnim_BattleDome(void); void InitTilesetAnim_BattlePyramid(void); +// FRLG +void InitTilesetAnim_General_Frlg(void); +void InitTilesetAnim_CeladonCity(void); +void InitTilesetAnim_VermilionGym(void); +void InitTilesetAnim_CeladonGym(void); +void InitTilesetAnim_SilphCo(void); +void InitTilesetAnim_MtEmber(void); + #endif // GUARD_TILESET_ANIMS_H diff --git a/include/tilesets.h b/include/tilesets.h index 976c8342e796..a13a19cb723c 100644 --- a/include/tilesets.h +++ b/include/tilesets.h @@ -8,6 +8,57 @@ extern const struct Tileset *const gTilesetPointer_SecretBase; extern const struct Tileset *const gTilesetPointer_SecretBaseRedCave; extern const struct Tileset gTileset_Building; +extern const struct Tileset gTileset_BuildingFrlg; extern const struct Tileset gTileset_BrendansMaysHouse; +extern const struct Tileset gTileset_GenericBuilding1; +extern const struct Tileset gTileset_General; +extern const struct Tileset gTileset_Petalburg; +extern const struct Tileset gTileset_Rustboro; +extern const struct Tileset gTileset_Fallarbor; +extern const struct Tileset gTileset_Mauville; +extern const struct Tileset gTileset_Slateport; +extern const struct Tileset gTileset_Dewford; +extern const struct Tileset gTileset_Lilycove; +extern const struct Tileset gTileset_Mossdeep; +extern const struct Tileset gTileset_Sootopolis; +extern const struct Tileset gTileset_EverGrande; +extern const struct Tileset gTileset_Pacifidlog; +extern const struct Tileset gTileset_PetalburgGym; +extern const struct Tileset gTileset_PokemonCenter; +extern const struct Tileset gTileset_InsideShip; +extern const struct Tileset gTileset_Fallarbor; +extern const struct Tileset gTileset_Shop; +extern const struct Tileset gTileset_Dewford; +extern const struct Tileset gTileset_BattleFrontier; +extern const struct Tileset gTileset_BattleFrontierOutsideWest; +extern const struct Tileset gTileset_BattleFrontierOutsideEast; +extern const struct Tileset gTileset_BattleArena; +extern const struct Tileset gTileset_BattleDome; +extern const struct Tileset gTileset_BattlePalace; +extern const struct Tileset gTileset_Slateport; +extern const struct Tileset gTileset_Mauville; +extern const struct Tileset gTileset_BattleFrontierOutsideWest; +extern const struct Tileset gTileset_BattleTent; +extern const struct Tileset gTileset_TrainerHill; +extern const struct Tileset gTileset_General_Frlg; +extern const struct Tileset gTileset_PalletTown; +extern const struct Tileset gTileset_ViridianCity; +extern const struct Tileset gTileset_PewterCity; +extern const struct Tileset gTileset_SaffronCity; +extern const struct Tileset gTileset_CeruleanCity; +extern const struct Tileset gTileset_LavenderTown; +extern const struct Tileset gTileset_VermilionCity; +extern const struct Tileset gTileset_CeladonCity; +extern const struct Tileset gTileset_FuchsiaCity; +extern const struct Tileset gTileset_CinnabarIsland; +extern const struct Tileset gTileset_SeviiIslands123; +extern const struct Tileset gTileset_SeviiIslands45; +extern const struct Tileset gTileset_SeviiIslands67; +extern const struct Tileset gTileset_DepartmentStore; +extern const struct Tileset gTileset_PokemonCenterFrlg; +extern const struct Tileset gTileset_SilphCo; +extern const struct Tileset gTileset_SSAnne; +extern const struct Tileset gTileset_SeaCottage; +extern const struct Tileset gTileset_TrainerTower; #endif //GUARD_tilesets_H diff --git a/include/title_screen.h b/include/title_screen.h index 0c80db5bf0ff..ddf7930bb324 100644 --- a/include/title_screen.h +++ b/include/title_screen.h @@ -4,5 +4,6 @@ extern const u16 gTitleScreenAlphaBlend[64]; void CB2_InitTitleScreen(void); +void CB2_InitTitleScreenFrlg(void); #endif // GUARD_TITLE_SCREEN_H diff --git a/include/trade.h b/include/trade.h index 553d5ab334bf..6b170d23f164 100644 --- a/include/trade.h +++ b/include/trade.h @@ -4,6 +4,8 @@ #include "link_rfu.h" #include "constants/trade.h" +#define TRADEMON_FROM_PC 1 + extern struct Mail gTradeMail[PARTY_SIZE]; extern u8 gSelectedTradeMonPositions[2]; diff --git a/include/trainer_card.h b/include/trainer_card.h index ecba9fd1f2fc..e506b5f7389c 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -1,23 +1,7 @@ #ifndef GUARD_TRAINER_CARD_H #define GUARD_TRAINER_CARD_H -#define TRAINER_CARD_PROFILE_LENGTH 4 -#define TRAINER_CARD_STICKER_TYPES 3 - -enum -{ - CARD_TYPE_FRLG, - CARD_TYPE_RS, - CARD_TYPE_EMERALD, -}; - -enum -{ - MON_ICON_TINT_NORMAL, - MON_ICON_TINT_BLACK, - MON_ICON_TINT_PINK, - MON_ICON_TINT_SEPIA, -}; +#include "constants/trainer_card.h" struct TrainerCard { diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h index ac464266eb27..60961917130f 100644 --- a/include/trainer_pokemon_sprites.h +++ b/include/trainer_pokemon_sprites.h @@ -15,7 +15,8 @@ u16 FreeAndDestroyMonPicSpriteNoPalette(u16 spriteId); u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 FreeAndDestroyTrainerPicSprite(u16 spriteId); u16 CreateTrainerCardTrainerPicSprite(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); -u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass); -void CopyTrainerBackspriteFramesToDest(u8 trainerPicId, u8 *dest); +u16 PlayerGenderToFrontTrainerPicId_Debug(enum Gender gender, bool8 getClass); +void CopyTrainerBackspriteFramesToDest(enum TrainerPicID trainerPicId, u8 *dest); +u16 CreateTrainerCardMonIconSprite(u16 species, bool8 isShiny, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); #endif // GUARD_TRAINER_POKEMON_SPRITES_H diff --git a/include/trainer_slide.h b/include/trainer_slide.h index a8f1988fb8fe..3a00e1155d02 100644 --- a/include/trainer_slide.h +++ b/include/trainer_slide.h @@ -6,20 +6,21 @@ struct MessageStatus { - u8 messageInitalized[TRAINER_SLIDE_ARRAY_SIZE]; - u8 messagePlayed[TRAINER_SLIDE_ARRAY_SIZE]; + u8 messageInitalized[MAX_BATTLERS_COUNT][TRAINER_SLIDE_ARRAY_SIZE]; + u8 messagePlayed[MAX_BATTLERS_COUNT][TRAINER_SLIDE_ARRAY_SIZE]; }; void SetTrainerSlideMessage(enum DifficultyLevel difficulty, u32 trainerId, u32 slideId); -enum TrainerSlideTargets ShouldDoTrainerSlide(u32 battler, enum TrainerSlideType slideId); -void TryInitializeFirstSTABMoveTrainerSlide(u32 battlerDef, u32 battlerAtk, enum Type moveType); +enum TrainerSlideTargets ShouldDoTrainerSlide(enum BattlerId battler, enum TrainerSlideType slideId); +void TryInitializeFirstSTABMoveTrainerSlide(enum BattlerId battlerDef, enum BattlerId battlerAtk, enum Type moveType); void TryInitializeTrainerSlidePlayerLandsFirstCriticalHit(u32 target); void TryInitializeTrainerSlideEnemyLandsFirstCriticalHit(u32 target); void TryInitializeTrainerSlidePlayerLandsFirstSuperEffectiveHit(u32 target); void TryInitializeTrainerSlideEnemyMonUnaffected(u32 target); -bool32 IsTrainerSlideInitialized(enum TrainerSlideType slideId); -bool32 IsTrainerSlidePlayed(enum TrainerSlideType slideId); -void InitalizeTrainerSlide(enum TrainerSlideType slideId); -void MarkTrainerSlideAsPlayed(enum TrainerSlideType slideId); +bool32 IsTrainerSlideInitialized(enum BattlerId battler, enum TrainerSlideType slideId); +bool32 IsTrainerSlidePlayed(enum BattlerId battler, enum TrainerSlideType slideId); +void InitalizeTrainerSlide(enum BattlerId battler, enum TrainerSlideType slideId); +void MarkTrainerSlideAsPlayed(enum BattlerId battler, enum TrainerSlideType slideId); +void MarkInitializedTrainerSlidesAsPlayed(enum BattlerId battler, enum TrainerSlideType slideId); #endif // GUARD_TRAINER_SLIDE_H diff --git a/include/trainer_tower.h b/include/trainer_tower.h new file mode 100644 index 000000000000..5dbb479a6ef3 --- /dev/null +++ b/include/trainer_tower.h @@ -0,0 +1,60 @@ +#ifndef GUARD_TRAINER_TOWER_H +#define GUARD_TRAINER_TOWER_H + +#include "constants/trainer_tower.h" + +struct TrainerTowerTrainer +{ + /* 0x000 */ u8 name[11]; + /* 0x00B */ u8 facilityClass; + /* 0x00C */ u8 textColor; + /* 0x00E */ u16 speechBefore[6]; + /* 0x01A */ u16 speechWin[6]; + /* 0x026 */ u16 speechLose[6]; + /* 0x032 */ u16 speechAfter[6]; + /* 0x040 */ struct BattleTowerPokemon mons[PARTY_SIZE]; +}; // size: 328 + +struct TrainerTowerFloor +{ + /* 0x000 */ u8 id; + /* 0x001 */ u8 floorIdx; + /* 0x002 */ u8 challengeType; + /* 0x003 */ u8 prize; + /* 0x004 */ struct TrainerTowerTrainer trainers[MAX_TRAINERS_PER_FLOOR]; + /* 0x3DC */ u32 checksum; +}; + +struct EReaderTrainerTowerSetSubstruct +{ + u8 numFloors; + u8 id; + u16 dummy; + u32 checksum; +}; + +struct EReaderTrainerTowerSet +{ + u8 numFloors; + u8 id; + u16 dummy; + u32 checksum; + struct TrainerTowerFloor floors[MAX_TRAINER_TOWER_FLOORS]; +}; +struct TrainerTowerState +{ + /* 0x0000 */ u8 floorIdx; + /* 0x0004 */ struct EReaderTrainerTowerSet data; +}; + +void PrintTrainerTowerRecords(void); +void InitTrainerTowerBattleStruct(void); +void FreeTrainerTowerBattleStruct(void); +u8 GetTrainerTowerTrainerFrontSpriteId(void); +void ResetTrainerTowerResults(void); +void GetTrainerTowerOpponentWinText(u8 *dest, u8 opponentIdx); +void GetTrainerTowerOpponentLoseText(u8 *dest, u8 opponentIdx); +void GetTrainerTowerOpponentName(u8 *text); +u8 GetTrainerTowerOpponentClass(void); + +#endif //GUARD_TRAINER_TOWER_H diff --git a/include/tv.h b/include/tv.h index a9a387e95b48..24b3b98208eb 100644 --- a/include/tv.h +++ b/include/tv.h @@ -38,13 +38,13 @@ void IncrementDailyWildBattles(void); void IncrementDailyBerryBlender(void); void SanitizeTVShowsForRuby(TVShow *shows); void TryPutSafariFanClubOnAir(u8 monsCaught, u8 pokeblocksUsed); -bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 color, u8 sheen, u8 language); +bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, enum Flavor flavor, u8 color, u8 sheen, u8 language); void SetPokemonAnglerSpecies(u16 species); void UpdateTVShowsPerDay(u16 days); void TryPutPokemonTodayOnAir(void); void TryPutSecretBaseVisitOnAir(void); -void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent); -void BravoTrainerPokemonProfile_BeforeInterview1(u16 move); +void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, enum Move move, u16 speciesPlayer, u16 speciesOpponent); +void BravoTrainerPokemonProfile_BeforeInterview1(enum Move move); void InterviewBefore(void); void InterviewAfter(void); void UpdateTVScreensOnMap(int width, int height); @@ -55,7 +55,7 @@ void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); void ContestLiveUpdates_Init(u8 round1Placing); void ContestLiveUpdates_SetRound2Placing(u8 round2Placing); void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag); -void ContestLiveUpdates_SetWinnerMoveUsed(u16 move); +void ContestLiveUpdates_SetWinnerMoveUsed(enum Move move); void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser); void ResetGabbyAndTy(void); u8 CheckForPlayersHouseNews(void); diff --git a/include/type_icons.h b/include/type_icons.h index c84e44f53d03..2a69def76b56 100644 --- a/include/type_icons.h +++ b/include/type_icons.h @@ -1,7 +1,7 @@ #ifndef GUARD_TYPE_ICONS_H #define GUARD_TYPE_ICONS_H -void LoadTypeIcons(u32 battler); +void LoadTypeIcons(enum BattlerId battler); #define TYPE_ICON_TAG 0x2720 #define TYPE_ICON_TAG_2 0x2721 diff --git a/include/util.h b/include/util.h index f5a7785f4bd7..a98929698533 100644 --- a/include/util.h +++ b/include/util.h @@ -3,6 +3,8 @@ #include "sprite.h" +#define HP_EMPTY 0 + extern const u8 gMiscBlank_Gfx[]; // unused in Emerald u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)); @@ -15,6 +17,7 @@ u32 CalcByteArraySum(const u8 *data, u32 length); void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u32 blendColor); void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha); void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output); +s32 SubtractClamped(s32 lowestVal, s32 highestVal, s32 currentVal, s32 delta); #endif // GUARD_UTIL_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index c8f60712f906..1c1f55f3b3b7 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -50,7 +50,6 @@ extern bool8 gIsSurfingEncounter; extern u8 gChainFishingDexNavStreak; void DisableWildEncounters(bool8 disabled); -u8 PickWildMonNature(void); bool8 StandardWildEncounter(u16 curMetatileBehavior, u16 prevMetatileBehavior); bool8 SweetScentWildEncounter(void); bool8 DoesCurrentMapHaveFishingMons(void); diff --git a/ld_script_modern.ld b/ld_script_modern.ld index 47989bd91f30..bf1894b246ea 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -124,6 +124,9 @@ SECTIONS { .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } + /* DWARF 5*/ + .debug_line_str 0 : { *(.debug_line_str) } + /* Discard everything not specifically mentioned above. */ /DISCARD/ : { diff --git a/map_data_rules.mk b/map_data_rules.mk index e0d3d3b71a4d..8c071c970cf9 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -21,18 +21,20 @@ MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS)) MAP_JSONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/map.json,$(MAP_DIRS)) $(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.inc $(LAYOUTS_DIR)/layouts_table.inc $(MAPS_DIR)/headers.inc $(MAPS_DIR)/groups.inc $(MAPS_DIR)/connections.inc $(MAP_CONNECTIONS) $(MAP_HEADERS) - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) $(CPPFLAGS) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ $(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) $(CPPFLAGS) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ -$(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connections.inc: $(MAPS_DIR)/%/map.json +$(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connections.inc: $(MAPS_DIR)/%/map.json $(INCLUDECONSTS_OUTDIR)/map_groups.h $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json $(@D) -$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h $(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/map_groups.json - $(MAPJSON) groups emerald $< $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) + +$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h $(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/map_groups.json $(MAP_JSONS) + @$(MAPJSON) groups $(MAP_VERSION) $^ $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) + @echo "$(MAPJSON) groups $(MAP_VERSION) $(MAPS_DIR)/map_groups.json $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR)" $(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json - $(MAPJSON) layouts emerald $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR) + $(MAPJSON) layouts $(MAP_VERSION) $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR) # Generate constants for map events, which depend on data that's distributed across the map.json files. # There's a lot of map.json files, so we print an abbreviated output with echo. diff --git a/migration_scripts/1.13/convert_trainers.py b/migration_scripts/1.13/convert_trainers.py index ba48f5465e41..59ad3cccee70 100644 --- a/migration_scripts/1.13/convert_trainers.py +++ b/migration_scripts/1.13/convert_trainers.py @@ -32,7 +32,7 @@ trainer_class_definition = re.compile(r'\.trainerClass = TRAINER_CLASS_(\w+)') encounter_music_gender_definition = re.compile(r'\.encounterMusic_gender = (F_TRAINER_FEMALE \| )?TRAINER_ENCOUNTER_MUSIC_(\w+)') encounter_music_definition = re.compile(r'TRAINER_ENCOUNTER_MUSIC_(\w+)') -trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_(\w+)') +trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_FRONT_(\w+)') trainer_name_definition = re.compile(r'\.trainerName = _\("([^"]*)"\)') trainer_items_definition = re.compile(r'\.items = \{([^}]*)\}') trainer_item_definition = re.compile(r'ITEM_(\w+)') diff --git a/migration_scripts/1.15/consolidate_easy_chat.py b/migration_scripts/1.15/consolidate_easy_chat.py new file mode 100644 index 000000000000..738556c65d0a --- /dev/null +++ b/migration_scripts/1.15/consolidate_easy_chat.py @@ -0,0 +1,45 @@ +import re +import os + +if not os.path.exists("Makefile"): + print("Please run this script from your root folder.") + quit() + +for easy_chat_file in ["actions", "adjectives", "battle", "conditions", "endings", "events", "feelings", "greetings", + "hobbies", "lifestyle", "misc", "people", "speech", "status", "time", "trainer", + "trendy_saying", "voices"]: + filePath = f"./src/data/easy_chat/easy_chat_group_{easy_chat_file}.h" + + # Read easy chat file + with open(filePath, "r") as f: + source_content = f.read() + + # Extract text from easy chat file + source_pattern = re.compile(r'const u8 gEasyChatWord_(.*)\[\]\s*=\s_(\(".*"\))*') + source_data = {} + for match in source_pattern.findall(source_content): + if len(match) == 2: + var_name, easy_chat_text = match + source_data[var_name] = (easy_chat_text) + + # Read easy chat file content + with open(filePath, "r") as f: + destination_content = f.read() + + # Modify easy chat file content + def add_filter_data(match): + var_name = match.group(1) + if var_name in source_data: + easy_chat_text = source_data[var_name] + print(f"Updating {var_name}: adding {easy_chat_text}") + return f'.text = COMPOUND_STRING{easy_chat_text},' + else: + return match.group(0) + + destination_pattern = re.compile(r'.text = gEasyChatWord_(.*),') + modified_content = destination_pattern.sub(add_filter_data, destination_content) + + # Write the modified content back to easy chat file + with open(filePath, "w") as f: + f.write(modified_content) + print(f"{easy_chat_file}.h has been updated") diff --git a/migration_scripts/1.15/givemon_balls_typechange.py b/migration_scripts/1.15/givemon_balls_typechange.py new file mode 100644 index 000000000000..b64bd8b82cdd --- /dev/null +++ b/migration_scripts/1.15/givemon_balls_typechange.py @@ -0,0 +1,82 @@ +from itertools import chain + +import glob +import os +import re +import shutil + +item_to_ball = { + "ITEM_STRANGE_BALL": "BALL_STRANGE", + "ITEM_POKE_BALL": "BALL_POKE", + "ITEM_GREAT_BALL": "BALL_GREAT", + "ITEM_ULTRA_BALL": "BALL_ULTRA", + "ITEM_MASTER_BALL": "BALL_MASTER", + "ITEM_PREMIER_BALL": "BALL_PREMIER", + "ITEM_HEAL_BALL": "BALL_HEAL", + "ITEM_NET_BALL": "BALL_NET", + "ITEM_NEST_BALL": "BALL_NEST", + "ITEM_DIVE_BALL": "BALL_DIVE", + "ITEM_DUSK_BALL": "BALL_DUSK", + "ITEM_TIMER_BALL": "BALL_TIMER", + "ITEM_QUICK_BALL": "BALL_QUICK", + "ITEM_REPEAT_BALL": "BALL_REPEAT", + "ITEM_LUXURY_BALL": "BALL_LUXURY", + "ITEM_LEVEL_BALL": "BALL_LEVEL", + "ITEM_LURE_BALL": "BALL_LURE", + "ITEM_MOON_BALL": "BALL_MOON", + "ITEM_FRIEND_BALL": "BALL_FRIEND", + "ITEM_LOVE_BALL": "BALL_LOVE", + "ITEM_FAST_BALL": "BALL_FAST", + "ITEM_HEAVY_BALL": "BALL_HEAVY", + "ITEM_DREAM_BALL": "BALL_DREAM", + "ITEM_SAFARI_BALL": "BALL_SAFARI", + "ITEM_SPORT_BALL": "BALL_SPORT", + "ITEM_PARK_BALL": "BALL_PARK", + "ITEM_BEAST_BALL": "BALL_BEAST", + "ITEM_CHERISH_BALL": "BALL_CHERISH", +} + +INCFILE_CREATEMON_PAT = re.compile(r"\s*(createmon|givemon)") +BALL_ARG_PAT = re.compile(r"ball=(\w+)") +ARG_PAT = re.compile(r"[A-Z_]+") + +def parse_createmon(line, command): + ball_arg = BALL_ARG_PAT.search(line) + if ball_arg: + item = ball_arg.group(1) + if item not in item_to_ball: + print("unrecognized item:" + item) + quit() + return line.replace(item, item_to_ball[item]) + args = line.split(',') + if command == "createmon": + arg_num = 5 + else: + arg_num = 3 + if len(args) < (arg_num + 1): + return line + arg = ARG_PAT.match(args[arg_num].strip()) + if arg: + item = arg.group(0) + if item not in item_to_ball: + print("unrecognized item:" + item) + quit() + return line.replace(item, item_to_ball[item]) + return line + + +for inc_fname in chain(glob.glob("./data/scripts/*.inc"), glob.glob("./data/maps/*/scripts.inc")): + new_lines = [] + with open(inc_fname, "r") as inc_fp: + lines = inc_fp.readlines() + for line in lines: + command = INCFILE_CREATEMON_PAT.search(line) + if command: + #print(inc_fname, line) + new_line = parse_createmon(line, command.group(0)) + new_lines.append(new_line) + else: + new_lines.append(line) + with open(inc_fname, 'w+') as file: + for line in new_lines: + file.write(line) diff --git a/migration_scripts/1.15/trainer_party_balls_type_change.py b/migration_scripts/1.15/trainer_party_balls_type_change.py new file mode 100644 index 000000000000..7c109a434027 --- /dev/null +++ b/migration_scripts/1.15/trainer_party_balls_type_change.py @@ -0,0 +1,85 @@ +import re +import os +import shutil + +item_to_ball = { + "ITEM_STRANGE_BALL": "Strange", + "ITEM_POKE_BALL": "Poke", + "ITEM_GREAT_BALL": "Great", + "ITEM_ULTRA_BALL": "Ultra", + "ITEM_MASTER_BALL": "Master", + "ITEM_PREMIER_BALL": "Premier", + "ITEM_HEAL_BALL": "Heal", + "ITEM_NET_BALL": "Net", + "ITEM_NEST_BALL": "Nest", + "ITEM_DIVE_BALL": "Dive", + "ITEM_DUSK_BALL": "Dusk", + "ITEM_TIMER_BALL": "Timer", + "ITEM_QUICK_BALL": "Quick", + "ITEM_REPEAT_BALL": "Repeat", + "ITEM_LUXURY_BALL": "Luxury", + "ITEM_LEVEL_BALL": "Level", + "ITEM_LURE_BALL": "Lure", + "ITEM_MOON_BALL": "Moon", + "ITEM_FRIEND_BALL": "Friend", + "ITEM_LOVE_BALL": "Love", + "ITEM_FAST_BALL": "Fast", + "ITEM_HEAVY_BALL": "Heavy", + "ITEM_DREAM_BALL": "Dream", + "ITEM_SAFARI_BALL": "Safari", + "ITEM_SPORT_BALL": "Sport", + "ITEM_PARK_BALL": "Park", + "ITEM_BEAST_BALL": "Beast", + "ITEM_CHERISH_BALL": "Cherish", +} + +def make_backup_files(files): + for file in files: + backup = os.path.basename(file) + ".backup" + if not os.path.isfile(backup): + print("Creating backup for " + file) + shutil.copy2(file, backup, follow_symlinks=True) + +def parse_ball(line): + line = line.removeprefix("Ball:").strip() + item = "ITEM_" + for c in line: + if ('A' <= c and c <= 'Z') or ('0' <= c and c <= '9'): + item += c + elif 'a' <= c and c <= 'z': + item += c.upper() + elif c == '\'': + pass + else: + item += "_" + + if item not in item_to_ball: + print("unrecognized pattern:" + item) + quit() + return ("Ball: " + item_to_ball[item] + "\n") + +def parse_and_change(filepath): + backup = os.path.basename(filepath) + ".backup" + allLines = list() + with open(backup, 'r', encoding='UTF-8') as file: + while line:=file.readline(): + if "Ball:" in line: + allLines.append(parse_ball(line)) + else: + allLines.append(line) + + with open(filepath, 'w+', encoding='UTF-8') as file: + for line in allLines: + file.write(line) + +if not os.path.exists("Makefile"): + print("Please run this script from your root folder.") + quit() + +files = ["src/data/battle_partners.party", "src/data/trainers.party"] +make_backup_files(files) + +for file in files: + parse_and_change(file) + +print("Migration complete. You can delete battle_partners.party.backup and trainers.party.backup if things are working properly") diff --git a/migration_scripts/1.15/update_IsTextPrinterActive.py b/migration_scripts/1.15/update_IsTextPrinterActive.py new file mode 100644 index 000000000000..ecf41383aa69 --- /dev/null +++ b/migration_scripts/1.15/update_IsTextPrinterActive.py @@ -0,0 +1,38 @@ +import glob +import re +import os +from pathlib import Path + +# All existing calls to IsTextPrinterActive targets a window +# so all function calls can be assumed to be FALSE + +if not os.path.exists("Makefile"): + print("Please run this script from your root folder.") + quit() + +def find_close_paren(string, index): + while not string[index] == ")": + index += 1 + return index + +def update_function(fileInput): + fileTest = Path(fileInput) + if not fileTest.is_file(): + return False + allLines = list() + with open(fileInput, 'r', encoding='UTF-8') as file: + while line:=file.readline(): + if "bool32 IsTextPrinterActiveOn" in line: + allLines.append(line) + elif "IsTextPrinterActive" in line: + line = line.replace("IsTextPrinterActive(", "IsTextPrinterActiveOnWindow(") + allLines.append(line) + else: + allLines.append(line) + + with open(fileInput, 'w', encoding='UTF-8') as file: + for line in allLines: + file.write(line) + +for file in glob.glob("src/**/*.c", recursive=True): + update_function(file) diff --git a/migration_scripts/1.15/update_text_color_defs.py b/migration_scripts/1.15/update_text_color_defs.py new file mode 100644 index 000000000000..50fec869d07b --- /dev/null +++ b/migration_scripts/1.15/update_text_color_defs.py @@ -0,0 +1,75 @@ +import re +import tempfile + +font_infos_re = re.compile( + r"struct\s+FontInfo\s+(?PsFontInfos)\[\]\s+=[^{]*\{" # declaration & opening bracket + r"(?P([^{}]*\{[^{}]*})+)" # array elements + r"[^{}]*};", # closing bracket + re.MULTILINE +) + +text_on_windows_info_re = re.compile( + r"struct\s+BattleWindowText\s+(?PsTextOnWindowsInfo_[a-zA-Z0-9_]+)\[\]\s+=[^{]*\{" # declaration & opening bracket + r"(?P([^{}]*\{[^{}]*})+)" # array elements + r"[^{}]*};", # closing bracket + re.MULTILINE +) + +array_elem_re = re.compile(r"[^{}]*(\{[^{}]*})") + +bg_color_re = re.compile(r"(?P\s*)\.bgColor\s*=\s*(?P[a-zA-Z0-9_]+)(?P,?)") + +def replace_color_defs(m): + s = m[0] + if ".accentColor" not in s: + s = bg_color_re.sub(lambda m: f'{m["indent"]}.bgColor = {m["bg_color"]},{m["indent"]}.accentColor = {m["bg_color"]}{m["comma"]}', s) + s = s.replace(".bgColor", ".color.background") + s = s.replace(".fgColor", ".color.foreground") + s = s.replace(".shadowColor", ".color.shadow") + s = s.replace(".accentColor", ".color.accent") + + return s + +if __name__ == "__main__": + with tempfile.TemporaryFile(mode="w+") as tmp: + with open("src/text.c", 'r') as f: + text_c = f.read() + m = font_infos_re.search(text_c) + if m is not None: + print(f'src/text.c: Updating {m["name"]}...') + font_infos_elems = m.group("elems") + fi_start, fi_end = m.span("elems") + + tmp.write(text_c[:fi_start]) + edited = array_elem_re.sub(replace_color_defs, font_infos_elems) + tmp.write(edited) + tmp.write(text_c[fi_end:]) + + tmp.seek(0) + + with open("src/text.c", "w") as f: + f.write(tmp.read()) + else: + print("Couldn't find sFontInfos!") + + with tempfile.TemporaryFile(mode="w+") as tmp: + with open("src/battle_message.c", 'r') as f: + text_c = f.read() + + + search_start = 0 + while (m := text_on_windows_info_re.search(text_c, search_start)) is not None: + print(f'src/battle_message.c: Updating {m["name"]}...') + text_on_windows_elems = m.group("elems") + match_start, match_end = m.span("elems") + + tmp.write(text_c[search_start:match_start]) + edited = array_elem_re.sub(replace_color_defs, text_on_windows_elems) + tmp.write(edited) + search_start = match_end + + tmp.write(text_c[search_start:]) + tmp.seek(0) + + with open("src/battle_message.c", "w") as f: + f.write(tmp.read()) diff --git a/migration_scripts/1.9/convert_partner_parties.py b/migration_scripts/1.9/convert_partner_parties.py index e726dcc7234d..eeefe9fa4f0b 100644 --- a/migration_scripts/1.9/convert_partner_parties.py +++ b/migration_scripts/1.9/convert_partner_parties.py @@ -183,7 +183,7 @@ def convert_parties(in_path, in_h): end_trainer_definition = re.compile(r' }') trainer_class_definition = re.compile(r'\.trainerClass = TRAINER_CLASS_(\w+)') encounter_music_gender_definition = re.compile(r'\.encounterMusic_gender = (F_TRAINER_FEMALE \| )?TRAINER_ENCOUNTER_MUSIC_(\w+)') -trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_BACK_PIC_(\w+)') +trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_BACK_(\w+)') trainer_name_definition = re.compile(r'\.trainerName = _\("([^"]*)"\)') trainer_items_definition = re.compile(r'\.items = \{([^}]*)\}') trainer_item_definition = re.compile(r'ITEM_(\w+)') diff --git a/migration_scripts/1.9/convert_trainer_parties.py b/migration_scripts/1.9/convert_trainer_parties.py index 463816c021b1..caf18c183b6e 100644 --- a/migration_scripts/1.9/convert_trainer_parties.py +++ b/migration_scripts/1.9/convert_trainer_parties.py @@ -183,7 +183,7 @@ def convert_parties(in_path, in_h): end_trainer_definition = re.compile(r' }') trainer_class_definition = re.compile(r'\.trainerClass = TRAINER_CLASS_(\w+)') encounter_music_gender_definition = re.compile(r'\.encounterMusic_gender = (F_TRAINER_FEMALE \| )?TRAINER_ENCOUNTER_MUSIC_(\w+)') -trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_(\w+)') +trainer_pic_definition = re.compile(r'\.trainerPic = TRAINER_PIC_FRONT_(\w+)') trainer_name_definition = re.compile(r'\.trainerName = _\("([^"]*)"\)') trainer_items_definition = re.compile(r'\.items = \{([^}]*)\}') trainer_item_definition = re.compile(r'ITEM_(\w+)') diff --git a/migration_scripts/README.md b/migration_scripts/README.md index 0b1eb505836e..fdd46a16ff6c 100644 --- a/migration_scripts/README.md +++ b/migration_scripts/README.md @@ -91,7 +91,7 @@ Refactors all battle animation move scripts, removing the list from `data/battle .type = TYPE_NORMAL, .accuracy = 100, .pp = 35, - .target = MOVE_TARGET_SELECTED, + .target = TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, .makesContact = TRUE, diff --git a/migration_scripts/frlg_metatile_behavior_converter.py b/migration_scripts/frlg_metatile_behavior_converter.py new file mode 100644 index 000000000000..0fe2c9cd153d --- /dev/null +++ b/migration_scripts/frlg_metatile_behavior_converter.py @@ -0,0 +1,543 @@ +import os +import struct +import glob + +# 1. Update these tables to fit your project: +# FRLG_BEHAVIORS, EMERALD_BEHAVIORS and FRLG_TO_EMERALD + +# 2. Change the ATTRIBUTES_PATH +# Example: +# . +# |--