diff options
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | asm/macros/event.inc | 10 | ||||
-rw-r--r-- | data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin (renamed from data/layouts/Unknown_084693AC/border.bin) | bin | 8 -> 8 bytes | |||
-rw-r--r-- | data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin (renamed from data/layouts/Unknown_084693AC/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave1/border.bin (renamed from data/layouts/Unknown_0843E6C0/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave1/map.bin (renamed from data/layouts/Unknown_0843E6C0/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave10/border.bin (renamed from data/layouts/Unknown_0843E6E4/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave10/map.bin (renamed from data/layouts/Unknown_0843E6E4/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave11/border.bin (renamed from data/layouts/Unknown_0843E708/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave11/map.bin (renamed from data/layouts/Unknown_0843E708/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave12/border.bin (renamed from data/layouts/Unknown_0843E72C/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave12/map.bin (renamed from data/layouts/Unknown_0843E72C/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave13/border.bin (renamed from data/layouts/Unknown_0843E750/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave13/map.bin (renamed from data/layouts/Unknown_0843E750/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave14/border.bin (renamed from data/layouts/Unknown_0843E774/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave14/map.bin (renamed from data/layouts/Unknown_0843E774/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave2/border.bin (renamed from data/layouts/Unknown_0843E798/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave2/map.bin (renamed from data/layouts/Unknown_0843E798/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave3/border.bin (renamed from data/layouts/Unknown_0843E7BC/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave3/map.bin (renamed from data/layouts/Unknown_0843E7BC/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave4/border.bin (renamed from data/layouts/Unknown_0843E7E0/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave4/map.bin (renamed from data/layouts/Unknown_0843E7E0/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave5/border.bin (renamed from data/layouts/Unknown_0843E804/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave5/map.bin (renamed from data/layouts/Unknown_0843E804/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave6/border.bin (renamed from data/layouts/Unknown_0843E828/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave6/map.bin (renamed from data/layouts/Unknown_0843E828/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave7/border.bin (renamed from data/layouts/Unknown_0843E84C/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave7/map.bin (renamed from data/layouts/Unknown_0843E84C/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave8/border.bin (renamed from data/layouts/Unknown_0843E870/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave8/map.bin (renamed from data/layouts/Unknown_0843E870/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedCave9/border.bin (renamed from data/layouts/Unknown_0843E894/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedCave9/map.bin (renamed from data/layouts/Unknown_0843E894/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedContestHall1/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_29/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall1/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_29/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall2/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_30/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall2/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_30/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall3/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_31/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall3/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_31/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall4/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_32/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall4/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_32/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall5/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_33/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall5/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_33/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall6/border.bin (renamed from data/layouts/UnknownLinkContestRoom_25_34/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestHall6/map.bin (renamed from data/layouts/UnknownLinkContestRoom_25_34/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestRoom1/border.bin (renamed from data/layouts/Unknown_08428450/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestRoom1/map.bin (renamed from data/layouts/Unknown_08428450/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedContestRoom2/border.bin (renamed from data/layouts/Unknown_084294C4/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestRoom2/map.bin (renamed from data/layouts/Unknown_084294C4/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedContestRoom3/border.bin (renamed from data/layouts/Unknown_084294E8/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedContestRoom3/map.bin (renamed from data/layouts/Unknown_084294E8/map.bin) | bin | 4 -> 4 bytes | |||
-rw-r--r-- | data/layouts/UnusedOutdoorArea/border.bin (renamed from data/layouts/Unknown_08447028/border.bin) | 0 | ||||
-rw-r--r-- | data/layouts/UnusedOutdoorArea/map.bin (renamed from data/layouts/Unknown_08447028/map.bin) | 0 | ||||
-rw-r--r-- | data/layouts/layouts.json | 200 | ||||
-rw-r--r-- | data/map_events.s | 1 | ||||
-rw-r--r-- | data/maps/BirthIsland_Exterior/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/FarawayIsland_Interior/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/LavaridgeTown_Gym_1F/scripts.inc | 28 | ||||
-rw-r--r-- | data/maps/LavaridgeTown_Gym_B1F/scripts.inc | 28 | ||||
-rw-r--r-- | data/maps/LilycoveCity_CoveLilyMotel_2F/map.json | 14 | ||||
-rw-r--r-- | data/maps/NavelRock_Bottom/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/NavelRock_Top/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/Route102/map.json | 4 | ||||
-rw-r--r-- | data/maps/Route103/map.json | 6 | ||||
-rw-r--r-- | data/maps/Route104/map.json | 20 | ||||
-rw-r--r-- | data/maps/Route110/map.json | 6 | ||||
-rw-r--r-- | data/maps/Route111/map.json | 8 | ||||
-rw-r--r-- | data/maps/Route112/map.json | 8 | ||||
-rw-r--r-- | data/maps/Route113/map.json | 4 | ||||
-rw-r--r-- | data/maps/Route114/map.json | 6 | ||||
-rw-r--r-- | data/maps/Route115/map.json | 10 | ||||
-rw-r--r-- | data/maps/Route116/map.json | 8 | ||||
-rw-r--r-- | data/maps/Route117/map.json | 6 | ||||
-rw-r--r-- | data/maps/Route118/map.json | 6 | ||||
-rw-r--r-- | data/maps/Route119/map.json | 14 | ||||
-rw-r--r-- | data/maps/Route120/map.json | 20 | ||||
-rw-r--r-- | data/maps/Route121/map.json | 16 | ||||
-rw-r--r-- | data/maps/Route123/map.json | 36 | ||||
-rw-r--r-- | data/maps/Route130/map.json | 2 | ||||
-rw-r--r-- | data/maps/SlateportCity_Harbor/scripts.inc | 2 | ||||
-rw-r--r-- | data/maps/SouthernIsland_Interior/scripts.inc | 4 | ||||
-rw-r--r-- | data/maps/UnknownLinkContestRoom_25_33/map.json | 18 | ||||
-rw-r--r-- | data/maps/UnknownLinkContestRoom_25_34/map.json | 18 | ||||
-rw-r--r-- | data/maps/UnusedContestHall1/map.json (renamed from data/maps/UnknownLinkContestRoom_25_29/map.json) | 6 | ||||
-rw-r--r-- | data/maps/UnusedContestHall2/map.json (renamed from data/maps/UnknownLinkContestRoom_25_30/map.json) | 6 | ||||
-rw-r--r-- | data/maps/UnusedContestHall3/map.json (renamed from data/maps/UnknownLinkContestRoom_25_31/map.json) | 6 | ||||
-rw-r--r-- | data/maps/UnusedContestHall4/map.json (renamed from data/maps/UnknownLinkContestRoom_25_32/map.json) | 6 | ||||
-rw-r--r-- | data/maps/UnusedContestHall5/map.json | 18 | ||||
-rw-r--r-- | data/maps/UnusedContestHall6/map.json | 18 | ||||
-rw-r--r-- | data/maps/map_groups.json | 12 | ||||
-rw-r--r-- | data/script_cmd_table.inc | 4 | ||||
-rw-r--r-- | data/scripts/hall_of_fame.inc | 2 | ||||
-rw-r--r-- | data/scripts/mevent_pichu.inc | 2 | ||||
-rw-r--r-- | data/scripts/new_game.inc | 162 | ||||
-rw-r--r-- | data/specials.inc | 2 | ||||
-rw-r--r-- | graphics/evolution_scene/bg_anim.pal (renamed from graphics/evolution_scene/transition.pal) | 0 | ||||
-rw-r--r-- | graphics/evolution_scene/bg_anim_intro.pal (renamed from graphics/evolution_scene/gray_transition_intro.pal) | 0 | ||||
-rw-r--r-- | graphics/evolution_scene/bg_inner.bin (renamed from graphics/evolution_scene/bg.bin) | bin | 2048 -> 2048 bytes | |||
-rw-r--r-- | graphics/evolution_scene/bg_outer.bin (renamed from graphics/evolution_scene/bg2.bin) | bin | 2048 -> 2048 bytes | |||
-rw-r--r-- | graphics/evolution_scene/unused_1.pal (renamed from graphics/evolution_scene/unknown_5B4114.pal) | 0 | ||||
-rw-r--r-- | graphics/evolution_scene/unused_2.pal (renamed from graphics/evolution_scene/gray_transition_lighten.pal) | 0 | ||||
-rw-r--r-- | graphics/evolution_scene/unused_3.pal (renamed from graphics/evolution_scene/gray_transition_darken.pal) | 0 | ||||
-rw-r--r-- | graphics/evolution_scene/unused_4.pal (renamed from graphics/evolution_scene/gray_transition_outro.pal) | 0 | ||||
-rw-r--r-- | include/berry.h | 2 | ||||
-rw-r--r-- | include/constants/berry.h | 97 | ||||
-rw-r--r-- | include/constants/daycare.h | 6 | ||||
-rwxr-xr-x | include/constants/event_object_movement.h | 2 | ||||
-rw-r--r-- | include/constants/flags.h | 4 | ||||
-rw-r--r-- | include/constants/global.h | 1 | ||||
-rw-r--r-- | include/constants/item_effects.h | 4 | ||||
-rwxr-xr-x | include/constants/layouts.h | 50 | ||||
-rwxr-xr-x | include/constants/map_groups.h | 122 | ||||
-rw-r--r-- | include/constants/pokemon.h | 18 | ||||
-rw-r--r-- | include/event_object_movement.h | 4 | ||||
-rw-r--r-- | include/evolution_graphics.h | 14 | ||||
-rw-r--r-- | include/global.h | 40 | ||||
-rw-r--r-- | include/pokemon.h | 22 | ||||
-rw-r--r-- | include/trainer_see.h | 2 | ||||
-rw-r--r-- | src/battle_message.c | 1 | ||||
-rw-r--r-- | src/battle_pike.c | 2 | ||||
-rw-r--r-- | src/battle_util.c | 7 | ||||
-rw-r--r-- | src/berry.c | 1 | ||||
-rw-r--r-- | src/berry_blender.c | 1 | ||||
-rw-r--r-- | src/berry_tag_screen.c | 1 | ||||
-rw-r--r-- | src/crt0.s | 48 | ||||
-rwxr-xr-x | src/data/object_events/movement_type_func_tables.h | 4 | ||||
-rw-r--r-- | src/data/pokemon/item_effects.h | 24 | ||||
-rw-r--r-- | src/daycare.c | 16 | ||||
-rw-r--r-- | src/egg_hatch.c | 6 | ||||
-rw-r--r-- | src/event_object_movement.c | 22 | ||||
-rw-r--r-- | src/evolution_graphics.c | 443 | ||||
-rw-r--r-- | src/evolution_scene.c | 1039 | ||||
-rw-r--r-- | src/field_effect.c | 4 | ||||
-rw-r--r-- | src/field_weather.c | 8 | ||||
-rwxr-xr-x | src/item_menu.c | 10 | ||||
-rw-r--r-- | src/menu_specialized.c | 1 | ||||
-rwxr-xr-x | src/party_menu.c | 8 | ||||
-rw-r--r-- | src/pokeblock.c | 1 | ||||
-rw-r--r-- | src/pokemon.c | 114 | ||||
-rw-r--r-- | src/pokemon_size_record.c | 6 | ||||
-rw-r--r-- | src/pokemon_storage_system.c | 24 | ||||
-rw-r--r-- | src/scrcmd.c | 12 | ||||
-rw-r--r-- | src/trade.c | 16 | ||||
-rw-r--r-- | src/trainer_see.c | 60 | ||||
-rw-r--r-- | src/tv.c | 28 | ||||
-rw-r--r-- | src/util.c | 7 |
145 files changed, 1699 insertions, 1359 deletions
@@ -303,6 +303,7 @@ $1: $2 $$(shell $(SCANINC) -I include -I "" $2) $$(PREPROC) $$< charmap.txt | $$(CPP) -I include | $$(AS) $$(ASFLAGS) -o $$@ endef $(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call DATA_ASM_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src)))) +$(foreach src, $(C_ASM_SRCS), $(eval $(call DATA_ASM_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src)))) endif $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s diff --git a/asm/macros/event.inc b/asm/macros/event.inc index e9d55c4bc..4625f8df6 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1486,15 +1486,15 @@ .4byte \value .endm - @ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle. - .macro setmonobedient slot:req + @ Sets the Pokemon in the specified slot of the player party's eventLegal bit. + .macro setmoneventlegal slot:req .byte 0xcd .2byte \slot .endm - @ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, - @ VAR_RESULT is TRUE. If the Pokemon is obedient (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. - .macro checkmonobedience slot:req + @ Checks if the Pokemon in the specified slot of the player's party has its eventLegal bit set. If it isn't set, + @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. + .macro checkmoneventlegal slot:req .byte 0xce .2byte \slot .endm diff --git a/data/layouts/Unknown_084693AC/border.bin b/data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin Binary files differindex f496f458e..f496f458e 100644 --- a/data/layouts/Unknown_084693AC/border.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin diff --git a/data/layouts/Unknown_084693AC/map.bin b/data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin Binary files differindex a179d8997..a179d8997 100644 --- a/data/layouts/Unknown_084693AC/map.bin +++ b/data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin diff --git a/data/layouts/Unknown_0843E6C0/border.bin b/data/layouts/UnusedCave1/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E6C0/border.bin +++ b/data/layouts/UnusedCave1/border.bin diff --git a/data/layouts/Unknown_0843E6C0/map.bin b/data/layouts/UnusedCave1/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E6C0/map.bin +++ b/data/layouts/UnusedCave1/map.bin diff --git a/data/layouts/Unknown_0843E6E4/border.bin b/data/layouts/UnusedCave10/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E6E4/border.bin +++ b/data/layouts/UnusedCave10/border.bin diff --git a/data/layouts/Unknown_0843E6E4/map.bin b/data/layouts/UnusedCave10/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E6E4/map.bin +++ b/data/layouts/UnusedCave10/map.bin diff --git a/data/layouts/Unknown_0843E708/border.bin b/data/layouts/UnusedCave11/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E708/border.bin +++ b/data/layouts/UnusedCave11/border.bin diff --git a/data/layouts/Unknown_0843E708/map.bin b/data/layouts/UnusedCave11/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E708/map.bin +++ b/data/layouts/UnusedCave11/map.bin diff --git a/data/layouts/Unknown_0843E72C/border.bin b/data/layouts/UnusedCave12/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E72C/border.bin +++ b/data/layouts/UnusedCave12/border.bin diff --git a/data/layouts/Unknown_0843E72C/map.bin b/data/layouts/UnusedCave12/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E72C/map.bin +++ b/data/layouts/UnusedCave12/map.bin diff --git a/data/layouts/Unknown_0843E750/border.bin b/data/layouts/UnusedCave13/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E750/border.bin +++ b/data/layouts/UnusedCave13/border.bin diff --git a/data/layouts/Unknown_0843E750/map.bin b/data/layouts/UnusedCave13/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E750/map.bin +++ b/data/layouts/UnusedCave13/map.bin diff --git a/data/layouts/Unknown_0843E774/border.bin b/data/layouts/UnusedCave14/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E774/border.bin +++ b/data/layouts/UnusedCave14/border.bin diff --git a/data/layouts/Unknown_0843E774/map.bin b/data/layouts/UnusedCave14/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E774/map.bin +++ b/data/layouts/UnusedCave14/map.bin diff --git a/data/layouts/Unknown_0843E798/border.bin b/data/layouts/UnusedCave2/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E798/border.bin +++ b/data/layouts/UnusedCave2/border.bin diff --git a/data/layouts/Unknown_0843E798/map.bin b/data/layouts/UnusedCave2/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E798/map.bin +++ b/data/layouts/UnusedCave2/map.bin diff --git a/data/layouts/Unknown_0843E7BC/border.bin b/data/layouts/UnusedCave3/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E7BC/border.bin +++ b/data/layouts/UnusedCave3/border.bin diff --git a/data/layouts/Unknown_0843E7BC/map.bin b/data/layouts/UnusedCave3/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E7BC/map.bin +++ b/data/layouts/UnusedCave3/map.bin diff --git a/data/layouts/Unknown_0843E7E0/border.bin b/data/layouts/UnusedCave4/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E7E0/border.bin +++ b/data/layouts/UnusedCave4/border.bin diff --git a/data/layouts/Unknown_0843E7E0/map.bin b/data/layouts/UnusedCave4/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E7E0/map.bin +++ b/data/layouts/UnusedCave4/map.bin diff --git a/data/layouts/Unknown_0843E804/border.bin b/data/layouts/UnusedCave5/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E804/border.bin +++ b/data/layouts/UnusedCave5/border.bin diff --git a/data/layouts/Unknown_0843E804/map.bin b/data/layouts/UnusedCave5/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E804/map.bin +++ b/data/layouts/UnusedCave5/map.bin diff --git a/data/layouts/Unknown_0843E828/border.bin b/data/layouts/UnusedCave6/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E828/border.bin +++ b/data/layouts/UnusedCave6/border.bin diff --git a/data/layouts/Unknown_0843E828/map.bin b/data/layouts/UnusedCave6/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E828/map.bin +++ b/data/layouts/UnusedCave6/map.bin diff --git a/data/layouts/Unknown_0843E84C/border.bin b/data/layouts/UnusedCave7/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E84C/border.bin +++ b/data/layouts/UnusedCave7/border.bin diff --git a/data/layouts/Unknown_0843E84C/map.bin b/data/layouts/UnusedCave7/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E84C/map.bin +++ b/data/layouts/UnusedCave7/map.bin diff --git a/data/layouts/Unknown_0843E870/border.bin b/data/layouts/UnusedCave8/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E870/border.bin +++ b/data/layouts/UnusedCave8/border.bin diff --git a/data/layouts/Unknown_0843E870/map.bin b/data/layouts/UnusedCave8/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E870/map.bin +++ b/data/layouts/UnusedCave8/map.bin diff --git a/data/layouts/Unknown_0843E894/border.bin b/data/layouts/UnusedCave9/border.bin index b15c94f96..b15c94f96 100644 --- a/data/layouts/Unknown_0843E894/border.bin +++ b/data/layouts/UnusedCave9/border.bin diff --git a/data/layouts/Unknown_0843E894/map.bin b/data/layouts/UnusedCave9/map.bin Binary files differindex 22a47d94e..22a47d94e 100644 --- a/data/layouts/Unknown_0843E894/map.bin +++ b/data/layouts/UnusedCave9/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_29/border.bin b/data/layouts/UnusedContestHall1/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/UnknownLinkContestRoom_25_29/border.bin +++ b/data/layouts/UnusedContestHall1/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_29/map.bin b/data/layouts/UnusedContestHall1/map.bin index 5fc1e81ec..5fc1e81ec 100644 --- a/data/layouts/UnknownLinkContestRoom_25_29/map.bin +++ b/data/layouts/UnusedContestHall1/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_30/border.bin b/data/layouts/UnusedContestHall2/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/UnknownLinkContestRoom_25_30/border.bin +++ b/data/layouts/UnusedContestHall2/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_30/map.bin b/data/layouts/UnusedContestHall2/map.bin index 5fc1e81ec..5fc1e81ec 100644 --- a/data/layouts/UnknownLinkContestRoom_25_30/map.bin +++ b/data/layouts/UnusedContestHall2/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_31/border.bin b/data/layouts/UnusedContestHall3/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/UnknownLinkContestRoom_25_31/border.bin +++ b/data/layouts/UnusedContestHall3/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_31/map.bin b/data/layouts/UnusedContestHall3/map.bin index 5fc1e81ec..5fc1e81ec 100644 --- a/data/layouts/UnknownLinkContestRoom_25_31/map.bin +++ b/data/layouts/UnusedContestHall3/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_32/border.bin b/data/layouts/UnusedContestHall4/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/UnknownLinkContestRoom_25_32/border.bin +++ b/data/layouts/UnusedContestHall4/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_32/map.bin b/data/layouts/UnusedContestHall4/map.bin index 5fc1e81ec..5fc1e81ec 100644 --- a/data/layouts/UnknownLinkContestRoom_25_32/map.bin +++ b/data/layouts/UnusedContestHall4/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_33/border.bin b/data/layouts/UnusedContestHall5/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/UnknownLinkContestRoom_25_33/border.bin +++ b/data/layouts/UnusedContestHall5/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_33/map.bin b/data/layouts/UnusedContestHall5/map.bin index 5fc1e81ec..5fc1e81ec 100644 --- a/data/layouts/UnknownLinkContestRoom_25_33/map.bin +++ b/data/layouts/UnusedContestHall5/map.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_34/border.bin b/data/layouts/UnusedContestHall6/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/UnknownLinkContestRoom_25_34/border.bin +++ b/data/layouts/UnusedContestHall6/border.bin diff --git a/data/layouts/UnknownLinkContestRoom_25_34/map.bin b/data/layouts/UnusedContestHall6/map.bin index 5fc1e81ec..5fc1e81ec 100644 --- a/data/layouts/UnknownLinkContestRoom_25_34/map.bin +++ b/data/layouts/UnusedContestHall6/map.bin diff --git a/data/layouts/Unknown_08428450/border.bin b/data/layouts/UnusedContestRoom1/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/Unknown_08428450/border.bin +++ b/data/layouts/UnusedContestRoom1/border.bin diff --git a/data/layouts/Unknown_08428450/map.bin b/data/layouts/UnusedContestRoom1/map.bin Binary files differindex ca93fa0e2..ca93fa0e2 100644 --- a/data/layouts/Unknown_08428450/map.bin +++ b/data/layouts/UnusedContestRoom1/map.bin diff --git a/data/layouts/Unknown_084294C4/border.bin b/data/layouts/UnusedContestRoom2/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/Unknown_084294C4/border.bin +++ b/data/layouts/UnusedContestRoom2/border.bin diff --git a/data/layouts/Unknown_084294C4/map.bin b/data/layouts/UnusedContestRoom2/map.bin Binary files differindex 37f05b971..37f05b971 100644 --- a/data/layouts/Unknown_084294C4/map.bin +++ b/data/layouts/UnusedContestRoom2/map.bin diff --git a/data/layouts/Unknown_084294E8/border.bin b/data/layouts/UnusedContestRoom3/border.bin index 19d906679..19d906679 100644 --- a/data/layouts/Unknown_084294E8/border.bin +++ b/data/layouts/UnusedContestRoom3/border.bin diff --git a/data/layouts/Unknown_084294E8/map.bin b/data/layouts/UnusedContestRoom3/map.bin Binary files differindex ca93fa0e2..ca93fa0e2 100644 --- a/data/layouts/Unknown_084294E8/map.bin +++ b/data/layouts/UnusedContestRoom3/map.bin diff --git a/data/layouts/Unknown_08447028/border.bin b/data/layouts/UnusedOutdoorArea/border.bin index 9e4b3fb7a..9e4b3fb7a 100644 --- a/data/layouts/Unknown_08447028/border.bin +++ b/data/layouts/UnusedOutdoorArea/border.bin diff --git a/data/layouts/Unknown_08447028/map.bin b/data/layouts/UnusedOutdoorArea/map.bin index 028da0526..028da0526 100644 --- a/data/layouts/Unknown_08447028/map.bin +++ b/data/layouts/UnusedOutdoorArea/map.bin diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index 9292e10af..b8d841f72 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -742,14 +742,14 @@ "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_08428450", - "name": "Unknown_08428450_Layout", + "id": "LAYOUT_UNUSED_CONTEST_ROOM1", + "name": "UnusedContestRoom1_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/Unknown_08428450/border.bin", - "blockdata_filepath": "data/layouts/Unknown_08428450/map.bin" + "border_filepath": "data/layouts/UnusedContestRoom1/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestRoom1/map.bin" }, { "id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", @@ -822,24 +822,24 @@ "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin" }, { - "id": "LAYOUT_UNKNOWN_084294C4", - "name": "Unknown_084294C4_Layout", + "id": "LAYOUT_UNUSED_CONTEST_ROOM2", + "name": "UnusedContestRoom2_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/Unknown_084294C4/border.bin", - "blockdata_filepath": "data/layouts/Unknown_084294C4/map.bin" + "border_filepath": "data/layouts/UnusedContestRoom2/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestRoom2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_084294E8", - "name": "Unknown_084294E8_Layout", + "id": "LAYOUT_UNUSED_CONTEST_ROOM3", + "name": "UnusedContestRoom3_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/Unknown_084294E8/border.bin", - "blockdata_filepath": "data/layouts/Unknown_084294E8/map.bin" + "border_filepath": "data/layouts/UnusedContestRoom3/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestRoom3/map.bin" }, { "id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", @@ -1692,144 +1692,144 @@ "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E6C0", - "name": "Unknown_0843E6C0_Layout", + "id": "LAYOUT_UNUSED_CAVE1", + "name": "UnusedCave1_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E6C0/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E6C0/map.bin" + "border_filepath": "data/layouts/UnusedCave1/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave1/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E6E4", - "name": "Unknown_0843E6E4_Layout", + "id": "LAYOUT_UNUSED_CAVE2", + "name": "UnusedCave2_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E6E4/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E6E4/map.bin" + "border_filepath": "data/layouts/UnusedCave2/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E708", - "name": "Unknown_0843E708_Layout", + "id": "LAYOUT_UNUSED_CAVE3", + "name": "UnusedCave3_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E708/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E708/map.bin" + "border_filepath": "data/layouts/UnusedCave3/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave3/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E72C", - "name": "Unknown_0843E72C_Layout", + "id": "LAYOUT_UNUSED_CAVE4", + "name": "UnusedCave4_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E72C/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E72C/map.bin" + "border_filepath": "data/layouts/UnusedCave4/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave4/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E750", - "name": "Unknown_0843E750_Layout", + "id": "LAYOUT_UNUSED_CAVE5", + "name": "UnusedCave5_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E750/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E750/map.bin" + "border_filepath": "data/layouts/UnusedCave5/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave5/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E774", - "name": "Unknown_0843E774_Layout", + "id": "LAYOUT_UNUSED_CAVE6", + "name": "UnusedCave6_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E774/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E774/map.bin" + "border_filepath": "data/layouts/UnusedCave6/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave6/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E798", - "name": "Unknown_0843E798_Layout", + "id": "LAYOUT_UNUSED_CAVE7", + "name": "UnusedCave7_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E798/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E798/map.bin" + "border_filepath": "data/layouts/UnusedCave7/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave7/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E7BC", - "name": "Unknown_0843E7BC_Layout", + "id": "LAYOUT_UNUSED_CAVE8", + "name": "UnusedCave8_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E7BC/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E7BC/map.bin" + "border_filepath": "data/layouts/UnusedCave8/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave8/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E7E0", - "name": "Unknown_0843E7E0_Layout", + "id": "LAYOUT_UNUSED_CAVE9", + "name": "UnusedCave9_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E7E0/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E7E0/map.bin" + "border_filepath": "data/layouts/UnusedCave9/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave9/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E804", - "name": "Unknown_0843E804_Layout", + "id": "LAYOUT_UNUSED_CAVE10", + "name": "UnusedCave10_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E804/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E804/map.bin" + "border_filepath": "data/layouts/UnusedCave10/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave10/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E828", - "name": "Unknown_0843E828_Layout", + "id": "LAYOUT_UNUSED_CAVE11", + "name": "UnusedCave11_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E828/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E828/map.bin" + "border_filepath": "data/layouts/UnusedCave11/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave11/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E84C", - "name": "Unknown_0843E84C_Layout", + "id": "LAYOUT_UNUSED_CAVE12", + "name": "UnusedCave12_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E84C/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E84C/map.bin" + "border_filepath": "data/layouts/UnusedCave12/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave12/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E870", - "name": "Unknown_0843E870_Layout", + "id": "LAYOUT_UNUSED_CAVE13", + "name": "UnusedCave13_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E870/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E870/map.bin" + "border_filepath": "data/layouts/UnusedCave13/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave13/map.bin" }, { - "id": "LAYOUT_UNKNOWN_0843E894", - "name": "Unknown_0843E894_Layout", + "id": "LAYOUT_UNUSED_CAVE14", + "name": "UnusedCave14_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_General", "secondary_tileset": "gTileset_Cave", - "border_filepath": "data/layouts/Unknown_0843E894/border.bin", - "blockdata_filepath": "data/layouts/Unknown_0843E894/map.bin" + "border_filepath": "data/layouts/UnusedCave14/border.bin", + "blockdata_filepath": "data/layouts/UnusedCave14/map.bin" }, { "id": "LAYOUT_NEW_MAUVILLE_ENTRANCE", @@ -2252,64 +2252,64 @@ "blockdata_filepath": "data/layouts/ContestHall/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "name": "UnknownLinkContestRoom_25_29_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL1", + "name": "UnusedContestHall1_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_29/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_29/map.bin" + "border_filepath": "data/layouts/UnusedContestHall1/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall1/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "name": "UnknownLinkContestRoom_25_30_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL2", + "name": "UnusedContestHall2_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_30/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_30/map.bin" + "border_filepath": "data/layouts/UnusedContestHall2/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall2/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "name": "UnknownLinkContestRoom_25_31_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL3", + "name": "UnusedContestHall3_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_31/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_31/map.bin" + "border_filepath": "data/layouts/UnusedContestHall3/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall3/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "name": "UnknownLinkContestRoom_25_32_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL4", + "name": "UnusedContestHall4_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_32/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_32/map.bin" + "border_filepath": "data/layouts/UnusedContestHall4/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall4/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "name": "UnknownLinkContestRoom_25_33_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL5", + "name": "UnusedContestHall5_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_33/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_33/map.bin" + "border_filepath": "data/layouts/UnusedContestHall5/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall5/map.bin" }, { - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "name": "UnknownLinkContestRoom_25_34_Layout", + "id": "LAYOUT_UNUSED_CONTEST_HALL6", + "name": "UnusedContestHall6_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_Contest", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_34/border.bin", - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin" + "border_filepath": "data/layouts/UnusedContestHall6/border.bin", + "blockdata_filepath": "data/layouts/UnusedContestHall6/map.bin" }, { "id": "LAYOUT_CONTEST_HALL_BEAUTY", @@ -2412,14 +2412,14 @@ "blockdata_filepath": "data/layouts/SafariZone_South/map.bin" }, { - "id": "LAYOUT_UNKNOWN_08447028", - "name": "Unknown_08447028_Layout", + "id": "LAYOUT_UNUSED_OUTDOOR_AREA", + "name": "UnusedOutdoorArea_Layout", "width": 58, "height": 26, "primary_tileset": "gTileset_General", "secondary_tileset": "0", - "border_filepath": "data/layouts/Unknown_08447028/border.bin", - "blockdata_filepath": "data/layouts/Unknown_08447028/map.bin" + "border_filepath": "data/layouts/UnusedOutdoorArea/border.bin", + "blockdata_filepath": "data/layouts/UnusedOutdoorArea/map.bin" }, { "id": "LAYOUT_ROUTE109_SEASHORE_HOUSE", @@ -3582,14 +3582,14 @@ "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" }, { - "id": "LAYOUT_UNKNOWN_084693AC", - "name": "Unknown_084693AC_Layout", + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED", + "name": "BattleFrontier_BattlePikeRoomUnused_Layout", "width": 1, "height": 1, "primary_tileset": "gTileset_Building", "secondary_tileset": "gTileset_BattlePike", - "border_filepath": "data/layouts/Unknown_084693AC/border.bin", - "blockdata_filepath": "data/layouts/Unknown_084693AC/map.bin" + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomUnused/map.bin" }, { "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", diff --git a/data/map_events.s b/data/map_events.s index d285040a0..dcbb9cfb1 100644 --- a/data/map_events.s +++ b/data/map_events.s @@ -10,6 +10,7 @@ #include "constants/weather.h" #include "constants/trainer_hill.h" #include "constants/trainer_types.h" +#include "constants/berry.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 16a1c7488..c20de3798 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -85,7 +85,7 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1 setvar VAR_0x8004, SPECIES_DEOXYS setvar VAR_0x8005, 30 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index 2a06ffdfa..108bc12e6 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -141,7 +141,7 @@ FarawayIsland_Interior_EventScript_Mew:: @ 8267DF2 setvar VAR_0x8004, SPECIES_MEW setvar VAR_0x8005, 30 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index df95a0b4b..901969416 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -9,7 +9,7 @@ LavaridgeTown_Gym_1F_MapScripts:: @ 81FE6F4 LavaridgeTown_Gym_1F_OnTransition: @ 81FE6FA call LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars - call LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers + call LavaridgeTown_Gym_1F_EventScript_CheckBuryTrainers end @ Unclear where/if these temp vars are getting checked @@ -33,19 +33,19 @@ LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar:: @ 81FE748 LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars:: @ 81FE756 return -LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers:: @ 81FE757 - goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckHideGerald - setobjectmovementtype LOCALID_COLE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_CheckHideGerald:: @ 81FE764 - goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckHideAxle - setobjectmovementtype LOCALID_GERALD, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_CheckHideAxle:: @ 81FE771 - goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle - setobjectmovementtype LOCALID_AXLE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle:: @ 81FE77E - goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers - setobjectmovementtype LOCALID_DANIELLE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers:: @ 81FE78B +LavaridgeTown_Gym_1F_EventScript_CheckBuryTrainers:: @ 81FE757 + goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckBuryGerald + setobjectmovementtype LOCALID_COLE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_CheckBuryGerald:: @ 81FE764 + goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckBuryAxle + setobjectmovementtype LOCALID_GERALD, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_CheckBuryAxle:: @ 81FE771 + goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckBuryDanielle + setobjectmovementtype LOCALID_AXLE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_CheckBuryDanielle:: @ 81FE77E + goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers + setobjectmovementtype LOCALID_DANIELLE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_1F_EventScript_EndCheckBuryTrainers:: @ 81FE78B return LavaridgeTown_Gym_1F_EventScript_Flannery:: @ 81FE78C diff --git a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc index aad7c4778..f2e41ace4 100644 --- a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc @@ -9,7 +9,7 @@ LavaridgeTown_Gym_B1F_MapScripts:: @ 81FF87E LavaridgeTown_Gym_B1F_OnTransition: @ 81FF884 call LavaridgeTown_Gym_B1F_EventScript_SetTrainerTempVars - call LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers + call LavaridgeTown_Gym_B1F_EventScript_CheckBuryTrainers end @ Unclear where/if these temp vars are getting checked @@ -32,18 +32,18 @@ LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar:: @ 81FF8CD LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars:: @ 81FF8DB return -LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers:: @ 81FF8DC - goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckHideJace - setobjectmovementtype LOCALID_KEEGAN, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_CheckHideJace:: @ 81FF8E9 - goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff - setobjectmovementtype LOCALID_JACE, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff:: @ 81FF8F6 - goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckHideEli - setobjectmovementtype LOCALID_JEFF, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_CheckHideEli:: @ 81FF903 - goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers - setobjectmovementtype LOCALID_ELI, MOVEMENT_TYPE_HIDDEN -LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers:: @ 81FF910 +LavaridgeTown_Gym_B1F_EventScript_CheckBuryTrainers:: @ 81FF8DC + goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckBuryJace + setobjectmovementtype LOCALID_KEEGAN, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_CheckBuryJace:: @ 81FF8E9 + goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckBuryJeff + setobjectmovementtype LOCALID_JACE, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_CheckBuryJeff:: @ 81FF8F6 + goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckBuryEli + setobjectmovementtype LOCALID_JEFF, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_CheckBuryEli:: @ 81FF903 + goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckBuryTrainers + setobjectmovementtype LOCALID_ELI, MOVEMENT_TYPE_BURIED +LavaridgeTown_Gym_B1F_EventScript_EndCheckBuryTrainers:: @ 81FF910 return diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json index f55770b88..0edd978fd 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GameDesigner", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_SCIENTIST_1", @@ -38,7 +38,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GraphicArtist", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", @@ -51,7 +51,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_FatMan", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_MAN_4", @@ -64,7 +64,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Programmer", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_GAMEBOY_KID", @@ -77,7 +77,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_GameBoyKid", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", @@ -90,7 +90,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Woman", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS" }, { "graphics_id": "OBJ_EVENT_GFX_SCOTT", @@ -103,7 +103,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "LilycoveCity_CoveLilyMotel_2F_EventScript_Scott", - "flag": "FLAG_HIDE_LILCOVE_MOTEL_SCOTT" + "flag": "FLAG_HIDE_LILYCOVE_MOTEL_SCOTT" } ], "warp_events": [ diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc index 9c438fc5c..766c818d2 100644 --- a/data/maps/NavelRock_Bottom/scripts.inc +++ b/data/maps/NavelRock_Bottom/scripts.inc @@ -57,7 +57,7 @@ NavelRock_Bottom_EventScript_Lugia:: @ 82692A2 setvar VAR_0x8004, SPECIES_LUGIA setvar VAR_0x8005, 70 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc index c95596ff6..b24aed23b 100644 --- a/data/maps/NavelRock_Top/scripts.inc +++ b/data/maps/NavelRock_Top/scripts.inc @@ -61,7 +61,7 @@ NavelRock_Top_EventScript_HoOh:: @ 826916F setvar VAR_0x8004, SPECIES_HO_OH setvar VAR_0x8005, 70 @ level setvar VAR_0x8006, ITEM_NONE - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLegendaryBattle waitstate diff --git a/data/maps/Route102/map.json b/data/maps/Route102/map.json index fc9adee3b..aaa63b11f 100644 --- a/data/maps/Route102/map.json +++ b/data/maps/Route102/map.json @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "2", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_102_ORAN", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "1", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_102_PECHA", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route103/map.json b/data/maps/Route103/map.json index 4b91f913b..fbf92dd0c 100644 --- a/data/maps/Route103/map.json +++ b/data/maps/Route103/map.json @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "5", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_CHERI_1", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "6", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_LEPPA", "script": "BerryTreeScript", "flag": "0" }, @@ -138,7 +138,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "7", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_103_CHERI_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route104/map.json b/data/maps/Route104/map.json index 69e5faf27..6ec8b3752 100644 --- a/data/maps/Route104/map.json +++ b/data/maps/Route104/map.json @@ -156,7 +156,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "8", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_CHERI_1", "script": "BerryTreeScript", "flag": "0" }, @@ -169,7 +169,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "9", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_2", "script": "BerryTreeScript", "flag": "0" }, @@ -182,7 +182,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "10", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_LEPPA", "script": "BerryTreeScript", "flag": "0" }, @@ -195,7 +195,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "11", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_ORAN_2", "script": "BerryTreeScript", "flag": "0" }, @@ -208,7 +208,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "12", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_3", "script": "BerryTreeScript", "flag": "0" }, @@ -221,7 +221,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "13", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_PECHA", "script": "BerryTreeScript", "flag": "0" }, @@ -247,7 +247,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "3", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_1", "script": "BerryTreeScript", "flag": "0" }, @@ -260,7 +260,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "4", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_ORAN_1", "script": "BerryTreeScript", "flag": "0" }, @@ -273,7 +273,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "75", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_SOIL_4", "script": "BerryTreeScript", "flag": "0" }, @@ -286,7 +286,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "76", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_104_CHERI_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json index bb5df5eb4..abfc2b767 100644 --- a/data/maps/Route110/map.json +++ b/data/maps/Route110/map.json @@ -234,7 +234,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "16", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_1", "script": "BerryTreeScript", "flag": "0" }, @@ -247,7 +247,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "17", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_2", "script": "BerryTreeScript", "flag": "0" }, @@ -260,7 +260,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "18", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_110_NANAB_3", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route111/map.json b/data/maps/Route111/map.json index 014ac084c..4621591e4 100644 --- a/data/maps/Route111/map.json +++ b/data/maps/Route111/map.json @@ -104,7 +104,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "19", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_RAZZ_1", "script": "BerryTreeScript", "flag": "0" }, @@ -117,7 +117,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "20", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_RAZZ_2", "script": "BerryTreeScript", "flag": "0" }, @@ -273,7 +273,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "80", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_ORAN_1", "script": "BerryTreeScript", "flag": "0" }, @@ -286,7 +286,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "81", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_111_ORAN_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route112/map.json b/data/maps/Route112/map.json index d4d650857..04b2e6d12 100644 --- a/data/maps/Route112/map.json +++ b/data/maps/Route112/map.json @@ -117,7 +117,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "24", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_RAWST_2", "script": "BerryTreeScript", "flag": "0" }, @@ -130,7 +130,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "23", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_PECHA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -143,7 +143,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "22", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_PECHA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -156,7 +156,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "21", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_112_RAWST_1", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route113/map.json b/data/maps/Route113/map.json index 8d9d74028..422b88e6e 100644 --- a/data/maps/Route113/map.json +++ b/data/maps/Route113/map.json @@ -126,7 +126,7 @@ "x": 29, "y": 6, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_HIDDEN", + "movement_type": "MOVEMENT_TYPE_BURIED", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_BURIED", @@ -139,7 +139,7 @@ "x": 71, "y": 2, "elevation": 3, - "movement_type": "MOVEMENT_TYPE_HIDDEN", + "movement_type": "MOVEMENT_TYPE_BURIED", "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_BURIED", diff --git a/data/maps/Route114/map.json b/data/maps/Route114/map.json index 37edf509d..38891b518 100644 --- a/data/maps/Route114/map.json +++ b/data/maps/Route114/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "77", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_2", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "78", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_3", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "68", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_114_PERSIM_1", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route115/map.json b/data/maps/Route115/map.json index 2d0dbdbaa..bbac132f5 100644 --- a/data/maps/Route115/map.json +++ b/data/maps/Route115/map.json @@ -73,7 +73,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "69", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_1", "script": "BerryTreeScript", "flag": "0" }, @@ -86,7 +86,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "70", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_2", "script": "BerryTreeScript", "flag": "0" }, @@ -99,7 +99,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "71", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_KELPSY_3", "script": "BerryTreeScript", "flag": "0" }, @@ -190,7 +190,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "55", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_BLUK_1", "script": "BerryTreeScript", "flag": "0" }, @@ -203,7 +203,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "56", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_115_BLUK_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route116/map.json b/data/maps/Route116/map.json index 247a4b7b1..13b4bac1c 100644 --- a/data/maps/Route116/map.json +++ b/data/maps/Route116/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "25", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_PINAP_1", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "26", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_CHESTO_1", "script": "BerryTreeScript", "flag": "0" }, @@ -138,7 +138,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "66", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_CHESTO_2", "script": "BerryTreeScript", "flag": "0" }, @@ -151,7 +151,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "67", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_116_PINAP_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route117/map.json b/data/maps/Route117/map.json index dd923a7cd..b72866741 100644 --- a/data/maps/Route117/map.json +++ b/data/maps/Route117/map.json @@ -164,7 +164,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "29", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_3", "script": "BerryTreeScript", "flag": "0" }, @@ -177,7 +177,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "28", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_2", "script": "BerryTreeScript", "flag": "0" }, @@ -190,7 +190,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "27", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_117_WEPEAR_1", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route118/map.json b/data/maps/Route118/map.json index 7b541e629..67acb1b98 100644 --- a/data/maps/Route118/map.json +++ b/data/maps/Route118/map.json @@ -39,7 +39,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "31", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SITRUS_1", "script": "BerryTreeScript", "flag": "0" }, @@ -52,7 +52,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "32", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SOIL", "script": "BerryTreeScript", "flag": "0" }, @@ -65,7 +65,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "33", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_118_SITRUS_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route119/map.json b/data/maps/Route119/map.json index 8d78d1065..c5715daa2 100644 --- a/data/maps/Route119/map.json +++ b/data/maps/Route119/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "34", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_1", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "35", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_2", "script": "BerryTreeScript", "flag": "0" }, @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "36", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_POMEG_3", "script": "BerryTreeScript", "flag": "0" }, @@ -372,7 +372,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "83", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_HONDEW_1", "script": "BerryTreeScript", "flag": "0" }, @@ -385,7 +385,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "84", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_HONDEW_2", "script": "BerryTreeScript", "flag": "0" }, @@ -398,7 +398,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "85", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_SITRUS", "script": "BerryTreeScript", "flag": "0" }, @@ -411,7 +411,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "86", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_119_LEPPA", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route120/map.json b/data/maps/Route120/map.json index 787f51361..6b67310d3 100644 --- a/data/maps/Route120/map.json +++ b/data/maps/Route120/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "46", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_WEPEAR", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "45", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PINAP", "script": "BerryTreeScript", "flag": "0" }, @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "44", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_NANAB", "script": "BerryTreeScript", "flag": "0" }, @@ -73,7 +73,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "43", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_RAZZ", "script": "BerryTreeScript", "flag": "0" }, @@ -86,7 +86,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "37", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_1", "script": "BerryTreeScript", "flag": "0" }, @@ -99,7 +99,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "38", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_2", "script": "BerryTreeScript", "flag": "0" }, @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "39", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_ASPEAR_3", "script": "BerryTreeScript", "flag": "0" }, @@ -125,7 +125,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "40", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -138,7 +138,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "41", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -151,7 +151,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "42", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_120_PECHA_3", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route121/map.json b/data/maps/Route121/map.json index e956f6251..aa8f07085 100644 --- a/data/maps/Route121/map.json +++ b/data/maps/Route121/map.json @@ -52,7 +52,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "47", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_PERSIM", "script": "BerryTreeScript", "flag": "0" }, @@ -65,7 +65,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "48", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_ASPEAR", "script": "BerryTreeScript", "flag": "0" }, @@ -78,7 +78,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "49", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_RAWST", "script": "BerryTreeScript", "flag": "0" }, @@ -91,7 +91,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "50", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_CHESTO", "script": "BerryTreeScript", "flag": "0" }, @@ -104,7 +104,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "51", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_SOIL_1", "script": "BerryTreeScript", "flag": "0" }, @@ -117,7 +117,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "52", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_NANAB_1", "script": "BerryTreeScript", "flag": "0" }, @@ -130,7 +130,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "53", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_NANAB_2", "script": "BerryTreeScript", "flag": "0" }, @@ -143,7 +143,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "54", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_121_SOIL_2", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route123/map.json b/data/maps/Route123/map.json index 1bd25310a..695b50acd 100644 --- a/data/maps/Route123/map.json +++ b/data/maps/Route123/map.json @@ -34,7 +34,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "58", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_3", "script": "BerryTreeScript", "flag": "0" }, @@ -47,7 +47,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "59", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_4", "script": "BerryTreeScript", "flag": "0" }, @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "60", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -73,7 +73,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "61", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -86,7 +86,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "62", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_LEPPA_1", "script": "BerryTreeScript", "flag": "0" }, @@ -99,7 +99,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "63", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_SOIL", "script": "BerryTreeScript", "flag": "0" }, @@ -112,7 +112,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "64", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_LEPPA_2", "script": "BerryTreeScript", "flag": "0" }, @@ -151,7 +151,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "65", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_3", "script": "BerryTreeScript", "flag": "0" }, @@ -164,7 +164,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "72", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_GREPA_4", "script": "BerryTreeScript", "flag": "0" }, @@ -177,7 +177,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "73", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_2", "script": "BerryTreeScript", "flag": "0" }, @@ -190,7 +190,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "74", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_3", "script": "BerryTreeScript", "flag": "0" }, @@ -203,7 +203,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "79", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_4", "script": "BerryTreeScript", "flag": "0" }, @@ -216,7 +216,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "14", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_QUALOT_1", "script": "BerryTreeScript", "flag": "0" }, @@ -229,7 +229,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "15", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_1", "script": "BerryTreeScript", "flag": "0" }, @@ -242,7 +242,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "30", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_POMEG_2", "script": "BerryTreeScript", "flag": "0" }, @@ -320,7 +320,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "87", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_PECHA", "script": "BerryTreeScript", "flag": "0" }, @@ -333,7 +333,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "88", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_SITRUS", "script": "BerryTreeScript", "flag": "0" }, @@ -346,7 +346,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "89", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_123_RAWST", "script": "BerryTreeScript", "flag": "0" }, diff --git a/data/maps/Route130/map.json b/data/maps/Route130/map.json index 7b4cf047c..c612eccb5 100644 --- a/data/maps/Route130/map.json +++ b/data/maps/Route130/map.json @@ -60,7 +60,7 @@ "movement_range_x": 0, "movement_range_y": 0, "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "82", + "trainer_sight_or_berry_tree_id": "BERRY_TREE_ROUTE_130_LIECHI", "script": "BerryTreeScript", "flag": "FLAG_TEMP_11" }, diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 644911ea6..41a224f75 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -70,7 +70,7 @@ SlateportCity_Harbor_EventScript_AquaEscapeScene:: @ 820C9F5 removeobject LOCALID_SUBMARINE setvar VAR_SLATEPORT_HARBOR_STATE, 2 setflag FLAG_MET_TEAM_AQUA_HARBOR - setflag FLAG_HIDE_LILCOVE_MOTEL_SCOTT + setflag FLAG_HIDE_LILYCOVE_MOTEL_SCOTT compare VAR_0x8008, 0 call_if_eq SlateportCity_Harbor_EventScript_SternApproachPlayer0 compare VAR_0x8008, 1 diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc index 0dd8cc303..2c2e6e00d 100644 --- a/data/maps/SouthernIsland_Interior/scripts.inc +++ b/data/maps/SouthernIsland_Interior/scripts.inc @@ -118,14 +118,14 @@ SouthernIsland_Interior_EventScript_SetLatiosBattleVars:: @ 8242BA4 setvar VAR_0x8004, SPECIES_LATIOS setvar VAR_0x8005, 50 @ level setvar VAR_0x8006, ITEM_SOUL_DEW - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon return SouthernIsland_Interior_EventScript_SetLatiasBattleVars:: @ 8242BB7 setvar VAR_0x8004, SPECIES_LATIAS setvar VAR_0x8005, 50 @ level setvar VAR_0x8006, ITEM_SOUL_DEW - special CreateObedientEnemyMon + special CreateEventLegalEnemyMon return SouthernIsland_Interior_Movement_CameraPanUp: @ 8242BCA diff --git a/data/maps/UnknownLinkContestRoom_25_33/map.json b/data/maps/UnknownLinkContestRoom_25_33/map.json deleted file mode 100644 index f73ffe22e..000000000 --- a/data/maps/UnknownLinkContestRoom_25_33/map.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "name": "UnknownLinkContestRoom_25_33", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "music": "MUS_GSC_PEWTER", - "region_map_section": "MAPSEC_DYNAMIC", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_cycling": false, - "allow_escaping": false, - "allow_running": false, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "shared_events_map": "ContestHall", - "shared_scripts_map": "ContestHall" -} diff --git a/data/maps/UnknownLinkContestRoom_25_34/map.json b/data/maps/UnknownLinkContestRoom_25_34/map.json deleted file mode 100644 index f5ddbbe5a..000000000 --- a/data/maps/UnknownLinkContestRoom_25_34/map.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "name": "UnknownLinkContestRoom_25_34", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "music": "MUS_GSC_PEWTER", - "region_map_section": "MAPSEC_DYNAMIC", - "requires_flash": false, - "weather": "WEATHER_NONE", - "map_type": "MAP_TYPE_INDOOR", - "allow_cycling": false, - "allow_escaping": false, - "allow_running": false, - "show_map_name": false, - "battle_scene": "MAP_BATTLE_SCENE_NORMAL", - "connections": null, - "shared_events_map": "ContestHall", - "shared_scripts_map": "ContestHall" -} diff --git a/data/maps/UnknownLinkContestRoom_25_29/map.json b/data/maps/UnusedContestHall1/map.json index 72ed407ee..f0cc06947 100644 --- a/data/maps/UnknownLinkContestRoom_25_29/map.json +++ b/data/maps/UnusedContestHall1/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "name": "UnknownLinkContestRoom_25_29", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", + "id": "MAP_UNUSED_CONTEST_HALL1", + "name": "UnusedContestHall1", + "layout": "LAYOUT_UNUSED_CONTEST_HALL1", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnknownLinkContestRoom_25_30/map.json b/data/maps/UnusedContestHall2/map.json index cd4d6fddd..96f47e5df 100644 --- a/data/maps/UnknownLinkContestRoom_25_30/map.json +++ b/data/maps/UnusedContestHall2/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "name": "UnknownLinkContestRoom_25_30", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", + "id": "MAP_UNUSED_CONTEST_HALL2", + "name": "UnusedContestHall2", + "layout": "LAYOUT_UNUSED_CONTEST_HALL2", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnknownLinkContestRoom_25_31/map.json b/data/maps/UnusedContestHall3/map.json index 975ec382d..95d20e61d 100644 --- a/data/maps/UnknownLinkContestRoom_25_31/map.json +++ b/data/maps/UnusedContestHall3/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "name": "UnknownLinkContestRoom_25_31", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", + "id": "MAP_UNUSED_CONTEST_HALL3", + "name": "UnusedContestHall3", + "layout": "LAYOUT_UNUSED_CONTEST_HALL3", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnknownLinkContestRoom_25_32/map.json b/data/maps/UnusedContestHall4/map.json index d2d673adc..b4e715842 100644 --- a/data/maps/UnknownLinkContestRoom_25_32/map.json +++ b/data/maps/UnusedContestHall4/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "name": "UnknownLinkContestRoom_25_32", - "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", + "id": "MAP_UNUSED_CONTEST_HALL4", + "name": "UnusedContestHall4", + "layout": "LAYOUT_UNUSED_CONTEST_HALL4", "music": "MUS_GSC_PEWTER", "region_map_section": "MAPSEC_DYNAMIC", "requires_flash": false, diff --git a/data/maps/UnusedContestHall5/map.json b/data/maps/UnusedContestHall5/map.json new file mode 100644 index 000000000..4c1281bf3 --- /dev/null +++ b/data/maps/UnusedContestHall5/map.json @@ -0,0 +1,18 @@ +{ + "id": "MAP_UNUSED_CONTEST_HALL5", + "name": "UnusedContestHall5", + "layout": "LAYOUT_UNUSED_CONTEST_HALL5", + "music": "MUS_GSC_PEWTER", + "region_map_section": "MAPSEC_DYNAMIC", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "shared_events_map": "ContestHall", + "shared_scripts_map": "ContestHall" +} diff --git a/data/maps/UnusedContestHall6/map.json b/data/maps/UnusedContestHall6/map.json new file mode 100644 index 000000000..c0a7dbb4d --- /dev/null +++ b/data/maps/UnusedContestHall6/map.json @@ -0,0 +1,18 @@ +{ + "id": "MAP_UNUSED_CONTEST_HALL6", + "name": "UnusedContestHall6", + "layout": "LAYOUT_UNUSED_CONTEST_HALL6", + "music": "MUS_GSC_PEWTER", + "region_map_section": "MAPSEC_DYNAMIC", + "requires_flash": false, + "weather": "WEATHER_NONE", + "map_type": "MAP_TYPE_INDOOR", + "allow_cycling": false, + "allow_escaping": false, + "allow_running": false, + "show_map_name": false, + "battle_scene": "MAP_BATTLE_SCENE_NORMAL", + "connections": null, + "shared_events_map": "ContestHall", + "shared_scripts_map": "ContestHall" +} diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index 4201e814f..4268abbef 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -461,12 +461,12 @@ "RecordCorner", "BattleColosseum_4P", "ContestHall", - "UnknownLinkContestRoom_25_29", - "UnknownLinkContestRoom_25_30", - "UnknownLinkContestRoom_25_31", - "UnknownLinkContestRoom_25_32", - "UnknownLinkContestRoom_25_33", - "UnknownLinkContestRoom_25_34", + "UnusedContestHall1", + "UnusedContestHall2", + "UnusedContestHall3", + "UnusedContestHall4", + "UnusedContestHall5", + "UnusedContestHall6", "ContestHallBeauty", "ContestHallTough", "ContestHallCool", diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index f89e0a72a..a26ce6bf2 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -205,8 +205,8 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_nop1 @ 0xca .4byte ScrCmd_nop1 @ 0xcb .4byte ScrCmd_nop1 @ 0xcc - .4byte ScrCmd_setmonobedient @ 0xcd - .4byte ScrCmd_checkmonobedience @ 0xce + .4byte ScrCmd_setmoneventlegal @ 0xcd + .4byte ScrCmd_checkmoneventlegal @ 0xce .4byte ScrCmd_gotoram @ 0xcf .4byte ScrCmd_nop1 @ 0xd0 .4byte ScrCmd_warpspinenter @ 0xd1 diff --git a/data/scripts/hall_of_fame.inc b/data/scripts/hall_of_fame.inc index 91a88f348..021784f81 100644 --- a/data/scripts/hall_of_fame.inc +++ b/data/scripts/hall_of_fame.inc @@ -4,7 +4,7 @@ EverGrandeCity_HallOfFame_EventScript_SetGameClearFlags:: @ 82717C1 call EverGrandeCity_HallOfFame_EventScript_ResetDefeatedEventLegendaries compare VAR_FOSSIL_MANIAC_STATE, 0 call_if_eq EverGrandeCity_HallOfFame_EventScript_SetDesertUnderpassCommentReady - clearflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS + clearflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour setflag FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY clearflag FLAG_HIDE_SS_TIDAL_CORRIDOR_MR_BRINEY diff --git a/data/scripts/mevent_pichu.inc b/data/scripts/mevent_pichu.inc index c51558e9e..2b9e09df9 100644 --- a/data/scripts/mevent_pichu.inc +++ b/data/scripts/mevent_pichu.inc @@ -30,7 +30,7 @@ SurfPichu_FullParty: @ 8674D73 SurfPichu_GiveEgg: @ 8674D7E giveegg SPECIES_PICHU - setmonobedient VAR_EVENT_PICHU_SLOT + setmoneventlegal VAR_EVENT_PICHU_SLOT setmonmetlocation VAR_EVENT_PICHU_SLOT, METLOC_FATEFUL_ENCOUNTER compare VAR_EVENT_PICHU_SLOT, 1 vgoto_if_eq SurfPichu_Slot1 diff --git a/data/scripts/new_game.inc b/data/scripts/new_game.inc index 77102a001..422186695 100644 --- a/data/scripts/new_game.inc +++ b/data/scripts/new_game.inc @@ -1,115 +1,115 @@ EventScript_ResetAllBerries:: @ 827149D @ Route 102 - setberrytree 2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_102_ORAN, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_102_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES @ Route 104 - setberrytree 11, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 13, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 4, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 76, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES - setberrytree 8, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES - setberrytree 10, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_104_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES @ Route 116 - setberrytree 25, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES - setberrytree 26, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES - setberrytree 66, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES - setberrytree 67, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_PINAP_1, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_CHESTO_1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_CHESTO_2, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_116_PINAP_2, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES @ Route 115 - setberrytree 69, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES - setberrytree 70, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES - setberrytree 71, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES - setberrytree 55, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES - setberrytree 56, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_KELPSY_1, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_KELPSY_2, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_KELPSY_3, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_BLUK_1, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_115_BLUK_2, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES @ Route 103 - setberrytree 5, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES - setberrytree 6, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 7, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_103_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_103_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_103_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES @ Route 110 - setberrytree 16, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 17, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 18, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_110_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_110_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_110_NANAB_3, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES @ Route 117 - setberrytree 29, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 28, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 27, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES @ Route 112 - setberrytree 24, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES - setberrytree 23, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 22, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 21, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_112_RAWST_1, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES @ Route 111 - setberrytree 19, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES - setberrytree 20, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES - setberrytree 80, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES - setberrytree 81, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_RAZZ_1, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_RAZZ_2, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_111_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES @ Route 114 - setberrytree 77, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES - setberrytree 78, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES - setberrytree 68, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_114_PERSIM_2, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_114_PERSIM_3, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_114_PERSIM_1, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES @ Route 118 - setberrytree 31, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES - setberrytree 33, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_118_SITRUS_1, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_118_SITRUS_2, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES @ Route 119 - setberrytree 34, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 35, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 36, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 83, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES - setberrytree 84, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES - setberrytree 85, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES - setberrytree 86, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_HONDEW_1, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_HONDEW_2, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_119_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES @ Route 120 - setberrytree 37, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 38, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 39, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 40, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 41, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 42, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 46, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 45, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES - setberrytree 44, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 43, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_ASPEAR_1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_ASPEAR_2, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_ASPEAR_3, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PECHA_3, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_WEPEAR, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_PINAP, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_NANAB, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_120_RAZZ, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES @ Route 121 - setberrytree 47, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES - setberrytree 48, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES - setberrytree 49, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES - setberrytree 50, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES - setberrytree 52, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES - setberrytree 53, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_PERSIM, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_ASPEAR, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_CHESTO, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_121_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES @ Route 123 - setberrytree 62, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 64, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 58, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 59, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 60, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 61, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 79, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 14, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 15, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 30, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES - setberrytree 65, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 72, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES - setberrytree 73, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 74, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES - setberrytree 87, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES - setberrytree 88, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES - setberrytree 89, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_LEPPA_1, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_LEPPA_2, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_4, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_1, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_2, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_4, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_1, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_3, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_GREPA_4, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_2, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_QUALOT_3, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_123_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES @ Mirage Island - setberrytree 82, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES + setberrytree BERRY_TREE_ROUTE_130_LIECHI, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES return EventScript_ResetAllMapFlags:: @ 82715DE @@ -229,7 +229,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE setflag FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE setflag FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE setflag FLAG_HIDE_ROUTE_104_RIVAL - setflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS + setflag FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS setflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL setflag FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_ON_BIKE setflag FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL diff --git a/data/specials.inc b/data/specials.inc index 3e1d1862d..97f698379 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -490,7 +490,7 @@ gSpecials:: @ 81DBA64 def_special sub_813AF48 def_special DoDeoxysRockInteraction def_special SetDeoxysRockPalette - def_special CreateObedientEnemyMon + def_special CreateEventLegalEnemyMon def_special StartMirageTowerDisintegration def_special StartMirageTowerShake def_special StartMirageTowerFossilFallAndSink diff --git a/graphics/evolution_scene/transition.pal b/graphics/evolution_scene/bg_anim.pal index b0f4d3815..b0f4d3815 100644 --- a/graphics/evolution_scene/transition.pal +++ b/graphics/evolution_scene/bg_anim.pal diff --git a/graphics/evolution_scene/gray_transition_intro.pal b/graphics/evolution_scene/bg_anim_intro.pal index 323623a15..323623a15 100644 --- a/graphics/evolution_scene/gray_transition_intro.pal +++ b/graphics/evolution_scene/bg_anim_intro.pal diff --git a/graphics/evolution_scene/bg.bin b/graphics/evolution_scene/bg_inner.bin Binary files differindex 583ebac2b..583ebac2b 100644 --- a/graphics/evolution_scene/bg.bin +++ b/graphics/evolution_scene/bg_inner.bin diff --git a/graphics/evolution_scene/bg2.bin b/graphics/evolution_scene/bg_outer.bin Binary files differindex 7afab112a..7afab112a 100644 --- a/graphics/evolution_scene/bg2.bin +++ b/graphics/evolution_scene/bg_outer.bin diff --git a/graphics/evolution_scene/unknown_5B4114.pal b/graphics/evolution_scene/unused_1.pal index 2cd4981fd..2cd4981fd 100644 --- a/graphics/evolution_scene/unknown_5B4114.pal +++ b/graphics/evolution_scene/unused_1.pal diff --git a/graphics/evolution_scene/gray_transition_lighten.pal b/graphics/evolution_scene/unused_2.pal index 813db93dc..813db93dc 100644 --- a/graphics/evolution_scene/gray_transition_lighten.pal +++ b/graphics/evolution_scene/unused_2.pal diff --git a/graphics/evolution_scene/gray_transition_darken.pal b/graphics/evolution_scene/unused_3.pal index 97d117330..97d117330 100644 --- a/graphics/evolution_scene/gray_transition_darken.pal +++ b/graphics/evolution_scene/unused_3.pal diff --git a/graphics/evolution_scene/gray_transition_outro.pal b/graphics/evolution_scene/unused_4.pal index f122f40fe..f122f40fe 100644 --- a/graphics/evolution_scene/gray_transition_outro.pal +++ b/graphics/evolution_scene/unused_4.pal diff --git a/include/berry.h b/include/berry.h index 3412caae5..4a5a46615 100644 --- a/include/berry.h +++ b/include/berry.h @@ -1,8 +1,6 @@ #ifndef GUARD_BERRY_H #define GUARD_BERRY_H -#include "constants/berry.h" - void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); bool32 IsEnigmaBerryValid(void); diff --git a/include/constants/berry.h b/include/constants/berry.h index 8f1e7cd82..3ba59c0f5 100644 --- a/include/constants/berry.h +++ b/include/constants/berry.h @@ -32,4 +32,101 @@ // - BERRY_STAGE_FLOWERING #define NUM_WATER_STAGES 4 +// IDs for berry tree objects, indexes into berryTrees in SaveBlock1 +// Named for whatever berry is initially planted there on a new game +// Those with no initial berry are named "soil" +#define BERRY_TREE_ROUTE_102_PECHA 1 +#define BERRY_TREE_ROUTE_102_ORAN 2 +#define BERRY_TREE_ROUTE_104_SOIL_1 3 +#define BERRY_TREE_ROUTE_104_ORAN_1 4 +#define BERRY_TREE_ROUTE_103_CHERI_1 5 +#define BERRY_TREE_ROUTE_103_LEPPA 6 +#define BERRY_TREE_ROUTE_103_CHERI_2 7 +#define BERRY_TREE_ROUTE_104_CHERI_1 8 +#define BERRY_TREE_ROUTE_104_SOIL_2 9 +#define BERRY_TREE_ROUTE_104_LEPPA 10 +#define BERRY_TREE_ROUTE_104_ORAN_2 11 +#define BERRY_TREE_ROUTE_104_SOIL_3 12 +#define BERRY_TREE_ROUTE_104_PECHA 13 +#define BERRY_TREE_ROUTE_123_QUALOT_1 14 +#define BERRY_TREE_ROUTE_123_POMEG_1 15 +#define BERRY_TREE_ROUTE_110_NANAB_1 16 +#define BERRY_TREE_ROUTE_110_NANAB_2 17 +#define BERRY_TREE_ROUTE_110_NANAB_3 18 +#define BERRY_TREE_ROUTE_111_RAZZ_1 19 +#define BERRY_TREE_ROUTE_111_RAZZ_2 20 +#define BERRY_TREE_ROUTE_112_RAWST_1 21 +#define BERRY_TREE_ROUTE_112_PECHA_1 22 +#define BERRY_TREE_ROUTE_112_PECHA_2 23 +#define BERRY_TREE_ROUTE_112_RAWST_2 24 +#define BERRY_TREE_ROUTE_116_PINAP_1 25 +#define BERRY_TREE_ROUTE_116_CHESTO_1 26 +#define BERRY_TREE_ROUTE_117_WEPEAR_1 27 +#define BERRY_TREE_ROUTE_117_WEPEAR_2 28 +#define BERRY_TREE_ROUTE_117_WEPEAR_3 29 +#define BERRY_TREE_ROUTE_123_POMEG_2 30 +#define BERRY_TREE_ROUTE_118_SITRUS_1 31 +#define BERRY_TREE_ROUTE_118_SOIL 32 +#define BERRY_TREE_ROUTE_118_SITRUS_2 33 +#define BERRY_TREE_ROUTE_119_POMEG_1 34 +#define BERRY_TREE_ROUTE_119_POMEG_2 35 +#define BERRY_TREE_ROUTE_119_POMEG_3 36 +#define BERRY_TREE_ROUTE_120_ASPEAR_1 37 +#define BERRY_TREE_ROUTE_120_ASPEAR_2 38 +#define BERRY_TREE_ROUTE_120_ASPEAR_3 39 +#define BERRY_TREE_ROUTE_120_PECHA_1 40 +#define BERRY_TREE_ROUTE_120_PECHA_2 41 +#define BERRY_TREE_ROUTE_120_PECHA_3 42 +#define BERRY_TREE_ROUTE_120_RAZZ 43 +#define BERRY_TREE_ROUTE_120_NANAB 44 +#define BERRY_TREE_ROUTE_120_PINAP 45 +#define BERRY_TREE_ROUTE_120_WEPEAR 46 +#define BERRY_TREE_ROUTE_121_PERSIM 47 +#define BERRY_TREE_ROUTE_121_ASPEAR 48 +#define BERRY_TREE_ROUTE_121_RAWST 49 +#define BERRY_TREE_ROUTE_121_CHESTO 50 +#define BERRY_TREE_ROUTE_121_SOIL_1 51 +#define BERRY_TREE_ROUTE_121_NANAB_1 52 +#define BERRY_TREE_ROUTE_121_NANAB_2 53 +#define BERRY_TREE_ROUTE_121_SOIL_2 54 +#define BERRY_TREE_ROUTE_115_BLUK_1 55 +#define BERRY_TREE_ROUTE_115_BLUK_2 56 +#define BERRY_TREE_UNUSED 57 +#define BERRY_TREE_ROUTE_123_POMEG_3 58 +#define BERRY_TREE_ROUTE_123_POMEG_4 59 +#define BERRY_TREE_ROUTE_123_GREPA_1 60 +#define BERRY_TREE_ROUTE_123_GREPA_2 61 +#define BERRY_TREE_ROUTE_123_LEPPA_1 62 +#define BERRY_TREE_ROUTE_123_SOIL 63 +#define BERRY_TREE_ROUTE_123_LEPPA_2 64 +#define BERRY_TREE_ROUTE_123_GREPA_3 65 +#define BERRY_TREE_ROUTE_116_CHESTO_2 66 +#define BERRY_TREE_ROUTE_116_PINAP_2 67 +#define BERRY_TREE_ROUTE_114_PERSIM_1 68 +#define BERRY_TREE_ROUTE_115_KELPSY_1 69 +#define BERRY_TREE_ROUTE_115_KELPSY_2 70 +#define BERRY_TREE_ROUTE_115_KELPSY_3 71 +#define BERRY_TREE_ROUTE_123_GREPA_4 72 +#define BERRY_TREE_ROUTE_123_QUALOT_2 73 +#define BERRY_TREE_ROUTE_123_QUALOT_3 74 +#define BERRY_TREE_ROUTE_104_SOIL_4 75 +#define BERRY_TREE_ROUTE_104_CHERI_2 76 +#define BERRY_TREE_ROUTE_114_PERSIM_2 77 +#define BERRY_TREE_ROUTE_114_PERSIM_3 78 +#define BERRY_TREE_ROUTE_123_QUALOT_4 79 +#define BERRY_TREE_ROUTE_111_ORAN_1 80 +#define BERRY_TREE_ROUTE_111_ORAN_2 81 +#define BERRY_TREE_ROUTE_130_LIECHI 82 +#define BERRY_TREE_ROUTE_119_HONDEW_1 83 +#define BERRY_TREE_ROUTE_119_HONDEW_2 84 +#define BERRY_TREE_ROUTE_119_SITRUS 85 +#define BERRY_TREE_ROUTE_119_LEPPA 86 +#define BERRY_TREE_ROUTE_123_PECHA 87 +#define BERRY_TREE_ROUTE_123_SITRUS 88 +#define BERRY_TREE_ROUTE_123_RAWST 89 + +// Remainder are unused + +#define BERRY_TREES_COUNT 128 + #endif // GUARD_CONSTANTS_BERRY_H diff --git a/include/constants/daycare.h b/include/constants/daycare.h index adb62fab5..e412d2ab7 100644 --- a/include/constants/daycare.h +++ b/include/constants/daycare.h @@ -1,11 +1,11 @@ #ifndef GUARD_DAYCARE_CONSTANTS_H #define GUARD_DAYCARE_CONSTANTS_H -// Parent compatability scores +// Parent compatibility scores #define PARENTS_INCOMPATIBLE 0 #define PARENTS_LOW_COMPATIBILITY 20 -#define PARENTS_MED_COMPATABILITY 50 -#define PARENTS_MAX_COMPATABILITY 70 +#define PARENTS_MED_COMPATIBILITY 50 +#define PARENTS_MAX_COMPATIBILITY 70 // Daycare state #define DAYCARE_NO_MONS 0 diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 6a4405b65..223650081 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -64,7 +64,7 @@ #define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS 0x3C #define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS 0x3D #define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS 0x3E -#define MOVEMENT_TYPE_HIDDEN 0x3F +#define MOVEMENT_TYPE_BURIED 0x3F #define MOVEMENT_TYPE_WALK_IN_PLACE_DOWN 0x40 #define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41 #define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42 diff --git a/include/constants/flags.h b/include/constants/flags.h index 9be269105..21b730de3 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -829,7 +829,7 @@ #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_MOM 0x310 #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_MOM 0x311 #define FLAG_HIDE_ROUTE_119_SCOTT 0x312 -#define FLAG_HIDE_LILCOVE_MOTEL_SCOTT 0x313 +#define FLAG_HIDE_LILYCOVE_MOTEL_SCOTT 0x313 #define FLAG_HIDE_MOSSDEEP_CITY_SCOTT 0x314 #define FLAG_HIDE_FANCLUB_OLD_LADY 0x315 #define FLAG_HIDE_FANCLUB_BOY 0x316 @@ -967,7 +967,7 @@ #define FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE 0x39A #define FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE 0x39B #define FLAG_HIDE_AQUA_HIDEOUT_GRUNTS 0x39C -#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D +#define FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS 0x39D #define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E #define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F #define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0x3A0 diff --git a/include/constants/global.h b/include/constants/global.h index bc611879e..ee2fd3abc 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -33,7 +33,6 @@ #define DAYCARE_MON_COUNT 2 #define POKEBLOCKS_COUNT 40 #define OBJECT_EVENTS_COUNT 16 -#define BERRY_TREES_COUNT 128 #define MAIL_COUNT 16 #define SECRET_BASES_COUNT 20 #define TV_SHOWS_COUNT 25 diff --git a/include/constants/item_effects.h b/include/constants/item_effects.h index 6e61c4d7f..f9f329f0f 100644 --- a/include/constants/item_effects.h +++ b/include/constants/item_effects.h @@ -56,6 +56,10 @@ #define ITEM6_HEAL_HALF ((u8) -2) #define ITEM6_HEAL_LVL_UP ((u8) -3) +// Amount of EV modified by ITEM4_EV_HP, ITEM4_EV_ATK, ITEM5_EV_DEF, ITEM5_EV_SPEED, ITEM5_EV_SPDEF and ITEM5_EV_SPATK +#define ITEM6_ADD_EV 10 +#define ITEM6_SUBTRACT_EV -10 + // Used for GetItemEffectType. #define ITEM_EFFECT_X_ITEM 0 #define ITEM_EFFECT_RAISE_LEVEL 1 diff --git a/include/constants/layouts.h b/include/constants/layouts.h index 9d5e877b0..db92c9594 100755 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -79,7 +79,7 @@ #define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72 #define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73 #define LAYOUT_LILYCOVE_CITY_HOUSE2 74 -#define LAYOUT_UNKNOWN_08428450 75 +#define LAYOUT_UNUSED_CONTEST_ROOM1 75 #define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76 #define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77 #define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78 @@ -87,8 +87,8 @@ #define LAYOUT_HOUSE_WITH_BED 80 #define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81 #define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82 -#define LAYOUT_UNKNOWN_084294C4 83 -#define LAYOUT_UNKNOWN_084294E8 84 +#define LAYOUT_UNUSED_CONTEST_ROOM2 83 +#define LAYOUT_UNUSED_CONTEST_ROOM3 84 #define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85 #define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86 #define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87 @@ -174,20 +174,20 @@ #define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167 #define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168 #define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169 -#define LAYOUT_UNKNOWN_0843E6C0 170 -#define LAYOUT_UNKNOWN_0843E6E4 171 -#define LAYOUT_UNKNOWN_0843E708 172 -#define LAYOUT_UNKNOWN_0843E72C 173 -#define LAYOUT_UNKNOWN_0843E750 174 -#define LAYOUT_UNKNOWN_0843E774 175 -#define LAYOUT_UNKNOWN_0843E798 176 -#define LAYOUT_UNKNOWN_0843E7BC 177 -#define LAYOUT_UNKNOWN_0843E7E0 178 -#define LAYOUT_UNKNOWN_0843E804 179 -#define LAYOUT_UNKNOWN_0843E828 180 -#define LAYOUT_UNKNOWN_0843E84C 181 -#define LAYOUT_UNKNOWN_0843E870 182 -#define LAYOUT_UNKNOWN_0843E894 183 +#define LAYOUT_UNUSED_CAVE1 170 +#define LAYOUT_UNUSED_CAVE2 171 +#define LAYOUT_UNUSED_CAVE3 172 +#define LAYOUT_UNUSED_CAVE4 173 +#define LAYOUT_UNUSED_CAVE5 174 +#define LAYOUT_UNUSED_CAVE6 175 +#define LAYOUT_UNUSED_CAVE7 176 +#define LAYOUT_UNUSED_CAVE8 177 +#define LAYOUT_UNUSED_CAVE9 178 +#define LAYOUT_UNUSED_CAVE10 179 +#define LAYOUT_UNUSED_CAVE11 180 +#define LAYOUT_UNUSED_CAVE12 181 +#define LAYOUT_UNUSED_CAVE13 182 +#define LAYOUT_UNUSED_CAVE14 183 #define LAYOUT_NEW_MAUVILLE_ENTRANCE 184 #define LAYOUT_NEW_MAUVILLE_INSIDE 185 #define LAYOUT_ABANDONED_SHIP_DECK 186 @@ -230,12 +230,12 @@ #define LAYOUT_RECORD_CORNER 223 #define LAYOUT_BATTLE_COLOSSEUM_4P 224 #define LAYOUT_CONTEST_HALL 225 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29 226 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30 227 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31 228 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32 229 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33 230 -#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34 231 +#define LAYOUT_UNUSED_CONTEST_HALL1 226 +#define LAYOUT_UNUSED_CONTEST_HALL2 227 +#define LAYOUT_UNUSED_CONTEST_HALL3 228 +#define LAYOUT_UNUSED_CONTEST_HALL4 229 +#define LAYOUT_UNUSED_CONTEST_HALL5 230 +#define LAYOUT_UNUSED_CONTEST_HALL6 231 #define LAYOUT_CONTEST_HALL_BEAUTY 232 #define LAYOUT_CONTEST_HALL_TOUGH 233 #define LAYOUT_CONTEST_HALL_COOL 234 @@ -246,7 +246,7 @@ #define LAYOUT_SAFARI_ZONE_NORTH 239 #define LAYOUT_SAFARI_ZONE_SOUTHWEST 240 #define LAYOUT_SAFARI_ZONE_SOUTH 241 -#define LAYOUT_UNKNOWN_08447028 242 +#define LAYOUT_UNUSED_OUTDOOR_AREA 242 #define LAYOUT_ROUTE109_SEASHORE_HOUSE 243 #define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244 #define LAYOUT_ROUTE110_TRICK_HOUSE_END 245 @@ -363,7 +363,7 @@ #define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 #define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358 -#define LAYOUT_UNKNOWN_084693AC 359 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED 359 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 #define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR 361 #define LAYOUT_BATTLE_PYRAMID_SQUARE01 362 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index 69355635b..c650600e8 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -402,67 +402,67 @@ #define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) // Map Group 25 -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8)) -#define MAP_CONTEST_HALL (28 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29 (29 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30 (30 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31 (31 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32 (32 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33 (33 | (25 << 8)) -#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34 (34 | (25 << 8)) -#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8)) -#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8)) -#define MAP_CONTEST_HALL_COOL (37 | (25 << 8)) -#define MAP_CONTEST_HALL_SMART (38 | (25 << 8)) -#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) +#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) +#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) +#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) +#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) +#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8)) +#define MAP_CONTEST_HALL (28 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL1 (29 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL2 (30 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL3 (31 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL4 (32 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL5 (33 | (25 << 8)) +#define MAP_UNUSED_CONTEST_HALL6 (34 | (25 << 8)) +#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8)) +#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8)) +#define MAP_CONTEST_HALL_COOL (37 | (25 << 8)) +#define MAP_CONTEST_HALL_SMART (38 | (25 << 8)) +#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8)) +#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) +#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) +#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) +#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) +#define MAP_UNION_ROOM (60 | (25 << 8)) // Map Group 26 #define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index d4f6e5684..e32ddf496 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -164,15 +164,15 @@ #define MON_DATA_VICTORY_RIBBON 69 #define MON_DATA_ARTIST_RIBBON 70 #define MON_DATA_EFFORT_RIBBON 71 -#define MON_DATA_GIFT_RIBBON_1 72 -#define MON_DATA_GIFT_RIBBON_2 73 -#define MON_DATA_GIFT_RIBBON_3 74 -#define MON_DATA_GIFT_RIBBON_4 75 -#define MON_DATA_GIFT_RIBBON_5 76 -#define MON_DATA_GIFT_RIBBON_6 77 -#define MON_DATA_GIFT_RIBBON_7 78 -#define MON_DATA_FATEFUL_ENCOUNTER 79 -#define MON_DATA_OBEDIENCE 80 +#define MON_DATA_MARINE_RIBBON 72 +#define MON_DATA_LAND_RIBBON 73 +#define MON_DATA_SKY_RIBBON 74 +#define MON_DATA_COUNTRY_RIBBON 75 +#define MON_DATA_NATIONAL_RIBBON 76 +#define MON_DATA_EARTH_RIBBON 77 +#define MON_DATA_WORLD_RIBBON 78 +#define MON_DATA_FILLER 79 +#define MON_DATA_EVENT_LEGAL 80 #define MON_DATA_KNOWN_MOVES 81 #define MON_DATA_RIBBON_COUNT 82 #define MON_DATA_RIBBONS 83 diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 247db9efc..1e754dcd9 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -255,7 +255,7 @@ void MovementType_CopyPlayer(struct Sprite *); void MovementType_TreeDisguise(struct Sprite *); void MovementType_MountainDisguise(struct Sprite *); void MovementType_CopyPlayerInGrass(struct Sprite *); -void MovementType_Hidden(struct Sprite *); +void MovementType_Buried(struct Sprite *); void MovementType_WalkInPlace(struct Sprite *); void MovementType_JogInPlace(struct Sprite *); void MovementType_RunInPlace(struct Sprite *); @@ -413,7 +413,7 @@ bool8 cph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)); u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *, struct Sprite *); -u8 MovementType_Hidden_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementType_Buried_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *, struct Sprite *); diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h index f52105815..61051c69a 100644 --- a/include/evolution_graphics.h +++ b/include/evolution_graphics.h @@ -3,13 +3,11 @@ void LoadEvoSparkleSpriteAndPal(void); -u8 LaunchTask_PreEvoSparklesSet1(u16 arg0); -u8 LaunchTask_PreEvoSparklesSet2(void); -u8 LaunchTask_PostEvoSparklesSet1(void); -u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species); -u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species); -u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID); - -#define EvoGraphicsTaskEvoStop data[8] +u8 EvolutionSparkles_SpiralUpward(u16 arg0); +u8 EvolutionSparkles_ArcDown(void); +u8 EvolutionSparkles_CircleInward(void); +u8 EvolutionSparkles_SprayAndFlash(u16 species); +u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species); +u8 CycleEvolutionMonSprite(u8 preEvoSpriteID, u8 postEvoSpriteID); #endif // GUARD_EVOLUTION_GRAPHICS_H diff --git a/include/global.h b/include/global.h index ca3cf4452..5b1a7b44b 100644 --- a/include/global.h +++ b/include/global.h @@ -9,6 +9,7 @@ #include "constants/flags.h" #include "constants/vars.h" #include "constants/species.h" +#include "constants/berry.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -897,6 +898,41 @@ struct MysteryEventStruct /*0x344 0x3570*/ u32 unk_344[2][5]; }; // 0x36C 0x3598 +// For external event data storage. The majority of these may have never been used. +struct ExternalEventData +{ + u8 unknownExternalDataFields1[7]; // if actually used, may be broken up into different fields. + u32 currentPokeCoupons; // PokéCoupons stored by Pokémon Colosseum and XD from Mt. Battle runs. Earned PokéCoupons are also added to totalEarnedPokeCoupons. + u32 totalEarnedPokeCoupons; // Used by the JP Colosseum bonus disc. Determines PokéCoupon rank to distribute rewards. Unread in International games. + u8 unknownExternalDataFields2[5]; // if actually used, may be broken up into different fields. +} __attribute__((packed)); /*size = 0x14*/ + +// For external event flags. The majority of these may have never been used. +struct ExternalEventFlags +{ + u8 unknownFlag1; + u8 receivedWishmakerJirachi; // may also be used for Ageto Celebi? + u8 unknownFlag3; + u8 unknownFlag4; + u8 unknownFlag5; + u8 unknownFlag6; + u8 unknownFlag7; + u8 unknownFlag8; + u8 unknownFlag9; + u8 unknownFlag10; + u8 unknownFlag11; + u8 unknownFlag12; + u8 unknownFlag13; + u8 unknownFlag14; + u8 unknownFlag15; + u8 unknownFlag16; + u8 unknownFlag17; + u8 unknownFlag18; + u8 unknownFlag19; + u8 unknownFlag20; + +};/*size = 0x14*/ + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -970,7 +1006,9 @@ struct SaveBlock1 /*0x2e90*/ struct ContestWinner contestWinners[NUM_CONTEST_WINNERS]; // see CONTEST_WINNER_* /*0x3030*/ struct DayCare daycare; /*0x3150*/ struct LinkBattleRecords linkBattleRecords; - /*0x31A8*/ u8 giftRibbons[52]; + /*0x31A8*/ u8 giftRibbons[11]; + /*0x31B3*/ struct ExternalEventData externalEventData; + /*0x31C7*/ struct ExternalEventFlags externalEventFlags; /*0x31DC*/ struct Roamer roamer; /*0x31F8*/ struct EnigmaBerry enigmaBerry; /*0x322C*/ struct MEventBuffers unk_322C; diff --git a/include/pokemon.h b/include/pokemon.h index 654af3031..7d6e960d7 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -65,15 +65,15 @@ struct PokemonSubstruct3 /* 0x0A */ u32 victoryRibbon:1; /* 0x0A */ u32 artistRibbon:1; /* 0x0A */ u32 effortRibbon:1; - /* 0x0A */ u32 giftRibbon1:1; - /* 0x0A */ u32 giftRibbon2:1; - /* 0x0A */ u32 giftRibbon3:1; - /* 0x0A */ u32 giftRibbon4:1; - /* 0x0B */ u32 giftRibbon5:1; - /* 0x0B */ u32 giftRibbon6:1; - /* 0x0B */ u32 giftRibbon7:1; - /* 0x0B */ u32 fatefulEncounter:4; - /* 0x0B */ u32 obedient:1; + /* 0x0A */ u32 marineRibbon:1; // never distributed + /* 0x0A */ u32 landRibbon:1; // never distributed + /* 0x0A */ u32 skyRibbon:1; // never distributed + /* 0x0A */ u32 countryRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners + /* 0x0B */ u32 nationalRibbon:1; + /* 0x0B */ u32 earthRibbon:1; + /* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners + /* 0x0B */ u32 filler:4; + /* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in Gen 4+; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness. }; union PokemonSubstruct @@ -286,12 +286,12 @@ void CreateBattleTowerMon2(struct Pokemon *mon, struct BattleTowerPokemon *src, 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); -void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); +void CreateEventLegalMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId); void SetDeoxysStats(void); u16 GetUnionRoomTrainerPic(void); u16 GetUnionRoomTrainerClass(void); -void CreateObedientEnemyMon(void); +void CreateEventLegalEnemyMon(void); void CalculateMonStats(struct Pokemon *mon); void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); diff --git a/include/trainer_see.h b/include/trainer_see.h index 7a20671ea..ab808c720 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -17,7 +17,7 @@ extern bool8 gTrainerApproachedPlayer; extern u8 gApproachingTrainerId; bool8 CheckForTrainersWantingBattle(void); -void SetHiddenTrainerMovement(struct ObjectEvent *var); +void SetBuriedTrainerMovement(struct ObjectEvent *var); void DoTrainerApproach(void); void TryPrepareSecondApproachingTrainer(void); u8 FldEff_ExclamationMarkIcon(void); diff --git a/src/battle_message.c b/src/battle_message.c index 3920f94cf..46444a8fa 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -21,7 +21,6 @@ #include "window.h" #include "constants/battle_dome.h" #include "constants/battle_string_ids.h" -#include "constants/berry.h" #include "constants/frontier_util.h" #include "constants/items.h" #include "constants/moves.h" diff --git a/src/battle_pike.c b/src/battle_pike.c index a161b88b8..ed18b2f71 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -1326,7 +1326,7 @@ bool8 InBattlePike(void) return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS - || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_084693AC; + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED; } static void SetHintedRoom(void) diff --git a/src/battle_util.c b/src/battle_util.c index b7919f904..2bf06f331 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -29,7 +29,6 @@ #include "constants/battle_move_effects.h" #include "constants/battle_script_commands.h" #include "constants/battle_string_ids.h" -#include "constants/berry.h" #include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" @@ -3950,14 +3949,14 @@ u8 GetMoveTarget(u16 move, u8 setTarget) return targetBattler; } -static bool32 HasObedientBitSet(u8 battlerId) +static bool32 IsNotEventLegalMewOrDeoxys(u8 battlerId) { if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT) return TRUE; if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS && GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) return TRUE; - return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_OBEDIENCE, NULL); + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_EVENT_LEGAL, NULL); } u8 IsMonDisobedient(void) @@ -3971,7 +3970,7 @@ u8 IsMonDisobedient(void) if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) return 0; - if (HasObedientBitSet(gBattlerAttacker)) // only if species is Mew or Deoxys + if (IsNotEventLegalMewOrDeoxys(gBattlerAttacker)) // only if species is Mew or Deoxys { if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattlerAttacker) == 2) return 0; diff --git a/src/berry.c b/src/berry.c index 022fdc934..ea62deabf 100644 --- a/src/berry.c +++ b/src/berry.c @@ -11,7 +11,6 @@ #include "random.h" #include "string_util.h" #include "text.h" -#include "constants/berry.h" #include "constants/event_object_movement.h" #include "constants/items.h" diff --git a/src/berry_blender.c b/src/berry_blender.c index 08a25c58a..252407562 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -34,7 +34,6 @@ #include "new_game.h" #include "save.h" #include "strings.h" -#include "constants/berry.h" #include "constants/game_stat.h" #include "constants/items.h" #include "constants/rgb.h" diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 089228b17..5be149b0f 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -26,7 +26,6 @@ #include "item_menu_icons.h" #include "decompress.h" #include "international_string_util.h" -#include "constants/berry.h" #include "constants/items.h" #include "constants/rgb.h" #include "constants/songs.h" diff --git a/src/crt0.s b/src/crt0.s index 49f214f80..385e340a5 100644 --- a/src/crt0.s +++ b/src/crt0.s @@ -1,3 +1,4 @@ +#include "constants/global.h" .include "constants/gba_constants.inc" .syntax unified @@ -34,8 +35,8 @@ GPIOPortReadEnable: @ 80000C8 @ 80000CC .space 0x34 - .4byte 3 - .4byte 2 + .4byte GAME_VERSION + .4byte GAME_LANGUAGE .ascii "pokemon emerald version" .space 9 @@ -51,17 +52,33 @@ GPIOPortReadEnable: @ 80000C8 .4byte gMoveNames .4byte gDecorations - .4byte 0x00001270, 0x0000139c, 0x00000018, 0x00000988 - .4byte 0x00003b24, 0x00000046, 0x000008e4, 0x000008ac - .4byte 0x00000182 + .4byte 0x00001270 @ offsetof(struct SaveBlock1, flags) + .4byte 0x0000139c @ offsetof(struct SaveBlock1, vars) + .4byte 0x00000018 @ offsetof(struct SaveBlock2, pokedex) + .4byte 0x00000988 @ offsetof(struct SaveBlock1, seen1) + .4byte 0x00003b24 @ offsetof(struct SaveBlock1, seen2) + .4byte 0x00000046 @ ? + .4byte 0x000008e4 @ ? + .4byte 0x000008ac @ ? + .4byte 0x00000182 @ NATIONAL_DEX_COUNT? .byte 0x07, 0x0a, 0x0a, 0x0a, 0x0c, 0x0c, 0x06, 0x0c .byte 0x06, 0x10, 0x12, 0x0c, 0x0f, 0x0b, 0x01, 0x08 - .4byte 0x0000000c, 0x00000f2c, 0x00003d88, 0x00000234 - .4byte 0x00000238, 0x00000009, 0x0000000a, 0x00000000 - .4byte 0x00000008, 0x00000ca8, 0x00000ca8, 0x000031c7 - .4byte 0x000031b3, 0x00000000 + .4byte 0x0000000c @ ? + .4byte 0x00000f2c @ sizeof(struct SaveBlock2) + .4byte 0x00003d88 @ sizeof(struct SaveBlock1) + .4byte 0x00000234 @ offsetof(struct SaveBlock1, playerPartyCount) + .4byte 0x00000238 @ offsetof(struct SaveBlock1, playerParty) + .4byte 0x00000009 @ offsetof(struct SaveBlock2, specialSaveWarpFlags) + .4byte 0x0000000a @ offsetof(struct SaveBlock2, playerTrainerId) + .4byte 0x00000000 @ offsetof(struct SaveBlock2, playerName) + .4byte 0x00000008 @ offsetof(struct SaveBlock2, playerGender) + .4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus) + .4byte 0x00000ca8 @ offsetof(struct SaveBlock2, frontier.challengeStatus) + .4byte 0x000031c7 @ offsetof(struct SaveBlock1, externalEventFlags) + .4byte 0x000031b3 @ offsetof(struct SaveBlock1, externalEventData) + .4byte 0x00000000 .4byte gBaseStats .4byte gAbilityNames @@ -71,12 +88,19 @@ GPIOPortReadEnable: @ 80000C8 .4byte gBallSpriteSheets .4byte gBallSpritePalettes - .4byte 0x000000a8, 0x00000864, 0x0000089b + .4byte 0x000000a8 @ offsetof(struct SaveBlock2, gcnLinkFlags) + .4byte 0x00000864 @ ? + .4byte 0x0000089b @ ? .byte 0x1e, 0x1e, 0x10, 0x40 - .4byte 0x0000322e, 0x00000498, 0x000031a8, 0x000031f8 - .4byte 0x00000034, 0x00000000, 0x00000000 + .4byte 0x0000322e @ offsetof(struct SaveBlock1, ? part-way into unk_322C) + .4byte 0x00000498 @ offsetof(struct SaveBlock1, pcItems) + .4byte 0x000031a8 @ offsetof(struct SaveBlock1, giftRibbons) + .4byte 0x000031f8 @ offsetof(struct SaveBlock1, enigmaBerry) + .4byte 0x00000034 @ offsetof(struct SaveBlock1, mapView) + .4byte 0x00000000 + .4byte 0x00000000 .arm .align 2, 0 diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index 68dfeb730..f4890d684 100755 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -407,8 +407,8 @@ u8 (*const gMovementTypeFuncs_CopyPlayerInGrass[])(struct ObjectEvent *, struct MovementType_CopyPlayer_Step2, }; -u8 (*const gMovementTypeFuncs_Hidden[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_Hidden_Step0, +u8 (*const gMovementTypeFuncs_Buried[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_Buried_Step0, }; u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite *) = { diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index 1ed721e44..1d7f16b90 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -163,7 +163,7 @@ const u8 gItemEffect_SacredAsh[7] = { const u8 gItemEffect_HPUp[10] = { [4] = ITEM4_EV_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 10, + [6] = ITEM6_ADD_EV, [7] = 5, [8] = 3, [9] = 2, @@ -172,7 +172,7 @@ const u8 gItemEffect_HPUp[10] = { const u8 gItemEffect_Protein[10] = { [4] = ITEM4_EV_ATK, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = 10, + [6] = ITEM6_ADD_EV, [7] = 5, [8] = 3, [9] = 2, @@ -180,7 +180,7 @@ const u8 gItemEffect_Protein[10] = { const u8 gItemEffect_Iron[10] = { [5] = ITEM5_EV_DEF | ITEM5_FRIENDSHIP_ALL, - [6] = 10, + [6] = ITEM6_ADD_EV, [7] = 5, [8] = 3, [9] = 2, @@ -188,7 +188,7 @@ const u8 gItemEffect_Iron[10] = { const u8 gItemEffect_Carbos[10] = { [5] = ITEM5_EV_SPEED | ITEM5_FRIENDSHIP_ALL, - [6] = 10, + [6] = ITEM6_ADD_EV, [7] = 5, [8] = 3, [9] = 2, @@ -196,7 +196,7 @@ const u8 gItemEffect_Carbos[10] = { const u8 gItemEffect_Calcium[10] = { [5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL, - [6] = 10, + [6] = ITEM6_ADD_EV, [7] = 5, [8] = 3, [9] = 2, @@ -222,7 +222,7 @@ const u8 gItemEffect_PPUp[9] = { const u8 gItemEffect_Zinc[10] = { [5] = ITEM5_EV_SPDEF | ITEM5_FRIENDSHIP_ALL, - [6] = 10, + [6] = ITEM6_ADD_EV, [7] = 5, [8] = 3, [9] = 2, @@ -354,7 +354,7 @@ const u8 gItemEffect_SitrusBerry[7] = { const u8 gItemEffect_PomegBerry[10] = { [4] = ITEM4_EV_HP, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = -10, + [6] = ITEM6_SUBTRACT_EV, [7] = 10, [8] = 5, [9] = 2, @@ -363,7 +363,7 @@ const u8 gItemEffect_PomegBerry[10] = { const u8 gItemEffect_KelpsyBerry[10] = { [4] = ITEM4_EV_ATK, [5] = ITEM5_FRIENDSHIP_ALL, - [6] = -10, + [6] = ITEM6_SUBTRACT_EV, [7] = 10, [8] = 5, [9] = 2, @@ -371,7 +371,7 @@ const u8 gItemEffect_KelpsyBerry[10] = { const u8 gItemEffect_QualotBerry[10] = { [5] = ITEM5_EV_DEF | ITEM5_FRIENDSHIP_ALL, - [6] = -10, + [6] = ITEM6_SUBTRACT_EV, [7] = 10, [8] = 5, [9] = 2, @@ -379,7 +379,7 @@ const u8 gItemEffect_QualotBerry[10] = { const u8 gItemEffect_HondewBerry[10] = { [5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL, - [6] = -10, + [6] = ITEM6_SUBTRACT_EV, [7] = 10, [8] = 5, [9] = 2, @@ -387,7 +387,7 @@ const u8 gItemEffect_HondewBerry[10] = { const u8 gItemEffect_GrepaBerry[10] = { [5] = ITEM5_EV_SPDEF | ITEM5_FRIENDSHIP_ALL, - [6] = -10, + [6] = ITEM6_SUBTRACT_EV, [7] = 10, [8] = 5, [9] = 2, @@ -395,7 +395,7 @@ const u8 gItemEffect_GrepaBerry[10] = { const u8 gItemEffect_TamatoBerry[10] = { [5] = ITEM5_EV_SPEED | ITEM5_FRIENDSHIP_ALL, - [6] = -10, + [6] = ITEM6_SUBTRACT_EV, [7] = 10, [8] = 5, [9] = 2, diff --git a/src/daycare.c b/src/daycare.c index e2b5d2deb..14cf57806 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -894,8 +894,8 @@ static bool8 TryProduceOrHatchEgg(struct DayCare *daycare) // Check if an egg should be produced if (daycare->offspringPersonality == 0 && validEggs == DAYCARE_MON_COUNT && (daycare->mons[1].steps & 0xFF) == 0xFF) { - u8 compatability = GetDaycareCompatibilityScore(daycare); - if (compatability > (Random() * 100u) / USHRT_MAX) + u8 compatibility = GetDaycareCompatibilityScore(daycare); + if (compatibility > (Random() * 100u) / USHRT_MAX) TriggerPendingDaycareEgg(); } @@ -1050,7 +1050,7 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) if (trainerIds[0] == trainerIds[1]) return PARENTS_LOW_COMPATIBILITY; - return PARENTS_MED_COMPATABILITY; + return PARENTS_MED_COMPATIBILITY; } // neither parent is Ditto else @@ -1065,14 +1065,14 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) if (species[0] == species[1]) { if (trainerIds[0] == trainerIds[1]) - return PARENTS_MED_COMPATABILITY; // same species, same trainer + return PARENTS_MED_COMPATIBILITY; // same species, same trainer - return PARENTS_MAX_COMPATABILITY; // same species, different trainers + return PARENTS_MAX_COMPATIBILITY; // same species, different trainers } else { if (trainerIds[0] != trainerIds[1]) - return PARENTS_MED_COMPATABILITY; // different species, different trainers + return PARENTS_MED_COMPATIBILITY; // different species, different trainers return PARENTS_LOW_COMPATIBILITY; // different species, same trainer } @@ -1095,9 +1095,9 @@ void SetDaycareCompatibilityString(void) whichString = 3; if (relationshipScore == PARENTS_LOW_COMPATIBILITY) whichString = 2; - if (relationshipScore == PARENTS_MED_COMPATABILITY) + if (relationshipScore == PARENTS_MED_COMPATIBILITY) whichString = 1; - if (relationshipScore == PARENTS_MAX_COMPATABILITY) + if (relationshipScore == PARENTS_MAX_COMPATIBILITY) whichString = 0; StringCopy(gStringVar4, sCompatibilityMessages[whichString]); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 4e050ce62..5b80bfb6c 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -297,7 +297,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) { u16 species; u32 personality, pokerus; - u8 i, friendship, language, gameMet, markings, obedience; + u8 i, friendship, language, gameMet, markings, isEventLegal; u16 moves[MAX_MON_MOVES]; u32 ivs[NUM_STATS]; @@ -320,7 +320,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) gameMet = GetMonData(egg, MON_DATA_MET_GAME); markings = GetMonData(egg, MON_DATA_MARKINGS); pokerus = GetMonData(egg, MON_DATA_POKERUS); - obedience = GetMonData(egg, MON_DATA_OBEDIENCE); + isEventLegal = GetMonData(egg, MON_DATA_EVENT_LEGAL); CreateMon(temp, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, TRUE, personality, OT_ID_PLAYER_ID, 0); @@ -342,7 +342,7 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) friendship = 120; SetMonData(temp, MON_DATA_FRIENDSHIP, &friendship); SetMonData(temp, MON_DATA_POKERUS, &pokerus); - SetMonData(temp, MON_DATA_OBEDIENCE, &obedience); + SetMonData(temp, MON_DATA_EVENT_LEGAL, &isEventLegal); *egg = *temp; } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index f6e638f31..1a7d08db2 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -101,7 +101,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent*, struct Sprite*); static void UpdateObjectEventSpritePosition(struct Sprite*); static void ApplyLevitateMovement(u8); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); -static bool8 MovementType_Hidden_Callback(struct ObjectEvent *, struct Sprite *); +static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); static void CreateReflectionEffectSprites(void); static u8 GetObjectEventIdByLocalId(u8); static u8 GetObjectEventIdByLocalIdAndMapInternal(u8, u8, u8); @@ -212,7 +212,7 @@ static void (*const sMovementTypeCallbacks[])(struct Sprite *) = [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, - [MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden, + [MOVEMENT_TYPE_BURIED] = MovementType_Buried, [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, @@ -296,7 +296,7 @@ const u8 gRangedMovementTypes[] = { [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1, - [MOVEMENT_TYPE_HIDDEN] = 0, + [MOVEMENT_TYPE_BURIED] = 0, [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0, [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0, @@ -380,7 +380,7 @@ const u8 gInitialMovementTypeFacingDirections[] = { [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH, [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST, [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST, - [MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH, + [MOVEMENT_TYPE_BURIED] = DIR_SOUTH, [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH, [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, @@ -4467,7 +4467,7 @@ void MovementType_MountainDisguise(struct Sprite *sprite) UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback); } -void MovementType_Hidden(struct Sprite *sprite) +void MovementType_Buried(struct Sprite *sprite) { if (!sprite->data[7]) { @@ -4476,15 +4476,15 @@ void MovementType_Hidden(struct Sprite *sprite) sprite->oam.priority = 3; sprite->data[7]++; } - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Hidden_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Buried_Callback); } -static bool8 MovementType_Hidden_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_Buried_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gMovementTypeFuncs_Hidden[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_Buried[sprite->data[1]](objectEvent, sprite); } -bool8 MovementType_Hidden_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); return FALSE; @@ -6600,9 +6600,9 @@ bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *objectEvent, struct Sp bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (objectEvent->movementType == MOVEMENT_TYPE_HIDDEN) + if (objectEvent->movementType == MOVEMENT_TYPE_BURIED) { - SetHiddenTrainerMovement(objectEvent); + SetBuriedTrainerMovement(objectEvent); return FALSE; } if (objectEvent->movementType != MOVEMENT_TYPE_TREE_DISGUISE && objectEvent->movementType != MOVEMENT_TYPE_MOUNTAIN_DISGUISE) diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 28bbd4ef7..a66a7a28d 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -10,40 +10,46 @@ #include "palette.h" #include "constants/rgb.h" -// this file's functions -static void EvoSparkle_DummySpriteCb(struct Sprite* sprite); -static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID); -static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID); -static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskID); -static void EvoTask_BeginPreSparklesSet2(u8 taskID); -static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID); -static void EvoTask_DestroyPreSet2Task(u8 taskID); -static void EvoTask_BeginPostSparklesSet1(u8 taskID); -static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID); -static void EvoTask_DestroyPostSet1Task(u8 taskID); -static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID); -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID); -static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID); -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID); -static void EvoTask_DestroyPostSet2AndFlashTask(u8 taskID); -static void sub_817C4EC(u8 taskID); -static void sub_817C510(u8 taskID); -static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID); -static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID); -static void sub_817C560(u8 taskID); - -static const u16 sEvoSparklePalette[] = INCBIN_U16("graphics/misc/evo_sparkle.gbapal"); -static const u32 sEvoSparkleTiles[] = INCBIN_U32("graphics/misc/evo_sparkle.4bpp.lz"); +static void SpriteCB_Sparkle_Dummy(struct Sprite* sprite); + +static void Task_Sparkles_SpiralUpward_Init(u8 taskId); +static void Task_Sparkles_SpiralUpward(u8 taskId); +static void Task_Sparkles_SpiralUpward_End(u8 taskId); + +static void Task_Sparkles_ArcDown_Init(u8 taskId); +static void Task_Sparkles_ArcDown(u8 taskId); +static void Task_Sparkles_ArcDown_End(u8 taskId); + +static void Task_Sparkles_CircleInward_Init(u8 taskId); +static void Task_Sparkles_CircleInward(u8 taskId); +static void Task_Sparkles_CircleInward_End(u8 taskId); + +static void Task_Sparkles_SprayAndFlash_Init(u8 taskId); +static void Task_Sparkles_SprayAndFlash(u8 taskId); +static void Task_Sparkles_SprayAndFlashTrade_Init(u8 taskId); +static void Task_Sparkles_SprayAndFlashTrade(u8 taskId); +static void Task_Sparkles_SprayAndFlash_End(u8 taskId); + +static void Task_CycleEvolutionMonSprite_Init(u8 taskId); +static void Task_CycleEvolutionMonSprite_TryEnd(u8 taskId); +static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId); +static void EndOnPreEvoMon(u8 taskId); +static void EndOnPostEvoMon(u8 taskId); + +#define TAG_SPARKLE 1001 + +static const u16 sEvoSparkle_Pal[] = INCBIN_U16("graphics/misc/evo_sparkle.gbapal"); +static const u32 sEvoSparkle_Gfx[] = INCBIN_U32("graphics/misc/evo_sparkle.4bpp.lz"); static const struct CompressedSpriteSheet sEvoSparkleSpriteSheets[] = { - {sEvoSparkleTiles, 0x20, 1001}, + {sEvoSparkle_Gfx, 0x20, TAG_SPARKLE}, {NULL, 0, 0} }; static const struct SpritePalette sEvoSparkleSpritePals[] = { - {sEvoSparklePalette, 1001}, + {sEvoSparkle_Pal, TAG_SPARKLE}, {NULL, 0} }; @@ -77,13 +83,13 @@ static const union AnimCmd *const sSpriteAnimTable_EvoSparkle[] = static const struct SpriteTemplate sEvoSparkleSpriteTemplate = { - .tileTag = 1001, - .paletteTag = 1001, + .tileTag = TAG_SPARKLE, + .paletteTag = TAG_SPARKLE, .oam = &sOamData_EvoSparkle, .anims = sSpriteAnimTable_EvoSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = EvoSparkle_DummySpriteCb + .callback = SpriteCB_Sparkle_Dummy }; static const s16 sEvoSparkleMatrices[] = @@ -93,7 +99,7 @@ static const s16 sEvoSparkleMatrices[] = -1, 0x70, 0x1, 0x70, 0x2, 0x50, 0x3, 0x30, 0x4, 0x10 }; -static void EvoSparkle_DummySpriteCb(struct Sprite *sprite) +static void SpriteCB_Sparkle_Dummy(struct Sprite *sprite) { } @@ -107,7 +113,7 @@ static void SetEvoSparklesMatrices(void) } } -static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite) +static void SpriteCB_Sparkle_SpiralUpward(struct Sprite* sprite) { if (sprite->pos1.y > 8) { @@ -133,7 +139,7 @@ static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePreEvoSparkleSet1(u8 arg0) +static void CreateSparkle_SpiralUpward(u8 arg0) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 88, 0); if (spriteID != MAX_SPRITES) @@ -143,11 +149,11 @@ static void CreatePreEvoSparkleSet1(u8 arg0) gSprites[spriteID].data[7] = 0; gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 31; - gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet1; + gSprites[spriteID].callback = SpriteCB_Sparkle_SpiralUpward; } } -static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite) +static void SpriteCB_Sparkle_ArcDown(struct Sprite* sprite) { if (sprite->pos1.y < 88) { @@ -161,7 +167,7 @@ static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePreEvoSparkleSet2(u8 arg0) +static void CreateSparkle_ArcDown(u8 arg0) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 8, 0); if (spriteID != MAX_SPRITES) @@ -172,11 +178,11 @@ static void CreatePreEvoSparkleSet2(u8 arg0) gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 25; gSprites[spriteID].subpriority = 1; - gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet2; + gSprites[spriteID].callback = SpriteCB_Sparkle_ArcDown; } } -static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite) +static void SpriteCB_Sparkle_CircleInward(struct Sprite* sprite) { if (sprite->data[5] > 8) { @@ -189,7 +195,7 @@ static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1) +static void CreateSparkle_CircleInward(u8 arg0, u8 arg1) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0); if (spriteID != MAX_SPRITES) @@ -201,11 +207,11 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1) gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].subpriority = 1; - gSprites[spriteID].callback = SpriteCB_PostEvoSparkleSet1; + gSprites[spriteID].callback = SpriteCB_Sparkle_CircleInward; } } -static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) +static void SpriteCB_Sparkle_Spray(struct Sprite* sprite) { if (!(sprite->data[7] & 3)) sprite->pos1.y++; @@ -235,7 +241,7 @@ static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) DestroySprite(sprite); } -static void CreatePostEvoSparkleSet2(u8 arg0) +static void CreateSparkle_Spray(u8 id) { u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0); if (spriteID != MAX_SPRITES) @@ -246,7 +252,7 @@ static void CreatePostEvoSparkleSet2(u8 arg0) gSprites[spriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].subpriority = 20; - gSprites[spriteID].callback = SpriteCB_PostEvoSparkleSet2; + gSprites[spriteID].callback = SpriteCB_Sparkle_Spray; } } @@ -256,357 +262,386 @@ void LoadEvoSparkleSpriteAndPal(void) LoadSpritePalettes(sEvoSparkleSpritePals); } -#define tFrameCounter data[15] +#define tPalNum data[1] +#define tTimer data[15] -u8 LaunchTask_PreEvoSparklesSet1(u16 arg0) +u8 EvolutionSparkles_SpiralUpward(u16 palNum) { - u8 taskID = CreateTask(EvoTask_BeginPreSet1_FadeAndPlaySE, 0); - gTasks[taskID].data[1] = arg0; - return taskID; + u8 taskId = CreateTask(Task_Sparkles_SpiralUpward_Init, 0); + gTasks[taskId].tPalNum = palNum; + return taskId; } -static void EvoTask_BeginPreSet1_FadeAndPlaySE(u8 taskID) +static void Task_Sparkles_SpiralUpward_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; - BeginNormalPaletteFade(3 << gTasks[taskID].data[1], 0xA, 0, 0x10, RGB_WHITE); - gTasks[taskID].func = EvoTask_CreatePreEvoSparkleSet1; - PlaySE(SE_M_MEGA_KICK); + gTasks[taskId].tTimer = 0; + BeginNormalPaletteFade(3 << gTasks[taskId].tPalNum, 0xA, 0, 0x10, RGB_WHITE); + gTasks[taskId].func = Task_Sparkles_SpiralUpward; + PlaySE(SE_M_MEGA_KICK); // 'Charging up' sound for the sparkles as they spiral upwards } -static void EvoTask_CreatePreEvoSparkleSet1(u8 taskID) +static void Task_Sparkles_SpiralUpward(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 64) + if (gTasks[taskId].tTimer < 64) { - if (!(gTasks[taskID].tFrameCounter & 7)) + if (!(gTasks[taskId].tTimer & 7)) { u8 i; for (i = 0; i < 4; i++) - CreatePreEvoSparkleSet1((0x78 & gTasks[taskID].tFrameCounter) * 2 + i * 64); + CreateSparkle_SpiralUpward((0x78 & gTasks[taskId].tTimer) * 2 + i * 64); } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else { - gTasks[taskID].tFrameCounter = 96; - gTasks[taskID].func = EvoTask_WaitForPre1SparklesToGoUp; + gTasks[taskId].tTimer = 96; + gTasks[taskId].func = Task_Sparkles_SpiralUpward_End; } } -static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskID) +static void Task_Sparkles_SpiralUpward_End(u8 taskId) { - if (gTasks[taskID].tFrameCounter != 0) - gTasks[taskID].tFrameCounter--; + if (gTasks[taskId].tTimer != 0) + gTasks[taskId].tTimer--; else - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PreEvoSparklesSet2(void) +u8 EvolutionSparkles_ArcDown(void) { - return CreateTask(EvoTask_BeginPreSparklesSet2, 0); + return CreateTask(Task_Sparkles_ArcDown_Init, 0); } -static void EvoTask_BeginPreSparklesSet2(u8 taskID) +static void Task_Sparkles_ArcDown_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; - gTasks[taskID].func = EvoTask_CreatePreEvoSparklesSet2; + gTasks[taskId].tTimer = 0; + gTasks[taskId].func = Task_Sparkles_ArcDown; PlaySE(SE_M_BUBBLE_BEAM2); } -static void EvoTask_CreatePreEvoSparklesSet2(u8 taskID) +static void Task_Sparkles_ArcDown(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 96) + if (gTasks[taskId].tTimer < 96) { - if (gTasks[taskID].tFrameCounter < 6) + if (gTasks[taskId].tTimer < 6) { u8 i; for (i = 0; i < 9; i++) - CreatePreEvoSparkleSet2(i * 16); + CreateSparkle_ArcDown(i * 16); } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPreSet2Task; + gTasks[taskId].func = Task_Sparkles_ArcDown_End; } -static void EvoTask_DestroyPreSet2Task(u8 taskID) +static void Task_Sparkles_ArcDown_End(u8 taskId) { - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PostEvoSparklesSet1(void) +u8 EvolutionSparkles_CircleInward(void) { - return CreateTask(EvoTask_BeginPostSparklesSet1, 0); + return CreateTask(Task_Sparkles_CircleInward_Init, 0); } -static void EvoTask_BeginPostSparklesSet1(u8 taskID) +static void Task_Sparkles_CircleInward_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; - gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet1; + gTasks[taskId].tTimer = 0; + gTasks[taskId].func = Task_Sparkles_CircleInward; PlaySE(SE_SHINY); } -static void EvoTask_CreatePostEvoSparklesSet1(u8 taskID) +static void Task_Sparkles_CircleInward(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 48) + if (gTasks[taskId].tTimer < 48) { - if (gTasks[taskID].tFrameCounter == 0) + if (gTasks[taskId].tTimer == 0) { u8 i; for (i = 0; i < 16; i++) - CreatePostEvoSparkleSet1(i * 16, 4); + CreateSparkle_CircleInward(i * 16, 4); } - if (gTasks[taskID].tFrameCounter == 32) + if (gTasks[taskId].tTimer == 32) { u8 i; for (i = 0; i < 16; i++) - CreatePostEvoSparkleSet1(i * 16, 8); + CreateSparkle_CircleInward(i * 16, 8); } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPostSet1Task; + gTasks[taskId].func = Task_Sparkles_CircleInward_End; } -static void EvoTask_DestroyPostSet1Task(u8 taskID) +static void Task_Sparkles_CircleInward_End(u8 taskId) { - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species) +#define tSpecies data[2] // Never read + +u8 EvolutionSparkles_SprayAndFlash(u16 species) { - u8 taskID = CreateTask(EvoTask_BeginPostSparklesSet2_AndFlash, 0); - gTasks[taskID].data[2] = species; - return taskID; + u8 taskId = CreateTask(Task_Sparkles_SprayAndFlash_Init, 0); + gTasks[taskId].tSpecies = species; + return taskId; } -static void EvoTask_BeginPostSparklesSet2_AndFlash(u8 taskID) +static void Task_Sparkles_SprayAndFlash_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; + gTasks[taskId].tTimer = 0; CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF9041C, 0, 0, 0x10, RGB_WHITE); // was 0xFFF9001C in R/S - gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash; + gTasks[taskId].func = Task_Sparkles_SprayAndFlash; PlaySE(SE_M_PETAL_DANCE); } -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash(u8 taskID) +static void Task_Sparkles_SprayAndFlash(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 128) + if (gTasks[taskId].tTimer < 128) { u8 i; - switch (gTasks[taskID].tFrameCounter) + switch (gTasks[taskId].tTimer) { default: - if (gTasks[taskID].tFrameCounter < 50) - CreatePostEvoSparkleSet2(Random() & 7); + if (gTasks[taskId].tTimer < 50) + CreateSparkle_Spray(Random() & 7); break; case 0: for (i = 0; i < 8; i++) - CreatePostEvoSparkleSet2(i); + CreateSparkle_Spray(i); break; case 32: BeginNormalPaletteFade(0xFFFF041C, 0x10, 0x10, 0, RGB_WHITE); // was 0xFFF9001C in R/S break; } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPostSet2AndFlashTask; + gTasks[taskId].func = Task_Sparkles_SprayAndFlash_End; } -static void EvoTask_DestroyPostSet2AndFlashTask(u8 taskID) +static void Task_Sparkles_SprayAndFlash_End(u8 taskId) { if (!gPaletteFade.active) - DestroyTask(taskID); + DestroyTask(taskId); } -u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species) +// Separate from EvolutionSparkles_SprayAndFlash for difference in fade color +u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species) { - u8 taskID = CreateTask(EvoTask_BeginPostSparklesSet2_AndFlash_Trade, 0); - gTasks[taskID].data[2] = species; - return taskID; + u8 taskId = CreateTask(Task_Sparkles_SprayAndFlashTrade_Init, 0); + gTasks[taskId].tSpecies = species; + return taskId; } -static void EvoTask_BeginPostSparklesSet2_AndFlash_Trade(u8 taskID) +static void Task_Sparkles_SprayAndFlashTrade_Init(u8 taskId) { SetEvoSparklesMatrices(); - gTasks[taskID].tFrameCounter = 0; + gTasks[taskId].tTimer = 0; CpuSet(&gPlttBufferFaded[0x20], &gPlttBufferUnfaded[0x20], 0x30); BeginNormalPaletteFade(0xFFF90400, 0, 0, 0x10, RGB_WHITE); // was 0xFFFF0001 in R/S - gTasks[taskID].func = EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade; + gTasks[taskId].func = Task_Sparkles_SprayAndFlashTrade; PlaySE(SE_M_PETAL_DANCE); } -static void EvoTask_CreatePostEvoSparklesSet2_AndFlash_Trade(u8 taskID) +static void Task_Sparkles_SprayAndFlashTrade(u8 taskId) { - if (gTasks[taskID].tFrameCounter < 128) + if (gTasks[taskId].tTimer < 128) { u8 i; - switch (gTasks[taskID].tFrameCounter) + switch (gTasks[taskId].tTimer) { default: - if (gTasks[taskID].tFrameCounter < 50) - CreatePostEvoSparkleSet2(Random() & 7); + if (gTasks[taskId].tTimer < 50) + CreateSparkle_Spray(Random() & 7); break; case 0: for (i = 0; i < 8; i++) - CreatePostEvoSparkleSet2(i); + CreateSparkle_Spray(i); break; case 32: BeginNormalPaletteFade(0xFFFF0400, 0x10, 0x10, 0, RGB_WHITE); // was 0xFFFF0001 in R/S break; } - gTasks[taskID].tFrameCounter++; + gTasks[taskId].tTimer++; } else - gTasks[taskID].func = EvoTask_DestroyPostSet2AndFlashTask; + gTasks[taskId].func = Task_Sparkles_SprayAndFlash_End; } -#undef tFrameCounter +#undef tTimer +#undef tSpecies -static void PokeEvoSprite_DummySpriteCB(struct Sprite* sprite) +static void SpriteCB_EvolutionMonSprite(struct Sprite* sprite) { } -#define tPreEvoSpriteID data[1] -#define tPostEvoSpriteID data[2] +#define tPreEvoSpriteId data[1] +#define tPostEvoSpriteId data[2] +#define tPreEvoScale data[3] +#define tPostEvoScale data[4] +#define tShowingPostEvo data[5] +#define tScaleSpeed data[6] #define tEvoStopped data[8] -u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID) +#define MATRIX_PRE_EVO 30 +#define MATRIX_POST_EVO 31 + +#define MON_MAX_SCALE 256 +#define MON_MIN_SCALE 16 + +// Alternately grow/shrink the pre-evolution and post-evolution mon sprites +u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId) { u16 i; u16 stack[16]; - u8 taskID; + u8 taskId; s32 toDiv; - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(stack); i++) stack[i] = 0x7FFF; - taskID = CreateTask(sub_817C4EC, 0); - gTasks[taskID].tPreEvoSpriteID = preEvoSpriteID; - gTasks[taskID].tPostEvoSpriteID = postEvoSpriteID; - gTasks[taskID].data[3] = 256; - gTasks[taskID].data[4] = 16; + taskId = CreateTask(Task_CycleEvolutionMonSprite_Init, 0); + gTasks[taskId].tPreEvoSpriteId = preEvoSpriteId; + gTasks[taskId].tPostEvoSpriteId = postEvoSpriteId; + gTasks[taskId].tPreEvoScale = MON_MAX_SCALE; + gTasks[taskId].tPostEvoScale = MON_MIN_SCALE; toDiv = 65536; - SetOamMatrix(30, 256, 0, 0, 256); - SetOamMatrix(31, toDiv / gTasks[taskID].data[4], 0, 0, toDiv / gTasks[taskID].data[4]); + SetOamMatrix(MATRIX_PRE_EVO, MON_MAX_SCALE, 0, 0, MON_MAX_SCALE); + SetOamMatrix(MATRIX_POST_EVO, toDiv / gTasks[taskId].tPostEvoScale, 0, 0, toDiv / gTasks[taskId].tPostEvoScale); - gSprites[preEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; - gSprites[preEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; - gSprites[preEvoSpriteID].oam.matrixNum = 30; - gSprites[preEvoSpriteID].invisible = FALSE; - CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteID].oam.paletteNum * 16)], 16); + gSprites[preEvoSpriteId].callback = SpriteCB_EvolutionMonSprite; + gSprites[preEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[preEvoSpriteId].oam.matrixNum = MATRIX_PRE_EVO; + gSprites[preEvoSpriteId].invisible = FALSE; + CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteId].oam.paletteNum * 16)], 16); - gSprites[postEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; - gSprites[postEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_NORMAL; - gSprites[postEvoSpriteID].oam.matrixNum = 31; - gSprites[postEvoSpriteID].invisible = FALSE; - CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteID].oam.paletteNum * 16)], 16); + gSprites[postEvoSpriteId].callback = SpriteCB_EvolutionMonSprite; + gSprites[postEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[postEvoSpriteId].oam.matrixNum = MATRIX_POST_EVO; + gSprites[postEvoSpriteId].invisible = FALSE; + CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteId].oam.paletteNum * 16)], 16); - gTasks[taskID].tEvoStopped = FALSE; - return taskID; + gTasks[taskId].tEvoStopped = FALSE; + return taskId; } -static void sub_817C4EC(u8 taskID) +static void Task_CycleEvolutionMonSprite_Init(u8 taskId) { - gTasks[taskID].data[5] = 0; - gTasks[taskID].data[6] = 8; - gTasks[taskID].func = sub_817C510; + gTasks[taskId].tShowingPostEvo = FALSE; + gTasks[taskId].tScaleSpeed = 8; + gTasks[taskId].func = Task_CycleEvolutionMonSprite_TryEnd; } -static void sub_817C510(u8 taskID) +// Try to end sprite cycling +// If evo hasn't stopped or growth/shrink speed hasn't been maxed out, start another cycle +static void Task_CycleEvolutionMonSprite_TryEnd(u8 taskId) { - if (gTasks[taskID].tEvoStopped) - PreEvoVisible_PostEvoInvisible_KillTask(taskID); - else if (gTasks[taskID].data[6] == 128) - PreEvoInvisible_PostEvoVisible_KillTask(taskID); + if (gTasks[taskId].tEvoStopped) + EndOnPreEvoMon(taskId); + else if (gTasks[taskId].tScaleSpeed == 128) + EndOnPostEvoMon(taskId); else { - gTasks[taskID].data[6] += 2; - gTasks[taskID].data[5] ^= 1; - gTasks[taskID].func = sub_817C560; + gTasks[taskId].tScaleSpeed += 2; + gTasks[taskId].tShowingPostEvo ^= 1; + gTasks[taskId].func = Task_CycleEvolutionMonSprite_UpdateSize; } } -static void sub_817C560(u8 taskID) +static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) { - if (gTasks[taskID].tEvoStopped) - gTasks[taskID].func = PreEvoVisible_PostEvoInvisible_KillTask; + if (gTasks[taskId].tEvoStopped) + gTasks[taskId].func = EndOnPreEvoMon; else { u16 oamMatrixArg; - u8 r6 = 0; - if (gTasks[taskID].data[5] == 0) + u8 numSpritesFinished = 0; + if (!gTasks[taskId].tShowingPostEvo) { - if (gTasks[taskID].data[3] < 256 - gTasks[taskID].data[6]) - gTasks[taskID].data[3] += gTasks[taskID].data[6]; + // Set pre-evo sprite growth + if (gTasks[taskId].tPreEvoScale < MON_MAX_SCALE - gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPreEvoScale += gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[3] = 256; - r6++; + gTasks[taskId].tPreEvoScale = MON_MAX_SCALE; + numSpritesFinished++; } - if (gTasks[taskID].data[4] > 16 + gTasks[taskID].data[6]) - gTasks[taskID].data[4] -= gTasks[taskID].data[6]; + + // Set post-evo sprite shrink + if (gTasks[taskId].tPostEvoScale > MON_MIN_SCALE + gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPostEvoScale -= gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[4] = 16; - r6++; + gTasks[taskId].tPostEvoScale = MON_MIN_SCALE; + numSpritesFinished++; } } else { - if (gTasks[taskID].data[4] < 256 - gTasks[taskID].data[6]) - gTasks[taskID].data[4] += gTasks[taskID].data[6]; + // Set post-evo sprite growth + if (gTasks[taskId].tPostEvoScale < MON_MAX_SCALE - gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPostEvoScale += gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[4] = 256; - r6++; + gTasks[taskId].tPostEvoScale = MON_MAX_SCALE; + numSpritesFinished++; } - if (gTasks[taskID].data[3] > 16 + gTasks[taskID].data[6]) - gTasks[taskID].data[3] -= gTasks[taskID].data[6]; + + // Set pre-evo sprite shrink + if (gTasks[taskId].tPreEvoScale > MON_MIN_SCALE + gTasks[taskId].tScaleSpeed) + gTasks[taskId].tPreEvoScale -= gTasks[taskId].tScaleSpeed; else { - gTasks[taskID].data[3] = 16; - r6++; + gTasks[taskId].tPreEvoScale = MON_MIN_SCALE; + numSpritesFinished++; } } - oamMatrixArg = 65536 / gTasks[taskID].data[3]; - SetOamMatrix(30, oamMatrixArg, 0, 0, oamMatrixArg); - oamMatrixArg = 65536 / gTasks[taskID].data[4]; - SetOamMatrix(31, oamMatrixArg, 0, 0, oamMatrixArg); - if (r6 == 2) - gTasks[taskID].func = sub_817C510; + // Grow/shrink pre-evo sprite + oamMatrixArg = 65536 / gTasks[taskId].tPreEvoScale; + SetOamMatrix(MATRIX_PRE_EVO, oamMatrixArg, 0, 0, oamMatrixArg); + + // Grow/shrink post-evo sprite + oamMatrixArg = 65536 / gTasks[taskId].tPostEvoScale; + SetOamMatrix(MATRIX_POST_EVO, oamMatrixArg, 0, 0, oamMatrixArg); + + // Both sprites have reached their size extreme + if (numSpritesFinished == 2) + gTasks[taskId].func = Task_CycleEvolutionMonSprite_TryEnd; } } -static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID) +static void EndOnPostEvoMon(u8 taskId) { - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = TRUE; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = TRUE; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = FALSE; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = FALSE; - DestroyTask(taskID); + DestroyTask(taskId); } -static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID) +static void EndOnPreEvoMon(u8 taskId) { - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = FALSE; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = FALSE; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = ST_OAM_AFFINE_OFF; - gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = TRUE; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF; + gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0; + gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = TRUE; - DestroyTask(taskID); + DestroyTask(taskId); } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index c8f910261..6f5a4dce7 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -35,110 +35,113 @@ struct EvoInfo { - u8 preEvoSpriteID; - u8 postEvoSpriteID; - u8 evoTaskID; - u8 field_3; + u8 preEvoSpriteId; + u8 postEvoSpriteId; + u8 evoTaskId; + u8 delayTimer; u16 savedPalette[48]; }; -// EWRAM vars static EWRAM_DATA struct EvoInfo *sEvoStructPtr = NULL; -static EWRAM_DATA u16 *sEvoMovingBgPtr = NULL; +static EWRAM_DATA u16 *sBgAnimPal = NULL; -// IWRAM common void (*gCB2_AfterEvolution)(void); #define sEvoCursorPos gBattleCommunication[1] // when learning a new move -#define sEvoGraphicsTaskID gBattleCommunication[2] +#define sEvoGraphicsTaskId gBattleCommunication[2] -// this file's functions -static void Task_EvolutionScene(u8 taskID); -static void Task_TradeEvolutionScene(u8 taskID); +static void Task_EvolutionScene(u8 taskId); +static void Task_TradeEvolutionScene(u8 taskId); static void CB2_EvolutionSceneUpdate(void); static void CB2_TradeEvolutionSceneUpdate(void); static void EvoDummyFunc(void); static void VBlankCB_EvolutionScene(void); static void VBlankCB_TradeEvolutionScene(void); -static void sub_8140134(void); -static void EvoScene_DoMonAnimation(u8 monSpriteId, u16 speciesId); +static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, u16 speciesId); static bool32 EvoScene_IsMonAnimFinished(u8 monSpriteId); -static void InitMovingBackgroundTask(bool8 isLink); -static void sub_813FEE8(u8 taskId); -static void sub_8140174(void); - -// const data -static const u16 sUnknown_085B4114[] = INCBIN_U16("graphics/evolution_scene/unknown_5B4114.gbapal"); -static const u32 sUnknown_085B4134[] = INCBIN_U32("graphics/evolution_scene/bg.4bpp.lz"); -static const u32 sUnknown_085B482C[] = INCBIN_U32("graphics/evolution_scene/bg.bin.lz"); -static const u32 sUnknown_085B4D10[] = INCBIN_U32("graphics/evolution_scene/bg2.bin.lz"); -static const u16 sUnknown_085B51E4[] = INCBIN_U16("graphics/evolution_scene/gray_transition_intro.gbapal"); -static const u16 sUnknown_085B53E4[] = INCBIN_U16("graphics/evolution_scene/gray_transition_lighten.gbapal"); -static const u16 sUnknown_085B5544[] = INCBIN_U16("graphics/evolution_scene/gray_transition_darken.gbapal"); -static const u16 sUnknown_085B56E4[] = INCBIN_U16("graphics/evolution_scene/gray_transition_outro.gbapal"); -static const u16 sUnknown_085B5884[] = INCBIN_U16("graphics/evolution_scene/transition.gbapal"); - -static const u8 Text_ShedinjaJapaneseName[] = _("ヌケニン"); - -static const u8 sUnknown_085B58C9[][4] = +static void StartBgAnimation(bool8 isLink); +static void StopBgAnimation(void); +static void Task_AnimateBg(u8 taskId); +static void RestoreBgAfterAnim(void); + +static const u16 sUnusedPal1[] = INCBIN_U16("graphics/evolution_scene/unused_1.gbapal"); +static const u32 sBgAnim_Gfx[] = INCBIN_U32("graphics/evolution_scene/bg.4bpp.lz"); +static const u32 sBgAnim_Inner_Tilemap[] = INCBIN_U32("graphics/evolution_scene/bg_inner.bin.lz"); +static const u32 sBgAnim_Outer_Tilemap[] = INCBIN_U32("graphics/evolution_scene/bg_outer.bin.lz"); +static const u16 sBgAnim_Intro_Pal[] = INCBIN_U16("graphics/evolution_scene/bg_anim_intro.gbapal"); +static const u16 sUnusedPal2[] = INCBIN_U16("graphics/evolution_scene/unused_2.gbapal"); +static const u16 sUnusedPal3[] = INCBIN_U16("graphics/evolution_scene/unused_3.gbapal"); +static const u16 sUnusedPal4[] = INCBIN_U16("graphics/evolution_scene/unused_4.gbapal"); +static const u16 sBgAnim_Pal[] = INCBIN_U16("graphics/evolution_scene/bg_anim.gbapal"); + +static const u8 sText_ShedinjaJapaneseName[] = _("ヌケニン"); + +// The below table is used by Task_UpdateBgPalette to control the speed at which the bg color updates. +// The first two values are indexes into sBgAnim_PalIndexes (indirectly, via sBgAnimPal), and are +// the start and end of the range of colors in sBgAnim_PalIndexes it will move through incrementally +// before starting over. It will repeat this cycle x number of times, where x = the 3rd value, +// delaying each increment by y, where y = the 4th value. +// Once it has cycled x number of times, it will move to the next array in this table. +static const u8 sBgAnim_PaletteControl[][4] = { - { 0x00, 0x0C, 0x01, 0x06 }, - { 0x0D, 0x24, 0x05, 0x02 }, - { 0x0D, 0x18, 0x01, 0x02 }, - { 0x25, 0x31, 0x01, 0x06 }, + { 0, 12, 1, 6 }, + { 13, 36, 5, 2 }, + { 13, 24, 1, 2 }, + { 37, 49, 1, 6 }, }; -static const u8 sUnknown_085B58D9[][16] = { - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x0B, 0x00, 0x00 }, - { 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00, 0x00 }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x00 }, - { 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x00, 0x00 }, - { 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x00, 0x00 }, - { 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x00, 0x00 }, - { 0x00, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x00, 0x00 }, - { 0x00, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x00, 0x00 }, - { 0x00, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x00, 0x00 }, - { 0x00, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x00, 0x00 }, - { 0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x00, 0x00 }, - { 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x00, 0x00 }, - { 0x00, 0x0B, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x00, 0x00 }, - { 0x00, 0x0C, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x00, 0x00 }, - { 0x00, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00 }, - { 0x00, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00 }, - { 0x00, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x00, 0x00 }, - { 0x00, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00 }, - { 0x00, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00 }, - { 0x00, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00 }, - { 0x00, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x00 }, - { 0x00, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00 }, - { 0x00, 0x05, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00 }, - { 0x00, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x00, 0x00 }, - { 0x00, 0x03, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x00 }, - { 0x00, 0x02, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00, 0x00 }, - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x00 }, - { 0x00, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00 }, - { 0x00, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } +// Indexes into sBgAnim_Pal, 0 is black, transitioning to a bright light blue (172, 213, 255) at 13 +static const u8 sBgAnim_PalIndexes[][16] = { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0 }, + { 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0 }, + { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0 }, + { 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 0, 0 }, + { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0 }, + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0 }, + { 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 0, 0 }, + { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 0, 0 }, + { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 0, 0 }, + { 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 0, 0 }, + { 0, 6, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 0, 0 }, + { 0, 7, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 0, 0 }, + { 0, 8, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 0, 0 }, + { 0, 9, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 0, 0 }, + { 0, 10, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 0, 0 }, + { 0, 11, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 0, 0 }, + { 0, 12, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 0 }, + { 0, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }, + { 0, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 0, 0 }, + { 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 0, 0 }, + { 0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 0, 0 }, + { 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 0, 0 }, + { 0, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 0, 0 }, + { 0, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 0, 0 }, + { 0, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0 }, + { 0, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0 }, + { 0, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0 }, + { 0, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0 }, + { 0, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0 }, + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0 }, + { 0, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0 }, + { 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0 }, + { 0, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0 }, + { 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 2, 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 } }; static void CB2_BeginEvolutionScene(void) @@ -154,53 +157,53 @@ static void CB2_BeginEvolutionScene(void) #define tBits data[3] #define tLearnsFirstMove data[4] #define tLearnMoveState data[6] -#define tData7 data[7] -#define tData8 data[8] +#define tLearnMoveYesState data[7] +#define tLearnMoveNoState data[8] #define tEvoWasStopped data[9] -#define tPartyID data[10] +#define tPartyId data[10] -#define TASK_BIT_CAN_STOP 0x1 -#define TASK_BIT_LEARN_MOVE 0x80 +#define TASK_BIT_CAN_STOP (1 << 0) +#define TASK_BIT_LEARN_MOVE (1 << 7) -static void Task_BeginEvolutionScene(u8 taskID) +static void Task_BeginEvolutionScene(u8 taskId) { struct Pokemon* mon = NULL; - switch (gTasks[taskID].tState) + switch (gTasks[taskId].tState) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskID].tState++; + gTasks[taskId].tState++; break; case 1: if (!gPaletteFade.active) { - u16 speciesToEvolve; + u16 postEvoSpecies; bool8 canStopEvo; - u8 partyID; + u8 partyId; - mon = &gPlayerParty[gTasks[taskID].tPartyID]; - speciesToEvolve = gTasks[taskID].tPostEvoSpecies; - canStopEvo = gTasks[taskID].tCanStop; - partyID = gTasks[taskID].tPartyID; + mon = &gPlayerParty[gTasks[taskId].tPartyId]; + postEvoSpecies = gTasks[taskId].tPostEvoSpecies; + canStopEvo = gTasks[taskId].tCanStop; + partyId = gTasks[taskId].tPartyId; - DestroyTask(taskID); - EvolutionScene(mon, speciesToEvolve, canStopEvo, partyID); + DestroyTask(taskId); + EvolutionScene(mon, postEvoSpecies, canStopEvo, partyId); } break; } } -void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID) +void BeginEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId) { - u8 taskID = CreateTask(Task_BeginEvolutionScene, 0); - gTasks[taskID].tState = 0; - gTasks[taskID].tPostEvoSpecies = speciesToEvolve; - gTasks[taskID].tCanStop = canStopEvo; - gTasks[taskID].tPartyID = partyID; + u8 taskId = CreateTask(Task_BeginEvolutionScene, 0); + gTasks[taskId].tState = 0; + gTasks[taskId].tPostEvoSpecies = postEvoSpecies; + gTasks[taskId].tCanStop = canStopEvo; + gTasks[taskId].tPartyId = partyId; SetMainCallback2(CB2_BeginEvolutionScene); } -void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID) +void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId) { u8 name[20]; u16 currSpecies; @@ -247,7 +250,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, GetMonData(mon, MON_DATA_NICKNAME, name); StringCopy10(gStringVar1, name); - StringCopy(gStringVar2, gSpeciesNames[speciesToEvolve]); + StringCopy(gStringVar2, gSpeciesNames[postEvoSpecies]); // preEvo sprite currSpecies = GetMonData(mon, MON_DATA_SPECIES); @@ -261,38 +264,38 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, SetMultiuseSpriteTemplateToPokemon(currSpecies, 1); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->preEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->preEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 1; gSprites[ID].invisible = TRUE; // postEvo sprite - DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], + DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonSpritesGfxPtr->sprites.ptr[3], - speciesToEvolve); - pokePal = GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, trainerId, personality); + postEvoSpecies); + pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); LoadCompressedPalette(pokePal->data, 0x120, 0x20); - SetMultiuseSpriteTemplateToPokemon(speciesToEvolve, 3); + SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 3); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; gSprites[ID].invisible = TRUE; LoadEvoSparkleSpriteAndPal(); - sEvoStructPtr->evoTaskID = ID = CreateTask(Task_EvolutionScene, 0); + sEvoStructPtr->evoTaskId = ID = CreateTask(Task_EvolutionScene, 0); gTasks[ID].tState = 0; gTasks[ID].tPreEvoSpecies = currSpecies; - gTasks[ID].tPostEvoSpecies = speciesToEvolve; + gTasks[ID].tPostEvoSpecies = postEvoSpecies; gTasks[ID].tCanStop = canStopEvo; gTasks[ID].tLearnsFirstMove = TRUE; gTasks[ID].tEvoWasStopped = FALSE; - gTasks[ID].tPartyID = partyID; + gTasks[ID].tPartyId = partyId; - memcpy(&sEvoStructPtr->savedPalette, &gPlttBufferUnfaded[0x20], 0x60); + memcpy(&sEvoStructPtr->savedPalette, &gPlttBufferUnfaded[0x20], sizeof(sEvoStructPtr->savedPalette)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); @@ -308,11 +311,11 @@ static void CB2_EvolutionSceneLoadGraphics(void) const struct CompressedSpritePalette* pokePal; u16 postEvoSpecies; u32 trainerId, personality; - struct Pokemon* Mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskID].tPartyID]; + struct Pokemon* mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId]; - postEvoSpecies = gTasks[sEvoStructPtr->evoTaskID].tPostEvoSpecies; - trainerId = GetMonData(Mon, MON_DATA_OT_ID); - personality = GetMonData(Mon, MON_DATA_PERSONALITY); + postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies; + trainerId = GetMonData(mon, MON_DATA_OT_ID); + personality = GetMonData(mon, MON_DATA_PERSONALITY); SetHBlankCallback(NULL); SetVBlankCallback(NULL); @@ -354,7 +357,7 @@ static void CB2_EvolutionSceneLoadGraphics(void) SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 3); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; @@ -375,8 +378,8 @@ static void CB2_EvolutionSceneLoadGraphics(void) static void CB2_TradeEvolutionSceneLoadGraphics(void) { - struct Pokemon* Mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskID].tPartyID]; - u16 postEvoSpecies = gTasks[sEvoStructPtr->evoTaskID].tPostEvoSpecies; + struct Pokemon* mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId]; + u16 postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies; switch (gMain.state) { @@ -415,8 +418,8 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) case 4: { const struct CompressedSpritePalette* pokePal; - u32 trainerId = GetMonData(Mon, MON_DATA_OT_ID); - u32 personality = GetMonData(Mon, MON_DATA_PERSONALITY); + u32 trainerId = GetMonData(mon, MON_DATA_OT_ID); + u32 personality = GetMonData(mon, MON_DATA_PERSONALITY); DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonSpritesGfxPtr->sprites.ptr[3], postEvoSpecies); @@ -431,7 +434,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 1); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; @@ -459,7 +462,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) } } -void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID) +void TradeEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, u8 preEvoSpriteId, u8 partyId) { u8 name[20]; u16 currSpecies; @@ -469,7 +472,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri GetMonData(mon, MON_DATA_NICKNAME, name); StringCopy10(gStringVar1, name); - StringCopy(gStringVar2, gSpeciesNames[speciesToEvolve]); + StringCopy(gStringVar2, gSpeciesNames[postEvoSpecies]); gAffineAnimsDisabled = TRUE; @@ -479,18 +482,18 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri trainerId = GetMonData(mon, MON_DATA_OT_ID); sEvoStructPtr = AllocZeroed(sizeof(struct EvoInfo)); - sEvoStructPtr->preEvoSpriteID = preEvoSpriteID; + sEvoStructPtr->preEvoSpriteId = preEvoSpriteId; - DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], + DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies], gMonSpritesGfxPtr->sprites.ptr[1], - speciesToEvolve); + postEvoSpecies); - pokePal = GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, trainerId, personality); + pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); LoadCompressedPalette(pokePal->data, 0x120, 0x20); - SetMultiuseSpriteTemplateToPokemon(speciesToEvolve, 1); + SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 1); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; - sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); + sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; @@ -498,13 +501,13 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri LoadEvoSparkleSpriteAndPal(); - sEvoStructPtr->evoTaskID = ID = CreateTask(Task_TradeEvolutionScene, 0); + sEvoStructPtr->evoTaskId = ID = CreateTask(Task_TradeEvolutionScene, 0); gTasks[ID].tState = 0; gTasks[ID].tPreEvoSpecies = currSpecies; - gTasks[ID].tPostEvoSpecies = speciesToEvolve; + gTasks[ID].tPostEvoSpecies = postEvoSpecies; gTasks[ID].tLearnsFirstMove = TRUE; gTasks[ID].tEvoWasStopped = FALSE; - gTasks[ID].tPartyID = partyID; + gTasks[ID].tPartyId = partyId; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -542,7 +545,7 @@ static void CB2_TradeEvolutionSceneUpdate(void) static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon) { u32 data = 0; - if (gEvolutionTable[preEvoSpecies][0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < 6) + if (gEvolutionTable[preEvoSpecies][0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < PARTY_SIZE) { s32 i; struct Pokemon* shedinja = &gPlayerParty[gPlayerPartyCount]; @@ -556,9 +559,9 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon) SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, (&data)); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_ENCRYPT_SEPARATOR, (&data)); - for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + 5; i++) + for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + CONTEST_CATEGORIES_COUNT; i++) SetMonData(&gPlayerParty[gPlayerPartyCount], i, (&data)); - for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FATEFUL_ENCOUNTER; i++) + for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FILLER; i++) SetMonData(&gPlayerParty[gPlayerPartyCount], i, (&data)); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_STATUS, (&data)); @@ -578,195 +581,243 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon) if (GetMonData(shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA && GetMonData(shedinja, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_NINJASK) - SetMonData(shedinja, MON_DATA_NICKNAME, Text_ShedinjaJapaneseName); + SetMonData(shedinja, MON_DATA_NICKNAME, sText_ShedinjaJapaneseName); } } -static void Task_EvolutionScene(u8 taskID) +// States for the main switch in Task_EvolutionScene +enum { + EVOSTATE_FADE_IN, + EVOSTATE_INTRO_MSG, + EVOSTATE_INTRO_MON_ANIM, + EVOSTATE_INTRO_SOUND, + EVOSTATE_START_MUSIC, + EVOSTATE_START_BG_AND_SPARKLE_SPIRAL, + EVOSTATE_SPARKLE_ARC, + EVOSTATE_CYCLE_MON_SPRITE, + EVOSTATE_WAIT_CYCLE_MON_SPRITE, + EVOSTATE_SPARKLE_CIRCLE, + EVOSTATE_SPARKLE_SPRAY, + EVOSTATE_EVO_SOUND, + EVOSTATE_RESTORE_SCREEN, + EVOSTATE_EVO_MON_ANIM, + EVOSTATE_SET_MON_EVOLVED, + EVOSTATE_TRY_LEARN_MOVE, + EVOSTATE_END, + EVOSTATE_CANCEL, + EVOSTATE_CANCEL_MON_ANIM, + EVOSTATE_CANCEL_MSG, + EVOSTATE_LEARNED_MOVE, + EVOSTATE_TRY_LEARN_ANOTHER_MOVE, + EVOSTATE_REPLACE_MOVE, +}; + +// States for the switch in EVOSTATE_REPLACE_MOVE +enum { + MVSTATE_INTRO_MSG_1, + MVSTATE_INTRO_MSG_2, + MVSTATE_INTRO_MSG_3, + MVSTATE_PRINT_YES_NO, + MVSTATE_HANDLE_YES_NO, + MVSTATE_SHOW_MOVE_SELECT, + MVSTATE_HANDLE_MOVE_SELECT, + MVSTATE_FORGET_MSG_1, + MVSTATE_FORGET_MSG_2, + MVSTATE_LEARNED_MOVE, + MVSTATE_ASK_CANCEL, + MVSTATE_CANCEL, + MVSTATE_RETRY_AFTER_HM, +}; + +// Task data from CycleEvolutionMonSprite +#define tEvoStopped data[8] + +static void Task_EvolutionScene(u8 taskId) { u32 var; - struct Pokemon* mon = &gPlayerParty[gTasks[taskID].tPartyID]; + struct Pokemon* mon = &gPlayerParty[gTasks[taskId].tPartyId]; // check if B Button was held, so the evolution gets stopped if (gMain.heldKeys == B_BUTTON - && gTasks[taskID].tState == 8 - && gTasks[sEvoGraphicsTaskID].isActive - && gTasks[taskID].tBits & TASK_BIT_CAN_STOP) + && gTasks[taskId].tState == EVOSTATE_WAIT_CYCLE_MON_SPRITE + && gTasks[sEvoGraphicsTaskId].isActive + && gTasks[taskId].tBits & TASK_BIT_CAN_STOP) { - gTasks[taskID].tState = 17; - gTasks[sEvoGraphicsTaskID].EvoGraphicsTaskEvoStop = TRUE; - sub_8140134(); + gTasks[taskId].tState = EVOSTATE_CANCEL; + gTasks[sEvoGraphicsTaskId].tEvoStopped = TRUE; + StopBgAnimation(); return; } - switch (gTasks[taskID].tState) + switch (gTasks[taskId].tState) { - case 0: + case EVOSTATE_FADE_IN: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gSprites[sEvoStructPtr->preEvoSpriteID].invisible = FALSE; - gTasks[taskID].tState++; + gSprites[sEvoStructPtr->preEvoSpriteId].invisible = FALSE; + gTasks[taskId].tState++; ShowBg(0); ShowBg(1); ShowBg(2); ShowBg(3); break; - case 1: // print 'whoa, poke is evolving!!!' msg + case EVOSTATE_INTRO_MSG: if (!gPaletteFade.active) { StringExpandPlaceholders(gStringVar4, gText_PkmnIsEvolving); BattlePutTextOnWindow(gStringVar4, 0); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 2: // wait for string, animate mon(and play its cry) + case EVOSTATE_INTRO_MON_ANIM: if (!IsTextPrinterActive(0)) { - EvoScene_DoMonAnimation(sEvoStructPtr->preEvoSpriteID, gTasks[taskID].tPreEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->preEvoSpriteId, gTasks[taskId].tPreEvoSpecies); + gTasks[taskId].tState++; } break; - case 3: - if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) // wait for animation, play tu du SE + case EVOSTATE_INTRO_SOUND: + if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteId)) { PlaySE(MUS_EVOLUTION_INTRO); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 4: // play evolution music and fade screen black + case EVOSTATE_START_MUSIC: if (!IsSEPlaying()) { + // Start music, fade background to black PlayNewMapMusic(MUS_EVOLUTION); - gTasks[taskID].tState++; + gTasks[taskId].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } break; - case 5: // launch moving bg task, preapre evo sparkles + case EVOSTATE_START_BG_AND_SPARKLE_SPIRAL: if (!gPaletteFade.active) { - InitMovingBackgroundTask(FALSE); - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet1(17); - gTasks[taskID].tState++; + StartBgAnimation(FALSE); + sEvoGraphicsTaskId = EvolutionSparkles_SpiralUpward(17); + gTasks[taskId].tState++; } break; - case 6: // another set of evo sparkles - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_SPARKLE_ARC: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - gTasks[taskID].tState++; - sEvoStructPtr->field_3 = 1; - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet2(); + gTasks[taskId].tState++; + sEvoStructPtr->delayTimer = 1; + sEvoGraphicsTaskId = EvolutionSparkles_ArcDown(); } break; - case 7: // launch task that flashes pre evo with post evo sprites - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_CYCLE_MON_SPRITE: // launch task that flashes pre evo with post evo sprites + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = sub_817C3A0(sEvoStructPtr->preEvoSpriteID, sEvoStructPtr->postEvoSpriteID); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = CycleEvolutionMonSprite(sEvoStructPtr->preEvoSpriteId, sEvoStructPtr->postEvoSpriteId); + gTasks[taskId].tState++; } break; - case 8: // wait for the above task to finish - if (--sEvoStructPtr->field_3 == 0) + case EVOSTATE_WAIT_CYCLE_MON_SPRITE: + if (--sEvoStructPtr->delayTimer == 0) { - sEvoStructPtr->field_3 = 3; - if (!gTasks[sEvoGraphicsTaskID].isActive) - gTasks[taskID].tState++; + sEvoStructPtr->delayTimer = 3; + if (!gTasks[sEvoGraphicsTaskId].isActive) + gTasks[taskId].tState++; } break; - case 9: // post evo sparkles - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet1(); - gTasks[taskID].tState++; + case EVOSTATE_SPARKLE_CIRCLE: + sEvoGraphicsTaskId = EvolutionSparkles_CircleInward(); + gTasks[taskId].tState++; break; - case 10: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_SPARKLE_SPRAY: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet2AndFlash(gTasks[taskID].tPostEvoSpecies); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = EvolutionSparkles_SprayAndFlash(gTasks[taskId].tPostEvoSpecies); + gTasks[taskId].tState++; } break; - case 11: // play tu du sound after evolution - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_EVO_SOUND: + if (!gTasks[sEvoGraphicsTaskId].isActive) { PlaySE(SE_EXP); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 12: // stop music, return screen to pre-fade state + case EVOSTATE_RESTORE_SCREEN: // stop music, return screen to pre-fade state if (IsSEPlaying()) { m4aMPlayAllStop(); - memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, 0x60); - sub_8140174(); + memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette)); + RestoreBgAfterAnim(); BeginNormalPaletteFade(0x1C, 0, 0x10, 0, RGB_BLACK); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 13: // animate mon + case EVOSTATE_EVO_MON_ANIM: if (!gPaletteFade.active) { - EvoScene_DoMonAnimation(sEvoStructPtr->postEvoSpriteID, gTasks[taskID].tPostEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->postEvoSpriteId, gTasks[taskId].tPostEvoSpecies); + gTasks[taskId].tState++; } break; - case 14: // congratulations string and rename prompt + case EVOSTATE_SET_MON_EVOLVED: if (IsCryFinished()) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); BattlePutTextOnWindow(gStringVar4, 0); PlayBGM(MUS_EVOLVED); - gTasks[taskID].tState++; - SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies)); + gTasks[taskId].tState++; + SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskId].tPostEvoSpecies)); CalculateMonStats(mon); - EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_SEEN); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_CAUGHT); + EvolutionRenameMon(mon, gTasks[taskId].tPreEvoSpecies, gTasks[taskId].tPostEvoSpecies); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_SEEN); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_CAUGHT); IncrementGameStat(GAME_STAT_EVOLVED_POKEMON); } break; - case 15: // check if it wants to learn a new move + case EVOSTATE_TRY_LEARN_MOVE: if (!IsTextPrinterActive(0)) { - var = MonTryLearningNewMove(mon, gTasks[taskID].tLearnsFirstMove); - if (var != 0 && !gTasks[taskID].tEvoWasStopped) + var = MonTryLearningNewMove(mon, gTasks[taskId].tLearnsFirstMove); + if (var != MOVE_NONE && !gTasks[taskId].tEvoWasStopped) { u8 text[20]; - if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE)) + if (!(gTasks[taskId].tBits & TASK_BIT_LEARN_MOVE)) { StopMapMusic(); Overworld_PlaySpecialMapMusic(); } - gTasks[taskID].tBits |= TASK_BIT_LEARN_MOVE; - gTasks[taskID].tLearnsFirstMove = FALSE; - gTasks[taskID].tLearnMoveState = 0; + gTasks[taskId].tBits |= TASK_BIT_LEARN_MOVE; + gTasks[taskId].tLearnsFirstMove = FALSE; + gTasks[taskId].tLearnMoveState = MVSTATE_INTRO_MSG_1; GetMonData(mon, MON_DATA_NICKNAME, text); StringCopy10(gBattleTextBuff1, text); if (var == MON_HAS_MAX_MOVES) - gTasks[taskID].tState = 22; + gTasks[taskId].tState = EVOSTATE_REPLACE_MOVE; else if (var == MON_ALREADY_KNOWS_MOVE) break; else - gTasks[taskID].tState = 20; // move has been learned + gTasks[taskId].tState = EVOSTATE_LEARNED_MOVE; } - else // no move to learn + else // no move to learn, or evolution was canceled { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } } break; - case 16: // task has finished, return + case EVOSTATE_END: if (!gPaletteFade.active) { - if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE)) + if (!(gTasks[taskId].tBits & TASK_BIT_LEARN_MOVE)) { StopMapMusic(); Overworld_PlaySpecialMapMusic(); } - if (!gTasks[taskID].tEvoWasStopped) - CreateShedinja(gTasks[taskID].tPreEvoSpecies, mon); + if (!gTasks[taskId].tEvoWasStopped) + CreateShedinja(gTasks[taskId].tPreEvoSpecies, mon); - DestroyTask(taskID); + DestroyTask(taskId); FreeMonSpritesGfx(); Free(sEvoStructPtr); sEvoStructPtr = NULL; @@ -774,91 +825,98 @@ static void Task_EvolutionScene(u8 taskID) SetMainCallback2(gCB2_AfterEvolution); } break; - case 17: // evolution has been canceled, stop music and re-fade palette - if (!gTasks[sEvoGraphicsTaskID].isActive) + case EVOSTATE_CANCEL: + if (!gTasks[sEvoGraphicsTaskId].isActive) { m4aMPlayAllStop(); BeginNormalPaletteFade(0x6001C, 0, 0x10, 0, RGB_WHITE); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 18: // animate pokemon trying to evolve again, evolution has been stopped + case EVOSTATE_CANCEL_MON_ANIM: if (!gPaletteFade.active) { - EvoScene_DoMonAnimation(sEvoStructPtr->preEvoSpriteID, gTasks[taskID].tPreEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->preEvoSpriteId, gTasks[taskId].tPreEvoSpecies); + gTasks[taskId].tState++; } break; - case 19: // after the animation, print the string 'WHOA IT DID NOT EVOLVE!!!' - if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) + case EVOSTATE_CANCEL_MSG: + if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteId)) { - if (gTasks[taskID].tEvoWasStopped) + if (gTasks[taskId].tEvoWasStopped) StringExpandPlaceholders(gStringVar4, gText_EllipsisQuestionMark); else // Fire Red leftover probably StringExpandPlaceholders(gStringVar4, gText_PkmnStoppedEvolving); BattlePutTextOnWindow(gStringVar4, 0); - gTasks[taskID].tEvoWasStopped = TRUE; - gTasks[taskID].tState = 15; + gTasks[taskId].tEvoWasStopped = TRUE; + gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; } break; - case 20: // pokemon learned a new move, print string and play a fanfare + case EVOSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter - gTasks[taskID].tState++; + gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter + gTasks[taskId].tState++; } break; - case 21: // wait a bit and check if can learn another move - if (!IsTextPrinterActive(0) && !IsSEPlaying() && --gTasks[taskID].tLearnsFirstMove == 0) - gTasks[taskID].tState = 15; + case EVOSTATE_TRY_LEARN_ANOTHER_MOVE: + if (!IsTextPrinterActive(0) && !IsSEPlaying() && --gTasks[taskId].tLearnsFirstMove == 0) + gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; break; - case 22: // try to learn a new move - switch (gTasks[taskID].tLearnMoveState) + case EVOSTATE_REPLACE_MOVE: + switch (gTasks[taskId].tLearnMoveState) { - case 0: + case MVSTATE_INTRO_MSG_1: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 1: + case MVSTATE_INTRO_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "But, {mon} can't learn more than four moves" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 2: + case MVSTATE_INTRO_MSG_3: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "Delete a move to make room for {move}?" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tData7 = 5; - gTasks[taskID].tData8 = 10; - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveYesState = MVSTATE_SHOW_MOVE_SELECT; + gTasks[taskId].tLearnMoveNoState = MVSTATE_ASK_CANCEL; + gTasks[taskId].tLearnMoveState++; } - case 3: + case MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0); BattlePutTextOnWindow(gText_BattleYesNoChoice, 0xC); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; sEvoCursorPos = 0; BattleCreateYesNoCursorAt(0); } break; - case 4: + case MVSTATE_HANDLE_YES_NO: + // This Yes/No is used for both the initial "delete move?" prompt + // and for the "stop learning move?" prompt + // What Yes/No do next is determined by tLearnMoveYesState / tLearnMoveNoState if (JOY_NEW(DPAD_UP) && sEvoCursorPos != 0) { + // Moved onto YES PlaySE(SE_SELECT); BattleDestroyYesNoCursorAt(sEvoCursorPos); sEvoCursorPos = 0; @@ -866,6 +924,7 @@ static void Task_EvolutionScene(u8 taskID) } if (JOY_NEW(DPAD_DOWN) && sEvoCursorPos == 0) { + // Moved onto NO PlaySE(SE_SELECT); BattleDestroyYesNoCursorAt(sEvoCursorPos); sEvoCursorPos = 1; @@ -878,350 +937,403 @@ static void Task_EvolutionScene(u8 taskID) if (sEvoCursorPos != 0) { - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; + // NO + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; } else { - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; - if (gTasks[taskID].tLearnMoveState == 5) + // YES + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveYesState; + if (gTasks[taskId].tLearnMoveState == MVSTATE_SHOW_MOVE_SELECT) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); } } if (JOY_NEW(B_BUTTON)) { + // Equivalent to selecting NO HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR); PlaySE(SE_SELECT); - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; } break; - case 5: + case MVSTATE_SHOW_MOVE_SELECT: if (!gPaletteFade.active) { FreeAllWindowBuffers(); - ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID, + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskId].tPartyId, gPlayerPartyCount - 1, CB2_EvolutionSceneLoadGraphics, gMoveToLearn); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 6: + case MVSTATE_HANDLE_MOVE_SELECT: if (!gPaletteFade.active && gMain.callback2 == CB2_EvolutionSceneUpdate) { var = GetMoveSlotToReplace(); if (var == MAX_MON_MOVES) { - gTasks[taskID].tLearnMoveState = 10; + // Didn't select move slot + gTasks[taskId].tLearnMoveState = MVSTATE_ASK_CANCEL; } else { + // Selected move to forget u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { + // Can't forget HMs BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState = 12; + gTasks[taskId].tLearnMoveState = MVSTATE_RETRY_AFTER_HM; } else { + // Forget move PREPARE_MOVE_BUFFER(gBattleTextBuff2, move) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } } } break; - case 7: + case MVSTATE_FORGET_MSG_1: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; break; - case 8: + case MVSTATE_FORGET_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 9: + case MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tState = 20; + gTasks[taskId].tState = EVOSTATE_LEARNED_MOVE; } break; - case 10: + case MVSTATE_ASK_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tData7 = 11; - gTasks[taskID].tData8 = 0; - gTasks[taskID].tLearnMoveState = 3; + gTasks[taskId].tLearnMoveYesState = MVSTATE_CANCEL; + gTasks[taskId].tLearnMoveNoState = MVSTATE_INTRO_MSG_1; + gTasks[taskId].tLearnMoveState = MVSTATE_PRINT_YES_NO; break; - case 11: + case MVSTATE_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); BattlePutTextOnWindow(gDisplayedStringBattle, 0); - gTasks[taskID].tState = 15; + gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; break; - case 12: + case MVSTATE_RETRY_AFTER_HM: if (!IsTextPrinterActive(0) && !IsSEPlaying()) - gTasks[taskID].tLearnMoveState = 5; + gTasks[taskId].tLearnMoveState = MVSTATE_SHOW_MOVE_SELECT; break; } break; } } -static void Task_TradeEvolutionScene(u8 taskID) +// States for the main switch in Task_TradeEvolutionScene +enum { + T_EVOSTATE_INTRO_MSG, + T_EVOSTATE_INTRO_CRY, + T_EVOSTATE_INTRO_SOUND, + T_EVOSTATE_START_MUSIC, + T_EVOSTATE_START_BG_AND_SPARKLE_SPIRAL, + T_EVOSTATE_SPARKLE_ARC, + T_EVOSTATE_CYCLE_MON_SPRITE, + T_EVOSTATE_WAIT_CYCLE_MON_SPRITE, + T_EVOSTATE_SPARKLE_CIRCLE, + T_EVOSTATE_SPARKLE_SPRAY, + T_EVOSTATE_EVO_SOUND, + T_EVOSTATE_EVO_MON_ANIM, + T_EVOSTATE_SET_MON_EVOLVED, + T_EVOSTATE_TRY_LEARN_MOVE, + T_EVOSTATE_END, + T_EVOSTATE_CANCEL, + T_EVOSTATE_CANCEL_MON_ANIM, + T_EVOSTATE_CANCEL_MSG, + T_EVOSTATE_LEARNED_MOVE, + T_EVOSTATE_TRY_LEARN_ANOTHER_MOVE, + T_EVOSTATE_REPLACE_MOVE, +}; + +// States for the switch in T_EVOSTATE_REPLACE_MOVE +enum { + T_MVSTATE_INTRO_MSG_1, + T_MVSTATE_INTRO_MSG_2, + T_MVSTATE_INTRO_MSG_3, + T_MVSTATE_PRINT_YES_NO, + T_MVSTATE_HANDLE_YES_NO, + T_MVSTATE_SHOW_MOVE_SELECT, + T_MVSTATE_HANDLE_MOVE_SELECT, + T_MVSTATE_FORGET_MSG, + T_MVSTATE_LEARNED_MOVE, + T_MVSTATE_ASK_CANCEL, + T_MVSTATE_CANCEL, + T_MVSTATE_RETRY_AFTER_HM, +}; + +// Compare to Task_EvolutionScene, very similar +static void Task_TradeEvolutionScene(u8 taskId) { u32 var = 0; - struct Pokemon* mon = &gPlayerParty[gTasks[taskID].tPartyID]; + struct Pokemon* mon = &gPlayerParty[gTasks[taskId].tPartyId]; - switch (gTasks[taskID].tState) + switch (gTasks[taskId].tState) { - case 0: + case T_EVOSTATE_INTRO_MSG: StringExpandPlaceholders(gStringVar4, gText_PkmnIsEvolving); DrawTextOnTradeWindow(0, gStringVar4, 1); - gTasks[taskID].tState++; + gTasks[taskId].tState++; break; - case 1: + case T_EVOSTATE_INTRO_CRY: if (!IsTextPrinterActive(0)) { - PlayCry1(gTasks[taskID].tPreEvoSpecies, 0); - gTasks[taskID].tState++; + PlayCry1(gTasks[taskId].tPreEvoSpecies, 0); + gTasks[taskId].tState++; } break; - case 2: + case T_EVOSTATE_INTRO_SOUND: if (IsCryFinished()) { m4aSongNumStop(MUS_EVOLUTION); PlaySE(MUS_EVOLUTION_INTRO); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 3: + case T_EVOSTATE_START_MUSIC: if (!IsSEPlaying()) { PlayBGM(MUS_EVOLUTION); - gTasks[taskID].tState++; + gTasks[taskId].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 0x10, RGB_BLACK); } break; - case 4: + case T_EVOSTATE_START_BG_AND_SPARKLE_SPIRAL: if (!gPaletteFade.active) { - InitMovingBackgroundTask(TRUE); - var = gSprites[sEvoStructPtr->preEvoSpriteID].oam.paletteNum + 16; - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet1(var); - gTasks[taskID].tState++; + StartBgAnimation(TRUE); + var = gSprites[sEvoStructPtr->preEvoSpriteId].oam.paletteNum + 16; + sEvoGraphicsTaskId = EvolutionSparkles_SpiralUpward(var); + gTasks[taskId].tState++; SetGpuReg(REG_OFFSET_BG3CNT, 0x603); } break; - case 5: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_SPARKLE_ARC: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - gTasks[taskID].tState++; - sEvoStructPtr->field_3 = 1; - sEvoGraphicsTaskID = LaunchTask_PreEvoSparklesSet2(); + gTasks[taskId].tState++; + sEvoStructPtr->delayTimer = 1; + sEvoGraphicsTaskId = EvolutionSparkles_ArcDown(); } break; - case 6: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_CYCLE_MON_SPRITE: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = sub_817C3A0(sEvoStructPtr->preEvoSpriteID, sEvoStructPtr->postEvoSpriteID); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = CycleEvolutionMonSprite(sEvoStructPtr->preEvoSpriteId, sEvoStructPtr->postEvoSpriteId); + gTasks[taskId].tState++; } break; - case 7: - if (--sEvoStructPtr->field_3 == 0) + case T_EVOSTATE_WAIT_CYCLE_MON_SPRITE: + if (--sEvoStructPtr->delayTimer == 0) { - sEvoStructPtr->field_3 = 3; - if (!gTasks[sEvoGraphicsTaskID].isActive) - gTasks[taskID].tState++; + sEvoStructPtr->delayTimer = 3; + if (!gTasks[sEvoGraphicsTaskId].isActive) + gTasks[taskId].tState++; } break; - case 8: - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet1(); - gTasks[taskID].tState++; + case T_EVOSTATE_SPARKLE_CIRCLE: + sEvoGraphicsTaskId = EvolutionSparkles_CircleInward(); + gTasks[taskId].tState++; break; - case 9: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_SPARKLE_SPRAY: + if (!gTasks[sEvoGraphicsTaskId].isActive) { - sEvoGraphicsTaskID = LaunchTask_PostEvoSparklesSet2AndFlash_Trade(gTasks[taskID].tPostEvoSpecies); - gTasks[taskID].tState++; + sEvoGraphicsTaskId = EvolutionSparkles_SprayAndFlash_Trade(gTasks[taskId].tPostEvoSpecies); + gTasks[taskId].tState++; } break; - case 10: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_EVO_SOUND: + if (!gTasks[sEvoGraphicsTaskId].isActive) { PlaySE(SE_EXP); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } break; - case 11: + case T_EVOSTATE_EVO_MON_ANIM: if (IsSEPlaying()) { - Free(sEvoMovingBgPtr); - EvoScene_DoMonAnimation(sEvoStructPtr->postEvoSpriteID, gTasks[taskID].tPostEvoSpecies); - memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, 0x60); - gTasks[taskID].tState++; + // Restore bg, do mon anim/cry + Free(sBgAnimPal); + EvoScene_DoMonAnimAndCry(sEvoStructPtr->postEvoSpriteId, gTasks[taskId].tPostEvoSpecies); + memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette)); + gTasks[taskId].tState++; } break; - case 12: + case T_EVOSTATE_SET_MON_EVOLVED: if (IsCryFinished()) { StringExpandPlaceholders(gStringVar4, gText_CongratsPkmnEvolved); DrawTextOnTradeWindow(0, gStringVar4, 1); PlayFanfare(MUS_EVOLVED); - gTasks[taskID].tState++; - SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskID].tPostEvoSpecies)); + gTasks[taskId].tState++; + SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskId].tPostEvoSpecies)); CalculateMonStats(mon); - EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_SEEN); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), FLAG_SET_CAUGHT); + EvolutionRenameMon(mon, gTasks[taskId].tPreEvoSpecies, gTasks[taskId].tPostEvoSpecies); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_SEEN); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_CAUGHT); IncrementGameStat(GAME_STAT_EVOLVED_POKEMON); } break; - case 13: + case T_EVOSTATE_TRY_LEARN_MOVE: if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE) { - var = MonTryLearningNewMove(mon, gTasks[taskID].tLearnsFirstMove); - if (var != 0 && !gTasks[taskID].tEvoWasStopped) + var = MonTryLearningNewMove(mon, gTasks[taskId].tLearnsFirstMove); + if (var != MOVE_NONE && !gTasks[taskId].tEvoWasStopped) { u8 text[20]; - gTasks[taskID].tBits |= TASK_BIT_LEARN_MOVE; - gTasks[taskID].tLearnsFirstMove = FALSE; - gTasks[taskID].tLearnMoveState = 0; + gTasks[taskId].tBits |= TASK_BIT_LEARN_MOVE; + gTasks[taskId].tLearnsFirstMove = FALSE; + gTasks[taskId].tLearnMoveState = 0; GetMonData(mon, MON_DATA_NICKNAME, text); StringCopy10(gBattleTextBuff1, text); if (var == MON_HAS_MAX_MOVES) - gTasks[taskID].tState = 20; + gTasks[taskId].tState = T_EVOSTATE_REPLACE_MOVE; else if (var == MON_ALREADY_KNOWS_MOVE) break; else - gTasks[taskID].tState = 18; + gTasks[taskId].tState = T_EVOSTATE_LEARNED_MOVE; } else { PlayBGM(MUS_EVOLUTION); DrawTextOnTradeWindow(0, gText_CommunicationStandby5, 1); - gTasks[taskID].tState++; + gTasks[taskId].tState++; } } break; - case 14: + case T_EVOSTATE_END: if (!IsTextPrinterActive(0)) { - DestroyTask(taskID); + DestroyTask(taskId); Free(sEvoStructPtr); sEvoStructPtr = NULL; gTextFlags.useAlternateDownArrow = 0; SetMainCallback2(gCB2_AfterEvolution); } break; - case 15: - if (!gTasks[sEvoGraphicsTaskID].isActive) + case T_EVOSTATE_CANCEL: + if (!gTasks[sEvoGraphicsTaskId].isActive) { m4aMPlayAllStop(); - BeginNormalPaletteFade((1 << (gSprites[sEvoStructPtr->preEvoSpriteID].oam.paletteNum + 16)) | (0x4001C), 0, 0x10, 0, RGB_WHITE); - gTasks[taskID].tState++; + BeginNormalPaletteFade((1 << (gSprites[sEvoStructPtr->preEvoSpriteId].oam.paletteNum + 16)) | (0x4001C), 0, 0x10, 0, RGB_WHITE); + gTasks[taskId].tState++; } break; - case 16: + case T_EVOSTATE_CANCEL_MON_ANIM: if (!gPaletteFade.active) { - EvoScene_DoMonAnimation(sEvoStructPtr->preEvoSpriteID, gTasks[taskID].tPreEvoSpecies); - gTasks[taskID].tState++; + EvoScene_DoMonAnimAndCry(sEvoStructPtr->preEvoSpriteId, gTasks[taskId].tPreEvoSpecies); + gTasks[taskId].tState++; } break; - case 17: - if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteID)) + case T_EVOSTATE_CANCEL_MSG: + if (EvoScene_IsMonAnimFinished(sEvoStructPtr->preEvoSpriteId)) { StringExpandPlaceholders(gStringVar4, gText_EllipsisQuestionMark); DrawTextOnTradeWindow(0, gStringVar4, 1); - gTasks[taskID].tEvoWasStopped = 1; - gTasks[taskID].tState = 13; + gTasks[taskId].tEvoWasStopped = TRUE; + gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; } break; - case 18: + case T_EVOSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter - gTasks[taskID].tState++; + gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter + gTasks[taskId].tState++; } break; - case 19: - if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE && --gTasks[taskID].tLearnsFirstMove == 0) - gTasks[taskID].tState = 13; + case T_EVOSTATE_TRY_LEARN_ANOTHER_MOVE: + if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE && --gTasks[taskId].tLearnsFirstMove == 0) + gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; break; - case 20: - switch (gTasks[taskID].tLearnMoveState) + case T_EVOSTATE_REPLACE_MOVE: + switch (gTasks[taskId].tLearnMoveState) { - case 0: + case T_MVSTATE_INTRO_MSG_1: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 1: + case T_MVSTATE_INTRO_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "But, {mon} can't learn more than four moves" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 2: + case T_MVSTATE_INTRO_MSG_3: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { + // "Delete a move to make room for {move}?" BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tData7 = 5; - gTasks[taskID].tData8 = 9; - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveYesState = T_MVSTATE_SHOW_MOVE_SELECT; + gTasks[taskId].tLearnMoveNoState = T_MVSTATE_ASK_CANCEL; + gTasks[taskId].tLearnMoveState++; } - case 3: + case T_MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { LoadUserWindowBorderGfx(0, 0xA8, 0xE0); CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, 0xA8, 0xE, 0); sEvoCursorPos = 0; - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; sEvoCursorPos = 0; } break; - case 4: + case T_MVSTATE_HANDLE_YES_NO: switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // YES sEvoCursorPos = 0; BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; - if (gTasks[taskID].tLearnMoveState == 5) + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveYesState; + if (gTasks[taskId].tLearnMoveState == T_MVSTATE_SHOW_MOVE_SELECT) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); break; - case 1: - case -1: + case 1: // NO + case MENU_B_PRESSED: sEvoCursorPos = 1; BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; + gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; break; } break; - case 5: + case T_MVSTATE_SHOW_MOVE_SELECT: if (!gPaletteFade.active) { if (gWirelessCommType) @@ -1232,73 +1344,77 @@ static void Task_TradeEvolutionScene(u8 taskID) Free(GetBgTilemapBuffer(0)); FreeAllWindowBuffers(); - ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID, + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskId].tPartyId, gPlayerPartyCount - 1, CB2_TradeEvolutionSceneLoadGraphics, gMoveToLearn); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 6: + case T_MVSTATE_HANDLE_MOVE_SELECT: if (!gPaletteFade.active && gMain.callback2 == CB2_TradeEvolutionSceneUpdate) { var = GetMoveSlotToReplace(); if (var == MAX_MON_MOVES) { - gTasks[taskID].tLearnMoveState = 9; + // Didn't select move slot + gTasks[taskId].tLearnMoveState = T_MVSTATE_ASK_CANCEL; } else { + // Selected move to forget u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { + // Can't forget HMs BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState = 11; + gTasks[taskId].tLearnMoveState = T_MVSTATE_RETRY_AFTER_HM; } else { + // Forget move PREPARE_MOVE_BUFFER(gBattleTextBuff2, move) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } } } break; - case 7: + case T_MVSTATE_FORGET_MSG: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tLearnMoveState++; + gTasks[taskId].tLearnMoveState++; } break; - case 8: + case T_MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tState = 18; + gTasks[taskId].tState = T_EVOSTATE_LEARNED_MOVE; } break; - case 9: + case T_MVSTATE_ASK_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tData7 = 10; - gTasks[taskID].tData8 = 0; - gTasks[taskID].tLearnMoveState = 3; + gTasks[taskId].tLearnMoveYesState = T_MVSTATE_CANCEL; + gTasks[taskId].tLearnMoveNoState = T_MVSTATE_INTRO_MSG_1; + gTasks[taskId].tLearnMoveState = T_MVSTATE_PRINT_YES_NO; break; - case 10: + case T_MVSTATE_CANCEL: BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); - gTasks[taskID].tState = 13; + gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; break; - case 11: + case T_MVSTATE_RETRY_AFTER_HM: if (!IsTextPrinterActive(0) && !IsSEPlaying()) - gTasks[taskID].tLearnMoveState = 5; + gTasks[taskId].tLearnMoveState = T_MVSTATE_SHOW_MOVE_SELECT; break; } break; @@ -1312,10 +1428,10 @@ static void Task_TradeEvolutionScene(u8 taskID) #undef tBits #undef tLearnsFirstMove #undef tLearnMoveState -#undef tData7 -#undef tData8 +#undef tLearnMoveYesState +#undef tLearnMoveNoState #undef tEvoWasStopped -#undef tPartyID +#undef tPartyId static void EvoDummyFunc(void) { @@ -1355,57 +1471,87 @@ static void VBlankCB_TradeEvolutionScene(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void sub_813FDEC(u8 taskId) +#define tCycleTimer data[0] +#define tPalStage data[1] +#define tControlStage data[2] +#define tNumCycles data[3] +#define tStartTimer data[5] +#define tPaused data[6] + +// See comments above sBgAnim_PaletteControl +#define START_PAL sBgAnim_PaletteControl[tControlStage][0] +#define END_PAL sBgAnim_PaletteControl[tControlStage][1] +#define CYCLES sBgAnim_PaletteControl[tControlStage][2] +#define DELAY sBgAnim_PaletteControl[tControlStage][3] + +// Cycles the background through a set range of palettes in a series +// of stages, each stage having a different palette range and timing +static void Task_UpdateBgPalette(u8 taskId) { s16 *data = gTasks[taskId].data; - if (data[6] != 0) + if (tPaused) return; - if (data[5]++ < 20) + if (tStartTimer++ < 20) return; - if (data[0]++ > sUnknown_085B58C9[data[2]][3]) + if (tCycleTimer++ > DELAY) { - if (sUnknown_085B58C9[data[2]][1] == data[1]) + if (END_PAL == tPalStage) { - data[3]++; - if (data[3] == sUnknown_085B58C9[data[2]][2]) + // Reached final palette in current stage, completed a 'cycle' + // If this is the final cycle for this stage, move to the next stage + tNumCycles++; + if (tNumCycles == CYCLES) { - data[3] = 0; - data[2]++; + tNumCycles = 0; + tControlStage++; } - data[1] = sUnknown_085B58C9[data[2]][0]; + tPalStage = START_PAL; } else { - LoadPalette(&sEvoMovingBgPtr[data[1] * 16], 0xA0, 0x20); - data[0] = 0; - data[1]++; + // Haven't reached final palette in current stage, load the current palette + LoadPalette(&sBgAnimPal[tPalStage * 16], 0xA0, 0x20); + tCycleTimer = 0; + tPalStage++; } } - if (data[2] == 4) + if (tControlStage == (int)ARRAY_COUNT(sBgAnim_PaletteControl[0])) DestroyTask(taskId); } -static void sub_813FEA4(bool8 isLink) +#undef tCycleTimer +#undef tPalStage +#undef tControlStage +#undef tNumCycles +#undef tStartTimer +#undef START_PAL +#undef END_PAL +#undef CYCLES +#undef DELAY + +#define tIsLink data[2] + +static void CreateBgAnimTask(bool8 isLink) { - u8 taskId = CreateTask(sub_813FEE8, 7); + u8 taskId = CreateTask(Task_AnimateBg, 7); if (!isLink) - gTasks[taskId].data[2] = 0; + gTasks[taskId].tIsLink = FALSE; else - gTasks[taskId].data[2] = 1; + gTasks[taskId].tIsLink = TRUE; } -static void sub_813FEE8(u8 taskId) +static void Task_AnimateBg(u8 taskId) { u16 *outer_X, *outer_Y; u16 *inner_X = &gBattle_BG1_X; u16 *inner_Y = &gBattle_BG1_Y; - if (!gTasks[taskId].data[2]) + if (!gTasks[taskId].tIsLink) { outer_X = &gBattle_BG2_X; outer_Y = &gBattle_BG2_Y; @@ -1425,7 +1571,7 @@ static void sub_813FEE8(u8 taskId) *outer_X = Cos(gTasks[taskId].data[1], 4) + 8; *outer_Y = Sin(gTasks[taskId].data[1], 4) + 16; - if (!FuncIsActiveTask(sub_813FDEC)) + if (!FuncIsActiveTask(Task_UpdateBgPalette)) { DestroyTask(taskId); @@ -1437,37 +1583,39 @@ static void sub_813FEE8(u8 taskId) } } -static void InitMovingBgValues(u16 *movingBgs) +#undef tIsLink + +static void InitMovingBgPalette(u16 *palette) { s32 i, j; - for (i = 0; i < 50; i++) + for (i = 0; i < (int)ARRAY_COUNT(sBgAnim_PalIndexes); i++) { for (j = 0; j < 16; j++) { - movingBgs[i * 16 + j] = sUnknown_085B5884[sUnknown_085B58D9[i][j]]; + palette[i * 16 + j] = sBgAnim_Pal[sBgAnim_PalIndexes[i][j]]; } } } -static void InitMovingBackgroundTask(bool8 isLink) +static void StartBgAnimation(bool8 isLink) { u8 innerBgId, outerBgId; - sEvoMovingBgPtr = AllocZeroed(0x640); - InitMovingBgValues(sEvoMovingBgPtr); + sBgAnimPal = AllocZeroed(0x640); + InitMovingBgPalette(sBgAnimPal); if (!isLink) innerBgId = 1, outerBgId = 2; else innerBgId = 1, outerBgId = 3; - LoadPalette(sUnknown_085B51E4, 0xA0, 0x20); + LoadPalette(sBgAnim_Intro_Pal, 0xA0, 0x20); - DecompressAndLoadBgGfxUsingHeap(1, sUnknown_085B4134, FALSE, 0, 0); - CopyToBgTilemapBuffer(1, sUnknown_085B482C, 0, 0); - CopyToBgTilemapBuffer(outerBgId, sUnknown_085B4D10, 0, 0); - CopyBgTilemapBufferToVram(1); + DecompressAndLoadBgGfxUsingHeap(1, sBgAnim_Gfx, FALSE, 0, 0); + CopyToBgTilemapBuffer(innerBgId, sBgAnim_Inner_Tilemap, 0, 0); + CopyToBgTilemapBuffer(outerBgId, sBgAnim_Outer_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(innerBgId); CopyBgTilemapBufferToVram(outerBgId); if (!isLink) @@ -1489,34 +1637,37 @@ static void InitMovingBackgroundTask(bool8 isLink) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG1_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP); } - CreateTask(sub_813FDEC, 5); - sub_813FEA4(isLink); + CreateTask(Task_UpdateBgPalette, 5); + CreateBgAnimTask(isLink); } -static void sub_8140100(void) // unused +// Unused +static void PauseBgPaletteAnim(void) { - u8 taskId = FindTaskIdByFunc(sub_813FDEC); + u8 taskId = FindTaskIdByFunc(Task_UpdateBgPalette); if (taskId != 0xFF) - gTasks[taskId].data[6] = 1; + gTasks[taskId].tPaused = TRUE; FillPalette(0, 0xA0, 0x20); } -static void sub_8140134(void) +#undef tPaused + +static void StopBgAnimation(void) { u8 taskId; - if ((taskId = FindTaskIdByFunc(sub_813FDEC)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_UpdateBgPalette)) != 0xFF) DestroyTask(taskId); - if ((taskId = FindTaskIdByFunc(sub_813FEE8)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_AnimateBg)) != 0xFF) DestroyTask(taskId); FillPalette(0, 0xA0, 0x20); - sub_8140174(); + RestoreBgAfterAnim(); } -static void sub_8140174(void) +static void RestoreBgAfterAnim(void) { SetGpuReg(REG_OFFSET_BLDCNT, 0); gBattle_BG1_X = 0; @@ -1525,10 +1676,10 @@ static void sub_8140174(void) SetBgAttribute(1, BG_ATTR_PRIORITY, GetBattleBgTemplateData(1, 5)); SetBgAttribute(2, BG_ATTR_PRIORITY, GetBattleBgTemplateData(2, 5)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP); - Free(sEvoMovingBgPtr); + Free(sBgAnimPal); } -static void EvoScene_DoMonAnimation(u8 monSpriteId, u16 speciesId) +static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, u16 speciesId) { DoMonFrontSpriteAnimation(&gSprites[monSpriteId], speciesId, FALSE, 0); } diff --git a/src/field_effect.c b/src/field_effect.c index b1837c514..467a0f656 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -967,8 +967,8 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b) curBlue -= ((curBlue * b) >> 4); color = curRed; - color |= curGreen << 5; - color |= curBlue << 10; + color |= (curGreen << 5); + color |= (curBlue << 10); gPlttBufferFaded[i] = color; } diff --git a/src/field_weather.c b/src/field_weather.c index 25ee0582a..02e3a0cb0 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -494,7 +494,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex) r = gammaTable[baseColor.r]; g = gammaTable[baseColor.g]; b = gammaTable[baseColor.b]; - gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r; + gPlttBufferFaded[palOffset++] = RGB2(r, g, b); } } @@ -579,7 +579,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI r += ((rBlend - r) * blendCoeff) >> 4; g += ((gBlend - g) * blendCoeff) >> 4; b += ((bBlend - b) * blendCoeff) >> 4; - gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r; + gPlttBufferFaded[palOffset++] = RGB2(r, g, b); } } @@ -636,7 +636,7 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl g2 += ((gBlend - g2) * blendCoeff) >> 4; b2 += ((bBlend - b2) * blendCoeff) >> 4; - gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2; + gPlttBufferFaded[palOffset++] = RGB2(r2, g2, b2); } } } @@ -678,7 +678,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) g += ((gBlend - g) * blendCoeff) >> 4; b += ((bBlend - b) * blendCoeff) >> 4; - gPlttBufferFaded[palOffset] = (b << 10) | (g << 5) | r; + gPlttBufferFaded[palOffset] = RGB2(r, g, b); palOffset++; } } diff --git a/src/item_menu.c b/src/item_menu.c index c63342041..375e15cab 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -86,7 +86,7 @@ u16 BagGetQuantityByPocketPosition(u8, u16); void BagDestroyPocketSwitchArrowPair(void); void TaskCloseBagMenu_2(u8); u8 AddItemMessageWindow(u8); -void BagMenu_RemoveBagItemMessageindow(u8); +void BagMenu_RemoveBagItemMessageWindow(u8); void set_callback3_to_bag(u8); void PrintItemDepositAmount(u8, s16); static u8 BagMenu_AddWindow(u8); @@ -1115,7 +1115,7 @@ void BagMenu_InitListsMenu(u8 taskId) s16* data = gTasks[taskId].data; u16* scrollPos = &gBagPositionStruct.scrollPosition[gBagPositionStruct.pocket]; u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket]; - BagMenu_RemoveBagItemMessageindow(4); + BagMenu_RemoveBagItemMessageWindow(4); DestroyListMenuTask(data[0], scrollPos, cursorPos); UpdatePocketItemList(gBagPositionStruct.pocket); SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket); @@ -2035,7 +2035,7 @@ void BagMenu_CancelSell(u8 taskId) s16* data = gTasks[taskId].data; RemoveMoneyWindow(); - BagMenu_RemoveBagItemMessageindow(4); + BagMenu_RemoveBagItemMessageWindow(4); BagMenu_PrintCursor_(data[0], 0); set_callback3_to_bag(taskId); } @@ -2070,7 +2070,7 @@ static void Task_SellHowManyDialogueHandleInput(u8 taskId) BagMenu_PrintCursor_(data[0], 0); RemoveMoneyWindow(); BagMenu_RemoveWindow(8); - BagMenu_RemoveBagItemMessageindow(4); + BagMenu_RemoveBagItemMessageWindow(4); set_callback3_to_bag(taskId); } } @@ -2420,7 +2420,7 @@ u8 AddItemMessageWindow(u8 which) return *ptr; } -void BagMenu_RemoveBagItemMessageindow(u8 which) +void BagMenu_RemoveBagItemMessageWindow(u8 which) { u8 *ptr = &gBagMenu->windowPointers[which]; if (*ptr != 0xFF) diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 7de963893..74e3455c3 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -23,7 +23,6 @@ #include "text_window.h" #include "trig.h" #include "window.h" -#include "constants/berry.h" #include "constants/songs.h" #include "gba/io_reg.h" diff --git a/src/party_menu.c b/src/party_menu.c index 096f87dd2..b2fd358ca 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3520,9 +3520,9 @@ static void CursorCb_Register(u8 taskId) { u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2); u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); - u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE); + u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL); - switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, obedience)) + switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, isEventLegal)) { case CANT_REGISTER_MON: StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow); @@ -3547,8 +3547,8 @@ static void CursorCb_Trade1(u8 taskId) { u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2); u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); - u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE); - u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience); + u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL); + u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isEventLegal); if (stringId != UR_TRADE_MSG_NONE) { diff --git a/src/pokeblock.c b/src/pokeblock.c index 0bfb10632..4485fe1ef 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -29,7 +29,6 @@ #include "task.h" #include "text.h" #include "text_window.h" -#include "constants/berry.h" #include "constants/items.h" #include "constants/songs.h" #include "constants/rgb.h" diff --git a/src/pokemon.c b/src/pokemon.c index 064e206a4..5812e987a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2615,12 +2615,12 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP GetMonData(mon, MON_DATA_NICKNAME, dest->nickname); } -void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId) +void CreateEventLegalMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId) { - bool32 obedient = TRUE; + bool32 isEventLegal = TRUE; CreateMon(mon, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId); - SetMonData(mon, MON_DATA_OBEDIENCE, &obedient); + SetMonData(mon, MON_DATA_EVENT_LEGAL, &isEventLegal); } // If FALSE, should load this game's Deoxys form. If TRUE, should load normal Deoxys form @@ -2755,14 +2755,14 @@ u16 GetUnionRoomTrainerClass(void) return gFacilityClassToTrainerClass[gLinkPlayerFacilityClasses[arrId]]; } -void CreateObedientEnemyMon(void) +void CreateEventLegalEnemyMon(void) { s32 species = gSpecialVar_0x8004; s32 level = gSpecialVar_0x8005; s32 itemId = gSpecialVar_0x8006; ZeroEnemyPartyMons(); - CreateObedientMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, 0, 0); + CreateEventLegalMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, 0, 0); if (itemId) { u8 heldItem[2]; @@ -2993,7 +2993,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { - u32 retVal = 0; + u32 retVal = MOVE_NONE; u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); @@ -3009,7 +3009,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { sLearningMoveTableID++; if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END) - return 0; + return MOVE_NONE; } } @@ -3907,32 +3907,32 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) case MON_DATA_EFFORT_RIBBON: retVal = substruct3->effortRibbon; break; - case MON_DATA_GIFT_RIBBON_1: - retVal = substruct3->giftRibbon1; + case MON_DATA_MARINE_RIBBON: + retVal = substruct3->marineRibbon; break; - case MON_DATA_GIFT_RIBBON_2: - retVal = substruct3->giftRibbon2; + case MON_DATA_LAND_RIBBON: + retVal = substruct3->landRibbon; break; - case MON_DATA_GIFT_RIBBON_3: - retVal = substruct3->giftRibbon3; + case MON_DATA_SKY_RIBBON: + retVal = substruct3->skyRibbon; break; - case MON_DATA_GIFT_RIBBON_4: - retVal = substruct3->giftRibbon4; + case MON_DATA_COUNTRY_RIBBON: + retVal = substruct3->countryRibbon; break; - case MON_DATA_GIFT_RIBBON_5: - retVal = substruct3->giftRibbon5; + case MON_DATA_NATIONAL_RIBBON: + retVal = substruct3->nationalRibbon; break; - case MON_DATA_GIFT_RIBBON_6: - retVal = substruct3->giftRibbon6; + case MON_DATA_EARTH_RIBBON: + retVal = substruct3->earthRibbon; break; - case MON_DATA_GIFT_RIBBON_7: - retVal = substruct3->giftRibbon7; + case MON_DATA_WORLD_RIBBON: + retVal = substruct3->worldRibbon; break; - case MON_DATA_FATEFUL_ENCOUNTER: - retVal = substruct3->fatefulEncounter; + case MON_DATA_FILLER: + retVal = substruct3->filler; break; - case MON_DATA_OBEDIENCE: - retVal = substruct3->obedient; + case MON_DATA_EVENT_LEGAL: + retVal = substruct3->eventLegal; break; case MON_DATA_SPECIES2: retVal = substruct0->species; @@ -3974,13 +3974,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) retVal += substruct3->victoryRibbon; retVal += substruct3->artistRibbon; retVal += substruct3->effortRibbon; - retVal += substruct3->giftRibbon1; - retVal += substruct3->giftRibbon2; - retVal += substruct3->giftRibbon3; - retVal += substruct3->giftRibbon4; - retVal += substruct3->giftRibbon5; - retVal += substruct3->giftRibbon6; - retVal += substruct3->giftRibbon7; + retVal += substruct3->marineRibbon; + retVal += substruct3->landRibbon; + retVal += substruct3->skyRibbon; + retVal += substruct3->countryRibbon; + retVal += substruct3->nationalRibbon; + retVal += substruct3->earthRibbon; + retVal += substruct3->worldRibbon; } break; case MON_DATA_RIBBONS: @@ -3997,13 +3997,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data) | (substruct3->victoryRibbon << 17) | (substruct3->artistRibbon << 18) | (substruct3->effortRibbon << 19) - | (substruct3->giftRibbon1 << 20) - | (substruct3->giftRibbon2 << 21) - | (substruct3->giftRibbon3 << 22) - | (substruct3->giftRibbon4 << 23) - | (substruct3->giftRibbon5 << 24) - | (substruct3->giftRibbon6 << 25) - | (substruct3->giftRibbon7 << 26); + | (substruct3->marineRibbon << 20) + | (substruct3->landRibbon << 21) + | (substruct3->skyRibbon << 22) + | (substruct3->countryRibbon << 23) + | (substruct3->nationalRibbon << 24) + | (substruct3->earthRibbon << 25) + | (substruct3->worldRibbon << 26); } break; default: @@ -4286,32 +4286,32 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg) case MON_DATA_EFFORT_RIBBON: SET8(substruct3->effortRibbon); break; - case MON_DATA_GIFT_RIBBON_1: - SET8(substruct3->giftRibbon1); + case MON_DATA_MARINE_RIBBON: + SET8(substruct3->marineRibbon); break; - case MON_DATA_GIFT_RIBBON_2: - SET8(substruct3->giftRibbon2); + case MON_DATA_LAND_RIBBON: + SET8(substruct3->landRibbon); break; - case MON_DATA_GIFT_RIBBON_3: - SET8(substruct3->giftRibbon3); + case MON_DATA_SKY_RIBBON: + SET8(substruct3->skyRibbon); break; - case MON_DATA_GIFT_RIBBON_4: - SET8(substruct3->giftRibbon4); + case MON_DATA_COUNTRY_RIBBON: + SET8(substruct3->countryRibbon); break; - case MON_DATA_GIFT_RIBBON_5: - SET8(substruct3->giftRibbon5); + case MON_DATA_NATIONAL_RIBBON: + SET8(substruct3->nationalRibbon); break; - case MON_DATA_GIFT_RIBBON_6: - SET8(substruct3->giftRibbon6); + case MON_DATA_EARTH_RIBBON: + SET8(substruct3->earthRibbon); break; - case MON_DATA_GIFT_RIBBON_7: - SET8(substruct3->giftRibbon7); + case MON_DATA_WORLD_RIBBON: + SET8(substruct3->worldRibbon); break; - case MON_DATA_FATEFUL_ENCOUNTER: - SET8(substruct3->fatefulEncounter); + case MON_DATA_FILLER: + SET8(substruct3->filler); break; - case MON_DATA_OBEDIENCE: - SET8(substruct3->obedient); + case MON_DATA_EVENT_LEGAL: + SET8(substruct3->eventLegal); break; case MON_DATA_IVS: { diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index f8b361912..5b80fd428 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -38,9 +38,9 @@ static const struct UnknownStruct sBigMonSizeTable[] = static const u8 sGiftRibbonsMonDataIds[] = { - MON_DATA_GIFT_RIBBON_1, MON_DATA_GIFT_RIBBON_2, MON_DATA_GIFT_RIBBON_3, - MON_DATA_GIFT_RIBBON_4, MON_DATA_GIFT_RIBBON_5, MON_DATA_GIFT_RIBBON_6, - MON_DATA_GIFT_RIBBON_7 + MON_DATA_MARINE_RIBBON, MON_DATA_LAND_RIBBON, MON_DATA_SKY_RIBBON, + MON_DATA_COUNTRY_RIBBON, MON_DATA_NATIONAL_RIBBON, MON_DATA_EARTH_RIBBON, + MON_DATA_WORLD_RIBBON }; extern const u8 gText_DecimalPoint[]; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 50fc04372..eaa9416cf 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -5898,12 +5898,12 @@ static bool8 sub_80CD554(void) return TRUE; } -static void sub_80CD6AC(u8 newCurosrArea, u8 newCursorPosition) +static void sub_80CD6AC(u8 newCursorArea, u8 newCursorPosition) { u16 x, y; - sub_80CD444(newCurosrArea, newCursorPosition, &x, &y); - sPSSData->field_CD4 = newCurosrArea; + sub_80CD444(newCursorArea, newCursorPosition, &x, &y); + sPSSData->field_CD4 = newCursorArea; sPSSData->field_CD5 = newCursorPosition; sPSSData->field_CCC = x; sPSSData->field_CCE = y; @@ -5955,9 +5955,9 @@ static void sub_80CD70C(void) sPSSData->field_CC0 = sPSSData->field_CB4->pos1.y << 8; } -static void sub_80CD894(u8 newCurosrArea, u8 newCursorPosition) +static void sub_80CD894(u8 newCursorArea, u8 newCursorPosition) { - sub_80CD6AC(newCurosrArea, newCursorPosition); + sub_80CD6AC(newCursorArea, newCursorPosition); sub_80CD70C(); if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) { @@ -5977,19 +5977,19 @@ static void sub_80CD894(u8 newCurosrArea, u8 newCursorPosition) else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) sub_80D0E50(CURSOR_AREA_IN_PARTY, sBoxCursorPosition); - if (newCurosrArea == CURSOR_AREA_IN_BOX) - sub_80D0D8C(newCurosrArea, newCursorPosition); - else if (newCurosrArea == CURSOR_AREA_IN_PARTY) - sub_80D0D8C(newCurosrArea, newCursorPosition); + if (newCursorArea == CURSOR_AREA_IN_BOX) + sub_80D0D8C(newCursorArea, newCursorPosition); + else if (newCursorArea == CURSOR_AREA_IN_PARTY) + sub_80D0D8C(newCursorArea, newCursorPosition); } - if (newCurosrArea == CURSOR_AREA_IN_PARTY && sBoxCursorArea != CURSOR_AREA_IN_PARTY) + if (newCursorArea == CURSOR_AREA_IN_PARTY && sBoxCursorArea != CURSOR_AREA_IN_PARTY) { - sPSSData->field_CD6 = newCurosrArea; + sPSSData->field_CD6 = newCursorArea; sPSSData->field_CB8->invisible = TRUE; } - switch (newCurosrArea) + switch (newCursorArea) { case CURSOR_AREA_IN_PARTY: case CURSOR_AREA_BOX: diff --git a/src/scrcmd.c b/src/scrcmd.c index f599a0004..7caaa194b 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2207,21 +2207,21 @@ bool8 ScrCmd_lockfortrainer(struct ScriptContext *ctx) } } -// This command will force the Pokémon to be obedient, you don't get to make it disobedient. -bool8 ScrCmd_setmonobedient(struct ScriptContext *ctx) +// This command will set a Pokémon's eventLegal bit; there is no similar command to clear it. +bool8 ScrCmd_setmoneventlegal(struct ScriptContext *ctx) { - bool8 obedient = TRUE; + bool8 isEventLegal = TRUE; u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); - SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient); + SetMonData(&gPlayerParty[partyIndex], MON_DATA_EVENT_LEGAL, &isEventLegal); return FALSE; } -bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) +bool8 ScrCmd_checkmoneventlegal(struct ScriptContext *ctx) { u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); - gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL); + gSpecialVar_Result = GetMonData(&gPlayerParty[partyIndex], MON_DATA_EVENT_LEGAL, NULL); return FALSE; } diff --git a/src/trade.c b/src/trade.c index 05c64cb82..afefce93c 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1489,7 +1489,7 @@ static u8 CheckValidityOfTradeMons(u8 *aliveMons, u8 playerPartyCount, u8 player // Partner cant trade illegitimate Deoxys or Mew if (partnerSpecies == SPECIES_DEOXYS || partnerSpecies == SPECIES_MEW) { - if (!GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_OBEDIENCE)) + if (!GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_EVENT_LEGAL)) return PARTNER_MON_INVALID; } @@ -2329,7 +2329,7 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int if (species[monIdx] == SPECIES_DEOXYS || species[monIdx] == SPECIES_MEW) { - if (!GetMonData(&playerParty[monIdx], MON_DATA_OBEDIENCE)) + if (!GetMonData(&playerParty[monIdx], MON_DATA_EVENT_LEGAL)) return CANT_TRADE_INVALID_MON; } @@ -2394,17 +2394,17 @@ s32 GetGameProgressForLinkTrade(void) return TRADE_BOTH_PLAYERS_READY; } -static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet) +static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isEventLegal) { if (species == SPECIES_DEOXYS || species == SPECIES_MEW) { - if (!isObedientBitSet) + if (!isEventLegal) return TRUE; } return FALSE; } -int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isObedientBitSet) +int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal) { bool8 playerHasNationalDex = rfuPlayer.hasNationalDex; bool8 playerIsChampion = rfuPlayer.isChampion; @@ -2424,7 +2424,7 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGname } } - if (IsDeoxysOrMewUntradable(playerSpecies, isObedientBitSet)) + if (IsDeoxysOrMewUntradable(playerSpecies, isEventLegal)) { return UR_TRADE_MSG_MON_CANT_BE_TRADED_2; } @@ -2475,11 +2475,11 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGname return UR_TRADE_MSG_NONE; } -int CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isObedientBitSet) +int CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isEventLegal) { bool8 hasNationalDex = rfuPlayer.hasNationalDex; - if (IsDeoxysOrMewUntradable(species, isObedientBitSet)) + if (IsDeoxysOrMewUntradable(species, isEventLegal)) return CANT_REGISTER_MON; if (hasNationalDex) diff --git a/src/trainer_see.c b/src/trainer_see.c index 8a7d2a5f9..9833f14bd 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -41,10 +41,10 @@ static bool8 PlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct O static bool8 WaitPlayerFaceApproachingTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 RevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static bool8 WaitRevealDisguisedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); -static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 RevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 PopOutOfAshBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); +static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj); static void SpriteCB_TrainerIcons(struct Sprite *sprite); @@ -80,10 +80,10 @@ enum { TRSEE_PLAYER_FACE_WAIT, TRSEE_REVEAL_DISGUISE, TRSEE_REVEAL_DISGUISE_WAIT, - TRSEE_REVEAL_HIDDEN, - TRSEE_HIDDEN_POP_OUT, - TRSEE_HIDDEN_JUMP, - TRSEE_REVEAL_HIDDEN_WAIT, + TRSEE_REVEAL_BURIED, + TRSEE_BURIED_POP_OUT, + TRSEE_BURIED_JUMP, + TRSEE_REVEAL_BURIED_WAIT, }; static bool8 (*const sTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) = @@ -96,18 +96,18 @@ static bool8 (*const sTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct [TRSEE_PLAYER_FACE_WAIT] = WaitPlayerFaceApproachingTrainer, [TRSEE_REVEAL_DISGUISE] = RevealDisguisedTrainer, [TRSEE_REVEAL_DISGUISE_WAIT] = WaitRevealDisguisedTrainer, - [TRSEE_REVEAL_HIDDEN] = RevealHiddenTrainer, - [TRSEE_HIDDEN_POP_OUT] = PopOutOfAshHiddenTrainer, - [TRSEE_HIDDEN_JUMP] = JumpInPlaceHiddenTrainer, - [TRSEE_REVEAL_HIDDEN_WAIT] = WaitRevealHiddenTrainer, + [TRSEE_REVEAL_BURIED] = RevealBuriedTrainer, + [TRSEE_BURIED_POP_OUT] = PopOutOfAshBuriedTrainer, + [TRSEE_BURIED_JUMP] = JumpInPlaceBuriedTrainer, + [TRSEE_REVEAL_BURIED_WAIT] = WaitRevealBuriedTrainer, }; static bool8 (*const sTrainerSeeFuncList2[])(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) = { - RevealHiddenTrainer, - PopOutOfAshHiddenTrainer, - JumpInPlaceHiddenTrainer, - WaitRevealHiddenTrainer, + RevealBuriedTrainer, + PopOutOfAshBuriedTrainer, + JumpInPlaceBuriedTrainer, + WaitRevealBuriedTrainer, }; static const struct OamData sOamData_Icons = @@ -481,8 +481,8 @@ static bool8 WaitTrainerExclamationMark(u8 taskId, struct Task *task, struct Obj task->tFuncId++; // TRSEE_MOVE_TO_PLAYER if (trainerObj->movementType == MOVEMENT_TYPE_TREE_DISGUISE || trainerObj->movementType == MOVEMENT_TYPE_MOUNTAIN_DISGUISE) task->tFuncId = TRSEE_REVEAL_DISGUISE; - if (trainerObj->movementType == MOVEMENT_TYPE_HIDDEN) - task->tFuncId = TRSEE_REVEAL_HIDDEN; + if (trainerObj->movementType == MOVEMENT_TYPE_BURIED) + task->tFuncId = TRSEE_REVEAL_BURIED; return TRUE; } } @@ -561,8 +561,8 @@ static bool8 WaitRevealDisguisedTrainer(u8 taskId, struct Task *task, struct Obj return FALSE; } -// TRSEE_REVEAL_HIDDEN -static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_REVEAL_BURIED +static bool8 RevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (!ObjectEventIsMovementOverridden(trainerObj) || ObjectEventClearHeldMovementIfFinished(trainerObj)) @@ -573,8 +573,8 @@ static bool8 RevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEven return FALSE; } -// TRSEE_HIDDEN_POP_OUT -static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_BURIED_POP_OUT +static bool8 PopOutOfAshBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (ObjectEventCheckHeldMovementStatus(trainerObj)) { @@ -588,8 +588,8 @@ static bool8 PopOutOfAshHiddenTrainer(u8 taskId, struct Task *task, struct Objec return FALSE; } -// TRSEE_HIDDEN_JUMP -static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_BURIED_JUMP +static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { struct Sprite *sprite; @@ -608,8 +608,8 @@ static bool8 JumpInPlaceHiddenTrainer(u8 taskId, struct Task *task, struct Objec return FALSE; } -// TRSEE_REVEAL_HIDDEN_WAIT -static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) +// TRSEE_REVEAL_BURIED_WAIT +static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct ObjectEvent *trainerObj) { if (!FieldEffectActiveListContains(FLDEFF_ASH_PUFF)) task->tFuncId = TRSEE_MOVE_TO_PLAYER; @@ -623,7 +623,7 @@ static bool8 WaitRevealHiddenTrainer(u8 taskId, struct Task *task, struct Object #define tObjEvent data[1] -static void Task_SetHiddenTrainerMovement(u8 taskId) +static void Task_SetBuriedTrainerMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; struct ObjectEvent *objEvent; @@ -647,10 +647,10 @@ static void Task_SetHiddenTrainerMovement(u8 taskId) } } -// Called when a "buried" trainer has the reveal_trainer movement applied, from direct interaction -void SetHiddenTrainerMovement(struct ObjectEvent *objEvent) +// Called when a buried Trainer has the reveal_trainer movement applied, from direct interaction +void SetBuriedTrainerMovement(struct ObjectEvent *objEvent) { - StoreWordInTwoHalfwords(&gTasks[CreateTask(Task_SetHiddenTrainerMovement, 0)].tObjEvent, (u32)objEvent); + StoreWordInTwoHalfwords(&gTasks[CreateTask(Task_SetBuriedTrainerMovement, 0)].tObjEvent, (u32)objEvent); } void DoTrainerApproach(void) @@ -2398,13 +2398,13 @@ u8 GetRibbonCount(struct Pokemon *pokemon) nRibbons += GetMonData(pokemon, MON_DATA_VICTORY_RIBBON); nRibbons += GetMonData(pokemon, MON_DATA_ARTIST_RIBBON); nRibbons += GetMonData(pokemon, MON_DATA_EFFORT_RIBBON); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_1); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_2); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_3); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_4); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_5); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_6); - nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_7); + nRibbons += GetMonData(pokemon, MON_DATA_MARINE_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_LAND_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_SKY_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_COUNTRY_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_NATIONAL_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_EARTH_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_WORLD_RIBBON); return nRibbons; } @@ -2420,13 +2420,13 @@ u8 TV_MonDataIdxToRibbon(u8 monDataIdx) if (monDataIdx == MON_DATA_VICTORY_RIBBON) return 22; if (monDataIdx == MON_DATA_ARTIST_RIBBON) return 23; if (monDataIdx == MON_DATA_EFFORT_RIBBON) return 24; - if (monDataIdx == MON_DATA_GIFT_RIBBON_1) return 25; - if (monDataIdx == MON_DATA_GIFT_RIBBON_2) return 26; - if (monDataIdx == MON_DATA_GIFT_RIBBON_3) return 27; - if (monDataIdx == MON_DATA_GIFT_RIBBON_4) return 28; - if (monDataIdx == MON_DATA_GIFT_RIBBON_5) return 29; - if (monDataIdx == MON_DATA_GIFT_RIBBON_6) return 30; - if (monDataIdx == MON_DATA_GIFT_RIBBON_7) return 31; + if (monDataIdx == MON_DATA_MARINE_RIBBON) return 25; + if (monDataIdx == MON_DATA_LAND_RIBBON) return 26; + if (monDataIdx == MON_DATA_SKY_RIBBON) return 27; + if (monDataIdx == MON_DATA_COUNTRY_RIBBON) return 28; + if (monDataIdx == MON_DATA_NATIONAL_RIBBON) return 29; + if (monDataIdx == MON_DATA_EARTH_RIBBON) return 30; + if (monDataIdx == MON_DATA_WORLD_RIBBON) return 31; return 0; } diff --git a/src/util.c b/src/util.c index 8aa54857a..a4e3fa4cf 100644 --- a/src/util.c +++ b/src/util.c @@ -2,6 +2,7 @@ #include "util.h" #include "sprite.h" #include "palette.h" +#include "constants/rgb.h" const u32 gBitTable[] = { @@ -271,8 +272,8 @@ void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor) s8 g = data1->g; s8 b = data1->b; struct PlttData *data2 = (struct PlttData *)&blendColor; - gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0) - | ((g + (((data2->g - g) * coeff) >> 4)) << 5) - | ((b + (((data2->b - b) * coeff) >> 4)) << 10); + gPlttBufferFaded[index] = RGB(r + (((data2->r - r) * coeff) >> 4), + g + (((data2->g - g) * coeff) >> 4), + b + (((data2->b - b) * coeff) >> 4)); } } |